{"_id":"environmental","_rev":"50-84742733b03369c9a005d263df6624cb","name":"environmental","description":"Provides conventions and code to deal with unix environment vars in a pleasant way","dist-tags":{"latest":"1.2.4"},"versions":{"0.0.1":{"name":"environmental","version":"0.0.1","description":"Provides conventions and code to deal with unix environment vars in a pleasant way","homepage":"https://github.com/kvz/environmental","author":{"name":"Kevin van Zonneveld","email":"kevin@vanzonneveld.net"},"engines":{"node":">= 0.8.0"},"dependencies":{"flat":"1.2.1"},"devDependencies":{"coffee-script":"1.7.1","coffeelint":"1.3.0","mocha":"1.18.2"},"keywords":["environment","env","vars","12factor","nodejitsu","heroku"],"bin":{"environmental":"./bin/environmental"},"repository":{"type":"git","url":"https://github.com/kvz/environmental.git"},"scripts":{"test":"make test"},"license":"MIT","bugs":{"url":"https://github.com/kvz/environmental/issues"},"_id":"environmental@0.0.1","dist":{"shasum":"720c3dc2fe67404464a8ee802a86e4d8e688ef0e","tarball":"https://registry.npmjs.org/environmental/-/environmental-0.0.1.tgz","integrity":"sha512-qrCWHK4xpV15PqUwlOsnKr09Atea6njnBdjkId1OtN7wAUWCKe0vHSUH7ubc0ceACdzdMD2fGXc/qh4Cf7v49A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGfX+p/HW/6jHeO24WFjKVh/rzgq2Z2iul6UqfP1/IREAiEA0K8/W0PBGQZb/cAXo7y2Ta0c2G+V+jmPz0Te57I5cyo="}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"kvz","email":"kevin@vanzonneveld.net"},"maintainers":[{"name":"kvz","email":"kevin@vanzonneveld.net"}]},"0.0.2":{"name":"environmental","version":"0.0.2","description":"Provides conventions and code to deal with unix environment vars in a pleasant way","homepage":"https://github.com/kvz/environmental","author":{"name":"Kevin van Zonneveld","email":"kevin@vanzonneveld.net"},"engines":{"node":">= 0.8.0"},"dependencies":{"flat":"1.2.1","chai":"1.9.1","coffee-script":"1.7.1","coffeelint":"1.3.0","mocha":"1.18.2"},"keywords":["environment","env","vars","unix","12factor","nodejitsu","heroku"],"bin":{"environmental":"./bin/environmental"},"repository":{"type":"git","url":"https://github.com/kvz/environmental.git"},"scripts":{"test":"make test"},"license":"MIT","bugs":{"url":"https://github.com/kvz/environmental/issues"},"_id":"environmental@0.0.2","dist":{"shasum":"0ca5c39517ce45d4a18a6c2d882546d6d1403b48","tarball":"https://registry.npmjs.org/environmental/-/environmental-0.0.2.tgz","integrity":"sha512-F25pFKVh/ZsvxIdSGwQNqjdtofK3SRNJXG4RYjvOq6xxCKlG1V1VFzewi49I4zAKnsSBfUweK0ZkBDOcc91DvQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHQd34wBBntZeik98+MQCEG073zaWgBQwNdaSvXN4y5PAiBTjto5nMdu/hLSqYuGPMzOhfD0zSwlsAvv8UtsJWWvgA=="}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"kvz","email":"kevin@vanzonneveld.net"},"maintainers":[{"name":"kvz","email":"kevin@vanzonneveld.net"}]},"0.0.3":{"name":"environmental","version":"0.0.3","description":"Provides conventions and code to deal with unix environment vars in a pleasant way","homepage":"https://github.com/kvz/environmental","author":{"name":"Kevin van Zonneveld","email":"kevin@vanzonneveld.net"},"engines":{"node":">= 0.8.0"},"dependencies":{"flat":"1.2.1","chai":"1.9.1","coffee-script":"1.7.1","coffeelint":"1.3.0","mocha":"1.18.2"},"keywords":["environment","env","vars","unix","12factor","nodejitsu","heroku"],"bin":{"environmental":"./bin/environmental"},"repository":{"type":"git","url":"https://github.com/kvz/environmental.git"},"scripts":{"test":"make test"},"license":"MIT","bugs":{"url":"https://github.com/kvz/environmental/issues"},"_id":"environmental@0.0.3","dist":{"shasum":"846d57457eb3670b06eb5f5d0495c3e006a35720","tarball":"https://registry.npmjs.org/environmental/-/environmental-0.0.3.tgz","integrity":"sha512-MlVx9pnhKZIulp7FudJMZGwKioCND7JzD2CaTruEULwZMsAQBcB3NoLHRzEpPOIZ81tYSElHZ8k6LGoJi3vYhg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCEn77OUP8NKKjKz+3bQeAwvqk5MWPt7gWGSfKRx/OdbwIhAJKae6kRpadh+QfjojnDxILpAzuU29UUzbhOB90anqXe"}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"kvz","email":"kevin@vanzonneveld.net"},"maintainers":[{"name":"kvz","email":"kevin@vanzonneveld.net"}]},"0.0.4":{"name":"environmental","version":"0.0.4","description":"Provides conventions and code to deal with unix environment vars in a pleasant way","homepage":"https://github.com/kvz/environmental","author":{"name":"Kevin van Zonneveld","email":"kevin@vanzonneveld.net"},"engines":{"node":">= 0.8.0"},"dependencies":{"flat":"1.2.1","chai":"1.9.1","coffee-script":"1.7.1","coffeelint":"1.3.0","mocha":"1.18.2"},"keywords":["environment","env","vars","unix","12factor","nodejitsu","heroku"],"bin":{"environmental":"./bin/environmental"},"repository":{"type":"git","url":"https://github.com/kvz/environmental.git"},"scripts":{"test":"make test"},"license":"MIT","bugs":{"url":"https://github.com/kvz/environmental/issues"},"_id":"environmental@0.0.4","dist":{"shasum":"226d71ea4c969256f4f4f3cc918f5370380235b1","tarball":"https://registry.npmjs.org/environmental/-/environmental-0.0.4.tgz","integrity":"sha512-ATe9lkrReBgjb3opmDMPwK0c88s/bXxBElOGZ11DIrloBkFVqdfK+khTQpy/QPQHSGBvl8bWhtVry1xXUKCdnw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEZf0SZxxXaJ4ReSAn9f1PyBGnXIFuFNvxRKZUmyAMUcAiEAmNxTOdmPH/22q9QsJPNvcKyOYRYHUZMSFjqNhQvoDBk="}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"kvz","email":"kevin@vanzonneveld.net"},"maintainers":[{"name":"kvz","email":"kevin@vanzonneveld.net"}]},"0.0.6":{"name":"environmental","version":"0.0.6","description":"Provides conventions and code to deal with unix environment vars in a pleasant way","homepage":"https://github.com/kvz/environmental","author":{"name":"Kevin van Zonneveld","email":"kevin@vanzonneveld.net"},"engines":{"node":">= 0.8.0"},"dependencies":{"flat":"1.2.1","chai":"1.9.1","coffee-script":"1.7.1","coffeelint":"1.3.0","mocha":"1.18.2"},"keywords":["environment","env","vars","unix","12factor","nodejitsu","heroku"],"bin":{"environmental":"./bin/environmental"},"repository":{"type":"git","url":"https://github.com/kvz/environmental.git"},"scripts":{"test":"make test"},"license":"MIT","bugs":{"url":"https://github.com/kvz/environmental/issues"},"_id":"environmental@0.0.6","dist":{"shasum":"d55eddef7c04a69008128666efae096534f93bfe","tarball":"https://registry.npmjs.org/environmental/-/environmental-0.0.6.tgz","integrity":"sha512-CwuDi5ZJirjTX/y9nWahQB/nfK9DblXFJC/CJhaj3azta4Vxc3sZruQr2P1kcz1YTtb0yu6Eevs71AUOMh2JTg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICn9YnWGztTR/uqgjtu0gB9J5WRVGeDMTSseyqtQGXCqAiBg8p8Y/GI2e7eB1lYRbfwmO41Pl1055YNxyaok71+mVQ=="}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"kvz","email":"kevin@vanzonneveld.net"},"maintainers":[{"name":"kvz","email":"kevin@vanzonneveld.net"}]},"0.0.7":{"name":"environmental","version":"0.0.7","description":"Provides conventions and code to deal with unix environment vars in a pleasant way","homepage":"https://github.com/kvz/environmental","author":{"name":"Kevin van Zonneveld","email":"kevin@vanzonneveld.net"},"engines":{"node":">= 0.8.0"},"dependencies":{"flat":"1.2.1","chai":"1.9.1","coffee-script":"1.7.1","coffeelint":"1.3.0","mocha":"1.18.2"},"keywords":["environment","env","vars","unix","12factor","nodejitsu","heroku"],"bin":{"environmental":"./bin/environmental"},"repository":{"type":"git","url":"https://github.com/kvz/environmental.git"},"scripts":{"test":"make test"},"license":"MIT","bugs":{"url":"https://github.com/kvz/environmental/issues"},"_id":"environmental@0.0.7","dist":{"shasum":"f76de557e3abe958aebbb145f59ee743555ad165","tarball":"https://registry.npmjs.org/environmental/-/environmental-0.0.7.tgz","integrity":"sha512-+w7PKmkZgjtUE9jPtTfqMb5YdImNnQV4IkycjUA1OhyTeW8NH/BGlaZIcXRcZSuatZjmHD1IAhtghIAuma1qdQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQChEuRqYoF5gcPD1aFGCTRkrdPZnychhXLXcKEDACbkzQIgKKJmucGunMxNY0BB7+GrG6KzresNvlAikcliNCRuYDg="}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"kvz","email":"kevin@vanzonneveld.net"},"maintainers":[{"name":"kvz","email":"kevin@vanzonneveld.net"}]},"0.1.0":{"name":"environmental","version":"0.1.0","description":"Provides conventions and code to deal with unix environment vars in a pleasant way","homepage":"https://github.com/kvz/environmental","author":{"name":"Kevin van Zonneveld","email":"kevin@vanzonneveld.net"},"engines":{"node":">= 0.8.0"},"dependencies":{"flat":"1.2.1","chai":"1.9.1","coffee-script":"1.7.1","coffeelint":"1.3.0","mocha":"1.18.2"},"keywords":["environment","env","vars","unix","12factor","nodejitsu","heroku"],"bin":{"environmental":"./bin/environmental"},"repository":{"type":"git","url":"https://github.com/kvz/environmental.git"},"scripts":{"test":"make test"},"license":"MIT","bugs":{"url":"https://github.com/kvz/environmental/issues"},"_id":"environmental@0.1.0","dist":{"shasum":"748b32e85aaa92e37c2330a6d92f453f62454b29","tarball":"https://registry.npmjs.org/environmental/-/environmental-0.1.0.tgz","integrity":"sha512-64/UycVHVICx8EdGzuOl3cPilsLvp/7xR0X38FD1fSWytG+NxGDtDM7VIa8tV57fMu0TKOsFsnwJrAjx/uH7+w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD1UDYBsqUmewEsOdzYH2GRrP2IEJz9z2gstiv8wTNQ1QIhAPavz47NFo5TEb8yvatxNW0+nLszXQWfYTxtePARMPnP"}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"kvz","email":"kevin@vanzonneveld.net"},"maintainers":[{"name":"kvz","email":"kevin@vanzonneveld.net"}]},"1.0.0":{"name":"environmental","version":"1.0.0","description":"Provides conventions and code to deal with unix environment vars in a pleasant way","homepage":"https://github.com/kvz/environmental","author":{"name":"Kevin van Zonneveld","email":"kevin@vanzonneveld.net"},"engines":{"node":">= 0.8.0"},"dependencies":{"flat":"1.2.1","chai":"1.9.1","coffee-script":"1.7.1","coffeelint":"1.3.0","mocha":"1.18.2","cli":"~0.6.2"},"keywords":["environment","env","vars","unix","12factor","nodejitsu","heroku"],"bin":{"environmental":"./bin/environmental"},"repository":{"type":"git","url":"https://github.com/kvz/environmental.git"},"scripts":{"test":"make test"},"license":"MIT","bugs":{"url":"https://github.com/kvz/environmental/issues"},"_id":"environmental@1.0.0","dist":{"shasum":"59915df1aa246b61e97a4b95c2db537d2b510857","tarball":"https://registry.npmjs.org/environmental/-/environmental-1.0.0.tgz","integrity":"sha512-STf44K9429xR01ATeGpEDdICWXZllx2cUxXxZiP8+mGsfY9UbIgMW216/THeoZzG746XqmnQecvs49HKRq9Kgw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEt3hLy7f2tFcCXmwy+AY0UUeI7Fa47ler7kiIZeAXEEAiAEsSr0lTFB6T3jHOZRgYnQr4EjUxYaWMfwVeo7A11K5Q=="}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"kvz","email":"kevin@vanzonneveld.net"},"maintainers":[{"name":"kvz","email":"kevin@vanzonneveld.net"}]},"1.1.0":{"name":"environmental","version":"1.1.0","description":"Provides conventions and code to deal with unix environment vars in a pleasant way","homepage":"https://github.com/kvz/environmental","author":{"name":"Kevin van Zonneveld","email":"kevin@vanzonneveld.net"},"engines":{"node":">= 0.8.0"},"dependencies":{"flat":"1.2.1","chai":"1.9.1","coffee-script":"1.7.1","coffeelint":"1.3.0","mocha":"1.18.2","cli":"~0.6.2"},"keywords":["environment","env","vars","unix","12factor","nodejitsu","heroku"],"bin":{"environmental":"./bin/environmental"},"repository":{"type":"git","url":"https://github.com/kvz/environmental.git"},"scripts":{"test":"make test"},"license":"MIT","bugs":{"url":"https://github.com/kvz/environmental/issues"},"_id":"environmental@1.1.0","dist":{"shasum":"f7dc787a654d97a03bdb362fd00287a58d433087","tarball":"https://registry.npmjs.org/environmental/-/environmental-1.1.0.tgz","integrity":"sha512-anMxrkaA4Lxhjz0rrsfQiyAzk/Hq/IL3fv3yCu8UVfl5jyx620FUX6M7OZHlACziO0PWh0REdKzTncXiO9XVnA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD0o2SfaF4dxWPgIj5bMWIVpL4pTPFz2GtJ0dQrUr0sRwIhAP3hbTylga/ESf5zol0mPIC8vgIzWfDciEeUVXhfD8CG"}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"kvz","email":"kevin@vanzonneveld.net"},"maintainers":[{"name":"kvz","email":"kevin@vanzonneveld.net"}]},"1.2.0":{"name":"environmental","version":"1.2.0","description":"Provides conventions and code to deal with unix environment vars in a pleasant way","homepage":"https://github.com/kvz/environmental","author":{"name":"Kevin van Zonneveld","email":"kevin@vanzonneveld.net"},"engines":{"node":">= 0.8.0"},"dependencies":{"flat":"git://github.com/kvz/flat.git#3e6ad9e6ab5c9a46e4a33d5371916acb41dbc824","chai":"1.9.1","coffee-script":"1.7.1","coffeelint":"1.3.0","mocha":"1.18.2","cli":"~0.6.2"},"keywords":["environment","env","vars","unix","12factor","nodejitsu","heroku"],"bin":{"environmental":"./bin/environmental"},"repository":{"type":"git","url":"https://github.com/kvz/environmental.git"},"scripts":{"test":"make test"},"license":"MIT","gitHead":"2d33b64261703339774d2089929dfab8601f6e17","bugs":{"url":"https://github.com/kvz/environmental/issues"},"_id":"environmental@1.2.0","_shasum":"960d323bac7cfc7f7819b6d2604fc7a6e12c4381","_from":".","_npmVersion":"1.5.0-alpha-4","_npmUser":{"name":"kvz","email":"kevin@vanzonneveld.net"},"maintainers":[{"name":"kvz","email":"kevin@vanzonneveld.net"}],"dist":{"shasum":"960d323bac7cfc7f7819b6d2604fc7a6e12c4381","tarball":"https://registry.npmjs.org/environmental/-/environmental-1.2.0.tgz","integrity":"sha512-aB7sh5/fRXSxWFR8AfFUqvn0EENfWRVcCEZEF6AFBzp74Lr1jTcZXXKnMH0NrTfB8Ytgr0PETU2BhhXvYcb1lg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDc8ddbXg7oNzx410ux96qITXZXW4ZhMKkkC3vCTyl8ZwIhALIefIV7I9m9UDWEoDV9OV/kC8AJMDfVQa+genAd5Xfg"}]}},"1.2.1":{"name":"environmental","version":"1.2.1","description":"Provides conventions and code to deal with unix environment vars in a pleasant way","homepage":"https://github.com/kvz/environmental","author":{"name":"Kevin van Zonneveld","email":"kevin@vanzonneveld.net"},"engines":{"node":">= 0.8.0"},"dependencies":{"flat":"git://github.com/kvz/flat.git#3e6ad9e6ab5c9a46e4a33d5371916acb41dbc824","chai":"1.9.1","coffee-script":"1.7.1","coffeelint":"1.3.0","mocha":"1.18.2","cli":"~0.6.2"},"keywords":["environment","env","vars","unix","12factor","nodejitsu","heroku"],"bin":{"environmental":"./bin/environmental"},"repository":{"type":"git","url":"https://github.com/kvz/environmental.git"},"scripts":{"test":"make test"},"license":"MIT","gitHead":"19fd77285495d4a040103b5f656a651abcd4e692","bugs":{"url":"https://github.com/kvz/environmental/issues"},"_id":"environmental@1.2.1","_shasum":"d073d06ea7e0201ca5ca9fe348724ed44f42e73f","_from":".","_npmVersion":"1.5.0-alpha-4","_npmUser":{"name":"kvz","email":"kevin@vanzonneveld.net"},"maintainers":[{"name":"kvz","email":"kevin@vanzonneveld.net"}],"dist":{"shasum":"d073d06ea7e0201ca5ca9fe348724ed44f42e73f","tarball":"https://registry.npmjs.org/environmental/-/environmental-1.2.1.tgz","integrity":"sha512-0ptGeIMBD/dg4/1INBpeGwVz/fPzF3T90TXZ+hZ5XTFnQu/po3ZMlwUOvGQBnNaXgMbJ9+oVnCduy97grDjiXw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBaj/fOEZeGLBIrZX6SkopEVzAHB4lC4HGM6mY7oyTV+AiEAu5gw/DXio1owey/O0Z2v7qUoHDSqPF0MWYDkEFM14Us="}]}},"1.4.0":{"name":"environmental","version":"1.4.0","description":"Provides conventions and code to deal with unix environment vars in a pleasant way","homepage":"https://github.com/kvz/environmental","author":{"name":"Kevin van Zonneveld","email":"kevin@vanzonneveld.net"},"engines":{"node":">= 0.8.0"},"dependencies":{"cli":"1.0.1","flat":"2.0.1","npm-run-all":"^4.0.1"},"keywords":["environment","env","vars","unix","12factor","nodejitsu","heroku"],"bin":{"environmental":"lib/cli.js"},"repository":{"type":"git","url":"git+https://github.com/kvz/environmental.git"},"scripts":{"test":"npm run build && mocha test/","test:acceptance":"npm run build && node lib/cli.js --file=envs/production.sh --format=json","upgrade:modules":"next-update --keep true --tldr","lint":"eslint .","npublish":"npm publish","push":"git push && git push --tags","release:major":"env SEMANTIC=major npm run release","release:minor":"env SEMANTIC=minor npm run release","release:patch":"env SEMANTIC=patch npm run release","release":"npm version ${SEMANTIC:-patch} -m \"Release %s\" && npm-run-all build push npublish","fix":"eslint . --fix","build":"babel src --source-maps --out-dir lib","build:watch":"babel src --watch --source-maps --out-dir lib"},"license":"MIT","devDependencies":{"babel-cli":"6.18.0","babel-core":"6.21.0","babel-eslint":"7.1.1","babel-plugin-add-module-exports":"0.2.1","babel-plugin-es6-promise":"1.1.0","babel-plugin-syntax-async-functions":"6.13.0","babel-plugin-transform-async-to-generator":"6.16.0","babel-plugin-transform-object-assign":"6.8.0","babel-preset-es2015":"6.18.0","chai":"4.0.0-canary.1","eslint":"3.13.1","eslint-config-standard":"6.2.1","eslint-plugin-promise":"3.4.0","eslint-plugin-standard":"2.0.1","fakefile":"^0.0.8","mocha":"3.2.0","next-update":"^1.5.1"},"gitHead":"41a7ac922e10be951c63a3c5974d8a00e49a23d0","bugs":{"url":"https://github.com/kvz/environmental/issues"},"_id":"environmental@1.4.0","_shasum":"dfce4c39f1cc8a22d10d84b5efe771bd2edbc78e","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"kvz","email":"kevin@vanzonneveld.net"},"maintainers":[{"name":"kvz","email":"kevin@vanzonneveld.net"}],"dist":{"shasum":"dfce4c39f1cc8a22d10d84b5efe771bd2edbc78e","tarball":"https://registry.npmjs.org/environmental/-/environmental-1.4.0.tgz","integrity":"sha512-DW3YY3NnzjllhLpEtrFD5bpuomvOSVposscBQPWLIerHFhAGDuOippi6FHogdU2P26ytjgHr7TZodXZdwzQaGQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD0QdN42E6+hr1KgKkgl/mrnBSbRH0B9+12QBX1hS+zKAIhANKOnxXRnQyr/yfKeAwiNgFAjfjMkTuCj0uPDUXrZQDX"}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/environmental-1.4.0.tgz_1485780329859_0.07662249100394547"}},"1.2.2":{"name":"environmental","version":"1.2.2","description":"Provides conventions and code to deal with unix environment vars in a pleasant way","homepage":"https://github.com/kvz/environmental","author":{"name":"Kevin van Zonneveld","email":"kevin@vanzonneveld.net"},"engines":{"node":">= 0.8.0"},"files":["lib","envs"],"dependencies":{"cli":"1.0.1","flat":"2.0.1"},"keywords":["environment","env","vars","unix","12factor","nodejitsu","heroku"],"bin":{"environmental":"lib/cli.js"},"repository":{"type":"git","url":"git+https://github.com/kvz/environmental.git"},"scripts":{"test":"npm run build && mocha lib/*.test.js","test:acceptance":"npm run build && node lib/cli.js --file=envs/production.sh --format=json","upgrade:modules":"next-update --keep true --tldr","lint":"eslint .","npublish":"npm publish","push":"git push && git push --tags","release:major":"env SEMANTIC=major npm run release","release:minor":"env SEMANTIC=minor npm run release","release:patch":"env SEMANTIC=patch npm run release","release":"npm version ${SEMANTIC:-patch} -m \"Release %s\" && npm-run-all build push npublish","fix":"eslint . --fix","build":"babel src --source-maps --out-dir lib","build:watch":"babel src --watch --source-maps --out-dir lib"},"license":"MIT","devDependencies":{"babel-cli":"6.18.0","babel-core":"6.21.0","babel-eslint":"7.1.1","babel-plugin-add-module-exports":"0.2.1","babel-plugin-es6-promise":"1.1.0","babel-plugin-syntax-async-functions":"6.13.0","babel-plugin-transform-async-to-generator":"6.16.0","babel-plugin-transform-object-assign":"6.8.0","babel-preset-es2015":"6.18.0","chai":"4.0.0-canary.1","eslint":"3.13.1","eslint-config-standard":"6.2.1","eslint-plugin-promise":"3.4.0","eslint-plugin-standard":"2.0.1","fakefile":"^0.0.8","mocha":"3.2.0","next-update":"^1.5.1"},"gitHead":"4b0e1be15055b60ac1163bb1ff64cf012cb3812e","bugs":{"url":"https://github.com/kvz/environmental/issues"},"_id":"environmental@1.2.2","_shasum":"e510bfebe88a4f9552db2e59c1ad9681c3b290ed","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"kvz","email":"kevin@vanzonneveld.net"},"maintainers":[{"name":"kvz","email":"kevin@vanzonneveld.net"}],"dist":{"shasum":"e510bfebe88a4f9552db2e59c1ad9681c3b290ed","tarball":"https://registry.npmjs.org/environmental/-/environmental-1.2.2.tgz","integrity":"sha512-YV7LXqgvOUMDC/e+VtEdbi4s3XaBZiwp4cR94c9fTBC8TOxU5IRu6wQL/ziAoVa28mN4jOqlpBPX7edWgU9j7g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD3pHWSOE5bxy/F4AXqG2WX6lzDjSBZATBhAq5mQK10OQIhAJIawnLAUdAvtz9PTSRA3/yYo+b5b7NGfilE0z7+nFM+"}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/environmental-1.2.2.tgz_1485783133981_0.9738103579729795"}},"1.2.3":{"name":"environmental","version":"1.2.3","description":"Provides conventions and code to deal with unix environment vars in a pleasant way","homepage":"https://github.com/kvz/environmental","author":{"name":"Kevin van Zonneveld","email":"kevin@vanzonneveld.net"},"engines":{"node":">= 0.8.0"},"files":["lib","envs"],"main":"lib/environmental","dependencies":{"cli":"1.0.1","flat":"2.0.1"},"keywords":["environment","env","vars","unix","12factor","nodejitsu","heroku"],"bin":{"environmental":"lib/cli.js"},"repository":{"type":"git","url":"git+https://github.com/kvz/environmental.git"},"scripts":{"test":"npm run build && mocha lib/*.test.js","test:acceptance":"npm run build && node lib/cli.js --file=envs/production.sh --format=json","upgrade:modules":"next-update --keep true --tldr","lint":"eslint .","npublish":"npm publish","push":"git push && git push --tags","release:major":"env SEMANTIC=major npm run release","release:minor":"env SEMANTIC=minor npm run release","release:patch":"env SEMANTIC=patch npm run release","release":"npm version ${SEMANTIC:-patch} -m \"Release %s\" && npm-run-all build push npublish","fix":"eslint . --fix","build":"babel src --source-maps --out-dir lib","build:watch":"babel src --watch --source-maps --out-dir lib"},"license":"MIT","devDependencies":{"babel-cli":"6.18.0","babel-core":"6.21.0","babel-eslint":"7.1.1","babel-plugin-add-module-exports":"0.2.1","babel-plugin-es6-promise":"1.1.0","babel-plugin-syntax-async-functions":"6.13.0","babel-plugin-transform-async-to-generator":"6.16.0","babel-plugin-transform-object-assign":"6.8.0","babel-preset-es2015":"6.18.0","chai":"4.0.0-canary.1","eslint":"3.13.1","eslint-config-standard":"6.2.1","eslint-plugin-promise":"3.4.0","eslint-plugin-standard":"2.0.1","fakefile":"^0.0.8","mocha":"3.2.0","next-update":"^1.5.1"},"gitHead":"afbbf2b360d361311645406df7832566acb9c3f0","bugs":{"url":"https://github.com/kvz/environmental/issues"},"_id":"environmental@1.2.3","_shasum":"258a19a6445c0fcef3c40fee216c5b710b73ede2","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"kvz","email":"kevin@vanzonneveld.net"},"maintainers":[{"name":"kvz","email":"kevin@vanzonneveld.net"}],"dist":{"shasum":"258a19a6445c0fcef3c40fee216c5b710b73ede2","tarball":"https://registry.npmjs.org/environmental/-/environmental-1.2.3.tgz","integrity":"sha512-SEYc46e6oWs2L02nBhPFh1qo852MuEM4FEUs4ai5ztjs1TJXXfENKKYKiEEyeqyduwiOHKca6Xa6AZNEDJR3Yw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGvtZRc0bAODQ1+6SlKNXlWTpRDAodcGNuzLiDWhm8+JAiB0MEgzQkGGq0x2FAjG7pFhKJa4GyJocP3+wC5XsvpgrQ=="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/environmental-1.2.3.tgz_1485783351249_0.06334823276847601"}},"1.2.4":{"name":"environmental","version":"1.2.4","description":"Provides conventions and code to deal with unix environment vars in a pleasant way","homepage":"https://github.com/kvz/environmental","author":{"name":"Kevin van Zonneveld","email":"kevin@vanzonneveld.net"},"engines":{"node":">= 0.8.0"},"files":["lib","envs"],"main":"lib/environmental","dependencies":{"cli":"1.0.1","flat":"2.0.1"},"keywords":["environment","env","vars","unix","12factor","nodejitsu","heroku"],"bin":{"environmental":"lib/cli.js"},"repository":{"type":"git","url":"git+https://github.com/kvz/environmental.git"},"scripts":{"test":"npm run build && mocha lib/*.test.js","test:acceptance":"npm run build && node lib/cli.js --file=envs/production.sh --format=json","upgrade:modules":"next-update --keep true --tldr","lint":"eslint .","npublish":"npm publish","push":"git push && git push --tags","release:major":"env SEMANTIC=major npm run release","release:minor":"env SEMANTIC=minor npm run release","release:patch":"env SEMANTIC=patch npm run release","release":"npm version ${SEMANTIC:-patch} -m \"Release %s\" && npm-run-all build push npublish","fix":"eslint . --fix","build":"babel src --source-maps --out-dir lib","build:watch":"babel src --watch --source-maps --out-dir lib"},"license":"MIT","devDependencies":{"babel-cli":"6.18.0","babel-core":"6.21.0","babel-eslint":"7.1.1","babel-plugin-add-module-exports":"0.2.1","babel-plugin-es6-promise":"1.1.0","babel-plugin-syntax-async-functions":"6.13.0","babel-plugin-transform-async-to-generator":"6.16.0","babel-plugin-transform-object-assign":"6.8.0","babel-polyfill":"6.22.0","babel-preset-es2015":"6.18.0","chai":"4.0.0-canary.1","eslint":"3.13.1","eslint-config-standard":"6.2.1","eslint-plugin-promise":"3.4.0","eslint-plugin-standard":"2.0.1","fakefile":"^0.0.8","mocha":"3.2.0","next-update":"^1.5.1"},"gitHead":"3da87ec093b60b53e1f597cd16dd78cb8c1642f5","bugs":{"url":"https://github.com/kvz/environmental/issues"},"_id":"environmental@1.2.4","_shasum":"08f4161a7211aaf713518c51de335119f51f95f1","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"kvz","email":"kevin@vanzonneveld.net"},"maintainers":[{"name":"kvz","email":"kevin@vanzonneveld.net"}],"dist":{"shasum":"08f4161a7211aaf713518c51de335119f51f95f1","tarball":"https://registry.npmjs.org/environmental/-/environmental-1.2.4.tgz","integrity":"sha512-FKrs21POkawwk9Sz0oKwg7GBFhrspfLOsrQay1/lyrAWBq+cxlhLIMIoHzXf2UrwW08ciUIj1vXcwnbj4wtPdA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHIddLU9pMnDS7r2P4s4uNncRmkyDaceGDvbp4v7nhiZAiAxm9YPo59ydk6G42AOEiBkUeXWFJ+4+nmbwjmCgGFhgA=="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/environmental-1.2.4.tgz_1485786805159_0.021670340793207288"}}},"readme":"<!-- badges/ -->\n[![Build Status](https://secure.travis-ci.org/kvz/environmental.png?branch=master)](http://travis-ci.org/kvz/environmental \"Check this project's build status on TravisCI\")\n[![NPM version](http://badge.fury.io/js/environmental.png)](https://npmjs.org/package/environmental \"View this project on NPM\")\n[![Dependency Status](https://david-dm.org/kvz/environmental.png?theme=shields.io)](https://david-dm.org/kvz/environmental)\n[![Development Dependency Status](https://david-dm.org/kvz/environmental/dev-status.png?theme=shields.io)](https://david-dm.org/kvz/environmental#info=devDependencies)\n<!-- /badges -->\n\nSome people feel that shipping `.json` / `.yml` / `.xml` config files is an upgrade over using archaic environment variables.\n\n![687474703a2f2f6769666174726f6e2e636f6d2f77702d636f6e74656e742f75706c6f6164732f323031332f30322f6974735f615f747261702e676966](https://cloud.githubusercontent.com/assets/26752/2877380/764960a4-d44a-11e3-8ac4-afd5f1678bb2.gif)\n\nDon't let your app load its config, inject it instead.\n\nUnix environment vars are ideal for configuration and I have yet to encounter an application that wouldn't be better off with them. Why?\n\n- You can override a value at near-runtime without having to change/backup config files: `DEBUG=*.* node run.js`\n- You can inject environment variables (passwords, API keys) into the memory of a process belonging to a non-privileged user: `source envs/production.sh && sudo -EHu www-data node run.js` without having to run / write any software for it.\n- You can inherit. Inside `staging.sh`, just `source production.sh`, inside `kevin.sh` `source development.sh`\n- Your operating system is aware and provides tools to inspect, debug, optionally pass on to other processes, etc.\n- You can directly use config across languages, e.g. in supporting BASH scripts\n- You can directly use the config in a terminal yourself, e.g. `cd ${MYAPP_DIR}`\n\nAnd as with any other type of config:\n\n- You can group/save them into files and keep them out of version control\n\nOne downside of environment variables is that there is little convention and syntactic sugar in the high-level languages. It doesn't feel atomic and you think it's more likely to let you down. This module attempts to change that.\n\nEnvironmental doesn't:\n\n - Break [12-factor](http://12factor.net/)\n - Get in your way\n\nEnvironmental does:\n\n - Impose **one way** of dealing with environment variables\n - Make vars available in nested format inside your app (e.g. `MYAPP_REDIS_HOST`) becomes `config.redis.host`\n - <3 unix\n - Interpret multiple inherited bash environment files in an isolated environment to capture them, and prepare them for exporting to [Nodejitsu](https://www.nodejitsu.com/documentation/jitsu/env/) or [Heroku](https://devcenter.heroku.com/articles/config-vars).\n\n## Conventions\n\n### Layout\n\nEnvironmental tree:\n\n```bash\n_default.sh\n├── development.sh\n│   └── test.sh\n└── production.sh\n    └── staging.sh.sh\n```\n\nOn disk:\n\n```bash\nenvs/\n├── _default.sh\n├── development.sh\n├── production.sh\n├── staging.sh\n└── test.sh\n```\n\nYou could make this super-[DRY](https://en.wikipedia.org/wiki/Don't_repeat_yourself), but I actually recommend using mainly\n`development.sh` and `production.sh`, and duplicate keys between them\nso you can easily compare side by side.\nThen just use `_default.sh`, `test.sh`, `staging.sh` for tweaks, to keep things\nclear. Read 'Inheritance can be a bitch' to see why.\n\n### Inheritance can be a bitch\n\nOne common pitfall is re-use of variables:\n\n```bash\nexport MYSQL_HOST=\"127.0.0.1\"\nexport MYSQL_URL=\"mysql://user:pass@${MYSQL_HOST}/dbname\"\n```\n\nThen when you extend this and only override `MYSQL_HOST`, obviously the `MYSQL_URL` will remain unaware of your host change. Ergo: duplication of vars might be the lesser evil here compared to going out of your way to DRY things up.\n\n### Inject features\n\nInstead of having your code make decisions based on environment:\n\n```coffeescript\nif process.env.NODE_ENV == \"production\"\n  # Install cronjobs\n```\n\nKeep that responsibility with your environment files:\n\n```bash\n$ cat envs/_default_.sh\nTLS_CRONJOBS_INSTALL=\"0\"\n\n$ cat envs/production.sh\nTLS_CRONJOBS_INSTALL=\"1\"\n```\n\n```coffeescript\nif config.cronjobs.install == \"1\"\n  # Install cronjobs\n```\n\n### Mandatory and unprefixed variables\n\nThese variables are mandatory and have special meaning. There is no syntactic sugar for them, you are to access them via `process.env.<var>`:\n\n```bash\nexport NODE_APP_PREFIX=\"MYAPP\" # filter and nest vars starting with MYAPP right into your app\nexport NODE_ENV=\"production\"   # the environment your program thinks it's running\nexport DEPLOY_ENV=\"staging\"    # the machine you are actually running on\nexport DEBUG=*.*               # used to control debug levels per module\n```\n\nAfter getting that out of the way, feel free to start hacking, prefixing all\nother vars with `MYAPP` - or the actual short abbreviation of your app name. Don't use an underscore `_` in this name.\n\nIn this example, `TLS` is our app name:\n\n```bash\nexport NODE_APP_PREFIX=\"TLS\"\nexport TLS_REDIS_HOST=\"127.0.0.1\"\nexport TLS_REDIS_USER=\"jane\"\n```\n\n## Getting started\n\nIn a new project, type\n\n```bash\n$ npm install --save environmental\n```\n\nThis will install the node module. Next you'll want to set up an example environment as shown in layout, using these templates:\n\n```bash\ncp -Ra node_modules/environmental/envs ./envs\n```\n\nAdd `envs/*.sh` to your project's `.gitignore` file so they are not accidentally committed into your repository.  \nHaving env files in Git can be convenient as you're still protoyping, but once you go live you'll want to change all credentials and sync your env files separately from your code.\n\n## Accessing config inside your app\n\nStart your app in any of these ways:\n\n```bash\nsource envs/development.sh\nnode myapp.js\n```\n\n```bash\nsource envs/production.sh\nDEBUG=*.* node myapp.js\n```\n\n```bash\nsource envs/staging.sh\n# Following seems weird, but sudo will not preserve $PATH, regardless of -E\nsudo -EHu www-data env PATH=${PATH} node myapp.js\n```\n\n```bash\nsource envs/development.sh && node myapp.js\n```\n\n```bash\nstart myapp # see upstart example below\n```\n\nInside your app you can now obviously already just access `process.env.MYAPP_REDIS_HOST`, but **Environmental** also provides some syntactic sugar so you could type `config.redis.host` instead. Here's how:\n\n```javascript\nvar config = require('environmental').config();\nconsole.log(config);\n\n// This will return\n//\n//   { redis: { host: '127.0.0.1' } }\n```\n\nOr in coffeescript if that's your cup of tea:\n\n```coffeescript\nconfig      = require(\"environmental\").config()\nredisClient = redis.createClient(config.redis.port, config.redis.host)\n```\n\nAs you see\n\n - any underscore `_` in env var names signifies a new nesting level of configuration\n - all remaining keys are lowercased\n\n`config` takes two arguments: `flat` defaulting to `process.env`, and `filter`, defaulting to `process.env.NODE_APP_PREFIX`. Changing these allow you to inject or reload environment variables.\n\n## Capturing a specific config file\n\nBy default, environmental code will capture environment variables of the current process. However, you can also use it to capture variables in isolation as produced by a gives shell file (works with inherits too).\n\n```coffeescript\nenv = new Environmental\nenv.capture \"#{__dirname}/envs/production.sh\", (err, flat) ->\n  expect(err).to.be.null\n  expect(flat.MYAPP_REDIS_HOST, \"127.0.0.1\")\n```\n\nNotice in does not nest the configuration. You can do that by using the `config` method and passing it flat environment vars:\n\n```coffeescript\nconfig = Environmental.config flat, \"MYAPP\"\n\nexpect(config).to.deep.equal\n  redis:\n    host: \"127.0.0.1\"\n```\n\n## Exporting to Nodejitsu\n\nNodejitsu also works with environment variables. But since those are hard to ship, they want you to bundle them in a json file.\n\nEnvironmental can create such a temporary json file for you from the command-line. In this example it figures out all vars from `envs/production.sh` (even if it inherits from other files):\n\n```bash\n./node_modules/.bin/environmental --file=envs/production.sh --format=json > /tmp/jitsu-env.json\njitsu --confirm env load /tmp/jitsu-env.json\njitsu --confirm deploy\nrm /tmp/jitsu-env.json\n```\n\n## Exporting to Heroku\n\n```bash\nheroku config:set $(./node_modules/.bin/environmental --file=envs/production.sh --format=space)\n```\n\n## Exporting to your own servers\n\nTo generate a single file that your server can source:\n\n```bash\n./node_modules/.bin/environmental --file=envs/production.sh --format=newline\n```\n\nNote that this is different from:\n\n```bash\nsource envs/production.sh && env\n```\n\nAs the output is cleansed from any environment variable that was not declared in `env/production.sh` or one of it's ancestors.\n\nYou could use this list to inject into a process upon (re)starts, or save as a file so upstart can inject it into a non-privileged process, and use e.g. rsync to distribute it amongst privileged users:\n\n```bash\nfor host in `echo ${MYAPP_SSH_HOSTS}`; do\n  rsync \\\n   --recursive \\\n   --links \\\n   --perms \\\n   --times \\\n   --devices \\\n   --specials \\\n   --progress \\\n  ./envs/ ${host}:${MYAPP_DIR}/envs\ndone\n```\n\n## Injecting into a non-privileged user process\n\nWhen you deploy your app into production and you run the servers yourself, you might want to use upstart to respawn your process after crashes.\n\nHere's how an [upstart](http://upstart.ubuntu.com/) file (`/etc/init/myapp`) could look like, where the root user injects the environment keys into process memory of an unpriviliged user.\n\nThis has the big security advantage that you own program cannot even read its credentials from disk.\n\n```bash\nstop on runlevel [016]\nstart on (started networking)\n\nrespawn\nrespawn limit 10 5\n\nlimit nofile 32768 32768\n\npre-stop exec status myapp | grep -q \"stop/waiting\" && initctl emit --no-wait stopped JOB=myapp || true\n\nscript\n  exec bash -c \"cd /srv/myapp/current \\\n    && chown root envs/*.sh \\\n    && chmod 600 envs/*.sh \\\n    && source envs/production.sh \\\n    && exec sudo -EHu www-data make start 2>&1\"\nend script\n```\n\n## Todo\n\n - [ ] Offer better ways for syncing config without Git\n - [ ] A means of requiring vars for particular environments, and failing hard/early\n - [x] Better (more compact, more consise) API language\n - [x] More tests\n - [x] Integrate with Heroku as an export target\n\n\n## Sponsor Development\n\nLike this project? Consider a donation.\nYou'd be surprised how rewarding it is for me see someone spend actual money on these efforts, even if just $1.\n\n<!-- badges/ -->\n[![Gittip donate button](http://img.shields.io/gittip/kvz.png)](https://www.gittip.com/kvz/ \"Sponsor the development of environmental via Gittip\")\n[![Flattr donate button](http://img.shields.io/flattr/donate.png?color=yellow)](https://flattr.com/submit/auto?user_id=kvz&url=https://github.com/kvz/environmental&title=environmental&language=&tags=github&category=software \"Sponsor the development of environmental via Flattr\")\n[![PayPal donate button](http://img.shields.io/paypal/donate.png?color=yellow)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=kevin%40vanzonneveld%2enet&lc=NL&item_name=Open%20source%20donation%20to%20Kevin%20van%20Zonneveld&currency_code=USD&bn=PP-DonationsBF%3abtn_donate_SM%2egif%3aNonHosted \"Sponsor the development of environmental via Paypal\")\n[![BitCoin donate button](http://img.shields.io/bitcoin/donate.png?color=yellow)](https://coinbase.com/checkouts/19BtCjLCboRgTAXiaEvnvkdoRyjd843Dg2 \"Sponsor the development of environmental via BitCoin\")\n<!-- /badges -->\n","maintainers":[{"name":"kvz","email":"kevin@vanzonneveld.net"}],"time":{"modified":"2022-06-17T06:41:35.064Z","created":"2014-05-05T09:53:06.515Z","0.0.1":"2014-05-05T09:53:08.631Z","0.0.2":"2014-05-05T10:36:52.729Z","0.0.3":"2014-05-05T11:25:07.550Z","0.0.4":"2014-05-05T11:30:29.192Z","0.0.6":"2014-05-05T11:39:11.011Z","0.0.7":"2014-05-05T12:57:55.726Z","0.1.0":"2014-05-05T13:01:47.697Z","1.0.0":"2014-05-06T07:54:56.723Z","1.1.0":"2014-05-06T10:39:06.363Z","1.2.0":"2014-07-28T14:32:46.801Z","1.2.1":"2014-07-28T15:48:48.115Z","1.4.0":"2017-01-30T12:45:30.649Z","1.2.2":"2017-01-30T13:32:15.835Z","1.2.3":"2017-01-30T13:35:52.027Z","1.2.4":"2017-01-30T14:33:25.930Z"},"readmeFilename":"README.md","homepage":"https://github.com/kvz/environmental","keywords":["environment","env","vars","unix","12factor","nodejitsu","heroku"],"repository":{"type":"git","url":"git+https://github.com/kvz/environmental.git"},"author":{"name":"Kevin van Zonneveld","email":"kevin@vanzonneveld.net"},"bugs":{"url":"https://github.com/kvz/environmental/issues"},"license":"MIT"}