Change Log

All notable changes to this project will be documented in this file. See standard-version for commit guidelines.

7.1.0 (2017-04-13)

Bug Fixes

  • fix demandOption no longer treats 'false' as truthy (#829) (c748dd2)
  • get terminalWidth in non interactive mode no longer causes a validation exception (#837) (360e301)
  • we shouldn't output help if we've printed a prior help-like message (#847) (17e89bd)

Features

7.0.2 (2017-03-10)

Bug Fixes

  • populating placeholder arguments broke validation (b3eb2fe)

7.0.1 (2017-03-03)

Bug Fixes

  • --help with default command should print top-level help (#810) (9c03fa4)

7.0.0 (2017-02-26)

Bug Fixes

  • address min/max validation message regression (#750) (2e5ce0f)
  • address positional argument strict() bug introduced in #766 (#784) (a8528e6)
  • console.warn() rather than throwing errors when api signatures are incorrect (#804) (a607061)
  • context should override parsed argv (#786) (0997288)
  • context variables are now recognized in strict() mode (#796) (48575cd)
  • errors were not bubbling appropriately from sub-commands to top-level (#802) (8a992f5)
  • positional arguments of sub-commands threw strict() exception (#805) (f3f074b)
  • pull in yargs-parser with modified env precedence (#787) (e0fbbe5)
  • running parse() multiple times on the same yargs instance caused exception if help() enabled (#790) (07e39b7)
  • use path.resolve() to support node 0.10 (#797) (49a93fc)

Features

  • add conflicts and implies shorthands. (#753) (bd1472b)
  • add traditional Chinese translation (#780) (6ab6a95)
  • allow provided config object to extend other configs (#779) (3280dd0)
  • function argument validation (#773) (22ed9bb)
  • if only one column is provided for examples, allow it to take up the entire line (#749) (7931652)
  • introduce custom yargs error object (#765) (8308efa)
  • introduces support for default commands, using the '*' identifier (#785) (d78a0f5)
  • rethink how options are inherited by commands (#766) (ab1fa4b)

BREAKING CHANGES

  • extends key in config file is now used for extending other config files
  • environment variables now take precedence over config files.
  • context now takes precedence over argv and defaults
  • the arguments passed to functions are now validated, there's a good chance this will throw exceptions for a few folks who are using the API in an unexpected way.
  • by default options, and many of yargs' parsing helpers will now default to being applied globally; such that they are no-longer reset before being passed into commands.
  • yargs will no longer aggressively suppress errors, allowing errors that are not generated internally to bubble.

6.6.0 (2016-12-29)

Bug Fixes

  • [object Object] was accidentally being populated on options object (#736) (f755e27)
  • do not use cwd when resolving package.json for yargs parsing config (#726) (9bdaab7)

Features

  • implement conflicts() for defining mutually exclusive arguments; thanks @madcampos! (#741) (5883779)
  • split demand() into demandCommand()/demandOption() (#740) (66573c8)
  • support for positional argument aliases (#727) (27e1a57)

6.5.0 (2016-12-01)

Bug Fixes

  • still freeze/unfreeze if parse() is called in isolation (#717) (30a9492)

Features

  • pull in yargs-parser introducing additional settings (#688), and fixing #716 (#722) (702995a)

6.4.0 (2016-11-13)

Bug Fixes

  • locales: correct some Russian translations (#691) (a980671)

Features

Performance Improvements

  • normalizing package data is an expensive operation (#705) (49cf533)

6.3.0 (2016-10-19)

Bug Fixes

  • command: subcommands via commandDir() now supported for parse(msg, cb) (#678) (6b85cc6)

Features

6.2.0 (2016-10-16)

Bug Fixes

  • stop applying parser to context object (#675) (3fe9b8f)

Features

  • add new pt_BR translations (#674) (5615a82)
  • Italian translations for 'did you mean' and 'aliases' (#673) (81984e6)

6.1.1 (2016-10-15)

Bug Fixes

  • freeze was not resetting configObjects to initial state; addressed performance issue raised by @nexdrew. (#670) (ae4bcd4)

6.1.0 (2016-10-15)

Bug Fixes

  • locales: change some translations (#667) (aa966c5)
  • locales: conform hi locale to y18n.__n expectations (#666) (22adb18)

Features

  • initial support for command aliases (#647) (127a040)
  • command: add camelcase commands to argv (#658) (b1cabae)
  • locales: add Hindi translations (9290912)
  • locales: add Hungarian translations (be92327)
  • locales: Japanese translations for 'did you mean' and 'aliases' (#651) (5eb78fc)
  • locales: Polish translations for 'did you mean' and 'aliases' (#650) (c951c0e)
  • reworking yargs API to make it easier to run in headless environments, e.g., Slack (#646) (f284c29)
  • Turkish translations for 'did you mean' and 'aliases' (#660) (072fd45)

6.0.0 (2016-09-30)

Bug Fixes

  • changed parsing of the command string to ignore extra spaces (#600) (e8e5a72)
  • drop lodash.assign (#641) (ad3146f)
  • for args that have skipValidation set to true, check if the parsed arg is true (#619) (658a34c)
  • upgrade standard, and fix appveyor config so that it works with newest standard (#607) (c301f42)

Chores

Features

  • make opts object optional for .option() (#624) (4f29de6)

Performance Improvements

  • defer windowWidth() to improve perf for non-help usage (#610) (cbc3636)

BREAKING CHANGES

  • coerce is now applied as a final step after other parsing is complete

5.0.0 (2016-08-14)

Bug Fixes

Features

  • .help() API can now enable implicit help command (#574) (7645019)
  • command: builder function no longer needs to return the yargs instance (#549) (eaa2873)
  • add coerce api (#586) (1d53ccb)
  • adds recommendCommands() for command suggestions (#580) (59474dc)
  • apply .env() globally (#553) (be65728)
  • apply default builder to command() and apply fail() handlers globally (#583) (0aaa68b)
  • update yargs-parser to version 3.1.0 (#581) (882a127)

Performance Improvements

  • defer requiring most external libs until needed (#584) (f9b0ed4)

BREAKING CHANGES

  • fail is now applied globally.
  • we now default to an empty builder function when command is executed with no builder.
  • yargs-parser now better handles negative integer values, at the cost of handling numeric option names, e.g., -1 hello
  • default: removed undocumented defaults alias for default.
  • introduces a default help command which outputs help, as an alternative to a help flag.
  • interpret demand() numbers as relative to executing command (#582) (927810c)

4.8.1 (2016-07-16)

Bug Fixes

  • commandDir: make dir relative to caller instead of require.main.filename (#548) (3c2e479)
  • add config lookup for .implies() (#556) (8d7585c)
  • cache pkg lookups by path to avoid returning the wrong one (#552) (fea7e0b)
  • positional arguments were not being handled appropriately by parse() (#559) (063a866)
  • pull in @nexdrew's fixes to yargs-parser (#560) (c77c080), closes #560

4.8.0 (2016-07-09)

Bug Fixes

  • drop unused camelcase dependency fixes #516 (#525) (365fb9a), closes #516 #525
  • fake a tty in tests, so that we can use the new set-blocking (#512) (a54c742)
  • ignore invalid package.json during read-pkg-up (#546) (e058c87)
  • keep both zh and zh_CN until yargs@5.x (0f8faa7)
  • lazy-load package.json and cache. get rid of pkg-conf dependency. (#544) (2609b2e)
  • we now respect the order of _ when applying commands (#537) (ed86b78)

Features

  • add .commandDir(dir) to API to apply all command modules from a relative directory (#494) (b299dff)
  • command: derive missing command string from module filename (#527) (20d4b8a)
  • builder is now optional for a command module (#545) (8d6ad6e)

4.7.1 (2016-05-15)

Bug Fixes

  • switch to using const rather than var (#499)
  • make stdout flush on newer versions of Node.js (#501) (9f8c6f4)

4.7.0 (2016-05-02)

Bug Fixes

  • pkgConf: fix aliases issues in .pkgConf() (#478)(b900502)

Features

  • completion: allow to get completions for any string, not just process.argv (#470)(74fcfbc)
  • configuration: Allow to directly pass a configuration object to .config() (#480)(e0a7e05)
  • validation: Add .skipValidation() method (#471)(d72badb)

4.6.0 (2016-04-11)

Bug Fixes

  • my brand!: I agree with @osher lightweight isn't a huge selling point of ours any longer, see #468 (c46d7e1)

Features

  • switch to standard-version for release management (f70f801)
  • upgrade to version of yargs-parser that introduces some slick new features, great work @elas7. update cliui, replace win-spawn, replace badge. (#475) (f915dd4)

4.5.0 (2016-04-05)

Bug Fixes

  • windows: handle $0 better on Windows platforms (eb6e03f)

Features

  • commands: implemented variadic positional arguments (51d926e)
  • completion: completion now better handles aliases, and avoids duplicating keys. (86416c8)
  • config: If invoking .config() without parameters, set a default option (0413dd1)
  • conventional-changelog: switching to using conventional-changelog for generating the changelog (a2b5a2a)

v4.4.0 (2016/04/03 21:10 +07:00)

  • #454 fix demand() when second argument is an array (@elas7)
  • #452 fix code example for .help() docs (@maxrimue)
  • #450 fix for bash completion trailing space edge-case (@elas7)
  • #448 allow a method to be passed to showHelp, rather than a log-level (@osher)
  • #446 update yargs-parser, y18n, nyc, cliui, pkg-conf (@bcoe)
  • #436 the rebase method is only used by tests, do not export it in two places (@elas7)
  • #428 initial support for subcommands (@nexdrew)

v4.3.2 (2016/3/20 15:07 +07:00)

  • #445 strict mode was failing if no commands were registered (@nexdrew)
  • #443 adds Italian translation \o/ (@madrisan)
  • #441 remove duplicate keys from array options configuration (@elas7)
  • #437 standardize tests for .command() (@lrlna)

v4.3.0 (2016/3/12 14:19 +07:00)

v4.2.0 (2016/2/22 11:02 +07:00)

v4.0.0 (2016/2/14 1:27 +07:00)

  • #384 add new number type to yargs (@lrlna, @maxrimue)
  • #382 pass error as extra parameter to fail (@gajus)
  • #378 introduces the pkgConf feature, which tells yargs to load default argument values from a key on a project's package.json (@bcoe)
  • #376 breaking change, make help() method signature more consistent with other commands (@maxrimue)
  • #368 breaking change, overhaul to command handling API: introducing named positional arguments, commands as modules, introduces the concept of global options (options that don't reset). (@nexdrew, @bcoe).
  • #364 add the slick new yargs website to the package.json (@iarna).
  • #357 .strict() now requires that a valid command is provided (@lrlna)
  • #356 pull the parsing bits of yargs into the separate module yargs-parser. Various parsing options can now be turned on and off using configuration (@bcoe).
  • #330 breaking change, fix inconsistencies with .version() API. (@maxrimue).

v3.32.0 (2016/1/14 10:13 +07:00)

  • #344 yargs now has a code of conduct and contributor guidelines (@bcoe)
  • #341 Fix edge-case with camel-case arguments (@davibe)
  • #331 Handle parsing a raw argument string (@kellyselden)
  • #325 Tweaks to make tests pass again on Windows (@isaacs)
  • #321 Custom config parsing function (@bcoe)

v3.31.0 (2015/12/03 10:15 +07:00)

v3.30.0 (2015/11/13 16:29 +07:00)

v3.29.0 (2015/10/16 21:51 +07:00)

v3.28.0 (2015/10/16 1:55 +07:00)

  • #277 adds support for ansi escape codes (@bcoe)

v3.27.0 (2015/10/08 1:55 +00:00)

  • #271 skips validation for help or version flags with exitProcess(false) (@tepez)
  • #273 implements single output for errors with exitProcess(false) (@nexdrew)
  • #269 verifies single output for errors with exitProcess(false) (@tepez)
  • #268 adds Chinese translation (@qiu8310)
  • #266 adds case for -- after -- in parser test (@geophree)

v3.26.0 (2015/09/25 2:14 +00:00)

v3.25.0 (2015/09/13 7:38 -07:00)

v3.24.0 (2015/09/04 12:02 +00:00)

v3.23.0 (2015/08/30 23:00 +00:00)

v3.22.0 (2015/08/28 22:26 +00:00)

  • #242 adds detectLocale config option (@bcoe)

v3.21.1 (2015/08/28 20:58 +00:00)

v3.21.0 (2015/08/21 21:20 +00:00)

v3.20.0 (2015/08/20 01:29 +00:00)

v3.19.0 (2015/08/14 05:12 +00:00)

v3.18.1 (2015/08/12 05:53 +00:00)

v3.18.0 (2015/08/06 20:05 +00:00)

v3.17.1 (2015/08/02 19:35 +00:00)

v3.17.0 (2015/08/02 18:39 +00:00)

v3.16.0 (2015/07/30 04:35 +00:00)

v3.15.0 (2015/07/06 06:01 +00:00)

  • #197 tweaks to how errors bubble up from parser.js (@bcoe)
  • #193 upgraded nyc, reporting now happens by default (@bcoe)

v3.14.0 (2015/06/28 02:12 +00:00)

  • #192 standard style nits (@bcoe)
  • #190 allow for hidden commands, e.g., .completion('completion', false) (@tschaub)

v3.13.0 (2015/06/24 04:12 +00:00)

  • #187 completion now behaves differently if it is being run in the context of a command (@tschaub)
  • #186 if no matches are found for a completion default to filename completion (@tschaub)

v3.12.0 (2015/06/19 03:23 +00:00)

  • #183 don't complete commands if they've already been completed (@tschaub)
  • #181 various fixes for completion. (@bcoe, @tschaub)
  • #182 you can now set a maximum # of of required arguments (@bcoe)

v3.11.0 (2015/06/15 05:15 +00:00)

  • #173 update standard, window-size, chai (@bcoe)
  • #171 a description can now be set when providing a config option. (@5c077yP)

v3.10.0 (2015/05/29 04:25 +00:00)

v3.9.1 (2015/05/20 05:14 +00:00)

  • b6662b6 clarify .config() docs (@linclark)
  • 0291360 fixed tests, switched to nyc for coverage, fixed security issue, added Lin as collaborator (@bcoe)

v3.9.0 (2015/05/10 18:32 +00:00)

  • #157 Merge pull request #157 from bcoe/command-yargs. allows handling of command specific arguments. Thanks for the suggestion @ohjames (@bcoe)
  • #158 Merge pull request #158 from kemitchell/spdx-license. Update license format (@kemitchell)

v3.8.0 (2015/04/24 23:10 +00:00)

  • #154 showHelp's method signature was misleading fixes #153 (@bcoe)
  • #151 refactor yargs' table layout logic to use new helper library (@bcoe)
  • #150 Fix README example in argument requirements (@annonymouse)

v3.7.2 (2015/04/13 11:52 -07:00)

v3.7.1 (2015/04/10 11:06 -07:00)

v3.7.0 (2015/04/04 02:29 -07:00)

  • 56cbe2d make .requiresArg() work with type hints. (@bcoe).
  • 2f5d562 serialize arrays and objects in usage strings. (@bcoe).
  • 5126304 be more lenient about alias/primary key ordering in chaining API. (@bcoe)

v3.6.0 (2015/03/21 01:00 +00:00)

v3.5.4 (2015/03/12 05:56 +00:00)

  • c16cc08 message for non-option arguments is now optional, thanks to (@raine)

v3.5.3 (2015/03/09 06:14 +00:00)

  • 870b428 completion script was missing in package.json (@bcoe)

v3.5.2 (2015/03/09 06:11 +00:00)

  • 58a4b24 parse was being called multiple times, resulting in strange behavior (@bcoe)

v3.5.1 (2015/03/09 04:55 +00:00)

v3.5.0 (2015/03/09 04:49 +00:00)

  • 718bacd added support for bash completions see #4 (@bcoe)
  • a192882 downgrade to mocha 2.1.0 until https://github.com/mochajs/mocha/issues/1585 can be sorted out (@bcoe)

v3.4.7 (2015/03/09 04:09 +00:00)

  • 9845e5c the Argv singleton was not being updated when manually parsing arguments, fixes #114 (@bcoe)

v3.4.6 (2015/03/09 04:01 +00:00)

v3.4.5 (2015/03/01 20:31 +00:00)

  • a758e0b fix for count consuming too many arguments (@bcoe)

v3.4.4 (2015/02/28 04:52 +00:00)

  • 0476af7 added nargs feature, allowing you to specify the number of arguments after an option (@bcoe)
  • 092477d updated README with full example of v3.0 API (@bcoe)

v3.3.3 (2015/02/28 04:23 +00:00)

  • 0c4b769 remove string dependency, which conflicted with other libraries see #106 (@bcoe)

v3.3.2 (2015/02/28 04:11 +00:00)

v3.3.1 (2015/02/24 03:28 +00:00)

  • ad485ce fix for applying defaults to camel-case args (@bcoe)

v3.3.0 (2015/02/24 00:49 +00:00)

  • 8bfe36d fix and document restart() command, as a tool for building nested CLIs (@bcoe)

v3.2.1 (2015/02/22 05:45 +00:00)

  • 49a6d18 you can now provide a function that generates a default value (@bcoe)

v3.2.0 (2015/02/22 05:24 +00:00)

v3.1.0 (2015/02/19 19:37 +00:00)

  • 9bd2379 version now accepts a function, making it easy to load version #s from a package.json (@bcoe)

v3.0.4 (2015/02/14 01:40 +00:00)

v3.0.3 (2015/02/14 00:59 +00:00)

  • c3f35e9 make sure dot-notation is applied to aliases (@bcoe)

3.0.2 (2015/02/13 16:50 +00:00)

  • 74c8967 document epilog shorthand of epilogue. (@bcoe)
  • 670110f any non-truthy value now causes check to fail see #76 (@bcoe)
  • 0d8f791 finished implementing my wish-list of fetures for yargs 3.0. see #88 (@bcoe)
  • 5768447 fix coverage. (@bcoe)
  • 82e793f detect console width and perform word-wrapping. (@bcoe)
  • 67476b3 refactor two-column table layout so that we can use it for examples and usage (@bcoe)
  • 4724cdf major refactor of index.js, in prep for 3.x release. (@bcoe)

v2.3.0 (2015/02/08 20:41 +00:00)

v2.2.0 (2015/02/08 20:07 +00:00)

  • d6edd98 in-prep for further refactoring, and a 3.x release I've shuffled some things around and gotten test-coverage to 100%. (@bcoe)

v2.1.2 (2015/02/08 06:05 +00:00)

v2.1.1 (2015/02/06 08:08 +00:00)

v2.1.0 (2015/02/06 07:59 +00:00)

  • 6a1a3fa try to guess argument types, and apply sensible defaults see #73 (@bcoe)

v2.0.1 (2015/02/06 07:54 +00:00)

v2.0.0 (2015/02/06 07:45 +00:00)

v1.3.2 (2014/10/06 21:56 +00:00)

list (2014/08/30 18:41 +00:00)

  • fbc777f Now that yargs is the successor to optimist, I'm changing the README language to be more universal. Pirate speak isn't very accessible to non-native speakers. (@chevex)
  • a54d068 version output will not print extra newline (@boneskull)
  • 1cef5d6 Added contributors section to package.json (@chrisn)
  • cc295c0 Added 'require' and 'required' as synonyms for 'demand' (@chrisn)
  • d0bf951 Updating minimist. (@chevex)
  • c15f8e7 Fix #31 (bad interaction between camelCase options and strict mode) (@nylen)
  • d991b9b Added .help() and .version() methods (@chrisn)
  • e8c8aa4 Added .showHelpOnFail() method (@chrisn)
  • e855af4 Allow boolean flag with .demand() (@chrisn)
  • 14dbec2 Fixes issue #22. Arguments are no longer printed to the console when using .config. (@chevex)
  • bef74fc Informing users that Yargs is the official optimist successor. (@chevex)
  • #24 Merge pull request #24 from chrisn/strict (@chrisn)
  • 889a2b2 Added requiresArg option, for options that require values (@chrisn)
  • eb16369 Added .strict() method, to report error if unknown arguments are given (@chrisn)
  • 0471c3f Changed optimist to yargs in usage-options.js example (@chrisn)
  • 5c88f74 Change optimist to yargs in examples (@chrisn)
  • 66f12c8 Fix a couple of bad interactions between aliases and defaults (@nylen)
  • 8fa1d80 Document second argument of usage(message, opts) (@Gobie)
  • 56e6528 For "--some-option", also set argv.someOption (@nylen)
  • ed5f6d3 Finished porting unit tests to Mocha. (@chevex)

v1.0.15 (2014/02/05 23:18 +00:00)

v1.0.14 (2014/02/05 23:17 +00:00)

  • f33bbb0 Revert "Fixed issue which caused .demand function not to work correctly." (@chevex)

v1.0.13 (2014/02/05 22:13 +00:00)

  • 6509e5e Fixed issue which caused .demand function not to work correctly. (@chevex)

v1.0.12 (2013/12/13 00:09 +00:00)

v1.0.11 (2013/12/13 00:07 +00:00)

v1.0.10 (2013/12/12 23:57 +00:00)

v1.0.9 (2013/12/12 23:47 +00:00)

v1.0.8 (2013/12/06 16:36 +00:00)

v1.0.7 (2013/11/24 18:01 +00:00)

v1.0.6 (2013/11/23 19:21 +00:00)

v1.0.5 (2013/11/23 19:09 +00:00)

v1.0.4 (2013/11/23 19:05 +00:00)

  • 9e81e81 Updated README with a notice about yargs being a fork of optimist and what that implies. (@chevex)

v1.0.3 (2013/11/23 17:43 +00:00)

  • 65e7a78 Changed some small wording in README.md. (@chevex)
  • 459e20e Fix a bug in the options function, when string and boolean options weren't applied to aliases. (@shockone)

v1.0.2 (2013/11/23 09:46 +00:00)

v1.0.1 (2013/11/23 09:39 +00:00)

v1.0.0 (2013/11/23 09:33 +00:00)

0.6.0 (2013/06/25 08:48 +00:00)

0.5.2 (2013/05/31 03:46 +00:00)

0.5.1 (2013/05/30 07:17 +00:00)

0.5.0 (2013/05/18 21:59 +00:00)

0.4.0 (2013/04/13 19:03 +00:00)

0.3.7 (2013/04/04 04:07 +00:00)

  • 6c7a0ec Fix for windows. On windows there is no _ in environment. (@hdf)

0.3.6 (2013/04/04 04:04 +00:00)

0.3.5 (2012/10/10 11:09 +00:00)

0.3.4 (2012/04/30 06:54 +00:00)

0.3.3 (2012/04/30 06:45 +00:00)

0.3.2 (2012/04/12 20:28 +00:00)

0.3.1 (2011/12/31 08:44 +00:00)

0.3.0 (2011/12/09 06:03 +00:00)

0.2.7 (2011/10/20 02:25 +00:00)