{"_id":"@danielszlaski/envguard","_rev":"12-1d1a8055071cb4a5db2b75b1f907f794","name":"@danielszlaski/envguard","dist-tags":{"latest":"0.1.11"},"versions":{"0.1.0":{"name":"@danielszlaski/envguard","version":"0.1.0","keywords":["environment","env","dotenv","config","security"],"author":{"name":"Daniel Szlaski"},"license":"MIT","_id":"@danielszlaski/envguard@0.1.0","maintainers":[{"name":"danielszlaski","email":"dioramowy.jodla.0p@icloud.com"}],"homepage":"https://github.com/szlaskidaniel/envguard#readme","bugs":{"url":"https://github.com/szlaskidaniel/envguard/issues"},"bin":{"envguard":"dist/cli.js"},"dist":{"shasum":"62ca22090a3b85206772265eb17cabba8b499417","tarball":"https://registry.npmjs.org/@danielszlaski/envguard/-/envguard-0.1.0.tgz","fileCount":75,"integrity":"sha512-ZZ+C/Oo9hm7/ZHdz2JBR/TY8O7fiPZ8Tz5/yutUkks2lrugtMMhQd3D1fuVvaOHMUA7ispE53exC8NTJGf60pg==","signatures":[{"sig":"MEUCIQDku64zQfOZF155zaN2pgnK6jZDRmBxtdC8QlMa4Bm8NQIgMP7KvKzg/AZsujd1R6wRYGXOicZtLfyLB/A2owC/UV8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":154808},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"a8e783b5089b8d6c272e3cfe4babf6890a19f093","scripts":{"dev":"tsc --watch","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","start":"node dist/cli.js"},"_npmUser":{"name":"danielszlaski","email":"dioramowy.jodla.0p@icloud.com"},"repository":{"url":"git+https://github.com/szlaskidaniel/envguard.git","type":"git"},"_npmVersion":"10.8.2","description":"CLI tool to keep environment variables in sync with your codebase","directories":{},"_nodeVersion":"20.18.3","dependencies":{"glob":"^10.3.10","chalk":"^4.1.2","dotenv":"^16.3.1","js-yaml":"^4.1.1","commander":"^11.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.10.6","@types/js-yaml":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/envguard_0.1.0_1769724977736_0.17590217353069537","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@danielszlaski/envguard","version":"0.1.1","keywords":["environment","env","dotenv","config","security"],"author":{"name":"Daniel Szlaski"},"license":"MIT","_id":"@danielszlaski/envguard@0.1.1","maintainers":[{"name":"danielszlaski","email":"dioramowy.jodla.0p@icloud.com"}],"homepage":"https://github.com/szlaskidaniel/envguard#readme","bugs":{"url":"https://github.com/szlaskidaniel/envguard/issues"},"bin":{"envguard":"dist/cli.js"},"dist":{"shasum":"eb43cfbfb92bf9901cdf14b186d15e01c4acbea0","tarball":"https://registry.npmjs.org/@danielszlaski/envguard/-/envguard-0.1.1.tgz","fileCount":80,"integrity":"sha512-JiHLKXfxs4C7OAeyc6RxA/OhQh2uzDMml2ps9mcv5yR91uIwTHTJ5uaUozTR1NOX21wDfptMNPZZxMVQMaUkbg==","signatures":[{"sig":"MEUCIQDzEyaoHrkXq0+x9pYBdRrOkUGAgjUolIAhXaNHwHcmhwIgGqo15TGRgKrK6/DRjyAjC9AMAfvbg595JxbSfHQ3VsE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":169048},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"c6ae0c0f92c410421fb949fd40670e64db158b46","scripts":{"dev":"tsc --watch","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","start":"node dist/cli.js"},"_npmUser":{"name":"danielszlaski","email":"dioramowy.jodla.0p@icloud.com"},"repository":{"url":"git+https://github.com/szlaskidaniel/envguard.git","type":"git"},"_npmVersion":"10.8.2","description":"CLI tool to keep environment variables in sync with your codebase","directories":{},"_nodeVersion":"20.18.3","dependencies":{"glob":"^10.3.10","chalk":"^4.1.2","dotenv":"^16.3.1","js-yaml":"^4.1.1","commander":"^11.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.10.6","@types/js-yaml":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/envguard_0.1.1_1769759847204_0.007443905147780594","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@danielszlaski/envguard","version":"0.1.2","keywords":["environment","env","dotenv","config","security"],"author":{"name":"Daniel Szlaski"},"license":"MIT","_id":"@danielszlaski/envguard@0.1.2","maintainers":[{"name":"danielszlaski","email":"dioramowy.jodla.0p@icloud.com"}],"homepage":"https://github.com/szlaskidaniel/envguard#readme","bugs":{"url":"https://github.com/szlaskidaniel/envguard/issues"},"bin":{"envguard":"dist/cli.js"},"dist":{"shasum":"a58327cd11f6d56f935a54be7bad302c7004ca12","tarball":"https://registry.npmjs.org/@danielszlaski/envguard/-/envguard-0.1.2.tgz","fileCount":80,"integrity":"sha512-DifCuqh34OjzfguPPOEPPz+we5xjSQb0uX/5MOmBQmznT7Ai7m8jyiBSngzgYrcUMBVr004TkeHdkHt5RiMWQA==","signatures":[{"sig":"MEYCIQCYuTpPdpbBdi9wOitG2zrFm6IXmOnMWtCW8t83+H1LIQIhAKJOhpyT0WaKrGl4cBaCJ4O8fvotptKLbk35E0s/ZkFR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":169089},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"f9401825629a08a36a4d4d64bf93fe8dbea59560","scripts":{"dev":"tsc --watch","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","start":"node dist/cli.js"},"_npmUser":{"name":"danielszlaski","email":"dioramowy.jodla.0p@icloud.com"},"repository":{"url":"git+https://github.com/szlaskidaniel/envguard.git","type":"git"},"_npmVersion":"10.8.2","description":"CLI tool to keep environment variables in sync with your codebase","directories":{},"_nodeVersion":"20.18.3","dependencies":{"glob":"^10.3.10","chalk":"^4.1.2","dotenv":"^16.3.1","js-yaml":"^4.1.1","commander":"^11.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.10.6","@types/js-yaml":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/envguard_0.1.2_1769760919789_0.2857589843909065","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@danielszlaski/envguard","version":"0.1.3","keywords":["environment","env","dotenv","config","security"],"author":{"name":"Daniel Szlaski"},"license":"MIT","_id":"@danielszlaski/envguard@0.1.3","maintainers":[{"name":"danielszlaski","email":"dioramowy.jodla.0p@icloud.com"}],"homepage":"https://github.com/szlaskidaniel/envguard#readme","bugs":{"url":"https://github.com/szlaskidaniel/envguard/issues"},"bin":{"envguard":"dist/cli.js"},"dist":{"shasum":"ee97e15ec2b41358b7f427d73ec380b661f5aef7","tarball":"https://registry.npmjs.org/@danielszlaski/envguard/-/envguard-0.1.3.tgz","fileCount":80,"integrity":"sha512-dAiQylT5+zYnaduMekz+a07nkq3TeL9YPc93GC7rvwvi26Vc7lKYJVHriyhGnkShkLC8Rfv2jKh+e275lBRaxQ==","signatures":[{"sig":"MEUCIQCNcF6mB27ygLsU7dZwB3Peqe7GVE77dGgsnKBEpbuz+wIgbwrHii7xSpl/79TZCu2CTpaeOnX7oGQJBEguPgRPcps=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":169140},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"2965a24eaf1cc43abdaec5b991a4b8fe1760de2e","scripts":{"dev":"tsc --watch","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","start":"node dist/cli.js"},"_npmUser":{"name":"danielszlaski","email":"dioramowy.jodla.0p@icloud.com"},"repository":{"url":"git+https://github.com/szlaskidaniel/envguard.git","type":"git"},"_npmVersion":"10.8.2","description":"CLI tool to keep environment variables in sync with your codebase","directories":{},"_nodeVersion":"20.18.3","dependencies":{"glob":"^10.3.10","chalk":"^4.1.2","dotenv":"^16.3.1","js-yaml":"^4.1.1","commander":"^11.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.10.6","@types/js-yaml":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/envguard_0.1.3_1769764584685_0.7170770280022694","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@danielszlaski/envguard","version":"0.1.4","keywords":["environment","env","dotenv","config","security"],"author":{"name":"Daniel Szlaski"},"license":"MIT","_id":"@danielszlaski/envguard@0.1.4","maintainers":[{"name":"danielszlaski","email":"dioramowy.jodla.0p@icloud.com"}],"homepage":"https://github.com/szlaskidaniel/envguard#readme","bugs":{"url":"https://github.com/szlaskidaniel/envguard/issues"},"bin":{"envguard":"dist/cli.js"},"dist":{"shasum":"63a394f5bb148785509334e384e22219b1095c6f","tarball":"https://registry.npmjs.org/@danielszlaski/envguard/-/envguard-0.1.4.tgz","fileCount":81,"integrity":"sha512-bbueMnbhlSALxiNIdgQavO8WEsOjRQFW+ZBVAfxJ7PlneQepHEQABgIb/QAgM00Pi0vGpXVYGMZhpmJ5AzgDZA==","signatures":[{"sig":"MEUCIQD//z2TQNNKpJcm+gi15F+1GvcI7qtcisHmDIcQJdHtewIgd1UHkHy1OSH7MGYgPGltbyMk6A1rwqyR1SsjcG9AkuM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":212355},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"cc21e925dcb89183d4b0634efdbe130896ad7c00","scripts":{"dev":"tsc --watch","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","start":"node dist/cli.js"},"_npmUser":{"name":"danielszlaski","email":"dioramowy.jodla.0p@icloud.com"},"repository":{"url":"git+https://github.com/szlaskidaniel/envguard.git","type":"git"},"_npmVersion":"10.8.2","description":"CLI tool to keep environment variables in sync with your codebase","directories":{},"_nodeVersion":"20.18.3","dependencies":{"glob":"^10.3.10","chalk":"^4.1.2","dotenv":"^16.3.1","js-yaml":"^4.1.1","commander":"^11.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.10.6","@types/js-yaml":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/envguard_0.1.4_1769774235271_0.10201637315750478","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@danielszlaski/envguard","version":"0.1.5","keywords":["environment","env","dotenv","config","security"],"author":{"name":"Daniel Szlaski"},"license":"MIT","_id":"@danielszlaski/envguard@0.1.5","maintainers":[{"name":"danielszlaski","email":"dioramowy.jodla.0p@icloud.com"}],"homepage":"https://github.com/szlaskidaniel/envguard#readme","bugs":{"url":"https://github.com/szlaskidaniel/envguard/issues"},"bin":{"envguard":"dist/cli.js"},"dist":{"shasum":"c98f2bd86ba730eb366e8960b2e51fa171413431","tarball":"https://registry.npmjs.org/@danielszlaski/envguard/-/envguard-0.1.5.tgz","fileCount":86,"integrity":"sha512-XfA3cXrG7ZV1lqVwPkm0CYVluGtJSrzqlFf09rihB58tH8Ha1mM4/MmZsmo25yEKK+nTtxMBYDvmi/koOEGzZg==","signatures":[{"sig":"MEUCIHZzeVs/vvrmhGfKGygY8drO6dpf23E4vQMj28LDLyTYAiEAkVGyMCkD+QUQKjKoiGQ/TOwwMovA+AhnwI9+ijbGZ+Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":229856},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"185b7d787939e0459ef8cd4b45427beb807fa645","scripts":{"dev":"tsc --watch","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","start":"node dist/cli.js"},"_npmUser":{"name":"danielszlaski","email":"dioramowy.jodla.0p@icloud.com"},"repository":{"url":"git+https://github.com/szlaskidaniel/envguard.git","type":"git"},"_npmVersion":"10.8.2","description":"CLI tool to keep environment variables in sync with your codebase","directories":{},"_nodeVersion":"20.18.3","dependencies":{"glob":"^10.3.10","chalk":"^4.1.2","dotenv":"^16.3.1","js-yaml":"^4.1.1","commander":"^11.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.10.6","@types/js-yaml":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/envguard_0.1.5_1769782334919_0.18811736892202102","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@danielszlaski/envguard","version":"0.1.6","keywords":["environment","env","dotenv","config","security","serverless","ci","env-check","serverless-env","lint"],"author":{"name":"Daniel Szlaski"},"license":"MIT","_id":"@danielszlaski/envguard@0.1.6","maintainers":[{"name":"danielszlaski","email":"dioramowy.jodla.0p@icloud.com"}],"homepage":"https://github.com/szlaskidaniel/envguard#readme","bugs":{"url":"https://github.com/szlaskidaniel/envguard/issues"},"bin":{"envguard":"dist/cli.js"},"dist":{"shasum":"ce20ab3acc5b4bfe4a55abc368ef54f445fafdd7","tarball":"https://registry.npmjs.org/@danielszlaski/envguard/-/envguard-0.1.6.tgz","fileCount":86,"integrity":"sha512-Jv/4OMIRr0EYz9sgNZC68U7LrOSwGg2h7C1JlbXLdrgt8rCmVcp8E261m7ohGN/OPEW9DndI5P/kPKgVsFPauQ==","signatures":[{"sig":"MEQCIGEqZwv8ra9BiH9IWDv6mv6y+khZR8dwywc84Um+6ABFAiABp+iNifgZkDxj67/FBJadfIRA8xyDuUfIHIPHoTatcA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":231654},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"f0f4adb84469074f9116bb25723dda31f2384931","scripts":{"dev":"tsc --watch","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","start":"node dist/cli.js"},"_npmUser":{"name":"danielszlaski","email":"dioramowy.jodla.0p@icloud.com"},"repository":{"url":"git+https://github.com/szlaskidaniel/envguard.git","type":"git"},"_npmVersion":"10.8.2","description":"CLI tool to keep environment variables in sync with your codebase","directories":{},"_nodeVersion":"20.18.3","dependencies":{"glob":"^10.3.10","chalk":"^4.1.2","dotenv":"^16.3.1","js-yaml":"^4.1.1","commander":"^11.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.10.6","@types/js-yaml":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/envguard_0.1.6_1769894129734_0.996706481173989","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@danielszlaski/envguard","version":"0.1.7","keywords":["environment","env","dotenv","config","security","serverless","ci","env-check","serverless-env","lint"],"author":{"name":"Daniel Szlaski"},"license":"MIT","_id":"@danielszlaski/envguard@0.1.7","maintainers":[{"name":"danielszlaski","email":"dioramowy.jodla.0p@icloud.com"}],"homepage":"https://github.com/szlaskidaniel/envguard#readme","bugs":{"url":"https://github.com/szlaskidaniel/envguard/issues"},"bin":{"envguard":"dist/cli.js"},"dist":{"shasum":"bf38a8fa85ed25c38c89c434f7f4047826a201d0","tarball":"https://registry.npmjs.org/@danielszlaski/envguard/-/envguard-0.1.7.tgz","fileCount":86,"integrity":"sha512-dW7cYdlMj5fXEjnPnDfyg7AxWUIS1Lx7943q5e71LaK1+f99jJGNI2XLinFgs8RB/ZclDcjqtoWHxn/2mYj4wg==","signatures":[{"sig":"MEYCIQDbo7hF7QKckUz5pMjKcqWzqigin6Fs+PMK/cc6b6hTyQIhAJq3SLhETy3dY0rwmn0Sf+VSyuUeFs7m2dH4PGgBR8Hb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":210568},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"7babe6ac824e2a4bff7bb0fcc3dda426a87f0023","scripts":{"dev":"tsc --watch","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","start":"node dist/cli.js"},"_npmUser":{"name":"danielszlaski","email":"dioramowy.jodla.0p@icloud.com"},"repository":{"url":"git+https://github.com/szlaskidaniel/envguard.git","type":"git"},"_npmVersion":"10.8.2","description":"CLI tool to keep environment variables in sync with your codebase","directories":{},"_nodeVersion":"20.18.3","dependencies":{"glob":"^10.3.10","chalk":"^4.1.2","dotenv":"^16.3.1","js-yaml":"^4.1.1","commander":"^11.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.10.6","@types/js-yaml":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/envguard_0.1.7_1769981744204_0.976327531268808","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@danielszlaski/envguard","version":"0.1.8","keywords":["environment","env","dotenv","config","security","serverless","ci","env-check","serverless-env","lint"],"author":{"name":"Daniel Szlaski"},"license":"MIT","_id":"@danielszlaski/envguard@0.1.8","maintainers":[{"name":"danielszlaski","email":"dioramowy.jodla.0p@icloud.com"}],"homepage":"https://github.com/szlaskidaniel/envguard#readme","bugs":{"url":"https://github.com/szlaskidaniel/envguard/issues"},"bin":{"envguard":"dist/cli.js"},"dist":{"shasum":"68dd52b37dd2589d602fcb9fc15c108af45b09fc","tarball":"https://registry.npmjs.org/@danielszlaski/envguard/-/envguard-0.1.8.tgz","fileCount":86,"integrity":"sha512-kNIfk+a4pHkvWs14rlRBpSowz/RFVP8E0R1JWDAja9KO+UWzsSO52dHT+4AGt3UEJ2VyyBkcg/S1NVUNOOueBw==","signatures":[{"sig":"MEUCIGY2fHElAs8SdFoKyVu+wFNXKxGBUBjdQY7o7SNL2OEsAiEA5yWjSMeM4bOS0z9RVqcjEB/9z7b82hFJQEWD9BBI41Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":210691},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"f9e1f46f4493dfc4d50c6c94a5b34857437dc1ae","scripts":{"dev":"tsc --watch","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","start":"node dist/cli.js"},"_npmUser":{"name":"danielszlaski","email":"dioramowy.jodla.0p@icloud.com"},"repository":{"url":"git+https://github.com/szlaskidaniel/envguard.git","type":"git"},"_npmVersion":"10.8.2","description":"CLI tool to keep environment variables in sync with your codebase","directories":{},"_nodeVersion":"20.18.3","dependencies":{"glob":"^10.3.10","chalk":"^4.1.2","dotenv":"^16.3.1","js-yaml":"^4.1.1","commander":"^11.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.10.6","@types/js-yaml":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/envguard_0.1.8_1770049049254_0.08152241013061423","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@danielszlaski/envguard","version":"0.1.9","keywords":["environment","env","dotenv","config","security","serverless","ci","env-check","serverless-env","lint"],"author":{"name":"Daniel Szlaski"},"license":"MIT","_id":"@danielszlaski/envguard@0.1.9","maintainers":[{"name":"danielszlaski","email":"dioramowy.jodla.0p@icloud.com"}],"homepage":"https://github.com/szlaskidaniel/envguard#readme","bugs":{"url":"https://github.com/szlaskidaniel/envguard/issues"},"bin":{"envguard":"dist/cli.js"},"dist":{"shasum":"4cc180fa2573527427cca0a4825e7ade17a802c5","tarball":"https://registry.npmjs.org/@danielszlaski/envguard/-/envguard-0.1.9.tgz","fileCount":85,"integrity":"sha512-YUgoyHcPy1aQmOb/sISLf87+PhOf2j9vShrTi7uN4JM9ND+y41c/tSxjSb0O44NRDL/WEF7l7wdhXeTseYv0RA==","signatures":[{"sig":"MEYCIQCt4ROJG01bGfbuGMIi0/wmM6ueSmGnASnlKaMCw0orwAIhAPgaJAQFdRPqVqBGyZfTKPhR/B2RZZo55ptQOQXlsDSs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":225098},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"0948695e0a4011ef57fc346da7497fd23be903e0","scripts":{"dev":"tsc --watch","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","start":"node dist/cli.js"},"_npmUser":{"name":"danielszlaski","email":"dioramowy.jodla.0p@icloud.com"},"repository":{"url":"git+https://github.com/szlaskidaniel/envguard.git","type":"git"},"_npmVersion":"10.8.2","description":"CLI tool to keep environment variables in sync with your codebase","directories":{},"_nodeVersion":"20.18.3","dependencies":{"glob":"^10.3.10","chalk":"^4.1.2","dotenv":"^16.3.1","js-yaml":"^4.1.1","commander":"^11.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.10.6","@types/js-yaml":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/envguard_0.1.9_1770154102963_0.490460199736102","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@danielszlaski/envguard","version":"0.1.10","keywords":["environment","env","dotenv","config","security","serverless","ci","env-check","serverless-env","lint"],"author":{"name":"Daniel Szlaski"},"license":"MIT","_id":"@danielszlaski/envguard@0.1.10","maintainers":[{"name":"danielszlaski","email":"dioramowy.jodla.0p@icloud.com"}],"homepage":"https://github.com/szlaskidaniel/envguard#readme","bugs":{"url":"https://github.com/szlaskidaniel/envguard/issues"},"bin":{"envguard":"dist/cli.js"},"dist":{"shasum":"f5c5e82b1a53af23e8ee55e4688696b47b03b7b0","tarball":"https://registry.npmjs.org/@danielszlaski/envguard/-/envguard-0.1.10.tgz","fileCount":85,"integrity":"sha512-xxn8DEY2AlX0wfdbbRWPyPc78YKyjpobP0nHQNG2BDwMdYumeV9BIkvk6YOGo8y7/oX6jw4tjZPiC3rA4A7OOQ==","signatures":[{"sig":"MEUCIQClCW1E9INe4+0mVKVD6q4p+fBlWG1lGuKYulA8tQXmdQIgXPAU84ymzEVhQ+NUvpoQUG0/2NwdIvR68EVBvX6zb3w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":228427},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"f0a572d40c0fe87d8c370979b7f91c7d6d5a804b","scripts":{"dev":"tsc --watch","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","start":"node dist/cli.js"},"_npmUser":{"name":"danielszlaski","email":"dioramowy.jodla.0p@icloud.com"},"repository":{"url":"git+https://github.com/szlaskidaniel/envguard.git","type":"git"},"_npmVersion":"10.8.2","description":"EnvGuard - Keep your environment variables in sync with your codebase (Free version)","directories":{},"_nodeVersion":"20.18.3","dependencies":{"glob":"^10.3.10","chalk":"^4.1.2","dotenv":"^16.3.1","js-yaml":"^4.1.1","commander":"^11.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.10.6","@types/js-yaml":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/envguard_0.1.10_1770215555393_0.69211931688832","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@danielszlaski/envguard","version":"0.1.11","description":"EnvGuard - Keep your environment variables in sync with your codebase (Free version)","main":"dist/index.js","bin":{"envguard":"dist/cli.js"},"repository":{"type":"git","url":"git+https://github.com/szlaskidaniel/envguard.git"},"scripts":{"build":"tsc","dev":"tsc --watch","start":"node dist/cli.js","test":"echo \"Error: no test specified\" && exit 1"},"keywords":["environment","env","dotenv","config","security","serverless","ci","env-check","serverless-env","lint"],"author":{"name":"Daniel Szlaski"},"license":"MIT","dependencies":{"chalk":"^4.1.2","commander":"^11.1.0","dotenv":"^16.3.1","glob":"^10.3.10","js-yaml":"^4.1.1"},"devDependencies":{"@types/js-yaml":"^4.0.9","@types/node":"^20.10.6","typescript":"^5.3.3"},"_id":"@danielszlaski/envguard@0.1.11","gitHead":"f83d488e1da9630fb5cdd84e91eb8ef23654d707","types":"./dist/index.d.ts","bugs":{"url":"https://github.com/szlaskidaniel/envguard/issues"},"homepage":"https://github.com/szlaskidaniel/envguard#readme","_nodeVersion":"20.18.3","_npmVersion":"10.8.2","dist":{"integrity":"sha512-MabvZcZ8iA2ghB14YXYqk8I3YT0ZO5WEH9wIH7Lo3kA9PakGz1HQOmErwm30AB5tHE5iOHgizVdv8uPAXtUvNA==","shasum":"5e71c669a2d98efdb12ed709a74d6f8f52196950","tarball":"https://registry.npmjs.org/@danielszlaski/envguard/-/envguard-0.1.11.tgz","fileCount":85,"unpackedSize":230581,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDGAfXjzywZ0XG7YG1X4BJBPf6x98FK3hRpc28D9sw9xgIgYubwwk/iwzCXmUw+HJ1zlfSxQawK7MjtlrGaNeU+naI="}]},"_npmUser":{"name":"danielszlaski","email":"dioramowy.jodla.0p@icloud.com"},"directories":{},"maintainers":[{"name":"danielszlaski","email":"dioramowy.jodla.0p@icloud.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/envguard_0.1.11_1770827329305_0.13973519341127227"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-29T22:16:17.621Z","modified":"2026-02-11T16:28:49.567Z","0.1.0":"2026-01-29T22:16:17.889Z","0.1.1":"2026-01-30T07:57:27.352Z","0.1.2":"2026-01-30T08:15:19.935Z","0.1.3":"2026-01-30T09:16:24.845Z","0.1.4":"2026-01-30T11:57:15.419Z","0.1.5":"2026-01-30T14:12:15.075Z","0.1.6":"2026-01-31T21:15:29.912Z","0.1.7":"2026-02-01T21:35:44.391Z","0.1.8":"2026-02-02T16:17:29.401Z","0.1.9":"2026-02-03T21:28:23.107Z","0.1.10":"2026-02-04T14:32:35.547Z","0.1.11":"2026-02-11T16:28:49.460Z"},"bugs":{"url":"https://github.com/szlaskidaniel/envguard/issues"},"author":{"name":"Daniel Szlaski"},"license":"MIT","homepage":"https://github.com/szlaskidaniel/envguard#readme","keywords":["environment","env","dotenv","config","security","serverless","ci","env-check","serverless-env","lint"],"repository":{"type":"git","url":"git+https://github.com/szlaskidaniel/envguard.git"},"description":"EnvGuard - Keep your environment variables in sync with your codebase (Free version)","maintainers":[{"name":"danielszlaski","email":"dioramowy.jodla.0p@icloud.com"}],"readme":"# EnvGuard CLI\n[![npm version](https://img.shields.io/npm/v/@danielszlaski/envguard.svg)](https://www.npmjs.com/package/@danielszlaski/envguard)\n\n### Static analysis for environment variables you can actually trust\n\nEnvGuard helps you keep environment variables clean, documented, and consistent across your entire codebase.  \nNo more guessing, broken deploys, or outdated `.env.example` files.\n\n\n\n## Why EnvGuard exists\n\nEnvironment variables tend to rot over time. Teams move fast, infrastructure evolves, and configuration quietly drifts.\n\nCommon pain points:\n- `.env.example` does not match real usage anymore\n- New developers waste time figuring out required variables\n- Secrets accidentally leak into repositories\n- Old variables linger forever with no owner\n- CI fails late due to missing configuration\n- Serverless configs and code fall out of sync\n\nEnvGuard was built to eliminate this entire class of problems automatically.\n\n\n\n## What EnvGuard does for you\n\nEnvGuard continuously validates how environment variables are **defined**, **used**, and **documented**.\n\n\n- Scans your codebase for environment variable usage\n- Compares usage with `.env` and `.env.example`\n- Detects missing, unused, and hardcoded variables\n- Understands fallback patterns and adjusts severity intelligently\n- Keeps `.env.example` files accurate and up to date\n- **Supports multiple `.env` files** in subdirectories (monorepo-friendly!)\n- Integrates cleanly into Git hooks and CI pipelines\n\nResult: fewer runtime surprises, faster onboarding, and safer releases.\n\n## Need More Functionality? Consider EnvGuard Pro\n\nIf your team needs more than local/basic checks, EnvGuard Pro is the recommended option: https://envguard.pl\n\nWhat stands out in Pro (from envguard.pl):\n- **SARIF output for GitHub Security** (`--format sarif`) for CI/compliance workflows\n- **AWS validation** (`--aws`, `--aws-deep`) for SSM + Secrets checks with profile/region-aware context\n- **Shell env file support** (`envFiles` / `--env-files`) to scan `export` variables from scripts like `set-env.sh`\n- **Deeper Serverless/AWS coverage** across provider, function, and AWS resources sections, including nested secret lookups\n\nIf you are looking for broader infrastructure coverage and CI-ready reporting, go with Pro.\n\n\n\n## Installation\n\n**Option 1: Install globally**\n\n```bash\nnpm install -g @danielszlaski/envguard\n```\n\nAfter installation, use the short command:\n```bash\nenvguard scan\n```\n\n**Option 2: Use with npx (no installation needed)**\n\n```bash\nnpx @danielszlaski/envguard scan\n```\n\n## Usage\n\n> **Note:** The examples below use `envguard` (short form), which works after installation. If using npx without installation, use `npx @danielszlaski/envguard` instead.\n\n### Git Hook Integration (Pre-commit/Pre-push)\n\nAutomatically run envguard before every commit or push to catch environment variable issues early:\n\n```bash\n# Install a pre-commit hook (runs before each commit)\nenvguard install-hook\n\n# Or install a pre-push hook (runs before each push)\nenvguard install-hook --type pre-push\n\n# Force overwrite existing hook\nenvguard install-hook --force\n```\n\nOnce installed, the hook will automatically run `envguard scan --ci` before each commit (or push). If issues are found, the commit/push will be blocked until you fix them.\n\n**Bypass the hook** when needed:\n```bash\ngit commit --no-verify\ngit push --no-verify\n```\n\n**Remove the hook:**\n```bash\nenvguard uninstall-hook\n\n# Or for pre-push hook\nenvguard uninstall-hook --type pre-push\n```\n\n**How it works:**\n- The hook creates a script in `.git/hooks/pre-commit` (or `pre-push`)\n- Before each commit/push, it runs `envguard scan --ci`\n- If issues are found, the operation is blocked\n- Team members need to install the hook individually (it's not tracked in git)\n\n### Scan for issues\n\n```bash\nenvguard scan\n\n# Exclude specific file patterns from scanning\nenvguard scan --exclude \"tests/**,scripts/**\"\n\n# Ignore specific variables (merged with config ignoreVars)\nenvguard scan --ignore-vars MY_VAR,ANOTHER_VAR\n```\n\nExample output:\n\n```\nLoaded config from ../.envguardrc.json\n\n\nScanning env sources:\n  • serverless.yml\n\n   Unused variables:\n      • NODE_ENV\n      • STAGE\n      • OKTA_DOMAIN\n      • OKTA_CLIENT_ID      \n\n   Skipped known runtime/ignored variables (use --strict to show):\n   Custom (from config/CLI): LOCALHOST, STAGE\n   Serverless Framework: IS_OFFLINE, SLS_OFFLINE\n   CI/CD: CI\n   AWS Lambda: AWS_REGION\n\n──────────────────────────────────────────────────\nInfo: 5\n\nRun `envguard fix` to auto-generate .env.example files\n```\n\n### Auto-generate .env.example\n\n```bash\nenvguard fix\n```\n\nThis will create/update `.env.example` files with:\n- All environment variables used in your code\n- Comments showing where each variable is used\n- Format hints for common variable types (URLs, ports, etc.)\n- **Creates `.env.example` next to each `.env` file** (great for monorepos!)\n\nExample generated `.env.example`:\n\n```bash\n# Auto-generated by envguard\n# Do not put actual secrets in this file - use .env instead\n\n# Used in: src/db/connection.ts:12, src/models/user.ts:5\n# Format: postgresql://user:pass@host:5432/db\nDATABASE_URL=\n\n# Used in: src/payment.js:23\n# Format: sk_test_...\nSTRIPE_SECRET_KEY=\n\n# Used in: src/server.ts:8\n# Format: 3000\nPORT=\n```\n\n### CI/CD Integration\n\nUse the `--ci` flag in your CI pipeline to fail builds if environment variables are out of sync:\n\n```bash\nenvguard scan --ci\n```\n\nThis will exit with code 1 if issues are found.\n\n## GitHub Actions Setup\n\nEnvGuard integrates seamlessly with GitHub Actions to validate your environment variables on every pull request or push.\n\n### Quick Setup (Recommended)\n\nCreate `.github/workflows/envguard.yml` in your repository:\n\n```yaml\nname: Environment Variables Check\n\non:\n  pull_request:\n    branches: [main]\n  push:\n    branches: [main, develop]\n\njobs:\n  envguard:\n    runs-on: ubuntu-latest\n    \n    steps:\n      - name: Checkout code\n        uses: actions/checkout@v4\n      \n      - name: Setup Node.js\n        uses: actions/setup-node@v4\n        with:\n          node-version: '20.x'\n      \n      - name: Run EnvGuard check\n        run: npx @danielszlaski/envguard scan --ci\n```\n\n**That's it!** No installation needed - `npx` downloads EnvGuard on demand.\n\n\n### Strict Mode in CI\n\nEnable strict mode to catch all variables including runtime-provided ones:\n\n```yaml\n- name: Run EnvGuard check (strict)\n  run: npx @danielszlaski/envguard scan --ci --strict\n```\n\n### Weekly Audit\n\nSchedule weekly checks to catch configuration drift:\n\n```yaml\nname: Weekly Environment Audit\n\non:\n  schedule:\n    - cron: '0 9 * * MON' # Every Monday at 9am UTC\n\njobs:\n  audit:\n    runs-on: ubuntu-latest\n    \n    steps:\n      - uses: actions/checkout@v4\n      - uses: actions/setup-node@v4\n        with:\n          node-version: '20.x'\n      - run: npx @danielszlaski/envguard scan --ci --strict\n      \n      - name: Create issue if problems found\n        if: failure()\n        uses: actions/github-script@v7\n        with:\n          script: |\n            github.rest.issues.create({\n              owner: context.repo.owner,\n              repo: context.repo.repo,\n              title: '⚠️ Environment Variables Out of Sync',\n              body: 'Weekly EnvGuard audit found issues. Run `npx @danielszlaski/envguard scan` locally for details.',\n              labels: ['env-config', 'maintenance']\n            })\n```\n\n### Caching for Faster Runs\n\nSpeed up CI runs by caching npx downloads:\n\n```yaml\n- name: Setup Node.js\n  uses: actions/setup-node@v4\n  with:\n    node-version: '20.x'\n    cache: 'npm'  # Caches npx downloads\n\n- name: Run EnvGuard\n  run: npx @danielszlaski/envguard scan --ci\n```\n\n### Other CI Platforms\n\n**GitLab CI** (`.gitlab-ci.yml`):\n```yaml\nenvguard:\n  image: node:20\n  script:\n    - npx @danielszlaski/envguard scan --ci\n  only:\n    - merge_requests\n```\n\n**CircleCI** (`.circleci/config.yml`):\n```yaml\nversion: 2.1\njobs:\n  envguard:\n    docker:\n      - image: cimg/node:20.0\n    steps:\n      - checkout\n      - run: npx @danielszlaski/envguard scan --ci\n```\n\n**Travis CI** (`.travis.yml`):\n```yaml\nlanguage: node_js\nnode_js:\n  - '20'\nscript:\n  - npx @danielszlaski/envguard scan --ci\n```\n\n## Supported Languages & Frameworks\n\n### JavaScript/TypeScript\n- JavaScript (`.js`, `.mjs`, `.cjs`)\n- TypeScript (`.ts`, `.tsx`)\n- JSX (`.jsx`)\n\nDetects:\n- `process.env.VAR_NAME`\n- `process.env['VAR_NAME']`\n- `const { VAR_NAME } = process.env`\n\n### Serverless Framework\n- Automatically detects `serverless.yml` and `serverless.yaml` files\n- Scans `provider.environment` section\n- Scans function-level `environment` sections\n- Detects references to external sources (SSM, Secrets Manager, etc.)\n- Validates that all defined variables are used in code\n- Reports variables used in code but not defined in serverless.yml\n\n## Configuration\n\nEnvGuard works out of the box with sensible defaults. It automatically excludes:\n- `node_modules`\n- `dist`\n- `build`\n- `.git`\n\n### Custom Configuration\n\nCreate a configuration file in your project root. The following file names are recognised (in priority order): `.envguardrc.json`, `.envguardrc`, `envguard.config.json`, or a `\"envguard\"` key in `package.json`.\n\n```json\n{\n  \"ignoreVars\": [\n    \"MY_CUSTOM_VAR\",\n    \"ANOTHER_VAR\",\n    \"COMPANY_INTERNAL_VAR\"\n  ],\n  \"strict\": false,\n  \"detectFallbacks\": true,\n  \"exclude\": [\n    \"**/build/**\",\n    \"**/tmp/**\"\n  ]\n}\n```\n\n**Configuration options:**\n\n- `ignoreVars` (string[]): Custom environment variables to ignore in non-strict mode. These will be treated like AWS_REGION and won't trigger warnings.\n- `strict` (boolean): Enable strict mode by default (can be overridden with CLI flag)\n- `detectFallbacks` (boolean): Detect fallback patterns in code and treat them as warnings instead of errors (default: `true`)\n- `exclude` (string[]): Additional file patterns to exclude from scanning\n\n**Alternative: package.json**\n\nYou can also add configuration to your `package.json`:\n\n```json\n{\n  \"envguard\": {\n    \"ignoreVars\": [\"MY_CUSTOM_VAR\"],\n    \"strict\": false\n  }\n}\n```\n\n**Use case for ignoreVars:**\n- Company-wide variables that are always available (injected by infrastructure)\n- Framework-specific variables you don't need to track\n- Variables provided by your deployment platform (Vercel, Netlify, etc.)\n- Custom variables for GitHub Apps or CI/CD integrations\n\n**Priority:** CLI flags > `.envguardrc.json` > `package.json` > defaults\n\n**GitHub Apps & CI/CD:**\nWhen using EnvGuard as a GitHub App or in CI/CD pipelines, commit your `.envguardrc.json` to the repository. This ensures consistent behavior across all environments and team members.\n\n### Fallback Detection (Smart Severity)\n\nEnvGuard automatically detects common defensive patterns in your code and adjusts issue severity accordingly. When a variable is used with a fallback or default value, it's treated as a **WARNING** instead of an **ERROR**.\n\n**Detected patterns:**\n\n```javascript\n// Default values with || or ??\nconst port = process.env.PORT || 3000;              // WARNING\nconst url = process.env.API_URL ?? 'localhost';     // WARNING\n\n// Ternary operators\nconst env = process.env.NODE_ENV ? 'set' : 'dev';   // WARNING\n\n// Conditional checks\nif (process.env.FEATURE_FLAG) { }                   // WARNING\nif (!process.env.DEBUG) { }                         // WARNING\n\n// Destructuring with defaults\nconst { LOG_LEVEL = 'info' } = process.env;         // WARNING\n\n// Optional chaining\nconst value = process.env?.OPTIONAL_VAR;            // WARNING\n\n// No fallback - strict requirement\nconst apiKey = process.env.API_KEY;                 // ERROR\n```\n\n**Severity levels:**\n\n- **ERROR** (✖): Variable used without any safety mechanism - likely to cause runtime errors\n- **WARNING** (⚠): Variable used with fallback/default - code handles missing values\n- **INFO** (ℹ): Unused variables or optional documentation issues\n\n**Disable fallback detection:**\n\nIf you prefer all missing variables to be treated as errors regardless of fallbacks:\n\n```bash\n# CLI flag\nenvguard scan --no-detect-fallbacks\n\n# Config file\n{\n  \"detectFallbacks\": false\n}\n```\n\n**Why this feature exists:**\n\nNot all missing environment variables are equal. Variables with defensive fallbacks are less critical than those that will cause `undefined` errors. This feature helps you prioritize what to fix first while still being aware of all env var usage.\n\n**Limitations:**\n\nFallback detection uses regex patterns and catches common cases (~80% of real-world usage). Complex patterns like function calls with fallbacks or deeply nested conditionals may not be detected. For strict validation, use `--no-detect-fallbacks` or set `detectFallbacks: false` in your config.\n\n### Hardcoded Value Detection\n\nEnvGuard detects environment variables that are assigned directly in code instead of being read from the environment. These are reported as warnings because the value exists at runtime, but the pattern itself is a code smell — it bypasses `.env` management entirely.\n\n**Detected patterns:**\n\n```javascript\nprocess.env.MY_VAR = 'some-value';       // WARNING — hardcoded assignment\nprocess.env['API_KEY'] = 'sk_live_...';  // WARNING — hardcoded assignment\n```\n\nHardcoded assignments are reported in their own group in the scan output, separate from missing or unused variables.\n\n### Monorepo Support\n\nEnvGuard automatically detects all `.env` files in your project, including subdirectories. When you run `envguard fix`, it creates a `.env.example` file next to each `.env` file it finds.\n\nExample structure:\n```\nproject/\n├── .env              → generates .env.example\n├── src/\n│   └── lambda1/\n│       ├── .env      → generates lambda1/.env.example\n│       └── handler.js\n└── services/\n    └── api/\n        ├── .env      → generates api/.env.example\n        └── server.js\n```\n\nEach `.env.example` only includes variables used in that directory and its subdirectories.\n\n## Serverless Framework Support\n\nEnvGuard treats `serverless.yml` as a first-class source of environment variables, so Lambda-focused teams can keep configuration and code in sync without maintaining parallel `.env` files.\n\n### How EnvGuard parses `serverless.yml`\n\nThe built-in `src/parser/serverlessParser.ts` keeps things simple and predictable:\n\n- `provider.environment` entries are read exactly as you define them, whether the value is hardcoded or points to something like `${ssm:/myapp/db-url}`.\n- Each `functions.<name>.environment` block is scanned independently, so function-specific overrides are preserved.\n- Every extracted variable is compared against actual usage in your code to highlight gaps.\n\nExample snippet that EnvGuard understands:\n\n```yaml\nprovider:\n  environment:\n    DATABASE_URL: ${ssm:/myapp/db-url}\n    API_KEY: hardcoded-value\n\nfunctions:\n  myFunction:\n    environment:\n      FUNCTION_VAR: some-value\n```\n\n### Scan output for serverless.yml\n\n```\nChecking src/lambda/serverless.yml\n\n   Found 3 variable(s) in serverless.yml\n   Found 2 variable(s) used in code\n\n   ⚠ Unused variables in serverless.yml:\n      • DATABASE_URL\n\n   ✖ Missing from serverless.yml:\n      • LOG_LEVEL\n   Used in: src/lambda/handler.js\n```\n\n### Current parser limits\n\nTo keep the parser lightweight, a few parts of `serverless.yml` are intentionally ignored today:\n\n- `resources.Resources` blocks (such as ECS task definitions or standalone Lambdas)\n- Nested `${ssm:}` path resolution inside custom objects\n- `${secretsmanager:}` references\n- Nested secret keys like `secrets.host`\n\nIf you rely on those sections, you can still run EnvGuard—it will simply skip them while continuing to validate every `provider.environment` and function-level environment entry that it finds.\n\n### Why it matters\n\n- **No .env required** – `serverless.yml` acts as the single source of truth\n- **Function-level coverage** – highlights mismatches between shared and per-function variables\n- **Smart filtering** – known AWS/runtime variables stay out of your reports (use `--strict` to include them)\n- **CI/CD friendly** – `envguard scan --ci` can block deployments when your configuration and code drift apart\n\n## Commands\n\n- `envguard scan` - Scan for issues and display report\n- `envguard scan --ci` - Scan and exit with error code if issues found\n- `envguard scan --strict` - Report all variables including known runtime variables\n- `envguard scan --no-detect-fallbacks` - Treat all missing variables as errors (ignore fallback detection)\n- `envguard scan --exclude <patterns>` - Comma-separated glob patterns to exclude (merged with config `exclude`)\n- `envguard scan --ignore-vars <vars>` - Comma-separated variables to ignore (merged with config `ignoreVars`)\n- `envguard fix` - Auto-generate `.env.example`\n- `envguard install-hook` - Install a Git pre-commit hook to run checks automatically\n- `envguard install-hook --type pre-push` - Install a pre-push hook instead\n- `envguard install-hook --force` - Overwrite existing hook if present\n- `envguard uninstall-hook` - Remove the envguard Git hook\n- `envguard uninstall-hook --type pre-push` - Remove the pre-push hook\n\n### Strict Mode\n\nBy default, EnvGuard filters out well-known runtime variables that don't need to be explicitly defined:\n\n**AWS Lambda variables**: `AWS_REGION`, `AWS_LAMBDA_FUNCTION_NAME`, etc.\n**Node.js runtime**: `NODE_ENV`, `PATH`, etc.\n**CI/CD environments**: `CI`, `GITHUB_ACTIONS`, etc.\n**Serverless Framework**: `IS_OFFLINE`, `SLS_OFFLINE`, etc.\n\nUse `--strict` mode to report ALL variables including these runtime-provided ones:\n\n```bash\nenvguard scan --strict\n```\n\nExample output (non-strict):\n```\n   Skipped known runtime variables (use --strict to show):\n   Serverless Framework: IS_OFFLINE, SLS_OFFLINE\n   CI/CD: CI\n   AWS Lambda: AWS_REGION\n```\n\n## Development\n\n```bash\n# Install dependencies\nnpm install\n\n# Build\nnpm run build\n\n# Run locally\nnpm start scan\n```\n\n## License\n\nMIT 2026 Daniel Szlaski\n\n# EnvGuard CLI\n\n\n\n\n\n---\n\n## Supported platforms and frameworks\n\n- Node.js JavaScript and TypeScript\n- Serverless Framework projects\n- Monorepos with nested services\n- CI environments including GitHub Actions, GitLab CI, CircleCI, Travis\n\n---\n\n## Installation\n\n### Global installation\n\n```bash\nnpm install -g @danielszlaski/envguard\n```\n\nThen run:\n```bash\nenvguard scan\n```\n\n### No installation using npx\n\n```bash\nnpx @danielszlaski/envguard scan\n```\n\n---\n\n## Core commands\n\n### Scan for issues\n\n```bash\nenvguard scan\n```\n\nFinds:\n- Missing variables\n- Unused variables\n- Hardcoded assignments\n- Drift between code and configuration\n\n### Auto generate `.env.example`\n\n```bash\nenvguard fix\n```\n\nAutomatically creates or updates `.env.example` files with:\n- All variables actually used\n- Usage locations in code\n- Helpful format hints\n- Zero real secrets\n\nEach `.env.example` is generated next to its corresponding `.env`, making it ideal for monorepos.\n\n---\n\n## Smart severity detection\n\nEnvGuard understands intent.\n\n```js\nprocess.env.API_KEY          // ERROR\nprocess.env.PORT || 3000     // WARNING\nprocess.env.DEBUG && log()   // WARNING\n```\n\n- Errors indicate real runtime risk\n- Warnings highlight defensive or optional usage\n- Noise is reduced without hiding problems\n\nFallback detection can be disabled if strict enforcement is required.\n\n---\n\n## Git hook integration\n\nCatch configuration issues before they ever reach CI.\n\n```bash\nenvguard install-hook\n```\n\nOptions:\n- Pre commit or pre push hooks\n- Forced overwrite\n- Easy removal\n\nHooks run `envguard scan --ci` automatically and block commits when issues are found.\n\n---\n\n## CI and automation friendly\n\nEnvGuard is designed for automation first.\n\n```bash\nenvguard scan --ci\n```\n\n- Exits with non zero code on errors\n- Perfect for CI pipelines\n- No interactive output\n- Fast and deterministic\n\nWorks out of the box with GitHub Actions, GitLab CI, CircleCI, and more.\n\n---\n\n## Serverless Framework support\n\nEnvGuard treats `serverless.yml` as a first class configuration source.\n\nIt:\n- Extracts provider and function level variables\n- Validates that all variables are actually used\n- Detects missing definitions referenced in code\n- Understands SSM, Secrets Manager, and CloudFormation references\n- Skips AWS runtime variables automatically unless strict mode is enabled\n\nThis prevents silent misconfiguration in Lambda based systems.\n\n---\n\n## Configuration\n\nEnvGuard works without configuration, but can be customized via:\n- `.envguardrc.json`\n- `envguard.config.json`\n- `package.json`\n\nExample:\n```json\n{\n  \"ignoreVars\": [\"COMPANY_INTERNAL_VAR\"],\n  \"strict\": false,\n  \"detectFallbacks\": true,\n  \"exclude\": [\"**/build/**\"]\n}\n```\n\nPriority:\nCLI flags → config file → package.json → defaults\n\n---\n\n## Who EnvGuard is for\n\nEnvGuard is ideal for:\n- Teams onboarding new developers\n- Projects with growing configuration surface area\n- Serverless and microservice architectures\n- Repositories with strict CI requirements\n- Anyone tired of debugging missing env vars at runtime\n\nIf environment variables ever broke your deploy, EnvGuard pays for itself immediately.\n\n---\n\n## License\n\nMIT © 2026 Daniel Szlaski\n","readmeFilename":"README.md"}