{"_id":"@elumixor/zod-config-cli","_rev":"3-24447e072290069d602f519156d6e7db","name":"@elumixor/zod-config-cli","dist-tags":{"latest":"1.0.3"},"versions":{"0.1.0":{"name":"@elumixor/zod-config-cli","version":"0.1.0","_id":"@elumixor/zod-config-cli@0.1.0","maintainers":[{"name":"elumixor","email":"vladogim97@gmail.com"}],"dist":{"shasum":"78745dcf8cdaa3fb64a7a93c691540b129566dc9","tarball":"https://registry.npmjs.org/@elumixor/zod-config-cli/-/zod-config-cli-0.1.0.tgz","fileCount":16,"integrity":"sha512-tSmhRvEkZBREhTN8LKGONOMFKqjn3kmMeiUDc5DEe1svaCYkrfPpdinyA9Y20WRvQz2A6uimc0uZ4AyxZAj3Eg==","signatures":[{"sig":"MEUCIQDsugHgfboANsmRJAsEWG3bAC+gmervWm/w/GFSBIoflAIgLfqXuc+eT9REMu2DgvoRMYk1dpZB+ftuDYQ/RuGud84=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1377625},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"b7d1bb6a54f92cd07c1abf1c55a48a2af1c7b323","scripts":{"lint":"biome lint src","test":"bun test","build":"bun build src/index.ts --outdir dist --target node --sourcemap=external && tsc --project tsconfig.build.json","release:major":"npm version major -m \"Release v%s\" && git push --tags","release:minor":"npm version minor -m \"Release v%s\" && git push --tags","release:patch":"npm version patch -m \"Release v%s\" && git push --tags"},"_npmUser":{"name":"elumixor","email":"vladogim97@gmail.com"},"_npmVersion":"11.7.0","description":"Read config from file, env, and CLI args — validated with Zod","directories":{},"_nodeVersion":"24.6.0","dependencies":{"dotenv":"^17.3.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","@biomejs/biome":"^2.4.8"},"peerDependencies":{"zod":"^4","typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/zod-config-cli_0.1.0_1774378910191_0.06384715858867107","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@elumixor/zod-config-cli","version":"1.0.1","_id":"@elumixor/zod-config-cli@1.0.1","maintainers":[{"name":"elumixor","email":"vladogim97@gmail.com"}],"dist":{"shasum":"28827d56558513c360ae60fc7706df196fa3bdad","tarball":"https://registry.npmjs.org/@elumixor/zod-config-cli/-/zod-config-cli-1.0.1.tgz","fileCount":16,"integrity":"sha512-bBiaOEy0f+WDuivFf92k5GXPc947ISoHOAFAoNtnDReo26x2n+oGsHj1mQUzDXhBMr2Jdmb3vcgvvaoiAnQrUQ==","signatures":[{"sig":"MEQCIBnTT7gMQRf+gy4dXlqepA+om+q39FwdvxwmoEjSCp6lAiBsgVtmzx22fzH8H2RrQ4dsCoyxcPVbtZ61bGhDpu1OAA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1377708},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"ea77386d95ccbc5acbb09d0dcde7fcab968263c1","scripts":{"lint":"biome lint src","test":"bun test","build":"bun build src/index.ts --outdir dist --target node --sourcemap=external && tsc --project tsconfig.build.json","release:major":"npm version major -m \"Release v%s\" && git push --tags","release:minor":"npm version minor -m \"Release v%s\" && git push --tags","release:patch":"npm version patch -m \"Release v%s\" && git push --tags"},"_npmUser":{"name":"elumixor","email":"vladogim97@gmail.com"},"_npmVersion":"11.7.0","description":"Read config from file, env, and CLI args — validated with Zod","directories":{},"_nodeVersion":"24.6.0","dependencies":{"dotenv":"^17.3.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","@biomejs/biome":"^2.4.8"},"peerDependencies":{"zod":"^4","typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/zod-config-cli_1.0.1_1774379834008_0.5964330174234214","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@elumixor/zod-config-cli","version":"1.0.3","description":"Read config from file, env, and CLI args — validated with Zod","author":"","license":"ISC","type":"module","main":"dist/index.js","types":"dist/index.d.ts","repository":{"type":"git","url":"git+https://github.com/elumixor/zod-config-cli.git"},"exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"scripts":{"build":"bun build src/index.ts --outdir dist --target node --sourcemap=external && tsc --project tsconfig.build.json","test":"bun test","lint":"biome lint src","release:patch":"npm version patch -m \"Release v%s\" && git push --tags","release:minor":"npm version minor -m \"Release v%s\" && git push --tags","release:major":"npm version major -m \"Release v%s\" && git push --tags"},"devDependencies":{"@biomejs/biome":"^2.4.8","@types/bun":"latest"},"peerDependencies":{"typescript":"^5","zod":"^4"},"dependencies":{"dotenv":"^17.3.1"},"gitHead":"5533dc0f85f5bc8c4deca92a0b6aaaa7d156e28c","_id":"@elumixor/zod-config-cli@1.0.3","bugs":{"url":"https://github.com/elumixor/zod-config-cli/issues"},"homepage":"https://github.com/elumixor/zod-config-cli#readme","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-D/pHlFDstQQJxdMjje9NKRnco3Y4z7r9yaoDLL82i6Qp130PoOhruC2kF8m2zvrshPkISanEClrOWJXbsFx9Jg==","shasum":"3c8566d39efbd71292cb4c158107cbedb8c1e219","tarball":"https://registry.npmjs.org/@elumixor/zod-config-cli/-/zod-config-cli-1.0.3.tgz","fileCount":14,"unpackedSize":1378233,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@elumixor%2fzod-config-cli@1.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDAvwucCzpc4/wo2v4izwpCk5atBb4oHyzh/cNCPMpQXwIgBmP6DL2TVyKDCmFZ7Ej7FDJou5SSaBWLxCge799dEmY="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a2392f01-09c8-4565-816b-1c103757a7d9"}},"directories":{},"maintainers":[{"name":"elumixor","email":"vladogim97@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/zod-config-cli_1.0.3_1774380500835_0.02940179961362266"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-24T19:01:50.045Z","modified":"2026-03-24T19:28:21.330Z","0.1.0":"2026-03-24T19:01:50.439Z","1.0.1":"2026-03-24T19:17:14.196Z","1.0.3":"2026-03-24T19:28:21.032Z"},"description":"Read config from file, env, and CLI args — validated with Zod","maintainers":[{"name":"elumixor","email":"vladogim97@gmail.com"}],"readme":"# @elumixor/zod-config-cli\n\nReads configuration from a config file, `.env`, and CLI args — merged and validated with [Zod](https://zod.dev).\n\n## Installation\n\n```bash\nnpm install @elumixor/zod-config-cli zod\n# or\nbun add @elumixor/zod-config-cli zod\n```\n\n## Usage\n\n```ts\nimport { readConfig } from \"@elumixor/zod-config-cli\";\nimport { z } from \"zod\";\n\nconst schema = z.object({\n  port: z.coerce.number().default(3000),\n  output: z.string().default(\"dist\"),\n});\n\nconst config = await readConfig({\n  basename: \"mycommand.config\",\n  schema,\n});\n\nconsole.log(config.port);   // number\nconsole.log(config.output); // string\n```\n\n## Options\n\n| Option | Type | Description |\n|--------|------|-------------|\n| `basename` | `string` | Config file name without extension (e.g. `\"mycommand.config\"`) |\n| `schema` | `z.ZodObject` | Zod schema for named options |\n| `cwd` | `string` | Working directory to resolve files from (default: `process.cwd()`) |\n| `envPrefix` | `string` | Env var prefix, e.g. `\"APP_\"` maps `APP_PORT` → `port` |\n| `positionals` | `z.ZodTuple` | Schema for positional CLI arguments, returned as `_` |\n\n## Config sources\n\nValues are merged in order of increasing priority:\n\n1. **Config file** — auto-detected by extension: `.ts`, `.js`, `.mjs`, `.cjs`, `.json`\n2. **`.env` file** — parsed from `cwd`; also merges `process.env`\n3. **CLI args** — `--port 8080`, `--output build`\n\n### Config file example\n\n`mycommand.config.json`:\n```json\n{ \"port\": 8080, \"output\": \"build\" }\n```\n\n`mycommand.config.ts`:\n```ts\nexport default { port: 8080, output: \"build\" };\n```\n\n### Env file example\n\n`.env`:\n```\nPORT=8080\nOUTPUT=build\n```\n\nWith `envPrefix: \"APP_\"`:\n```\nAPP_PORT=8080\nAPP_OUTPUT=build\n```\n\n### Positional arguments\n\n```ts\nconst config = await readConfig({\n  basename: \"mycommand.config\",\n  schema,\n  positionals: z.tuple([z.string(), z.coerce.number(), z.coerce.date()]),\n});\n\n// mycommand input.txt 42 2024-01-01\nconsole.log(config._); // [\"input.txt\", 42, Date]\n```\n\n## Development\n\n```bash\nbun install\nbun test       # run tests\nbun run build  # compile to dist/\n```\n","readmeFilename":"README.md","homepage":"https://github.com/elumixor/zod-config-cli#readme","repository":{"type":"git","url":"git+https://github.com/elumixor/zod-config-cli.git"},"bugs":{"url":"https://github.com/elumixor/zod-config-cli/issues"},"license":"ISC"}