Beyond 3.3.7 ============ We've moved this content to [Github Releases](https://github.com/node-config/node-config/releases). Future release notes are managed there. 3.3.7 / 2022-01-11 ================== * No new changes. 3.3.6 was not published to NPM in versioning mix-up. * Release notes are moving to Github Releases page going forward. 3.3.6 / 2021-03-08 ================== * Added publishConfig element to package.json to prevent publishing to the wrong repository - @lorenwest 3.3.5 / 2021-03-05 ================== * FIX [#628](https://github.com/node-config/node-config/issues/628) Uncaught ReferenceError: node_env_var_name is not defined @prnake 3.3.4 / 2021-02-26 ================== * FIX #517 0 loadFileConfigs incorrectly adds to getConfigSources @NguyenMatthieu 3.3.3 / 2020-11-26 ================== * FIX #460 - Strict mode warning refer to appropriate env variable @iCodeOkay * Use Buffer.alloc and Buffer.from instead of contrsuctor @Fcmam5 * Add support for experimental .cjs modules @lenkan 3.3.2 / 2020-09-24 ================== * Fixed issue with Buffers in config throwing error in util.makeImmutable (#608) - Michal Wadas * Added boolean and numeric types to custom environment variables - Ankur Narkhede @ankurnarkhede 3.3.1 / 2020-03-25 ================== * Fix security vulnerability in json5 dependency - @twkel 3.3.0 / 2020-02-26 ================== * Allow all defined values in `substituteDeep` - @fostyfost 3.2.6 / 2020-02-21 ================== * Updated copyright date ranges 3.2.5 / 2020-01-16 ================== * Fixed issue with getCustomEnvVars and multiple config dirs #585 - @dekelev 3.2.4 / 2019-10-25 ================== * Improved error handling of env variables value parse - @leonardovillela 3.2.3 / 2019-10-03 ================== * Fixed strict mode warning #460 - @fedulovivan 3.2.2 / 2019-07-20 ================== * Fixed delimiter bug in configDirs to match O/S delimiter - @iMoses 3.2.1 / 2019-07-18 ================== * Fixed TypeError: obj.toString is not a function - @leosuncin 3.2.0 / 2019-07-11 ================== * Asynchronous configs - @iMoses * Multiple config directories - @iMoses * Improved parser support - @iMoses 3.1.0 / 2019-04-07 ================== * Support of module.exports syntax for TS config files @keenondrums 3.0.1 / 2018-12-16 ================== * Fixed bug where dot notation extended own key @exogen 3.0.0 / 2018-11-20 ================== * Ensure config array items and objects are sealed @fgheorghe - This required a major version bump in case someone - relied on the ability to mutate non-sealed data. 2.0.2 / 2018-08-28 ================== * Added dot notation to setModuleDefaults - bertho-zero * Updated copyright year - JemiloII 2.0.1 / 2018-07-26 ================== * Removed deprecated code - jpwilliams 2.0.0 / 2018-07-26 ================== Potential for backward incompatibility requiring a major version bump. Safe to upgrade to major version 2 if you're using a recent NodeJS version and you're not trying to mutate config arrays. * Added array immutability - jacobemerick * Removed Node V.4 support 1.31.0 / 2018-05-22 =================== * Load new coffeescript module instead of coffee-script - bastbijl 1.30.0 / 2018-02-26 =================== * Support for nested raw() in javascript configurations - patrickpilch 1.29.4 / 2018-02-03 =================== * Re-publish - last changes didn't make it to npm 1.29.3 / 2018-02-03 =================== * Added soft dependencies so transpilers don't include everything - gewentao 1.29.2 / 2018-01-12 =================== * Patch, and added a test to ts-node - electroma 1.29.1 / 2018-01-07 =================== * Prevent re-registration of ts-node - electroma * Fixed bug in contributor table tool - lorenwest 1.29.0 / 2017-12-26 =================== * Update docs for JavaScript-formatted config files and link them from the README - markstos * Fixed 'hostname' value selection when there is no environment variable for that - wmangelardo 1.28.1 / 2017-11-09 =================== * add nodejs9 to travisci - jfelege 1.28.0 / 2017-11-07 =================== * allow overrides of `NODE_ENV` with `NODE_CONFIG_ENV` - jfelege 1.27.0 / 2017-10-17 =================== * Add method to output plain JS object - willsoto * Updated Node versions in Travis CI - lorenwest 1.26.2 / 2017-08-11 =================== * Update supported nodejs platforms - jfelege 1.26.1 / 2017-05-03 =================== * Fix: failed while merging from RegExp @XadillaX * Chore: reduce package size. @evilebottnawi 1.26.0 / 2017-03-30 =================== * Added tests for extendDeep @IvanVergiliev * Added TypeScript support @cypherq * Update config.js with correctly cased type def @ScionOfBytes 1.25.1 / 2017-02-01 =================== * Fixed undefined CONFIG_SKIP_GITCRYPT variable @lorenwest 1.25.0 / 2017-01-31 =================== * Add support for configuration files stored with git-crypt @cunneen 1.24.0 / 2016-11-02 =================== * Prevent accidental publish to private repository 1.23.0 / 2016-11-02 =================== * Re-publishing because npmjs didn't see 1.22 1.22.0 / 2016-10-25 =================== * original/previous value for deferredConfig @simon-scherzinger * util.loadFileConfigs: support optional source dir @wmertens * Adding raw wrapper to prevent object modification in config @patrickpilch 1.21.0 / 2016-06-01 =================== * Added XML configuration @tusharmath 1.20.4 / 2016-05-23 =================== * Fixed a regression with extending prototype methods @tahoemph 1.20.3 / 2016-05-18 =================== * Fixed a regression with 1.20.2 @kgoerlitz * Added test to prevent this in the future @kgoerlitz 1.20.2 / 2016-05-17 =================== * node v6 compatiblity: remove deprecated __lookupGetter__ use - @thetalecrafter * node v6 compatiblity: handle different SyntaxError format - @pwwolf 1.20.1 / 2016-04-08 =================== * Simplify truthiness check - @markstos * Remove errant console.log - @markstos 1.20.0 / 2016-04-06 =================== * Typo fix @jchip * Handle null sub-object @wmertens * Bug fix for NODE_CONFIG_STRICT_MODE check @markstos * Ran node security check on 4/6/2016 with the following output $ nsp check (+) No known vulnerabilities found 1.19.0 / 2016-01-08 =================== * Resolve defered values in predictable order for consistent results. Fixes #265 @elliotttf @markstos 1.18.0 / 2015-11-17 =================== * More robust handling of JSON @elliotttf 1.17.1 / 2015-11-17 =================== * Patch release for regex bugfix 1.17.0 / 2015-11-17 =================== * Update warning about missing configuration files to mention how to disable the warning #245 @markstos * Upgrade to run CI with travis containers @lorenwest * Fixed bug with comments and inline json @elliotttf 1.16.0 / 2015-09-03 =================== * Change == to === to tighten equality tests #242 @wgpsutherland * Fix attachProtoDeep for setModuleDefaults #243 @benkroeger 1.15.0 / 2015-07-30 =================== * Added full hostname in addition to first segment @vicary 1.14.0 / 2015-06-02 =================== * Added JSON parsing to custom environment variables @leachiM2k * Handle unicode BOM characters @johndkane 1.13.0 / 2015-05-05 =================== * Updated CSON library @dsimidzija 1.12.0 / 2015-02-19 =================== * Better date merging @axelhzf 1.11.0 / 2015-01-14 =================== * Added Hjson support @laktak 1.10.0 / 2015-01-06 =================== * Added TOML support (@jasonhansel) * Another year - changed copyright messages for 2015 * Updated contributors list * New Strict Mode added in 1.9.0 is now documented. (@markstos) * has() now returns false when given an undefined or null key to look up. Previously it threw an exception. (@markstos) * When get() is given an undefined or null key to look up, it now throws a more helpful diagnostic (@robludwig, @markstos) 1.9.0 / 2014-12-08 ================== * New strictness checks have been added to ensure the expected configuration has been loaded. Warnings are now thrown in these cases. If NODE_CONFIG_STRICT_MODE is set, exceptions are thrown instead. (@markstos) * There must be an explicit config file matching `NODE_ENV` if `NODE_ENV` is set. * There must be an explicit config file matching `NODE_APP_INSTANCE` if `NODE_APP_INSTANCE` is set * `NODE_ENV` must not match 'default' or 'local' to avoid ambiguity. * Added .iced extension support (@arthanzel) * Highlight `config.has()` in the README. Use it to check to if a value exists, since `config.get()` throws exceptions on undefined values. (@markstos) * API Change: getConfigSources() now starts to return data on config files that are valid-but-empty. (@markstos) 1.8.1 / 2014-11-14 ================== * Simplify syntax for defer() functions. The 'this' value in the functions is now bound to the main configuration object, so it doesn't have to be passed into the function. (@markstos) * new defer sub-module introduced in 1.8.0 can now be accessed by require('config/defer') For usage, see: https://github.com/node-config/node-config/wiki/Configuration-Files#javascript-module---js * Add test coverage for array merging cases. (@markstos) * Bump dependency on cson package to 1.6.1 (@markstos) 1.8.0 / 2014-11-13 ================== * Added deferred function for evaluating configs after load (@markstos) For details, see: https://github.com/node-config/node-config/wiki/Configuration-Files#javascript-module---js * Bumped js-yaml dependency (@markstos) 1.7.0 / 2014-10-30 ================== * Added variable substitution in .properties files (@ncuillery) 1.6.0 / 2014-10-22 ================== * Added support for property accessors in configs (@jaylynch) 1.5.0 / 2014-10-20 ================== * Added support for .json5 config files (@bertrandom) 1.4.0 / 2014-10-16 ================== * Added support for .properties config files (@superoven) 1.3.0 / 2014-10-15 ================== * Added support for CSON configuration files (@superoven) 1.2.4 / 2014-10-10 ================== * Repaired the 1.2.3 fix to work both before and after the first get() 1.2.3 / 2014-10-03 ================== * Changed test suite to verify a bug in util.setModuleDefaults() * Fixed util.setModuleDefaults() to work after a get() (and pass the new test) 1.2.2 / 2014-10-03 ================== * Added support for regexp and date configurations (@diversario) 1.2.1 / 2014-09-23 ================== * Wrote test to prove setModuleDefaults() was broken in 1.2.0 * Fixed setModuleDefaults() to not rely on immutable configs 1.2.0 / 2014-09-15 ================== * Feature release * Delaying immutability until after first get() - for external configs * Allowing immutability override with $ALLOW_CONFIG_MUTATIONS=Y 1.1.1 / 2014-09-03 ================== * @th507 - Update support for Coffee-script >=1.7.0 1.1.0 / 2014-09-03 ================== * Feature release * @bradboro - Custom environment variables * @supersheep - Catch error when requiring visionmedia yaml module 1.0.2 / 2014-07-30 =================== * @bradobro - Fixed a variable from leaking into global * @tilfin - Removed un-necessary YAML comment filtering for js-yaml 1.0.1 / 2014-07-25 =================== * Removed test directory from npm install 1.0.0 / 2014-07-23 =================== * Major revision. Upgrade notes: https://github.com/node-config/node-config/wiki/Upgrading-From-Config-0.x * Update to semver versioning * Change load ordering from hostname.EXT --> deployment.EXT to deployment.EXT --> hostname.EXT * Allow makeImmutable to accept an array of attributes * Allow makeImmutable to accept no attrs, making all attributes immutable * Allow recursion in makeImmutable, if an attribute is an object * Change node-config behavior to make all configurations immutable * Removed getOriginalConfig as no longer necessary post-immutable * Removed runtime.json file writing and monitoring * Removed previously deprecated $CONFIG_* environment configurations * Deprecated the attribute watch functionality * Added error output if no configurations found * Exposed config loading for alternate configurations * Added config.get() and config.has() methods & tests * Removed reliance on global.NODE_CONFIG so older versions can work with 1.x * Fix empty YAML file causing crash with latest js-yaml * Added SUPPRESS_NO_CONFIG_WARNING for better sub-module support * Moved all documentation [to the wiki](https://github.com/node-config/node-config/wiki). 0.4.37 / 2014-07-22 =================== * Fix empty YAML file causing crash with latest js-yaml 0.4.36 / 2014-05-27 =================== * Not writing runtime.json if not used 0.4.35 / 2014-01-16 =================== * NODE_CONFIG_DIR can now contain a relative path for .js and .coffee configurations 0.4.34 / 2014-01-06 =================== * Updated copyright year 0.4.33 / 2013-10-25 =================== * Assure writes to runtime.json are atomic 0.4.32 / 2013-10-24 =================== * Don't freak out if running without a config directory * Don't be so chatty if runtime.json doesn't exist 0.4.31 / 2013-10-18 =================== * Changed getConfigSources to copy array vs. object 0.4.30 / 2013-09-12 =================== * More consistent array extension * No longer requiring a config directory * Not erroneously writing runtime.json * Exposing the original configuration sources * Added --NODE_CONFIG={json} command line overrides * Added $NODE_CONFIG={json} environment variable overrides * Consistent handling of environment variables and command line parameters * Reached 100 regression tests 0.4.29 / 2013-08-07 =================== * Added flag for disabling the write of runtime.json 0.4.28 / 2013-07-31 =================== * Eliminated a totally annoying install warning in newer versions of NPM 0.4.27 / 2013-06-18 =================== * Fixed a bug preventing double underscores in config environment variables 0.4.26 / 2013-06-10 =================== * Re-watch file on rename (allows editing runtime.json with vi) * Allow runtime.json file watch disable via NODE_CONFIG_DISABLE_FILE_WATCH=Y * Change no yaml parser error message to suggest using js-yaml * Changed default clone depth from 6 to 20 to allow for deeper configurations 0.4.25 / 2013-05-24 =================== * Dont fail if config directory doesnt exist 0.4.24 / 2013-04-13 =================== * Added resetRuntime() to reset the runtime.json file * Updated docs to reflect the new public method 0.4.23 / 2013-04-13 =================== * Multiple application instance support via $NODE_APP_INSTANCE * Multi-app testing & documentation 0.4.22 / 2013-03-29 =================== * Added configuration $CONFIG_* environment variables * Added $CONFIG_* documentation and tests * Added NodeJS 0.10 integration test 0.4.21 / 2013-03-06 =================== * Triggering file.watch when an editor saves a file - rename vs. change * Installed Travis-CI continuous integration testing framework 0.4.20 / 2013-02-21 =================== * Merged _diffDeep fix 0.4.19 / 2013-02-21 =================== * Added discovery of .yml in addition to .yaml for YAML configs (w/doc) * Added testing of .yml file discovery * Removed licensing inconsistencies 0.4.18 / 2012-10-30 =================== * Moved coffee-script and js-yaml from optionalDependencies back to devDependencies to trim the install size for those not needing these packages. * Promoted $HOSTNAME and $HOST above OS.hostname() 0.4.17 / 2012-09-26 =================== * Allow the location of runtime.json to be picked up from the environment * Added documentation for the NODE_CONFIG_RUNTIME_JSON environment variable * package.json cleanup - created optionalDependencies and devDependencies 0.4.16 / 2012-08-09 =================== * Allowing a zero interval in watchForConfigFileChanges() to disable file watching. * Fixed a comparator bug in _equalsDeep() * Added a test to confirm deep extending array functionality 0.4.15 / 2012-06-04 =================== * Placed YAML and Coffee-Script libraries back into the download. Still lazy loading into memory. 0.4.14 / 2012-06-01 =================== * Added the local.EXT and local-deployment.EXT configs. * Removed unnecessary debug output * Added retry logic on file parse to reduce read/write collisions * Added support for a better YAML parser * Fixed problems with null configuration values 0.4.13 / 2012-04-25 =================== * Assuring the runtime.json file exists. Undocumented fs.watch() requirement. 0.4.12 / 2012-04-25 =================== * Removed all external dependencies * Lazy loading of yaml and coffee-script only if these file types are used * Added new style file watching if available (retaining pre 6.0 compatibility) * Windows compatibility - file watching changes were required 0.4.11 / 2012-02-15 =================== * Automatically watching runtime.json for changes * Fixed a date comparison bug during file watching * Changed require('sys') to require('util') 0.4.10 / 2012-01-18 =================== * Made sure the CONFIG object is a shared singleton * Added NODE_CONFIG_DIR environment variable to point to a different directory * Added tests and documentation for the above 0.4.9 / 2012-01-06 ================== * Added coffee-script file type support with extension .coffee * Added an example coffee-script configuration file * Added coffee-script module dependency * Added a test for coffee-script configuration files * Documented coffee-script support, regenerated documentation 0.4.8 / 2011-12-20 ================== * Fixed a bug where changes to module default configs weren't persisted * Added a test to validate the bugfix 0.4.7 / 2011-12-16 ================== * Created the makeHidden method to hide a property of an object * Added a value argument to makeImmutable for creating new properties * Fixed setModuleDefaults to hide injected prototype methods * Added documentation and unit tests 0.4.6 / 2011-11-29 ================== * Updated vows from 0.5.8 to 0.5.13 0.4.5 / 2011-11-16 ================== * Updated YAML dependency from "0.1.x" to ">=0.2.2" * Added stripping of comment-only and whitespace-only lines in YAML files for backward compatibility * Added more tests for YAML edge cases * Added a homepage link in package.json to the online documentation * Added History.md 0.4.4 / 2011-11-08 ================== * Removed deprecated modules from package.json 0.4.3 / 2011-08-02 ================== * Made watchForConfigFileChanges public 0.4.2 / 2011-07-11 ================== * Added comment stripping from JSON configuration files 0.4.1 / 2011-07-07 ================== * Added more tests * Return the module config in setModuleDefaults 0.4.0 / 2011-07-06 ================== * Update to version 0.4.0 * Online documentation * Runtime configuration changes * Configuration value watching * Multi-instance node deployments * Better module developer support