{"_id":"@c.s.chanhniem/envguard","_rev":"2-11967cdc9910cb172588bb64f5870539","name":"@c.s.chanhniem/envguard","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@c.s.chanhniem/envguard","version":"0.1.0","keywords":["envguard","environment","validation","typescript","node","serverless","config","zod","type-safe"],"author":{"name":"EnvGuard Contributors"},"license":"MIT","_id":"@c.s.chanhniem/envguard@0.1.0","maintainers":[{"name":"c.s.chanhniem","email":"vh3969@gmail.com"}],"homepage":"https://github.com/cschanhniem/EnvGuard/tree/main/packages/envguard-node#readme","bugs":{"url":"https://github.com/cschanhniem/EnvGuard/issues"},"dist":{"shasum":"2ce2ce4c70fb74eee3075d6f5987f9a777b86283","tarball":"https://registry.npmjs.org/@c.s.chanhniem/envguard/-/envguard-0.1.0.tgz","fileCount":6,"integrity":"sha512-TbWA3ad9Nj8NAXdzqjisxLFCMUiGf44B5XEWTR84zVHksfJxPJD3o6CKB5RZB2FKyCwUDLtGjClGoBqBQWgMoQ==","signatures":[{"sig":"MEQCID5dnMmci4nb/DdLbWQ7tQ39JnPvkwh7i8WRbejupvfkAiBsp88yGZwI4oFs7pTDCgnM5Nf7xvwSe2l0QyWMWC6+4A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12878},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=14.0.0"},"gitHead":"f4a077a7506a8b967d0673a4c0b134c849ea420f","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint 'src/**/*.{ts,tsx}'","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts","clean":"rm -rf dist","format":"prettier --write 'src/**/*.{ts,tsx}'","prepare":"npm run build","version":"npm run format && git add -A src","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","preversion":"npm run lint && npm test","test:watch":"jest --watch","postversion":"git push && git push --tags","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"c.s.chanhniem","email":"vh3969@gmail.com"},"repository":{"url":"git+https://github.com/cschanhniem/EnvGuard.git","type":"git"},"_npmVersion":"10.8.2","description":"A robust environment variable validation library for Node.js","directories":{"doc":"docs"},"sideEffects":false,"_nodeVersion":"20.17.0","dependencies":{"zod":"^3.24.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","eslint":"^9.26.0","ts-jest":"^29.3.3","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.18","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/envguard_0.1.0_1747369936052_0.9751919765628554","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@c.s.chanhniem/envguard","version":"0.1.1","description":"A robust environment variable validation library for Node.js","main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","scripts":{"build":"tsup src/index.ts --format cjs,esm --dts","dev":"tsup src/index.ts --format cjs,esm --dts --watch","test":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage","lint":"eslint 'src/**/*.{ts,tsx}'","lint:fix":"eslint 'src/**/*.{ts,tsx}' --fix","format":"prettier --write 'src/**/*.{ts,tsx}'","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build","prepare":"npm run build","preversion":"npm run lint && npm test","version":"npm run format && git add -A src","postversion":"git push && git push --tags"},"keywords":["envguard","environment","validation","typescript","node","serverless","config","zod","type-safe"],"author":{"name":"EnvGuard Contributors"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/cschanhniem/EnvGuard.git"},"bugs":{"url":"https://github.com/cschanhniem/EnvGuard/issues"},"homepage":"https://github.com/cschanhniem/EnvGuard/tree/main/packages/envguard-node#readme","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"engines":{"node":">=14.0.0"},"devDependencies":{"@types/jest":"^29.5.14","@types/node":"^22.15.18","@typescript-eslint/eslint-plugin":"^8.32.1","@typescript-eslint/parser":"^8.32.1","eslint":"^9.26.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","jest":"^29.7.0","prettier":"^3.5.3","ts-jest":"^29.3.3","tsup":"^8.4.0","typescript":"^5.8.3"},"dependencies":{"zod":"^3.24.4"},"sideEffects":false,"_id":"@c.s.chanhniem/envguard@0.1.1","gitHead":"00ff9740e087510ce8c72b796152a6609aa843b4","_nodeVersion":"20.17.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-9VfACcgPM0/KXSGgG063Rgna8kT9DXqlEWXMS7gXlwzb7natECjM33BWYJQtj9SVSbH9wusw70gQJR+rJmVfeA==","shasum":"8180b87287ee69728f4536151f8ed7c558ea2e2e","tarball":"https://registry.npmjs.org/@c.s.chanhniem/envguard/-/envguard-0.1.1.tgz","fileCount":6,"unpackedSize":12836,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBIV5uDIj1mt4qxBoI+ciuYo4UP+bgpprbLVgCfpB/LLAiA1IbiEM0Bw/Kl55GqRy/PkVNYHFz/OA/4YXR9SroxEpA=="}]},"_npmUser":{"name":"c.s.chanhniem","email":"vh3969@gmail.com"},"directories":{},"maintainers":[{"name":"c.s.chanhniem","email":"vh3969@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/envguard_0.1.1_1747371321915_0.5821193194812739"},"_hasShrinkwrap":false}},"time":{"created":"2025-05-16T04:32:15.994Z","modified":"2025-05-16T04:55:22.277Z","0.1.0":"2025-05-16T04:32:16.228Z","0.1.1":"2025-05-16T04:55:22.106Z"},"bugs":{"url":"https://github.com/cschanhniem/EnvGuard/issues"},"author":{"name":"EnvGuard Contributors"},"license":"MIT","homepage":"https://github.com/cschanhniem/EnvGuard/tree/main/packages/envguard-node#readme","keywords":["envguard","environment","validation","typescript","node","serverless","config","zod","type-safe"],"repository":{"type":"git","url":"git+https://github.com/cschanhniem/EnvGuard.git"},"description":"A robust environment variable validation library for Node.js","maintainers":[{"name":"c.s.chanhniem","email":"vh3969@gmail.com"}],"readme":"# EnvGuard\n\n🛡️ A robust environment variable validation library for Node.js applications.\n\n[![npm version](https://badge.fury.io/js/%40c-s-chanhniem%2Fenvguard.svg)](https://badge.fury.io/js/%40c-s-chanhniem%2Fenvguard)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n## Features\n\n- 🚀 Lightweight and optimized for serverless cold starts\n- 🎯 Strong type validation using Zod schemas\n- 🔍 Clear, structured error messages\n- 💻 Simple, intuitive API\n- ⚡ Fail-fast approach for robust serverless functions\n- 📦 ESM and CommonJS support\n\n## Installation\n\n```bash\n# Using npm\nnpm install @c-s-chanhniem/envguard\n\n# Using yarn\nyarn add @c-s-chanhniem/envguard\n\n# Using pnpm\npnpm add @c-s-chanhniem/envguard\n```\n\n## Quick Start\n\n```typescript\nimport { z } from 'zod';\nimport { loadEnvOrFail } from '@c-s-chanhniem/envguard';\n\n// Define your environment schema\nconst envSchema = z.object({\n  DATABASE_URL: z.string().url(),\n  API_KEY: z.string().min(1),\n  DEBUG: z.coerce.boolean().default(false),\n  PORT: z.coerce.number().int().positive().default(8080),\n});\n\n// Validate environment variables\nconst config = loadEnvOrFail(envSchema);\n\n// Use your fully typed configuration\nconsole.log(`Server starting on port ${config.PORT}`);\nconsole.log(`Database URL: ${config.DATABASE_URL}`);\n```\n\n## Error Handling\n\nEnvGuard provides clear error messages when validation fails:\n\n```typescript\ntry {\n  const config = loadEnvOrFail(envSchema);\n} catch (error) {\n  if (error instanceof EnvGuardValidationError) {\n    console.error('Environment validation failed:');\n    console.error(error.errors);\n    // {\n    //   DATABASE_URL: 'Invalid url',\n    //   API_KEY: 'Required'\n    // }\n  }\n}\n```\n\n## Usage with TypeScript\n\nEnvGuard is written in TypeScript and provides excellent type inference:\n\n```typescript\nimport { z } from 'zod';\nimport { loadEnvOrFail } from '@c-s-chanhniem/envguard';\n\nconst envSchema = z.object({\n  NODE_ENV: z.enum(['development', 'production', 'test']),\n  API_VERSION: z.coerce.number().int().positive(),\n  ENABLE_CACHE: z.coerce.boolean(),\n});\n\n// Config is fully typed\nconst config = loadEnvOrFail(envSchema);\n//    ^? { NODE_ENV: 'development' | 'production' | 'test';\n//        API_VERSION: number;\n//        ENABLE_CACHE: boolean; }\n```\n\n## Advanced Features\n\n### Custom Transformations\n\n```typescript\nconst envSchema = z.object({\n  PORT: z.coerce.number().transform(x => x * 2),\n  API_KEYS: z.string().transform(keys => keys.split(',')),\n});\n```\n\n### Default Values\n\n```typescript\nconst envSchema = z.object({\n  NODE_ENV: z.enum(['development', 'production']).default('development'),\n  TIMEOUT_MS: z.coerce.number().default(5000),\n});\n```\n\n### Complex Validations\n\n```typescript\nconst envSchema = z.object({\n  DATABASE_POOL: z.coerce.number().min(1).max(100),\n  CACHE_TTL: z.coerce.number().refine(\n    val => val >= 0 && val <= 3600,\n    'Cache TTL must be between 0 and 3600 seconds'\n  ),\n});\n```\n\n## Contributing\n\nContributions are welcome! Please see our [Contributing Guidelines](../../CONTRIBUTING.md) for details.\n\n## License\n\n[MIT](../../LICENSE) License © 2025 EnvGuard Contributors\n","readmeFilename":"README.md"}