Repository navigation
fix: normalize bin metadata in getPaths - #189
Merged
martinrrm merged 1 commit intoOct 12, 2026
Merged
Conversation
## Summary `lib/link-bins.js` already uses `npm-normalize-package-bin` before iterating over package bin entries. `getPaths()` derives the corresponding paths but previously operated on the package metadata directly, which could produce behavior inconsistent with bin creation for non-canonical entries. This change applies the same normalization in `getPaths()` so both APIs interpret bin metadata consistently. It normalizes a shallow copy to avoid modifying the caller's package object. The tests cover normalized bin names on POSIX and Windows and verify that the original package metadata remains unchanged. ## Testing - targeted `get-paths` tests - ESLint --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 3ff4d6b3-8027-46d4-9024-3bb9e4fc495c (cherry picked from commit 7f9f97a)
nkolev92
approved these changes
Sep 28, 2026
jeffkl
approved these changes
Oct 9, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Backport of #187 to the
release/v6line.Summary
lib/link-bins.jsalready usesnpm-normalize-package-binbefore iterating over package bin entries.getPaths()derives the corresponding paths but operated on the package metadata directly, which could produce behavior inconsistent with bin creation for non-canonical entries.This applies the same normalization in
getPaths()so both APIs interpret bin metadata consistently. It normalizes a shallow copy to avoid modifying the caller's package object.Why this line needs it
release/v6is the line consumed by@npmcli/arborist@9.x/ npm 11, which cannot move tobin-links@7— v7 requires Node^22.22.2 || ^24.15.0 || >=26.0.0, while npm 11 supports^20.17.0 || >=22.9.0.Notes
npm-normalize-package-bin@^5.0.0is already a dependency here, and its normalization logic is byte-identical to the v6 used onmain.Testing
npm testsuite passes, including 100% coverage onlib/get-paths.jseslintandtemplate-oss-checkpassCo-authored-by: Copilot 223556219+Copilot@users.noreply.github.com