{"_id":"@avandar/acclimate","_rev":"15-eeca2caab88ddf71e22cd0b9c19a65d5","name":"@avandar/acclimate","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.0":{"name":"@avandar/acclimate","version":"0.1.0","keywords":["cli","framework","typescript"],"license":"MIT","_id":"@avandar/acclimate@0.1.0","maintainers":[{"name":"jpsyx","email":"pablowritescode@gmail.com"}],"dist":{"shasum":"87eb5eb80c1a6c843e20c2bee5f1bb44663bf40a","tarball":"https://registry.npmjs.org/@avandar/acclimate/-/acclimate-0.1.0.tgz","fileCount":9,"integrity":"sha512-8l6ccqQR5tVewgpuoytG+Ip86SRngPkaa2jCY7JlpinGDtt6LOyUgkQcIuxQF2vK6SUnj5KKY271i5lQI3UE0Q==","signatures":[{"sig":"MEQCID4hxhnPXIp89ER/7MOu9SkhF4GCh41069Ydurz3gdVBAiAREKQJAw1J3BfiLbA4rVYUgUExoYY0DdQ4T//TgnmRJw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116307},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"02b01a9b18633d4f4fd6a99366812a19ba58a891","scripts":{"dev":"tsup --watch","demo":"tsx examples/basic.ts","lint":"eslint .","test":"vitest run","type":"tsc -p tsconfig.json --noEmit","build":"tsup","format":"prettier . --write","prepare":"npm run build","lint:fix":"eslint . --fix","format:fix":"prettier . --write","test:watch":"vitest watch"},"_npmUser":{"name":"jpsyx","email":"pablowritescode@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.6.2","description":"A lightweight TypeScript framework for building CLI tools.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ts-pattern":"^5.9.0","change-case":"^5.4.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","eslint":"^9.39.1","vitest":"^2.1.9","prettier":"^3.7.4","type-fest":"^5.3.1","@eslint/js":"^9.39.1","typescript":"^5.9.3","@types/node":"^22.19.2","typescript-eslint":"^8.49.0","eslint-config-prettier":"^9.1.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-unused-imports":"^4.3.0","eslint-import-resolver-typescript":"^4.4.4","@ianvs/prettier-plugin-sort-imports":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/acclimate_0.1.0_1768425026625_0.1493758608444471","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@avandar/acclimate","version":"0.1.1","keywords":["cli","framework","typescript"],"license":"MIT","_id":"@avandar/acclimate@0.1.1","maintainers":[{"name":"jpsyx","email":"pablowritescode@gmail.com"}],"dist":{"shasum":"a6fa4f0151db36c92890658f195338a22b2d0aa2","tarball":"https://registry.npmjs.org/@avandar/acclimate/-/acclimate-0.1.1.tgz","fileCount":9,"integrity":"sha512-LUcURHyVdeZAtwRNJv7dRBFQCxh+pfQPg+fVK9QoqZRi4jxh8S5Pw6aA46kQLY7xuii3FW/Q0Sps4lAZcd3mRg==","signatures":[{"sig":"MEUCIQDakM6Ew0dDKcvaxdDJKp31O0CN8eZNPyWLDqJoY2UfAgIgUryoGxcUgKmtJe6m9gF/l9SsS5Z5Pj2BF5ekuaCsUM4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116305},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"db4b78408110e4dc9d9e6bc6e0348aa94c4bcac2","scripts":{"dev":"tsup --watch","demo":"tsx examples/basic.ts","lint":"eslint .","test":"vitest run","type":"tsc -p tsconfig.json --noEmit","build":"tsup","format":"prettier . --write","prepare":"npm run build","lint:fix":"eslint . --fix","format:fix":"prettier . --write","test:watch":"vitest watch"},"_npmUser":{"name":"jpsyx","email":"pablowritescode@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.6.2","description":"A lightweight TypeScript framework for building CLI tools.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ts-pattern":"^5.9.0","change-case":"^5.4.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","eslint":"^9.39.1","vitest":"^2.1.9","prettier":"^3.7.4","type-fest":"^5.3.1","@eslint/js":"^9.39.1","typescript":"^5.9.3","@types/node":"^22.19.2","typescript-eslint":"^8.49.0","eslint-config-prettier":"^9.1.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-unused-imports":"^4.3.0","eslint-import-resolver-typescript":"^4.4.4","@ianvs/prettier-plugin-sort-imports":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/acclimate_0.1.1_1768425752214_0.9140328001884959","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@avandar/acclimate","version":"0.1.2","keywords":["cli","framework","typescript"],"license":"MIT","_id":"@avandar/acclimate@0.1.2","maintainers":[{"name":"jpsyx","email":"pablowritescode@gmail.com"}],"dist":{"shasum":"910afa2813fcd32cfcb2841f2d20f70f68209b6e","tarball":"https://registry.npmjs.org/@avandar/acclimate/-/acclimate-0.1.2.tgz","fileCount":9,"integrity":"sha512-dW6h/rQhvCLhApTHPEaRcQJRz+6R3reooiyoFP9TYWTX6wu+5seCM4l7O64gLL7wgjWBmTD6B6PlbWFVf6tgcQ==","signatures":[{"sig":"MEUCIQDsYBLIUduDLH4tjSZDHRfMIkqfLX4jmyXIdXhNcNjNcAIgGi+yy9/Id6oLdchLH4sT09gtQH9pU/9UvDsaiT20EBM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116279},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"db7c53b00c165d24f58586d9290f39dbb8dcd71e","scripts":{"dev":"tsup --watch","demo":"tsx examples/basic.ts","lint":"eslint .","test":"vitest run","type":"tsc -p tsconfig.json --noEmit","build":"tsup","format":"prettier . --write","prepare":"npm run build","lint:fix":"eslint . --fix","format:fix":"prettier . --write","test:watch":"vitest watch"},"_npmUser":{"name":"jpsyx","email":"pablowritescode@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.6.2","description":"A lightweight TypeScript framework for building CLI tools.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ts-pattern":"^5.9.0","change-case":"^5.4.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","eslint":"^9.39.1","vitest":"^2.1.9","prettier":"^3.7.4","type-fest":"^5.3.1","@eslint/js":"^9.39.1","typescript":"^5.9.3","@types/node":"^22.19.2","typescript-eslint":"^8.49.0","eslint-config-prettier":"^9.1.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-unused-imports":"^4.3.0","eslint-import-resolver-typescript":"^4.4.4","@ianvs/prettier-plugin-sort-imports":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/acclimate_0.1.2_1768430030368_0.01166158603992673","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@avandar/acclimate","version":"0.1.3","keywords":["cli","framework","typescript"],"license":"MIT","_id":"@avandar/acclimate@0.1.3","maintainers":[{"name":"jpsyx","email":"pablowritescode@gmail.com"}],"dist":{"shasum":"f4173b4342cb9ff3aa44741e83737a9c8af78bc3","tarball":"https://registry.npmjs.org/@avandar/acclimate/-/acclimate-0.1.3.tgz","fileCount":9,"integrity":"sha512-PPdJhRXomYypC5peVokWiBeeH3SFGBec02N6t538ugFtpT7MzebKwlan1vWMiUBPfwHG8AV4D1hm0lBjHLFSvQ==","signatures":[{"sig":"MEQCIDpyN7MVb+BgClwRAVUw1iy1qRjUuHEAWv3YnQQ8IOyFAiADClIY7sxl50Of4Vw0YDkkNF2o/bMl+zhyHimkusR+Bw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116741},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"1aa237a68bf71d17bf68935b5d41e6a7510f878e","scripts":{"dev":"tsup --watch","demo":"tsx examples/basic.ts","lint":"eslint .","test":"vitest run","type":"tsc -p tsconfig.json --noEmit","build":"tsup","format":"prettier . --write","prepare":"npm run build","lint:fix":"eslint . --fix","format:fix":"prettier . --write","test:watch":"vitest watch"},"_npmUser":{"name":"jpsyx","email":"pablowritescode@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.6.2","description":"A lightweight TypeScript framework for building CLI tools.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ts-pattern":"^5.9.0","change-case":"^5.4.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","eslint":"^9.39.1","vitest":"^2.1.9","prettier":"^3.7.4","type-fest":"^5.3.1","@eslint/js":"^9.39.1","typescript":"^5.9.3","@types/node":"^22.19.2","typescript-eslint":"^8.49.0","eslint-config-prettier":"^9.1.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-unused-imports":"^4.3.0","eslint-import-resolver-typescript":"^4.4.4","@ianvs/prettier-plugin-sort-imports":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/acclimate_0.1.3_1768430324226_0.09176547336469465","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@avandar/acclimate","version":"0.1.4","keywords":["cli","framework","typescript"],"license":"MIT","_id":"@avandar/acclimate@0.1.4","maintainers":[{"name":"jpsyx","email":"pablowritescode@gmail.com"}],"dist":{"shasum":"3f26307a817d46c555851ee19013f0d84ecc55b7","tarball":"https://registry.npmjs.org/@avandar/acclimate/-/acclimate-0.1.4.tgz","fileCount":9,"integrity":"sha512-nDr6T64catSTy2mnYZidJlrO654aaqrHgfO4vDzgNKHDNDPgvY3/appDOr5ee1oWW89/EM1EInICWqS82p5TPg==","signatures":[{"sig":"MEYCIQDxRjGg8gXkWEus5yH4BKUsK0dbaMhP0qoZ4nHErcc1GwIhAI3PsJrG97tV8ses7z4w+fdNb6Cz6A+pKay1j9zwmHiw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116741},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"dc95242c94f3594b1a41de3f1f74945947719598","scripts":{"dev":"tsup --watch","demo":"tsx examples/basic.ts","lint":"eslint .","test":"vitest run","type":"tsc -p tsconfig.json --noEmit","build":"tsup","format":"prettier . --write","prepare":"npm run build","lint:fix":"eslint . --fix","format:fix":"prettier . --write","test:watch":"vitest watch"},"_npmUser":{"name":"jpsyx","email":"pablowritescode@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.6.2","description":"A lightweight TypeScript framework for building CLI tools.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ts-pattern":"^5.9.0","change-case":"^5.4.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","eslint":"^9.39.1","vitest":"^2.1.9","prettier":"^3.7.4","type-fest":"^5.3.1","@eslint/js":"^9.39.1","typescript":"^5.9.3","@types/node":"^22.19.2","typescript-eslint":"^8.49.0","eslint-config-prettier":"^9.1.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-unused-imports":"^4.3.0","eslint-import-resolver-typescript":"^4.4.4","@ianvs/prettier-plugin-sort-imports":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/acclimate_0.1.4_1768433036743_0.101503866055487","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@avandar/acclimate","version":"0.1.5","keywords":["cli","framework","typescript"],"license":"MIT","_id":"@avandar/acclimate@0.1.5","maintainers":[{"name":"jpsyx","email":"pablowritescode@gmail.com"}],"dist":{"shasum":"6986a0446f698ae577cce50a4fbdeb7ac6c61493","tarball":"https://registry.npmjs.org/@avandar/acclimate/-/acclimate-0.1.5.tgz","fileCount":9,"integrity":"sha512-GCrOQ5hQUPerI19oLvIdxJ0tT50QCk+Y2enY+PzHzI/OFukJ4vtbGl3F4fVBs/yPAtPAA+31N8BsjQBJrY6E4A==","signatures":[{"sig":"MEYCIQDpqsPO0R44fGtOTGz7WBgbgNGy4+A1GfiX2l2JNd2sGQIhAI4tapit9JMJ5OsthZaIFQVgYCLc2aBALOWfWPfgcrFD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":114867},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"5db4002b683ed7a21f347855a8a781ad723a4825","scripts":{"dev":"tsup --watch","demo":"tsx examples/basic.ts","lint":"eslint .","test":"vitest run","type":"tsc -p tsconfig.json --noEmit","build":"tsup","format":"prettier . --write","prepare":"npm run build","lint:fix":"eslint . --fix","format:fix":"prettier . --write","test:watch":"vitest watch"},"_npmUser":{"name":"jpsyx","email":"pablowritescode@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.6.2","description":"A lightweight TypeScript framework for building CLI tools.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ts-pattern":"^5.9.0","change-case":"^5.4.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","eslint":"^9.39.1","vitest":"^2.1.9","prettier":"^3.7.4","type-fest":"^5.3.1","@eslint/js":"^9.39.1","typescript":"^5.9.3","@types/node":"^22.19.2","typescript-eslint":"^8.49.0","eslint-config-prettier":"^9.1.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-unused-imports":"^4.3.0","eslint-import-resolver-typescript":"^4.4.4","@ianvs/prettier-plugin-sort-imports":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/acclimate_0.1.5_1768441433510_0.4251938734769283","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@avandar/acclimate","version":"0.2.0","keywords":["cli","framework","typescript"],"license":"MIT","_id":"@avandar/acclimate@0.2.0","maintainers":[{"name":"jpsyx","email":"pablowritescode@gmail.com"}],"dist":{"shasum":"e38e97b5c5b112b68b13749ec44af6ff1d56b71b","tarball":"https://registry.npmjs.org/@avandar/acclimate/-/acclimate-0.2.0.tgz","fileCount":9,"integrity":"sha512-XgGAUJFYp0x3rguVJX82dM3I1UqPbFxJineSsmkLjSCMfVr5Cqm81t1ySr1d2yYQeXk9WH32k9neNnKOITbrnA==","signatures":[{"sig":"MEUCIQDdNfjVInBUt6PskY//92Yng9oRHdNlVKoLRdk8u4CyXgIgQI01rOH9vqUTG7NfS1KPDYm29U9awRZ+Iua09f1Tt44=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130836},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"a3ec0c51871f1a8f96aeb862d9bc3db5ea0360eb","scripts":{"dev":"tsup --watch","demo":"tsx examples/basic.ts","lint":"eslint .","test":"vitest run","type":"tsc -p tsconfig.json --noEmit","build":"tsup","format":"prettier . --write","prepare":"npm run build","lint:fix":"eslint . --fix","format:fix":"prettier . --write","test:watch":"vitest watch"},"_npmUser":{"name":"jpsyx","email":"pablowritescode@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.6.2","description":"A lightweight TypeScript framework for building CLI tools.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ts-pattern":"^5.9.0","change-case":"^5.4.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","eslint":"^9.39.1","vitest":"^2.1.9","prettier":"^3.7.4","type-fest":"^5.3.1","@eslint/js":"^9.39.1","typescript":"^5.9.3","@types/node":"^22.19.2","typescript-eslint":"^8.49.0","eslint-config-prettier":"^9.1.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-unused-imports":"^4.3.0","eslint-import-resolver-typescript":"^4.4.4","@ianvs/prettier-plugin-sort-imports":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/acclimate_0.2.0_1768494302339_0.9646749573555844","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@avandar/acclimate","version":"0.2.1","keywords":["cli","framework","typescript"],"license":"MIT","_id":"@avandar/acclimate@0.2.1","maintainers":[{"name":"jpsyx","email":"pablowritescode@gmail.com"}],"dist":{"shasum":"aff80c84282edacc5731e135074c9c5aadd112d2","tarball":"https://registry.npmjs.org/@avandar/acclimate/-/acclimate-0.2.1.tgz","fileCount":9,"integrity":"sha512-tOr/QPHOVwY944JJxhbZwBX8Z95TEOPc5rehTglKYXzy2XLdg1FRPk80BDLnDvpmLRDlGizFvBeeXhtWLyFMUw==","signatures":[{"sig":"MEUCIBmG+x86udjilzkyCrRj3xnnDHE1gIHrlW9QQWj6kJ4GAiEA9iEICd/lyPssWlamxoVfp2EyKs2Dwn6G32l4inobJ8k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":132210},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"8dd4a621409822328370d9ee4ee16df19ffc49b8","scripts":{"dev":"tsup --watch","demo":"tsx examples/basic.ts","lint":"eslint .","test":"vitest run","type":"tsc -p tsconfig.json --noEmit","build":"tsup","format":"prettier . --write","prepare":"npm run build","lint:fix":"eslint . --fix","format:fix":"prettier . --write","test:watch":"vitest watch"},"_npmUser":{"name":"jpsyx","email":"pablowritescode@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.6.2","description":"A lightweight TypeScript framework for building CLI tools.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ts-pattern":"^5.9.0","change-case":"^5.4.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","eslint":"^9.39.1","vitest":"^2.1.9","prettier":"^3.7.4","type-fest":"^5.3.1","@eslint/js":"^9.39.1","typescript":"^5.9.3","@types/node":"^22.19.2","typescript-eslint":"^8.49.0","eslint-config-prettier":"^9.1.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-unused-imports":"^4.3.0","eslint-import-resolver-typescript":"^4.4.4","@ianvs/prettier-plugin-sort-imports":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/acclimate_0.2.1_1768496819786_0.6555740758321584","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@avandar/acclimate","version":"0.2.2","keywords":["cli","framework","typescript"],"license":"MIT","_id":"@avandar/acclimate@0.2.2","maintainers":[{"name":"jpsyx","email":"pablowritescode@gmail.com"}],"dist":{"shasum":"22211b96ad08da9919b4f332111d68654312837e","tarball":"https://registry.npmjs.org/@avandar/acclimate/-/acclimate-0.2.2.tgz","fileCount":9,"integrity":"sha512-AJS1qWLeHV2vRpa+CtxQdibWTOrmXtKhPft0AXGvXMv55855KmSH42vN/6rJPJONqKdwtEc4GF7paaP1pGRImg==","signatures":[{"sig":"MEQCIDjXlbYbn2SzgwnGLfVZo4raXMS5gqAA2A1v8Bm3fez3AiBqsyro96KRKT1fqRolytX0tkVvJRzZqCOKTF5xnqMepA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":161746},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"239a561ce391ef98b8fc1b201fdc1040cfe4fd6b","scripts":{"dev":"tsup --watch","demo":"tsx examples/basic.ts","lint":"eslint .","test":"vitest run","type":"tsc -p tsconfig.json --noEmit","build":"tsup","format":"prettier . --write","prepare":"npm run build","lint:fix":"eslint . --fix","format:fix":"prettier . --write","test:watch":"vitest watch"},"_npmUser":{"name":"jpsyx","email":"pablowritescode@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.6.2","description":"A lightweight TypeScript framework for building CLI tools.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ts-pattern":"^5.9.0","change-case":"^5.4.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","eslint":"^9.39.1","vitest":"^2.1.9","prettier":"^3.7.4","type-fest":"^5.3.1","@eslint/js":"^9.39.1","typescript":"^5.9.3","@types/node":"^22.19.2","typescript-eslint":"^8.49.0","eslint-config-prettier":"^9.1.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-unused-imports":"^4.3.0","eslint-import-resolver-typescript":"^4.4.4","@ianvs/prettier-plugin-sort-imports":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/acclimate_0.2.2_1768532177747_0.14222026071504956","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@avandar/acclimate","version":"0.3.0","keywords":["cli","framework","typescript"],"license":"MIT","_id":"@avandar/acclimate@0.3.0","maintainers":[{"name":"jpsyx","email":"pablowritescode@gmail.com"}],"dist":{"shasum":"b068f3783a9d9c4e12759fa47baccedf888c4cc0","tarball":"https://registry.npmjs.org/@avandar/acclimate/-/acclimate-0.3.0.tgz","fileCount":9,"integrity":"sha512-miiPD25tNoFR5jtP2w04lMhNeoZbvmJLmPydt+ta42rTfLkAl5TreD4YsjIDqg7lwcQoC/2YgWvkc8+mPPadEQ==","signatures":[{"sig":"MEYCIQDEDl/oCx2791Z40HNQ8QzA4u81O6UFGtDSozLdlBF6WAIhAPcAtAvEyK4dqDUdghswOIsDo7K2fr0cNHDEbaKswIOe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":184534},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"eafc3b0f09c3f952236cdd73476775906f4abca3","scripts":{"dev":"tsup --watch","demo":"tsx examples/basic.ts","lint":"eslint .","test":"vitest run","type":"tsc -p tsconfig.json --noEmit","build":"tsup","format":"prettier . --write","prepare":"npm run build","lint:fix":"eslint . --fix","format:fix":"prettier . --write","test:watch":"vitest watch"},"_npmUser":{"name":"jpsyx","email":"pablowritescode@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.6.2","description":"A lightweight TypeScript framework for building CLI tools.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ts-pattern":"^5.9.0","change-case":"^5.4.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","eslint":"^9.39.1","vitest":"^2.1.9","prettier":"^3.7.4","type-fest":"^5.3.1","@eslint/js":"^9.39.1","typescript":"^5.9.3","@types/node":"^22.19.2","typescript-eslint":"^8.49.0","eslint-config-prettier":"^9.1.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-unused-imports":"^4.3.0","eslint-import-resolver-typescript":"^4.4.4","@ianvs/prettier-plugin-sort-imports":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/acclimate_0.3.0_1768591940900_0.2965580373613219","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@avandar/acclimate","version":"0.3.1","keywords":["cli","framework","typescript"],"license":"MIT","_id":"@avandar/acclimate@0.3.1","maintainers":[{"name":"jpsyx","email":"pablowritescode@gmail.com"}],"dist":{"shasum":"105934b8d6a956fddfbc45d11285bc4343c80f50","tarball":"https://registry.npmjs.org/@avandar/acclimate/-/acclimate-0.3.1.tgz","fileCount":9,"integrity":"sha512-AFJeERw/QJFTO2H8bwZ+iRhmLCXQ5LGRFwGBqwcf62jDFqfSY6csEr6PgD1FKfxj+CeR81BBPLEObyICWuLsMw==","signatures":[{"sig":"MEYCIQDSDglIQ3f2N/aobq2M6QLrby7clYYFHRqpCooU0aa6WwIhAPhHXgq5g4JS78dExi71PqmGmqznPNWZCdnl9JQqJZ2V","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":184534},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"4eaa95b5b63998ca3ebd679d62f84fae3968ac30","scripts":{"dev":"tsup --watch","demo":"tsx examples/basic.ts","lint":"eslint .","test":"vitest run","type":"tsc -p tsconfig.json --noEmit","build":"tsup","format":"prettier . --write","prepare":"npm run build","lint:fix":"eslint . --fix","format:fix":"prettier . --write","test:watch":"vitest watch"},"_npmUser":{"name":"jpsyx","email":"pablowritescode@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.6.2","description":"A lightweight TypeScript framework for building CLI tools.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ts-pattern":"^5.9.0","change-case":"^5.4.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","eslint":"^9.39.1","vitest":"^2.1.9","prettier":"^3.7.4","type-fest":"^5.3.1","@eslint/js":"^9.39.1","typescript":"^5.9.3","@types/node":"^22.19.2","typescript-eslint":"^8.49.0","eslint-config-prettier":"^9.1.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-unused-imports":"^4.3.0","eslint-import-resolver-typescript":"^4.4.4","@ianvs/prettier-plugin-sort-imports":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/acclimate_0.3.1_1768675400716_0.015302879756611265","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@avandar/acclimate","version":"0.3.2","keywords":["cli","framework","typescript"],"license":"MIT","_id":"@avandar/acclimate@0.3.2","maintainers":[{"name":"jpsyx","email":"pablowritescode@gmail.com"}],"dist":{"shasum":"34b36809350512ff4706cdd6050268e17b870b9d","tarball":"https://registry.npmjs.org/@avandar/acclimate/-/acclimate-0.3.2.tgz","fileCount":9,"integrity":"sha512-HtyMfQtEVp3LaEU1yFEVBEvobGocl0fesnUgh7CO6GMbFxl+JeQcWfspRbZqctSpgPdgYMUxAinrGxeiDw4y+A==","signatures":[{"sig":"MEYCIQC6msbD6u9l4muux4ij56UsOa9mpfvxWoBoWzWnos47RAIhAJTzOSX4t2E51TF97jx7HkJHR1hvKHdKsIZaqpdUW7cK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186618},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"3894b8841d587ba3f696fe071b91649129e285e5","scripts":{"dev":"tsup --watch","demo":"tsx examples/basic.ts","lint":"eslint .","test":"vitest run","type":"tsc -p tsconfig.json --noEmit","build":"tsup","format":"prettier . --write","prepare":"npm run build","lint:fix":"eslint . --fix","format:fix":"prettier . --write","test:watch":"vitest watch"},"_npmUser":{"name":"jpsyx","email":"pablowritescode@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.6.2","description":"A lightweight TypeScript framework for building CLI tools.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ts-pattern":"^5.9.0","change-case":"^5.4.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","eslint":"^9.39.1","vitest":"^2.1.9","prettier":"^3.7.4","type-fest":"^5.3.1","@eslint/js":"^9.39.1","typescript":"^5.9.3","@types/node":"^22.19.2","typescript-eslint":"^8.49.0","eslint-config-prettier":"^9.1.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-unused-imports":"^4.3.0","eslint-import-resolver-typescript":"^4.4.4","@ianvs/prettier-plugin-sort-imports":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/acclimate_0.3.2_1769457416307_0.6606090356866221","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@avandar/acclimate","version":"0.3.3","keywords":["cli","framework","typescript"],"license":"MIT","_id":"@avandar/acclimate@0.3.3","maintainers":[{"name":"jpsyx","email":"pablowritescode@gmail.com"}],"dist":{"shasum":"76c84b912b5aa9431803e45528ace7ff861273e7","tarball":"https://registry.npmjs.org/@avandar/acclimate/-/acclimate-0.3.3.tgz","fileCount":9,"integrity":"sha512-EDS9F0gvy+qcKu6zjdnYx7TOIZ51JgCcUvsH8nmzonNg9RsV2DRam1s60aukJEGAimJoTcaTOvrJZOzlyhfiuQ==","signatures":[{"sig":"MEUCIH8vEZbXyag+jsrzC2Fu5LEc37vyxLjC2y8g+jlDIrd6AiEAz18YK6uo7KlHqEfLZ5srPtHVUdR6ho285GpjUbYQJPs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186565},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"02570a4e9ae5fbe59064cb50096e87d31f94ce76","scripts":{"dev":"tsup --watch","demo":"tsx examples/basic.ts","lint":"eslint .","test":"vitest run","type":"tsc -p tsconfig.json --noEmit","build":"tsup","format":"prettier . --write","prepare":"npm run build","lint:fix":"eslint . --fix","format:fix":"prettier . --write","test:watch":"vitest watch"},"_npmUser":{"name":"jpsyx","email":"pablowritescode@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.6.2","description":"A lightweight TypeScript framework for building CLI tools.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ts-pattern":"^5.9.0","change-case":"^5.4.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","eslint":"^9.39.1","vitest":"^2.1.9","prettier":"^3.7.4","type-fest":"^5.3.1","@eslint/js":"^9.39.1","typescript":"^5.9.3","@types/node":"^22.19.2","typescript-eslint":"^8.49.0","eslint-config-prettier":"^9.1.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-unused-imports":"^4.3.0","eslint-import-resolver-typescript":"^4.4.4","@ianvs/prettier-plugin-sort-imports":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/acclimate_0.3.3_1769458588293_0.7915784751740378","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@avandar/acclimate","version":"0.3.4","keywords":["cli","framework","typescript"],"license":"MIT","_id":"@avandar/acclimate@0.3.4","maintainers":[{"name":"jpsyx","email":"pablowritescode@gmail.com"}],"dist":{"shasum":"6ed54c97644a4c8a45c8cb0b129aa18dbfedfc94","tarball":"https://registry.npmjs.org/@avandar/acclimate/-/acclimate-0.3.4.tgz","fileCount":9,"integrity":"sha512-P37SaSs9DsvodNmyNwykAPEuA2uitcrcslzHzmcFMNKjt+iu7Nn6myq022m0hq+S7DGlfgTDz34lYQ63Cf+JTg==","signatures":[{"sig":"MEUCIQCEVuMG7hILN6V61kX/12PW+Ooimxe/3wrltayWaercjQIgBDN2OwfHsnC22d1C2jTYhkD9jmi6GpTtrSodR8OAFDw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186973},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"62c881037ccf7f72b018f53455b534ef56163ce0","scripts":{"dev":"tsup --watch","demo":"tsx examples/basic.ts","lint":"eslint .","test":"vitest run","type":"tsc -p tsconfig.json --noEmit","build":"tsup","format":"prettier . --write","prepare":"npm run build","lint:fix":"eslint . --fix","format:fix":"prettier . --write","test:watch":"vitest watch"},"_npmUser":{"name":"jpsyx","email":"pablowritescode@gmail.com"},"repository":{"url":"","type":"git"},"_npmVersion":"11.6.2","description":"A lightweight TypeScript framework for building CLI tools.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ts-pattern":"^5.9.0","change-case":"^5.4.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","eslint":"^9.39.1","vitest":"^2.1.9","prettier":"^3.7.4","type-fest":"^5.3.1","@eslint/js":"^9.39.1","typescript":"^5.9.3","@types/node":"^22.19.2","typescript-eslint":"^8.49.0","eslint-config-prettier":"^9.1.2","eslint-plugin-import-x":"^4.16.1","eslint-plugin-unused-imports":"^4.3.0","eslint-import-resolver-typescript":"^4.4.4","@ianvs/prettier-plugin-sort-imports":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/acclimate_0.3.4_1771636090323_0.13793258675829945","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@avandar/acclimate","version":"0.4.0","description":"A lightweight TypeScript framework for building CLI tools.","license":"MIT","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"engines":{"node":">=18"},"scripts":{"build":"tsup","dev":"tsup --watch","lint":"eslint .","lint:fix":"eslint . --fix","format":"prettier . --write","format:fix":"prettier . --write","test":"vitest run","test:watch":"vitest watch","demo":"tsx examples/basic.ts","prepare":"npm run build","type":"tsc -p tsconfig.json --noEmit"},"keywords":["cli","framework","typescript"],"repository":{"type":"git","url":""},"dependencies":{"change-case":"^5.4.4","ts-pattern":"^5.9.0"},"devDependencies":{"@eslint/js":"^9.39.1","@ianvs/prettier-plugin-sort-imports":"^4.7.0","@types/node":"^22.19.2","eslint":"^9.39.1","eslint-config-prettier":"^9.1.2","eslint-import-resolver-typescript":"^4.4.4","eslint-plugin-import-x":"^4.16.1","eslint-plugin-unused-imports":"^4.3.0","prettier":"^3.7.4","tsup":"^8.5.1","tsx":"^4.21.0","type-fest":"^5.3.1","typescript":"^5.9.3","typescript-eslint":"^8.49.0","vitest":"^2.1.9"},"publishConfig":{"access":"public"},"gitHead":"f95fde3223b308f8163408cbb0df826ebf006e25","_id":"@avandar/acclimate@0.4.0","_nodeVersion":"24.11.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-yOtwL/7YpB9JBpys80cvLVbAe1DCRr4NJx0k+/HGMUUw9S8e9SFTgc1vTdIp8AEcHjkWRL5P5kzqFU09B1QOjQ==","shasum":"a5f4f68e39c2fffe7303146559ff60023d73e9d2","tarball":"https://registry.npmjs.org/@avandar/acclimate/-/acclimate-0.4.0.tgz","fileCount":9,"unpackedSize":184592,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICWktpSmX8KmQnDrOqy3nlr8XfjHzHVBTDUMwV/ioXuGAiEAu+lDr8/8KoXpZd1LTKt7hY2yHQuqCQBqa85O+imVRaM="}]},"_npmUser":{"name":"jpsyx","email":"pablowritescode@gmail.com"},"directories":{},"maintainers":[{"name":"jpsyx","email":"pablowritescode@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/acclimate_0.4.0_1771876887567_0.4396717413409037"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-14T21:10:26.528Z","modified":"2026-02-23T20:01:27.837Z","0.1.0":"2026-01-14T21:10:26.780Z","0.1.1":"2026-01-14T21:22:32.381Z","0.1.2":"2026-01-14T22:33:50.526Z","0.1.3":"2026-01-14T22:38:44.375Z","0.1.4":"2026-01-14T23:23:56.909Z","0.1.5":"2026-01-15T01:43:53.684Z","0.2.0":"2026-01-15T16:25:02.486Z","0.2.1":"2026-01-15T17:06:59.936Z","0.2.2":"2026-01-16T02:56:17.904Z","0.3.0":"2026-01-16T19:32:21.099Z","0.3.1":"2026-01-17T18:43:20.890Z","0.3.2":"2026-01-26T19:56:56.470Z","0.3.3":"2026-01-26T20:16:28.454Z","0.3.4":"2026-02-21T01:08:10.468Z","0.4.0":"2026-02-23T20:01:27.713Z"},"license":"MIT","keywords":["cli","framework","typescript"],"repository":{"type":"git","url":""},"description":"A lightweight TypeScript framework for building CLI tools.","maintainers":[{"name":"jpsyx","email":"pablowritescode@gmail.com"}],"readme":"# Acclimate\n\nA lightweight TypeScript framework for building type-safe command line\ninterfaces.\n\nThis library is not complete and is still missing a lot of functionality.\nWe do not recommend this library be used in production.\n\nSee the To Do section at the end for what is still missing.\n\n## Installation\n\n```bash\nnpm install acclimate\n```\n\n## Quick start\n\n```ts\nimport { Acclimate } from \"acclimate\";\n\nconst cli = Acclimate.createCLI(\"demo-cli\")\n  .description(\"A tiny demo CLI\")\n  .action(() => {\n    console.log(\"Hello, world!\");\n  });\n\nAcclimate.run(cli);\n```\n\n## API\n\nPublic exports from `acclimate`:\n\n- `Acclimate`\n\n### `Acclimate`\n\n#### `Acclimate.createCLI(name)`\n\nCreate a new CLI instance.\n\n```ts\nAcclimate.createCLI(name: string): IAcclimateCLI\n```\n\n#### `Acclimate.run(cli)`\n\nRun a CLI instance using `process.argv.slice(2)`.\n\n```ts\nAcclimate.run(cli: IAcclimateCLI): void\n```\n\n### `IAcclimateCLI` (CLI builder)\n\n`createCLI()` returns an immutable builder. Each method returns a new CLI\ninstance with updated configuration.\n\n#### `cli.description(description)`\n\n```ts\ncli.description(description: string): IAcclimateCLI\n```\n\n#### `cli.action(action)`\n\nSet the function executed when the CLI matches (after parsing).\n\n```ts\ncli.action(\n  action: (args: FullCLIArgValues<...>) => void,\n): IAcclimateCLI\n```\n\n#### `cli.addPositionalArg(param)`\n\nAdd a positional argument. Positional args are parsed in order.\n\n```ts\ncli.addPositionalArg(param: CLIPositionalParam): IAcclimateCLI\n```\n\n#### `cli.addOption(param)`\n\nAdd an option local to this CLI level.\n\n```ts\ncli.addOption(param: CLIOptionParam): IAcclimateCLI\n```\n\n#### `cli.addGlobalOption(param)`\n\nAdd an option that is available to this CLI and all sub-commands.\n\n```ts\ncli.addGlobalOption(param: CLIOptionParam): IAcclimateCLI\n```\n\n#### `cli.addCommand(commandName, commandCLI)`\n\nAdd a sub-command (a nested CLI). If the first positional token matches a\ncommand name, parsing continues using that command's CLI.\n\n```ts\ncli.addCommand(\n  commandName: string,\n  commandCLI: IAcclimateCLI,\n): IAcclimateCLI\n```\n\n#### `cli.getCommandCLI(commandName)`\n\nGet a command CLI by name (throws if missing).\n\n```ts\ncli.getCommandCLI(commandName: string): IAcclimateCLI\n```\n\n### Param config types\n\nAcclimate uses config objects to describe positional args and options.\n\n- **Positional args**: `CLIPositionalParam`\n  - **name**: `string` (prefer `camelCase` to match runtime parsing)\n  - **type**: `\"string\" | \"number\" | \"boolean\"`\n  - **required**: `boolean`\n  - **description?**: `string`\n  - **defaultValue?**: depends on `type`\n  - **choices?**: allowed values list\n  - **parser?**: `(value: string) => value`\n  - **validator?**: `(value) => true | string`\n\n- **Options**: `CLIOptionParam`\n  - **name**: `--${string}` (example: `--dry-run`)\n  - **aliases?**: `readonly (\"--x\" | \"-x\")[]`\n  - **required**: `boolean`\n  - Same `type`, `defaultValue`, `choices`, `parser`, `validator` fields as a\n    positional arg\n\n### Parsing behavior (current)\n\n- **Positional args**: validated and parsed in order; extra positional args\n  throw an error.\n- **Options**: parsing starts at the first token that begins with `-`. Each\n  option consumes tokens until the next option; its raw value is the consumed\n  tokens joined with spaces.\n- **Option keys in `action(args)`**: option names are camel-cased, so\n  `--dry-run` becomes `dryRun`.\n- **Boolean flags**: `--flag` with no value parses as `true` (only the\n  literal string `false` parses as `false`).\n- **Errors**: missing required args/options (and invalid values) throw\n  `CLIError`.\n\n## Prerequisites\n\n- Node.js **18+**\n- npm (bundled with Node)\n\n## Project Layout\n\n- `src/` — framework source code.\n- `examples/` — small usage samples; `basic.ts` is runnable via `npm run demo`.\n- `tests/` — Vitest suite.\n- `dist/` — build output generated by `tsup`.\n\n## Setup\n\nInstall dependencies:\n\n```bash\nnpm install\n```\n\n## Common Scripts\n\n- `npm run dev` — build in watch mode with tsup.\n- `npm run build` — produce CJS/ESM bundles and type declarations in `dist/`.\n- `npm run demo` — execute the `examples/basic.ts` sample with tsx.\n- `npm test` — run the Vitest suite once.\n- `npm run test:watch` — run tests in watch mode.\n- `npm run lint` / `npm run lint:fix` — check or auto-fix with ESLint.\n- `npm run format` / `npm run format:fix` — check or write Prettier\n  formatting.\n- `npm run type` - check typescript types\n\n## Running & Testing\n\n1. Start a build (optional during development):\n\n```bash\nnpm run dev\n```\n\n1. Run the sample CLI:\n\n```bash\nnpm run demo\n```\n\n1. Execute tests:\n\n```bash\nnpm test\n```\n\nThe `prepare` script runs `npm run build`, so the package will compile\nautomatically when installed from a git dependency.\n\n## Examples\n\n### Hello world\n\nMatches `examples/basic.ts`.\n\n```ts\nimport { Acclimate } from \"acclimate\";\n\nconst cli = Acclimate.createCLI(\"demo-cli\").action(() => {\n  console.log(\"Hello, world!\");\n});\n\nAcclimate.run(cli);\n```\n\n### Positional args + options\n\n```ts\nimport { Acclimate } from \"acclimate\";\n\nconst cli = Acclimate.createCLI(\"greet\")\n  .addPositionalArg({\n    name: \"name\",\n    type: \"string\",\n    required: true,\n    description: \"Who to greet\",\n  })\n  .addOption({\n    name: \"--shout\",\n    type: \"boolean\",\n    required: false,\n    aliases: [\"-s\"] as const,\n    description: \"Uppercase the output\",\n    defaultValue: false,\n  })\n  .action(({ name, shout }) => {\n    const message = `Hello, ${name}!`;\n    console.log(shout ? message.toUpperCase() : message);\n  });\n\nAcclimate.run(cli);\n```\n\n### Sub-commands + global options\n\n```ts\nimport { Acclimate } from \"acclimate\";\n\nconst initCmd = Acclimate.createCLI(\"init\")\n  .description(\"Initialize a project\")\n  .action(({ verbose }) => {\n    console.log(`init (verbose=${verbose})`);\n  });\n\nconst root = Acclimate.createCLI(\"acme\")\n  .addGlobalOption({\n    name: \"--verbose\",\n    type: \"boolean\",\n    required: false,\n    aliases: [\"-v\"] as const,\n    defaultValue: false,\n  })\n  .addCommand(\"init\", initCmd);\n\nAcclimate.run(root);\n```\n\n## To do\n\n- [ ] Add semantic functions such as Acclimate.printSuccess, .printInfo, .printWarn and .printError\n- [ ] Allow user to configure semantic colors with Acclimate.setTheme()\n- [ ] Add a beforeAll() function to handle global args\n- [ ] Add semantic arguments: e.g. email (which has a default validator)\n- [ ] Add default `help` command and `--help` option. This should show the CLI\n      description and all param documentation.\n- [x] Make the `description` actually get printed.\n- [x] Show all CLI param descriptions if command is run with no arguments or if\n      there is a param-related error.\n- [x] Add helper functions to log to stdout in different colors\n- [x] Add logic for `askIfEmpty` to enter an interactive mode to receive inputs\n      for different params.\n","readmeFilename":"README.md"}