All notable changes to this project will be documented in this file. See standard-version for commit guidelines.
4.7.1 (2016-05-15)
- switch to using
const
rather thanvar
(#499) - make stdout flush on newer versions of Node.js (#501) (9f8c6f4)
4.7.0 (2016-05-02)
- 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)
- my brand!: I agree with @osher lightweight isn't a huge selling point of ours any longer, see #468 (c46d7e1)
- 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)
- windows: handle $0 better on Windows platforms (eb6e03f)
- 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)
- #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)
- #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)
- #432 non-singleton version of yargs (@bcoe)
- [#422, #425, #420] translations for number (@zkat, @rilut, @maxrimue, @watilde)
- #414 all command options can be defined in module now (@nexdrew)
- #395 do not reset groups if they contain global keys (@novemberborn)
- #393 use sane default for usage strings (@nexdrew)
- #392 resetting wrap() was causing layout issues with commands (@nexdrew)
- #391 commands were being added multiple times (@nexdrew)
- #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).
- #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)
- #239 Pass argv to commands (@bcoe)
- #308 Yargs now handles environment variables (@nexdrew)
- #302 Add Indonesian translation (@rilut)
- #300 Add Turkish translation (@feyzo)
- #298 Add Norwegian Bokmål translation (@sindresorhus)
- #297 Fix for layout of cjk characters (@disjukr)
- #296 Add Korean translation (@disjukr)
- #293 Polish language support (@kamilogorek)
- #291 fix edge-cases with
.alias()
(@bcoe) - #289 group options in custom groups (@bcoe)
- #277 adds support for ansi escape codes (@bcoe)
- #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)
- #263 document count() and option() object keys (@nexdrew)
- #259 remove util in readme (@38elements)
- #258 node v4 builds, update deps (@nexdrew)
- #257 fix spelling errors (@dkoleary88)
- #248 reinstate os-locale, no spawning (@nexdrew)
- #249 use travis container-based infrastructure (@nexdrew)
- #247 upgrade standard (@nexdrew)
- #246 detect locale based only on environment variables (@bcoe)
- #244 adds Windows CI testing (@bcoe)
- #245 adds OSX CI testing (@bcoe, @nexdrew)
- #242 adds detectLocale config option (@bcoe)
- #240 hot-fix for Atom on Windows (@bcoe)
- #238 upgrade camelcase, window-size, chai, mocha (@nexdrew)
- #237 adds defaultDescription to option() (@nexdrew)
- #231 Merge pull request #231 from bcoe/detect-locale (@sindresorhus)
- #235 adds german translation to yargs (@maxrimue)
- #224 added Portuguese translation (@codemonkey3045)
- #228 notes about embedding yargs in Electron (@etiktin)
- #223 make booleans work in config files (@sgentle)
- #222 updates fr locale (@nexdrew)
- #221 adds missing locale strings (@nexdrew)
- #220 adds es locale (@zkat)
- #218 upgrades nyc (@bcoe)
- #210 adds i18n support to yargs (@bcoe)
- #209 adds choices type to yargs (@nexdrew)
- #207 pretty new shields from shields.io (@SimenB)
- #208 improvements to README.md (@nexdrew)
- #205 faster build times on Travis (@ChristianMurphy)
- #197 tweaks to how errors bubble up from parser.js (@bcoe)
- #193 upgraded nyc, reporting now happens by default (@bcoe)
- #192 standard style nits (@bcoe)
- #190 allow for hidden commands, e.g., .completion('completion', false) (@tschaub)
- #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)
- #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)
- #173 update standard, window-size, chai (@bcoe)
- #171 a description can now be set when providing a config option. (@5c077yP)
- #165 expose yargs.terminalWidth() thanks @ensonic (@bcoe)
- #164 better array handling thanks @getify (@bcoe)
- b6662b6 clarify .config() docs (@linclark)
- 0291360 fixed tests, switched to nyc for coverage, fixed security issue, added Lin as collaborator (@bcoe)
- #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)
- #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)
- 679fbbf updated yargs to use the standard style guide (agokjr)
- [22382ee](https://github.com/bcoe/yargs/commit/22382ee9f5b495bc2586c1758cd1091cec3647f9 various bug fixes for $0 (@nylen)
- 89e1992 detect iojs bin along with node bin. (@bcoe)
- 755509e improvements to example documentation in README.md (@rstacruz)
- 0d2dfc8 showHelp() no longer requires that .argv has been called (@bcoe)
- 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)
- 4e24e22 support for .js configuration files. (@pirxpilot)
- c16cc08 message for non-option arguments is now optional, thanks to (@raine)
- 870b428 completion script was missing in package.json (@bcoe)
- 58a4b24 parse was being called multiple times, resulting in strange behavior (@bcoe)
- 4e588e0 accidentally left testing logic in (@bcoe)
- 718bacd added support for bash completions see #4 (@bcoe)
- a192882 downgrade to mocha 2.1.0 until mochajs/mocha#1585 can be sorted out (@bcoe)
- 9845e5c the Argv singleton was not being updated when manually parsing arguments, fixes #114 (@bcoe)
- 45b4c80 set placeholders for all keys fixes #115 (@bcoe)
- a758e0b fix for count consuming too many arguments (@bcoe)
- 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)
- 0c4b769 remove string dependency, which conflicted with other libraries see #106 (@bcoe)
- 2a98906 add $0 to epilog (@schnittstabil)
- ad485ce fix for applying defaults to camel-case args (@bcoe)
- 8bfe36d fix and document restart() command, as a tool for building nested CLIs (@bcoe)
- 49a6d18 you can now provide a function that generates a default value (@bcoe)
- 7a55886 improvements to yargs two-column text layout (@bcoe)
- b6ab513 Tweak NPM version badge (@nylen)
- 9bd2379 version now accepts a function, making it easy to load version #s from a package.json (@bcoe)
- 0b7c19b various fixes for dot-notation handling (@bcoe)
- c3f35e9 make sure dot-notation is applied to aliases (@bcoe)
- 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)
- d824620 allow for undefined boolean defaults (@ashi009)
- d6edd98 in-prep for further refactoring, and a 3.x release I've shuffled some things around and gotten test-coverage to 100%. (@bcoe)
- d640745 switch to path.relative (@bcoe)
- 3bfd41f remove mocha.opts. (@bcoe)
- 47a2f35 document using .string('_') for string ids. see #56 (@bcoe)
- #57 Merge pull request #57 from eush77/option-readme (@eush77)
- 01c6c61 fix for #71, 'newAliases' of undefined (@bcoe)
- 6a1a3fa try to guess argument types, and apply sensible defaults see #73 (@bcoe)
- 96a06b2 Fix for strange behavior with --sort option, see #51 (@bcoe)
- 0250517 - 108fb84 fixed bug with boolean parsing, when bools separated by = see #66 (@bcoe)
- a465a59 Add
files
field to the package.json (@shinnn) - 31043de fix for yargs.argv having the same keys added multiple times see #63 (@bcoe)
- 2d68c5b Disable process.exit calls using .exitProcess(false) (@cianclarke)
- 45da9ec Mention .option in README (@eush77)
- b8d3472 1.3.2 (@chevex)
- 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)
- e2b1fc0 1.0.15 update to badges (@chevex)
- f33bbb0 Revert "Fixed issue which caused .demand function not to work correctly." (@chevex)
- 6509e5e Fixed issue which caused .demand function not to work correctly. (@chevex)
- 05eb267 1.0.12 (@chevex)
- c1bde46 1.0.11 (@chevex)
- dfebf81 Fixed formatting in README (@chevex)
- 0b4e34a Update README.md (@chevex)
- #1 fix error caused by check() see #1 (@martinheidegger)
- a247d88 Modified Pirate Joe image. (@chevex)
- d7f69e1 Updated Pirate Joe image. (@chevex)
- ece809c Updated readme notice again. (@chevex)
- 9e81e81 Updated README with a notice about yargs being a fork of optimist and what that implies. (@chevex)
- 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)
- 3d80ebe 1.0.2 (@chevex)
- f80ff36 Updated image. (@chevex)
- 54e31d5 Rebranded from optimist to yargs in the spirit of the fork :D (@chevex)
- 4ebb6c5 Added documentation for demandCount(). (@chevex)
- 4561ce6 Simplified the error messages returned by .check(). (@chevex)
- 661c678 Fixed an issue with demand not accepting a zero value. (@chevex)
- 731dd3c Add .fail(fn) so death isn't the only option. Should fix issue #39. (@chevex)
- fa15417 Added a few missing 'return self' (@chevex)
- e655e4d Fix showing help in certain JS environments. (@chevex)
- a746a31 Better string representation of default values. (@chevex)
- 6134619 Implies: conditional demands (@chevex)
- 046b93b Added support for JSON config files. (@chevex)
- a677ec0 Add .example(cmd, desc) feature. (@chevex)
- 1bd4375 Added 'defaults' as alias to 'default' so as to avoid usage of a reserved keyword. (@chevex)
- 6b753c1 add .normalize(args..) support for normalizing paths (@chevex)
- 33d7d59 Customize error messages with demand(key, msg) (@chevex)
- 647d37f Merge branch 'rewrite-duplicate-test' of github.com:isbadawi/node-optimist (@chevex)
- 9059d1a Pass aliases object to check functions for greater versatility. (@chevex)
- 623dc26 Added ability to count boolean options and rolled minimist library back into project. (@chevex)
- 49f0dce Fixed small typo. (@chevex)
- 79ec980 Removed dependency on wordwrap module. (@chevex)
- ea14630 Merge branch 'master' of github.com:chbrown/node-optimist (@chevex)
- 2b75da2 Merge branch 'master' of github.com:seanzhou1023/node-optimist (@chevex)
- d9bda11 Merge branch 'patch-1' of github.com:thefourtheye/node-optimist (@chevex)
- d6cc606 Renamed README. (@chevex)
- 9498d3f Renamed readme and added .gitignore. (@chevex)
- bbd1fe3 Included examples for
help
andshowHelp
functions and fixed few formatting issues (@thefourtheye) - 37fea04 .alias({}) behaves differently based on mapping direction when generating descriptions (@chbrown)
- 855b20d Documented function signatures are useful for dynamically typed languages. (@chbrown)
- d37bfe0 all tests passing using minimist (@substack)
- 76f1352 all parse tests now passing (@substack)
- a7b6754 using minimist, some tests passing (@substack)
- 6655688 Give credit where its due (@DeadAlready)
- 602a2a9 v0.5.3 - Remove wordwrap as dependency (@DeadAlready)
- 4497ca5 fixed the whitespace bug without breaking anything else (@substack)
- 5a3dd1a failing test for whitespace arg (@substack)
- a20228f fix parse() to work with functions before it (@substack)
- b13bd4c failing test for parse() with modifiers (@substack)
- c474a64 fixes for dash (@substack)
- dafe3e1 failing short test (@substack)
- 6c7a0ec Fix for windows. On windows there is no _ in environment. (@hdf)
- e72346a Add support for newlines in -a="" arguments (@danielbeardsley)
- 71e1fb5 drop 0.4, add 0.8 to travis (@substack)
- f28c0e6 bump for string "true" params (@substack)
- 8f44aeb Fix failing test for aliased booleans. (@coderarity)
- b9f7b61 Add failing test for short aliased booleans. (@coderarity)
- 541bac8 Fixes #37.
- 3a0f014 travis badge (@substack)
- 4fb60bf Fix boolean aliases. (@coderarity)
- f14dda5 Adjusted package.json to use tap (@jfhbrook)
- 88e5d32 test/usage.js no longer hangs (@jfhbrook)
- e1e740c two tests for combined boolean/alias opts parsing (@jfhbrook)
- d09b719 If "default" is set to false it was not passed on, fixed. (@wolframkriesing)
- 6e74aa7 bump and documented dot notation (@substack)
- 94adee2 argv._ can be told 'Hey! argv._! Don't be messing with my args.', and it WILL obey (@colinta)
- c46fdd5 optimistic critter image (@substack)
- 5c95c73 alias options() to option() (@substack)
- f7692ea [fix] Fix for parsing boolean edge case (@indexzero)
- d1f92d1
- b01bda8 [fix test] Update to ensure optimist is aware of default booleans. Associated tests included (@indexzero)
- aa753e7 [dist test] Update devDependencies in package.json. Update test pathing to be more npm and require.paths future-proof (@indexzero)
- 7bfce2f s/sys/util/ (@substack)
- d420a7a update usage output (@substack)
- cf86eed some sage readme protips about parsing rules (@substack)
- 5da9f7a documented all the methods finally (@substack)
- 8ca6879 fenced syntax highlighting (@substack)
- b72bacf right-alignment of wrapped extra params (@substack)
- 2b980bf now with .wrap() (@substack)
- d614f63 don't show 'Options:' when there aren't any (@substack)
- 691eda3 failing test for multi-aliasing (@substack)
- 0826c9f "Options:" > "options:" (@substack)
- 72f7490 [minor] Update formatting for
.showHelp()
(@indexzero) - 75aecce options works again, too lazy to write a proper test right now (@substack)
- f742e54 line_count_options example, which breaks (@substack)
- 4ca06b8 line count example (@substack)
- eeb8423 remove self.argv setting in boolean (@substack)
- 6903412 removed camel case for now (@substack)
- 5a0d88b remove dead longest checking code (@substack)
- d782170 .help() too (@substack)
- 622ec17 rm old help generator (@substack)
- 7c8baac nub keys (@substack)
- 8197785 generate help message based on the previous calls, todo: nub (@substack)
- 3ffbdc3 stub out new showHelp, better checks (@substack)
- d4e21f5 let .options() take single options too (@substack)
- 3c4cf29 .options() is now heaps simpler (@substack)
- 89f0d04 defaults work again, all tests pass (@substack)
- dd87333 update test error messages, down to 2 failing tests (@substack)
- 53f7bc6 fix for bools doubling up, passes the parse test again, others fail (@substack)
- 2213e2d refactored for an argv getter, failing several tests (@substack)
- d1e7379 just rescan for now, alias test passes (@substack)
- b2f8c99 failing alias test (@substack)
- d0c0174 .alias() (@substack)
- d85f431 [api] Remove
.describe()
in favor of building upon the existing.usage()
API (@indexzero) - edbd527 [doc api] Add
.describe()
,.options()
, and.showHelp()
methods along with example. (@indexzero) - be4902f updates for coffee since it now does argv the node way (@substack)
- e24cb23 more general coffeescript detection (@substack)
- 78ac753 Don't trigger the CoffeeScript hack when running under node_g. (@papandreou)
- bcfe973 .string() but failing test (@substack)
- 1987aca test hex strings (@substack)
- ef36db3 more keywords (@substack)
- cc53c56 Added camelCase function that converts --multi-word-option to camel case (so it becomes argv.multiWordOption). (@papandreou)
- 60b57da fixed boolean bug by rescanning (@substack)
- dff6d07 boolean examples (@substack)
- 0e380b9 boolean() with passing test (@substack)
- 62644d4 coffee compatibility with node regex for versions too (@substack)
- 430fafc argv._ fixed by fixing the coffee detection (@substack)
- 343b8af whichNodeArgs test fails too (@substack)
- 63df2f3 replicated mnot's bug in whichNodeEmpty test (@substack)
- 35473a4 test for ./bin usage (@substack)
- 13df151 don't coerce booleans to numbers (@substack)
- 85f8007 package bump for automatic number conversion (@substack)
- 8f17014 updated readme and examples with new auto-numberification goodness (@substack)
- 73dc901 auto number conversion works yay (@substack)
- bcec56b failing test for not-implemented auto numification (@substack)
- ebd2844 odd that eql doesn't check types careflly (@substack)
- fd854b0 package author + keywords (@substack)
- 656a1d5 updated readme with .default() stuff (@substack)
- cd7f8c5 passing tests for new .default() behavior (@substack)
- 932725e new default() thing for setting default key/values (@substack)
- 4e6c7ab test for coffee usage (@substack)
- d54ffcc new --key value style with passing tests. NOTE: changes existing behavior (@substack)
- ed2a2d5 package bump for summatix's coffee script fix (@substack)
- 75a975e Added support for CoffeeScript (@summatix)
- 56b2b1d test coverage for the falsy check() usage (@substack)
- a4843a9 check bug fixed plus a handy string (@substack)
- 857bd2d tests for demandCount, back up to 100% coverage (@substack)
- 073b776 call demandCount from demand (@substack)
- 4bd4b7a add demandCount to check for the number of arguments in the _ list (@marshall)
- b8689ac Rebase checks. That will be its own module eventually. (@substack)
- e688370 a $0 like in perl (@substack)
- 2e5e196 usage test hacking around process and console (@substack)
- fcc3521 description pun (@substack)
- 87a1fe2 mit/x11 license (@substack)
- 8d089d2 bool example is more consistent and also shows off short option grouping (@substack)
- 448d747 start of the readme and examples (@substack)
- da74dea more tests for long and short captures (@substack)
- ab6387e silly bug in the tests with s/not/no/, all tests pass now (@substack)
- 102496a hack an instance for process.argv onto Argv so the export can be called to create an instance or used for argv, which is the most common case (@substack)
- a01caeb divide example (@substack)
- 443da55 start of the lib with a package.json (@substack)