Repository navigation
refactor: Bump inquirer from 13.2.2 to 14.2.3 - #3501
Conversation
|
🚀 Thanks for opening this pull request! We appreciate your effort in improving the project. Please let us know once your pull request is ready for review. Tip
Note Please respond to review comments from AI agents just like you would to comments from a human reviewer. Let the reviewer resolve their own comments, unless they have reviewed and accepted your commit, or agreed with your explanation for why the feedback was incorrect. Caution Pull requests must be written using an AI agent with human supervision. Pull requests written entirely by a human will likely be rejected, because of lower code quality, higher review effort and the higher risk of introducing bugs. Please note that AI review comments on this pull request alone do not satisfy this requirement. Our CI and AI review are safeguards, not development tools. If many issues are flagged, rethink your development approach. Invest more effort in planning and design rather than using review cycles to fix low-quality code. |
Closes #3498
Changes
inquirer13.2.2 → 14.2.3. It is a direct production dependency, used only by the--createUserand--createMFACLI helpers inParse-Dashboard/CLI/mfa.js. The lock file resolves the@inquirer/*sub-packages to the latest versions allowed by inquirer's ranges (@inquirer/core12.0.5,@inquirer/prompts8.7.4,@inquirer/number4.2.5,@inquirer/checkbox5.2.7), which are the versions shipped with inquirer 14.2.4.wrap-ansiwithfast-wrap-ansi;inputhandles numeric default values.typeinstead of falling back toinput; new opt-inINQUIRER_KEYBINDINGSenvironment variable (vim/emacs keybindings); cursor position fix for line wraps; droppedrxjsin favor of an internal Observable.mute-streamto v3; Node engine ranges set to>=23.5.0 || ^22.13.0 || ^20.17.0.@inquirer/external-editor.@inquirer/core12 (useStatesetter accepts a reducer; affects custom prompts only);searchgains aninitialValueoption;numberfloating-point step fixes; explicitundefineddefault handling innumber,confirmandeditor.passwordgainstoggleMask, enabled by default (ctrl+t reveals the input); localized yes/no parsing forconfirm.@inquirer/typepinned to an exact version.confirmtrims whitespace from answers.searchstale-choice fix;confirmalways acceptsy/n;expand/rawlistwhitespace handling.numbertreats whitespace-only input as empty;checkboxignores input while validation is pending; prompt cleanup cancels a pending initial render on cancel/abort.Breaking Changes
None for this project. The only upstream breaking change (14.0.0: a non-registered prompt type throws) does not apply, because
mfa.jsonly uses the built-inselect,input,number,confirmandpasswordprompt types.Behavior Changes in the CLI Helpers
--createUser): now shows actrl+t toggle visibilityhint, and ctrl+t reveals the typed password, becausetoggleMaskdefaults totrue. The default is kept; the entered value is unaffected.@inquirer/confirm6.0.4 → 6.3.4): 6.0.4 matched answers by prefix (/^(y|yes)/i,/^(n|no)/i), soyeahoryupgave Yes,nopeornahgave No, and only answers starting with neither letter (e.g.maybe,1, ornwith a leading space) silently took the default. 6.3.4 trims and lowercases the answer and accepts onlyy/ye/yesorn/no; anything else showsYou must answer with "Yes" or "No"and the prompt waits. Space-padded answers such asnnow count as No instead of silently becoming Yes. Pressing Enter still answers Yes on the 3 confirm prompts inmfa.js, which have no explicitdefault.0, which produced an unusable MFA config withmfaDigits: 0andmfaPeriod: 0.@inquirer/core12). Pasting or piping several answers at once into--createUseror--createMFAcan therefore lose keystrokes; interactive typing is unaffected.Smoke Test
Both CLI helpers were run through
Parse-Dashboard/index.jsin a pseudo-terminal with scripted keystrokes, against a production install (npm ci --omit=dev) of the base branch (inquirer 13.2.2) and of this branch (inquirer 14.2.3), on Node 22.19.0. The clipboard call was stubbed.--createUser, Enter on all 3 confirm prompts--createUser, answermaybeto a confirm promptYou must answer with "Yes" or "No", prompt stays open--createUser, password prompt[input is masked], no hint, ctrl+t has no effect[input is masked]andctrl+t toggle visibility, ctrl+t reveals the input--createUser, typed password in the generated config--createUserand--createMFA, Enter on the algorithm select--createUserand--createMFA, Enter on digits / period--createMFA, whitespace-only digits / periodmfaDigits: 0,mfaPeriod: 0)Code Changes Required
None — the upgrade is a drop-in replacement. Only
package.jsonandpackage-lock.jsonchange. The lock file diff is limited to inquirer's own dependency tree:rxjsand the nested@inquirer/corehelper packages are removed, andfast-string-width,fast-string-truncated-widthandfast-wrap-ansiare added.Node Engine Note
inquirer 14.2.3 declares Node
>=23.5.0 || ^22.13.0 || ^20.17.0, whileengines.nodein this repository allows>=22.12.0 <23.0.0, so Node 22.12.x is outside inquirer's declared range. This gap is not introduced by this PR: the current inquirer 13.2.2 and all its@inquirer/*packages already require^22.13.0on Node 22. The CI engine check compares only the minimum version of each range, so it does not detect this. Closing the gap would require raising the Node 22 minimum inengines.nodeto22.13.0in a separate PR, which affects consumers.Summary by CodeRabbit