3 Commits
Author SHA1 Message Date
dualfroz a72fd93045 Describe this repository 2026-10-22 21:05:41 +02:00
dualfroz 2124e4b155 fix: reject loose ranges that collapse to match everything
In loose mode the comparators that fail to parse are filtered out of a
comparator list, and whatever is left becomes the range. When the only
survivor is the any comparator, a typo such as `* (4.1.x  4.1.2)` drops
`(4.1.x` and `4.1.2)` and collapses to the leftover `*`, so the range
silently satisfies every version instead of being rejected. Without
`loose` the same input throws `Invalid comparator: (4.1.x`.

Treat that comparator list as invalid instead, the same way a list with
no valid comparator at all is already treated: the list is dropped, so
other `||` branches still stand on their own and a range left with no
valid branch throws `Invalid SemVer Range`.

Junk sitting next to a comparator that does parse is still tolerated, so
`>=1.2.3 &&&` still yields `>=1.2.3` and `== 1.0.0` still yields
`1.0.0`.

Fixes #387
2026-09-04 22:16:53 +02:00
upstream d4354cc38b Upstream npm/node-semver state of the touched files before f6bf826ecc 2026-09-03 14:28:36 +02:00