Files
renovate/lib/modules
Martijn van der Meij 5e1f88afc6 fix(npm): use packageName for pnpm overrides with range selectors in minimumReleaseAgeExclude (#43477)
* fix(npm): use packageName for pnpm overrides with range selectors in minimumReleaseAgeExclude

For pnpm.overrides entries with version range selectors (e.g. "pkg@<=1.0.0"),
depName contains the full override key including the selector, which is needed
to correctly update package.json. However this caused invalid entries in
minimumReleaseAgeExclude like "fast-xml-parser@<=5.3.5@5.5.7" instead of
"fast-xml-parser@5.5.7", breaking pnpm install with ERR_PNPM_INVALID_MINIMUM_RELEASE_AGE_EXCLUDE.

Fix by using packageName (bare npm package name parsed by @pnpm/parse-overrides)
instead of depName when constructing minimumReleaseAgeExclude entries. Falls back
to depName for dependency types where packageName is not set.

Made-with: Cursor

* test(npm): format pnpm override minimumReleaseAgeExclude test

Use codeBlock helper for expected pnpm-workspace.yaml contents per review.

* test(npm): avoid string concat in shrinkwrap exclude test

Use template literal instead of + to satisfy restrict-plus-operands.

* fix(npm): replace malformed minimumReleaseAgeExclude entries

Skip invalid package@version lines (extra @ after package prefix) when
matching excludes, and replace them instead of appending versions.

* test(npm): cover valid vs malformed exclude matching

* Update lib/modules/manager/npm/artifacts.spec.ts

Co-authored-by: Michael Kriese <michael.kriese@gmx.de>

* Update lib/modules/manager/npm/artifacts.spec.ts

Co-authored-by: Michael Kriese <michael.kriese@gmx.de>

* test(npm): use codeBlock for expected workspace contents

* fix(npm): remove stale malformed minimumReleaseAgeExclude entries

When a valid exclude entry exists for the same package, drop leftover
malformed lines from the prior double-@ bug instead of leaving them.

* test(npm): avoid string concat in codeBlock expectations

Use template literal instead of + '\n' for prefer-template.

---------

Co-authored-by: Tapio Oikarinen <tapio.oikarinen@hoxhunt.com>
Co-authored-by: Martijn van der Meij <Squixx@users.noreply.github.com>
Co-authored-by: Michael Kriese <michael.kriese@gmx.de>
2026-06-08 13:27:08 +00:00
..