satisfies
Whether version is in npm range range (^1.2.0, ~1.2, >=2 <3, 1.x, 1 - 2, a || b, *).
import { meetsComparator, parse } from "#codebase/tcmts/core/semver"; export function satisfies(version: string, range: string): boolean { const v = parse(version); if (!v) return false; return range.split("||").some((set) => { const trimmed = set.trim(); const hyphen = /^(\S+)\s+-\s+(\S+)$/.exec(trimmed); const comparators = hyphen ? [`>=${hyphen[1]}`, `<=${hyphen[2]}`] : trimmed.split(/\s+/).filter(Boolean); // a prerelease only satisfies a range that names a prerelease of the same version if (v.pre && !comparators.some((c) => { const p = parse(c.replace(/^[\^~<>=]+/, "")); return p && p.pre && p.major === v.major && p.minor === v.minor && p.patch === v.patch; })) return false; return comparators.every((c) => meetsComparator(version, c)); }); }