Skip to content

chore(main): release 16.1.0 - #513

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
release-please--branches--main--components--yargs-parser
Open

github-actions[bot] wants to merge 1 commit into
mainfrom
release-please--branches--main--components--yargs-parser

Conversation

@github-actions

@github-actions github-actions Bot commented Jul 29, 2025 •

Copy link
Copy Markdown
Contributor

🤖 I have created a release beep boop

16.1.0 (2026-10-31)

⚠ BREAKING CHANGES

  • yargs is now ESM first (#503)
  • drops support for 10 (#421)
  • do not ship type definitions (#318)
  • adds support for ESM and Deno (#295)
  • ts: projects using @types/yargs-parser may see variations in type definitions.
  • drops Node 6. begin following Node.js LTS schedule (#278)
  • the narg count is now enforced when parsing arrays.
  • this reverts parsing behavior of booleans to that of yargs@14
  • objects used during parsing are now created with a null prototype. There may be some scenarios where this change in behavior leaks externally.
  • populate error if incompatible narg/count or array/count options are used (#191)
  • moving to c8 for coverage and dropping Node 6 from build matrix (#209)
  • rework collect-unknown-options into unknown-options-as-args, providing more comprehensive functionality
  • unless "parse-numbers" is set to "false", arrays of numeric strings are now parsed as numbers, rather than strings.
  • we have dropped the broken "defaulted" functionality; we would like to revisit adding this in the future.
  • maybeCoerceNumber now takes precedence over coerce return value (#182)
  • options with leading '+' or '0' now parse as strings
  • a flag with no right-hand value no longer populates defaulted options with undefined.
  • quotes and beginning and endings of strings are not removed during parsing.
  • drops Node 4 support
  • the argv object is now populated differently (correctly) when hyphens and dot notation are used in conjunction.
  • boolean flags defined without a default value will now behave like other option type and won't be set in the parsed results when the user doesn't set the corresponding CLI arg.
  • arguments of form --foo, -abc, will no longer be consumed by nargs
  • strings that fail Number.isSafeInteger() are no longer coerced into numbers.
  • populate-- now defaults to false.
  • rather than placing arguments in "_", when parsing is stopped via "--"; we now populate an array called "--" by default.
  • camelcase now requires Node 4+.
  • environment variables will now override config files (args, env, config-file, config-object)
  • coerce is no longer applied to individual arguments in an implicit array.

Features

  • add -- option which allows arguments after the -- flag to be returned separated from positional arguments (#84) (2572ca8)
  • add set-placeholder-key configuration (#123) (19386ee)
  • add strip-aliased and strip-dashed configuration options. (#172) (a3936aa)
  • add configuration option to "collect-unknown-options" (#181) (7909cc4)
  • add halt-at-non-option configuration option (#130) (a849fce)
  • added coerce option, for providing specialized argument parsing (#42) (7b49cd2)
  • adds parse-positional-numbers configuration (#321) (9cec00a)
  • adds support for ESM and Deno (#295) (195bc4a)
  • allow configuration of prefix for boolean negation (#94) (00bde7d)
  • allow multiple arrays to be provided, rather than always combining (#71) (0f0fb2d)
  • allow the browser build to be imported (#443) (a89259f)
  • also add camelCase array options (#125) (08c0117)
  • apply coercions to default options (#65) (c79052b)
  • array.type can now be provided, supporting coercion (#132) (4b8cfce)
  • boolean arguments will not be collected into an implicit array (#236) (34c4e19)
  • coerce full array instead of each element (#51) (cc4dc56)
  • configuration: Allow to pass configuration objects to yargs-parser (0780900)
  • default value is now used if no right-hand value provided for numbers/strings (#156) (5a7c46a)
  • deps: update to latest camelcase/decamelize (#281) (8931ab0)
  • don't coerce number from string with leading '0' or '+' (#158) (18d0fd5)
  • environment: Support nested options in environment variables (#26) thanks @elas7 \o/ (020778b)
  • expose camelCase and decamelize helpers (#296) (39154ce)
  • handle dot notation boolean options (#63) (02c3545)
  • introduce greedy-arrays config, for specifying whether arrays consume multiple positionals (#249) (60e880a)
  • introduce nargs-eats-options config option (#246) (d50822a)
  • introduce single-digit boolean aliases (#255) (9c60265)
  • make combining arrays a configurable option (#111) (c8bf536)
  • maybeCoerceNumber() now takes into account arrays (#187) (31c204b)
  • merge array from arguments with array from config (#83) (806ddd6)
  • NaN can now be provided as a value for nargs, indicating "at least" one value is expected for array (#251) (9db4be8)
  • narg arguments no longer consume flag arguments (#114) (60bb9b3)
  • normalize: allow normalize to work with arrays (e0eaa1a)
  • options that have had their default value used are now tracked (#211) (a525234)
  • populate error if incompatible narg/count or array/count options are used (#191) (84a401f)
  • rework collect-unknown-options into unknown-options-as-args, providing more comprehensive functionality (ef771ca)
  • reworking how numbers are parsed (#104) (fba00eb)
  • string-utils: export looksLikeNumber helper (#324) (c8580a2)
  • support boolean which do not consume next argument. (#171) (0ae7fcb)
  • when parsing stops, we now populate "--" by default (#88) (cd666db)
  • yargs is now ESM first (#503) (6d69295)

Bug Fixes

  • proto will now be replaced with proto in parse (#258) (63810ca)
  • address bugs with "uknown-options-as-args" (bc023e3)
  • address issue with array options with array default values (#206) (f5f9e5a)
  • address pkgConf parsing bug outlined in #37 (#45) (be76ee6)
  • allow null config values (#108) (d8b14f9)
  • array should take precedence over nargs, but enforce nargs (#243) (4cbc188)
  • array, nargs: support -o=--value and --option=--value format (#262) (41d3f81)
  • better handling of quoted strings (#153) (2fb71b2)
  • better parsing of negative values (#44) (2e43692)
  • boolean arrays with default values (#185) (7d42572)
  • boolean flag when next value contains the strings 'true' or 'false'. (69941a6)
  • boolean now behaves the same as other array types (#184) (17ca3bd)
  • boolean numeric short option (#294) (f600082)
  • boolean: fix for boolean options with non boolean defaults (#20) (2dbe86b)
  • build: fixed automated release pipeline (1fe9135)
  • build: fixing publication (#310) (5d3c6c2)
  • build: push tag created for deno (2186a14)
  • build: switch to action for publish (#308) (5c2f305)
  • build: update release-please; make labels kick off builds (#323) (09f448b)
  • check aliases when guessing defaults for arguments fixes #41 (#43) (f3e4616)
  • coerce should be applied to the final objects and arrays created (#57) (4ca69da)
  • convert values to strings when tokenizing (#167) (57b7883)
  • count: do not increment a default value (#39) (b04a189)
  • default '--' to undefined when not provided; this is closer to the array API (#90) (4e739cc)
  • deno: address import issues in Deno (#339) (3b54e5e)
  • deno: force relese for Deno (6687c97)
  • deno: update types for deno ^1.4.0 (#330) (0ab92e5)
  • deps: update dependency decamelize to v3 (#274) (4d98698)
  • do not lowercase camel cased string (#348) (5f4da1f)
  • do not set boolean flags if not defined in argv (#119) (f6e6599)
  • eatNargs() for 'opt.narg === 0' and boolean typed options (#188) (c5a1db0)
  • ensure consistent parsing of dot-notation arguments (#102) (c9bd79c)
  • ensure empty string is added into argv._ (#140) (79cda98)
  • environment variables should take precedence over config file (#81) (76cee1f)
  • esm json import (#416) (90f970a)
  • exports: node 13.0 and 13.1 require the dotted object form with a string fallback (#336) (3ae7242)
  • exports: node 13.0-13.6 require a string fallback (#333) (291aeda)
  • flatten-duplicate-arrays:false for more than 2 arrays (#128) (2bc395f)
  • flatten/duplicate regression (#75) (68d68a0)
  • halt-at-non-option: prevent known args from being parsed when "unknown-options-as-args" is enabled (#438) (c474bc1)
  • handling of one char alias (#139) (ee56e31)
  • hyphenated flags combined with dot notation broke parsing (#131) (dc788da)
  • Ignore multiple spaces between arguments. (#100) (d137227)
  • implement @antoniom's fix for camel-case expansion (3087e1d)
  • inner objects in configs had their keys appended to top-level key when dot-notation was disabled (#72) (0b1b5f9)
  • locale: Turkish camelize and decamelize issues with toLocaleLowerCase/toLocaleUpperCase (2617303)
  • lodash.assign was deprecated (#59) (5e7eb11)
  • make requiresArg work in conjunction with arrays (#136) (77ae1d4)
  • maybeCoerceNumber now takes precedence over coerce return value (#182) (2f26436)
  • nargs should allow duplicates when duplicate-arguments-array=false (#164) (47ccb0b)
  • nargs was consuming too many arguments (4fef206)
  • nargs was still aggressively consuming too many arguments (9b28aad)
  • node version check now uses process.versions.node (#450) (d07bcdb)
  • normalized keys were not enumerable (#247) (57119f9)
  • only run coercion functions once, despite aliases. (#76) (#103) (507aaef)
  • only strip camel case if hyphenated (#316) (95a9e78), closes #315
  • package: remove tests from tarball (0353c0d)
  • parse options ending with 3+ hyphens (#434) (4f1060b)
  • parse short option with trailing equals and empty value (-o=) as empty string (#541) (aa386be)
  • parser should preserve inner quotes (#407) (ae11f49)
  • parsing hints should apply for dot notation keys (#86) (3e47d62)
  • parsing issue with numeric character in group of options (#19) (f743236)
  • parsing: handle calling short option with an empty string as the next value. (a867165)
  • perf: address slow parse when using unknown-options-as-args (#394) (441f059)
  • populate--: -- should always be array (#354) (585ae8f)
  • preserve negative number handling when short-option-groups:false (#511) (ccc3634)
  • raise permission error for Deno if config load fails (#298) (1174e2b)
  • remove inaccurate and unnecessary regexp used by unknown-options-as-args (#508) (cea8972)
  • return deno env object (#432) (b00eb87)
  • scientific notation circumvented bounds check (#110) (3571f57)
  • setArg: options using camel-case and dot-notation populated twice (#268) (f7e15b9)
  • setKey: use a sentinel to detect count auto-increment (#529) (add38aa)
  • should populate "_" when given config with "short-option-groups" false (#179) (6055974)
  • string-utils: detect [0,1] ranged values as numbers (#388) (efcc32c)
  • support keys that collide with object prototypes (#234) (1587b6d)
  • support negative numbers with decimal places (#208) (850bbda)
  • take into account aliases when appending arrays from config object (#199) (f8a2d3f)
  • tokenizer should ignore spaces at the beginning of the argString (#106) (f34ead9)
  • typescript: ignore .cts files during publish (#454) (d69f9c3), closes #452
  • types: envPrefix should be optional (#305) (ae3f180)
  • types: switch back to using Partial types (#293) (bdc80ba)
  • unknown options terminated with digits now handled by unknown-options-as-args (#238) (d36cdfa)
  • unknown-options-as-args now respects short-option-groups (#510) (60f2db5)
  • unknown-options-as-args should treat negated boolean as unknown when boolean-negation:false (#509) (b82ba0f)
  • unknown-options-as-args: '--' is not an unknown option (#207) (3fee2d8)
  • unknown-options-as-args: convert positionals that look like numbers (#326) (f85ebb4)
  • update dependencies; add standard-version bin for next release (#24) (822d9d5)
  • upgraded lodash.assign (5d7fdf4)
  • whoops, let's make the assign not change the Object key order (29d069a)

Reverts

  • make requiresArg work in conjunction with arrays (#136) (f4a3063)
  • revert 16.0.0 CHANGELOG entry (920320a)

Miscellaneous Chores

Code Refactoring

Build System

  • drops Node 6. begin following Node.js LTS schedule (#278) (9014ed7)
  • moving to c8 for coverage and dropping Node 6 from build matrix (#209) (f3a9316)

This PR was generated with Release Please. See documentation.

@github-actions
github-actions Bot force-pushed the release-please--branches--main--components--yargs-parser branch 2 times, most recently from 77007bf to 7556d67 Compare August 1, 2025 13:11
@github-actions
github-actions Bot force-pushed the release-please--branches--main--components--yargs-parser branch 2 times, most recently from 6323854 to 9e5ef35 Compare August 9, 2026 05:42
@github-actions
github-actions Bot force-pushed the release-please--branches--main--components--yargs-parser branch from 9e5ef35 to 2c90763 Compare August 17, 2026 07:08
@github-actions
github-actions Bot force-pushed the release-please--branches--main--components--yargs-parser branch from 2c90763 to 0eb964b Compare September 4, 2026 05:38
@github-actions
github-actions Bot force-pushed the release-please--branches--main--components--yargs-parser branch 4 times, most recently from bb48aec to 1b2a78b Compare October 11, 2026 20:40
@github-actions
github-actions Bot force-pushed the release-please--branches--main--components--yargs-parser branch from 1b2a78b to 522b3f7 Compare October 30, 2026 08:56
@github-actions github-actions Bot changed the title chore(main): release yargs-parser 22.0.1 chore(main): release 16.1.0 Oct 31, 2026
@github-actions
github-actions Bot force-pushed the release-please--branches--main--components--yargs-parser branch from 522b3f7 to 1845a59 Compare October 31, 2026 04:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

21.1.0 has broken typings strictOptions with 'strip-aliased' doesn't work with a capitalize option array with alias not working well

0 participants