vite-plus 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/LICENSE +30 -5
  2. package/README.md +7 -7
  3. package/binding/index.cjs +54 -55
  4. package/binding/index.d.cts +50 -12
  5. package/dist/{agent-CKMI1a8W.js → agent-eISuMXJb.js} +2 -2
  6. package/dist/bin.js +9 -6
  7. package/dist/config/bin.js +3 -3
  8. package/dist/{constants-BqJiMVVU.js → constants-CCQkpaxK.js} +2 -2
  9. package/dist/create/bin.js +42 -10
  10. package/dist/{define-config-C_KGDLUZ.cjs → define-config-CREUiMmM.cjs} +2 -2
  11. package/dist/{define-config-Cf_5GHmY.d.ts → define-config-CeW9DETl.d.ts} +24 -8
  12. package/dist/{define-config-DhEJaYRc.js → define-config-Ro6PS4dP.js} +2 -2
  13. package/dist/define-config.cjs +1 -1
  14. package/dist/define-config.d.ts +1 -1
  15. package/dist/define-config.js +1 -1
  16. package/dist/{dist-BWiANxFS.js → dist-DUsqQuw8.js} +117 -1395
  17. package/dist/{editor-CHfGUhxP.js → editor-B8tkz7nL.js} +94 -52
  18. package/dist/index.cjs +1 -1
  19. package/dist/index.d.ts +1 -1
  20. package/dist/index.js +1 -1
  21. package/dist/lint-plugins.cjs +1 -1
  22. package/dist/migration/bin.js +54 -50
  23. package/dist/{oxlint-plugin-config-lMMD5fAC.js → oxlint-plugin-config-CbG58Kzr.js} +1 -1
  24. package/dist/oxlint-plugin.js +2 -2
  25. package/dist/pack-bin.js +3 -2
  26. package/dist/{package-Cgdlhamw.js → package-BS84eWrW.js} +7 -2
  27. package/dist/package-overrides-CpoQngt3.js +411 -0
  28. package/dist/{prompts-jMH8S4Wp.js → prompts-ByOzbMBG.js} +537 -252
  29. package/dist/{resolve-vite-config-BJYYtfY3.js → resolve-vite-config-Be237LWp.js} +2 -2
  30. package/dist/{resolve-vite-config-BPgpYMYp.js → resolve-vite-config-CofpYgnY.js} +1 -1
  31. package/dist/staged/bin.js +791 -742
  32. package/dist/sync-versions/bin.js +4 -6
  33. package/dist/sync-versions/bin.mjs +247 -1419
  34. package/dist/toolchain.js +9 -9
  35. package/dist/toolchain.json +9 -9
  36. package/dist/{tsconfig-CmKidmRD.js → tsconfig-3ONY2k2K.js} +1 -1
  37. package/dist/{tsconfig-BoYTBNX_.js → tsconfig-DzZ-nrx2.js} +2 -2
  38. package/dist/version.js +2 -2
  39. package/dist/versions.js +5 -5
  40. package/docs/guide/ci.md +3 -4
  41. package/docs/guide/env.md +10 -5
  42. package/docs/guide/github-actions-cache.md +1 -3
  43. package/docs/guide/ide-integration.md +3 -1
  44. package/docs/guide/implode.md +2 -0
  45. package/docs/guide/install.md +3 -0
  46. package/docs/guide/local-cli.md +7 -7
  47. package/docs/guide/migrate-rules.md +8 -0
  48. package/docs/guide/migrate.md +7 -7
  49. package/docs/guide/test.md +1 -1
  50. package/docs/guide/troubleshooting.md +2 -2
  51. package/docs/guide/upgrade-project.md +1 -1
  52. package/docs/guide/vitest-v5.md +2 -2
  53. package/docs/guide/vpx.md +2 -2
  54. package/package.json +31 -28
  55. package/dist/package-overrides-Dpn4scvN.js +0 -17
@@ -0,0 +1,411 @@
1
+ import { S as tryParse, _ as formatComparableVersion, a as FULL_PLAIN, b as parse, c as LONE_TILDE, f as XRANGE_PLAIN, h as compareParsed, l as LOOSE_PLAIN, n as BUILD, o as GREATER_LESS_THAN, p as XRANGE_PLAIN_LOOSE, s as LONE_CARET, x as safeRegex } from "./dist-DUsqQuw8.js";
2
+ //#region ../../node_modules/.pnpm/verkit@0.5.0/node_modules/verkit/dist/set-BGFWKKE8.js
3
+ const STRICT_COMPARATOR = safeRegex(String.raw`^${GREATER_LESS_THAN}\s*(${FULL_PLAIN})$|^$`);
4
+ const LOOSE_COMPARATOR$1 = safeRegex(String.raw`^${GREATER_LESS_THAN}\s*(${LOOSE_PLAIN})$|^$`);
5
+ function formatComparator(comparator) {
6
+ return comparator.version ? `${comparator.operator}${formatComparableVersion(comparator.version)}` : "";
7
+ }
8
+ function parseComparator(comparator, options = {}) {
9
+ if (typeof comparator !== "string") return comparator;
10
+ const normalized = comparator.trim().replaceAll(/\s+/g, " ");
11
+ const match = normalized.match(options.loose ? LOOSE_COMPARATOR$1 : STRICT_COMPARATOR);
12
+ if (!match) throw new TypeError(`Invalid comparator: ${normalized}`);
13
+ const operator = match[1] === "=" ? "" : match[1] || "";
14
+ const version = match[2] ? parse(match[2], options) : null;
15
+ return {
16
+ operator,
17
+ options,
18
+ value: version ? `${operator}${formatComparableVersion(version)}` : "",
19
+ version
20
+ };
21
+ }
22
+ function testParsedComparator(comparator, version) {
23
+ if (!comparator.version) return true;
24
+ const comparison = compareParsed(version, comparator.version);
25
+ switch (comparator.operator) {
26
+ case "": return comparison === 0;
27
+ case ">": return comparison > 0;
28
+ case ">=": return comparison >= 0;
29
+ case "<": return comparison < 0;
30
+ case "<=": return comparison <= 0;
31
+ }
32
+ }
33
+ function comparatorAllowsPrerelease(comparator, version) {
34
+ const allowed = comparator.version;
35
+ return allowed !== null && !!allowed.prerelease?.length && allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch;
36
+ }
37
+ function testComparatorSet(set, version, options) {
38
+ if (set.some((comparator) => !testParsedComparator(comparator, version))) return false;
39
+ return !version.prerelease?.length || !!options.includePrerelease || set.some((comparator) => comparatorAllowsPrerelease(comparator, version));
40
+ }
41
+ function parsedComparatorsIntersect(left, right, options = {}) {
42
+ if (!left.version || !right.version) return true;
43
+ if (left.operator === "") return testComparatorSet([right], left.version, options);
44
+ if (right.operator === "") return testComparatorSet([left], right.version, options);
45
+ const leftValue = formatComparator(left);
46
+ const rightValue = formatComparator(right);
47
+ if (options.includePrerelease && (leftValue === "<0.0.0-0" || rightValue === "<0.0.0-0")) return false;
48
+ if (!options.includePrerelease && (leftValue.startsWith("<0.0.0") || rightValue.startsWith("<0.0.0"))) return false;
49
+ if (left.operator.startsWith(">") && right.operator.startsWith(">")) return true;
50
+ if (left.operator.startsWith("<") && right.operator.startsWith("<")) return true;
51
+ const comparison = compareParsed(left.version, right.version);
52
+ if (comparison === 0 && left.operator.includes("=") && right.operator.includes("=")) return true;
53
+ if (comparison < 0 && left.operator.startsWith(">") && right.operator.startsWith("<")) return true;
54
+ return comparison > 0 && left.operator.startsWith("<") && right.operator.startsWith(">");
55
+ }
56
+ //#endregion
57
+ //#region ../../node_modules/.pnpm/verkit@0.5.0/node_modules/verkit/dist/range-C5wjdo9a.js
58
+ function formatRange(range) {
59
+ return range.sets.map((set) => set.map(formatComparator).join(" ")).join("||");
60
+ }
61
+ const BUILD_STRIP = new RegExp(BUILD, "g");
62
+ const BUILD_SAFE = safeRegex(BUILD);
63
+ const STRICT_HYPHEN = safeRegex(String.raw`^\s*(${XRANGE_PLAIN})\s+-\s+(${XRANGE_PLAIN})\s*$`);
64
+ const LOOSE_HYPHEN = safeRegex(String.raw`^\s*(${XRANGE_PLAIN_LOOSE})\s+-\s+(${XRANGE_PLAIN_LOOSE})\s*$`);
65
+ const COMPARATOR_TRIM = safeRegex(String.raw`(\s*)${GREATER_LESS_THAN}\s*(${LOOSE_PLAIN}|${XRANGE_PLAIN})`, "g");
66
+ const TILDE_TRIM = safeRegex(String.raw`(\s*)${LONE_TILDE}\s+`, "g");
67
+ const CARET_TRIM = safeRegex(String.raw`(\s*)${LONE_CARET}\s+`, "g");
68
+ const STRICT_TILDE = safeRegex(`^${LONE_TILDE}${XRANGE_PLAIN}$`);
69
+ const LOOSE_TILDE = safeRegex(`^${LONE_TILDE}${XRANGE_PLAIN_LOOSE}$`);
70
+ const STRICT_CARET = safeRegex(`^${LONE_CARET}${XRANGE_PLAIN}$`);
71
+ const LOOSE_CARET = safeRegex(`^${LONE_CARET}${XRANGE_PLAIN_LOOSE}$`);
72
+ const STRICT_XRANGE = safeRegex(String.raw`^${GREATER_LESS_THAN}\s*${XRANGE_PLAIN}$`);
73
+ const LOOSE_XRANGE = safeRegex(String.raw`^${GREATER_LESS_THAN}\s*${XRANGE_PLAIN_LOOSE}$`);
74
+ const STAR = safeRegex(String.raw`(<|>)?=?\s*\*`);
75
+ const GTE_ZERO = /^\s*>=\s*0\.0\.0\s*$/;
76
+ const GTE_ZERO_PRERELEASE = /^\s*>=\s*0\.0\.0-0\s*$/;
77
+ const LOOSE_COMPARATOR = safeRegex(String.raw`^${GREATER_LESS_THAN}\s*(${LOOSE_PLAIN})$|^$`);
78
+ function isWildcard(value) {
79
+ return !value || String(value).toLowerCase() === "x" || String(value) === "*";
80
+ }
81
+ function hasInvalidWildcardOrder(major, minor, patch) {
82
+ return isWildcard(major) && !isWildcard(minor) || isWildcard(minor) && Boolean(patch) && !isWildcard(patch);
83
+ }
84
+ function replaceTilde(comparator, options) {
85
+ const expression = options.loose ? LOOSE_TILDE : STRICT_TILDE;
86
+ const lowerPrerelease = options.includePrerelease ? "-0" : "";
87
+ return comparator.replace(expression, (_match, major, minor, patch, prerelease) => {
88
+ if (isWildcard(major)) return "";
89
+ if (isWildcard(minor)) return `>=${major}.0.0${lowerPrerelease} <${Number(major) + 1}.0.0-0`;
90
+ if (isWildcard(patch)) return `>=${major}.${minor}.0${lowerPrerelease} <${major}.${Number(minor) + 1}.0-0`;
91
+ return prerelease ? `>=${major}.${minor}.${patch}-${prerelease} <${major}.${Number(minor) + 1}.0-0` : `>=${major}.${minor}.${patch} <${major}.${Number(minor) + 1}.0-0`;
92
+ });
93
+ }
94
+ function replaceTildes(comparator, options) {
95
+ return comparator.trim().split(/\s+/).map((part) => replaceTilde(part, options)).join(" ");
96
+ }
97
+ function replaceCaret(comparator, options) {
98
+ const expression = options.loose ? LOOSE_CARET : STRICT_CARET;
99
+ const lowerPrerelease = options.includePrerelease ? "-0" : "";
100
+ return comparator.replace(expression, (_match, major, minor, patch, prerelease) => {
101
+ if (isWildcard(major)) return "";
102
+ if (isWildcard(minor)) return `>=${major}.0.0${lowerPrerelease} <${Number(major) + 1}.0.0-0`;
103
+ if (isWildcard(patch)) return major === "0" ? `>=${major}.${minor}.0${lowerPrerelease} <${major}.${Number(minor) + 1}.0-0` : `>=${major}.${minor}.0${lowerPrerelease} <${Number(major) + 1}.0.0-0`;
104
+ if (prerelease) return major === "0" ? minor === "0" ? `>=${major}.${minor}.${patch}-${prerelease} <${major}.${minor}.${Number(patch) + 1}-0` : `>=${major}.${minor}.${patch}-${prerelease} <${major}.${Number(minor) + 1}.0-0` : `>=${major}.${minor}.${patch}-${prerelease} <${Number(major) + 1}.0.0-0`;
105
+ return major === "0" ? minor === "0" ? `>=${major}.${minor}.${patch} <${major}.${minor}.${Number(patch) + 1}-0` : `>=${major}.${minor}.${patch} <${major}.${Number(minor) + 1}.0-0` : `>=${major}.${minor}.${patch} <${Number(major) + 1}.0.0-0`;
106
+ });
107
+ }
108
+ function replaceCarets(comparator, options) {
109
+ return comparator.trim().split(/\s+/).map((part) => replaceCaret(part, options)).join(" ");
110
+ }
111
+ function replaceXRange(comparator, options) {
112
+ const expression = options.loose ? LOOSE_XRANGE : STRICT_XRANGE;
113
+ return comparator.trim().replace(expression, (match, rawOperator, rawMajor, rawMinor, rawPatch) => {
114
+ let operator = rawOperator;
115
+ let major = rawMajor;
116
+ let minor = rawMinor;
117
+ let patch = rawPatch;
118
+ if (hasInvalidWildcardOrder(String(major), minor === void 0 ? void 0 : String(minor), patch === void 0 ? void 0 : String(patch))) return comparator;
119
+ const wildcardMajor = isWildcard(major);
120
+ const wildcardMinor = wildcardMajor || isWildcard(minor);
121
+ const wildcardPatch = wildcardMinor || isWildcard(patch);
122
+ if (operator === "=" && wildcardPatch) operator = "";
123
+ if (wildcardMajor) return operator === ">" || operator === "<" ? "<0.0.0-0" : "*";
124
+ let prerelease = options.includePrerelease ? "-0" : "";
125
+ if (operator && wildcardPatch) {
126
+ if (wildcardMinor) minor = 0;
127
+ patch = 0;
128
+ if (operator === ">") {
129
+ operator = ">=";
130
+ if (wildcardMinor) {
131
+ major = Number(major) + 1;
132
+ minor = 0;
133
+ } else minor = Number(minor) + 1;
134
+ } else if (operator === "<=") {
135
+ operator = "<";
136
+ if (wildcardMinor) major = Number(major) + 1;
137
+ else minor = Number(minor) + 1;
138
+ }
139
+ if (operator === "<") prerelease = "-0";
140
+ return `${operator}${major}.${minor}.${patch}${prerelease}`;
141
+ }
142
+ if (wildcardMinor) return `>=${major}.0.0${prerelease} <${Number(major) + 1}.0.0-0`;
143
+ if (wildcardPatch) return `>=${major}.${minor}.0${prerelease} <${major}.${Number(minor) + 1}.0-0`;
144
+ return match;
145
+ });
146
+ }
147
+ function replaceXRanges(comparator, options) {
148
+ return comparator.split(/\s+/).map((part) => replaceXRange(part, options)).join(" ");
149
+ }
150
+ function replaceHyphenRange(range, options) {
151
+ const expression = options.loose ? LOOSE_HYPHEN : STRICT_HYPHEN;
152
+ return range.replace(expression, (_match, rawFrom, fromMajor, fromMinor, fromPatch, fromPrerelease, _fromBuild, rawTo, toMajor, toMinor, toPatch, toPrerelease) => {
153
+ let from = rawFrom;
154
+ let to = rawTo;
155
+ if (isWildcard(fromMajor)) from = "";
156
+ else if (isWildcard(fromMinor)) from = `>=${fromMajor}.0.0${options.includePrerelease ? "-0" : ""}`;
157
+ else if (isWildcard(fromPatch)) from = `>=${fromMajor}.${fromMinor}.0${options.includePrerelease ? "-0" : ""}`;
158
+ else if (fromPrerelease) from = `>=${from}`;
159
+ else from = `>=${from}${options.includePrerelease ? "-0" : ""}`;
160
+ if (isWildcard(toMajor)) to = "";
161
+ else if (isWildcard(toMinor)) to = `<${Number(toMajor) + 1}.0.0-0`;
162
+ else if (isWildcard(toPatch)) to = `<${toMajor}.${Number(toMinor) + 1}.0-0`;
163
+ else if (toPrerelease) to = `<=${toMajor}.${toMinor}.${toPatch}-${toPrerelease}`;
164
+ else if (options.includePrerelease) to = `<${toMajor}.${toMinor}.${Number(toPatch) + 1}-0`;
165
+ else to = `<=${to}`;
166
+ return `${from} ${to}`.trim();
167
+ });
168
+ }
169
+ function expandComparator(comparator, options) {
170
+ return replaceXRanges(replaceTildes(replaceCarets(comparator.replace(BUILD_SAFE, ""), options), options), options).trim().replace(STAR, "");
171
+ }
172
+ function parseSimpleRange(input, options) {
173
+ let parts = replaceHyphenRange(input.replace(BUILD_STRIP, ""), options).replace(COMPARATOR_TRIM, "$1$2$3").replace(TILDE_TRIM, "$1~").replace(CARET_TRIM, "$1^").split(" ").map((part) => expandComparator(part, options)).join(" ").split(/\s+/).map((part) => part.trim().replace(options.includePrerelease ? GTE_ZERO_PRERELEASE : GTE_ZERO, ""));
174
+ if (options.loose) parts = parts.filter((part) => LOOSE_COMPARATOR.test(part));
175
+ const unique = /* @__PURE__ */ new Map();
176
+ for (const comparator of parts.map((part) => parseComparator(part, options))) {
177
+ if (comparator.value === "<0.0.0-0") return [comparator];
178
+ unique.set(comparator.value, comparator);
179
+ }
180
+ if (unique.size > 1) unique.delete("");
181
+ return [...unique.values()];
182
+ }
183
+ function parseRange(range, options = {}) {
184
+ if (typeof range !== "string") return range;
185
+ const parsedOptions = { ...options };
186
+ const normalizedRange = range.trim().replaceAll(/\s+/g, " ");
187
+ let sets = normalizedRange.split("||").map((part) => parseSimpleRange(part.trim(), parsedOptions)).filter((set) => set.length);
188
+ if (!sets.length) throw new TypeError(`Range contains no valid comparator sets: ${normalizedRange}`);
189
+ if (sets.length > 1) {
190
+ const first = sets[0];
191
+ sets = sets.filter((set) => set[0]?.value !== "<0.0.0-0");
192
+ if (!sets.length) sets = [first];
193
+ else if (sets.length > 1) {
194
+ const any = sets.find((set) => set.length === 1 && set[0]?.value === "");
195
+ if (any) sets = [any];
196
+ }
197
+ }
198
+ return {
199
+ options: parsedOptions,
200
+ sets
201
+ };
202
+ }
203
+ function tryParseRange(range, options = {}) {
204
+ try {
205
+ return parseRange(range, options);
206
+ } catch {
207
+ return null;
208
+ }
209
+ }
210
+ function testParsedRange(range, version) {
211
+ return range.sets.some((set) => testComparatorSet(set, version, range.options));
212
+ }
213
+ function testRangeVersion(range, version) {
214
+ const parsed = tryParse(version, range.options);
215
+ return parsed ? testParsedRange(range, parsed) : false;
216
+ }
217
+ function exactVersion(set) {
218
+ for (const comparator of set) if (comparator.operator === "" && comparator.version) return comparator.version;
219
+ return null;
220
+ }
221
+ function isSatisfiable(comparators, options) {
222
+ const exact = exactVersion(comparators);
223
+ if (exact) return testComparatorSet(comparators, exact, options);
224
+ const remaining = [...comparators];
225
+ let current = remaining.pop();
226
+ while (current && remaining.length) {
227
+ if (remaining.some((other) => !parsedComparatorsIntersect(current, other, options))) return false;
228
+ current = remaining.pop();
229
+ }
230
+ return true;
231
+ }
232
+ function setsIntersect(left, right, options) {
233
+ const leftExact = exactVersion(left);
234
+ if (leftExact) return testComparatorSet(right, leftExact, options);
235
+ const rightExact = exactVersion(right);
236
+ if (rightExact) return testComparatorSet(left, rightExact, options);
237
+ return left.every((leftComparator) => right.every((rightComparator) => parsedComparatorsIntersect(leftComparator, rightComparator, options)));
238
+ }
239
+ function parsedRangesIntersect(left, right, options = {}) {
240
+ return left.sets.some((leftSet) => isSatisfiable(leftSet, options) && right.sets.some((rightSet) => isSatisfiable(rightSet, options) && setsIntersect(leftSet, rightSet, options)));
241
+ }
242
+ function normalizeRange(range, options = {}) {
243
+ const parsed = tryParseRange(range, options);
244
+ return parsed ? formatRange(parsed) || "*" : null;
245
+ }
246
+ function satisfies(version, range, options = {}) {
247
+ const parsed = tryParseRange(range, options);
248
+ return parsed ? testRangeVersion(parsed, version) : false;
249
+ }
250
+ function rangeToComparators(range, options = {}) {
251
+ return parseRange(range, options).sets.map((set) => set.map(formatComparator).join(" ").trim().split(" "));
252
+ }
253
+ function nextVersionAfter(version) {
254
+ const { prerelease } = version;
255
+ return prerelease?.length ? {
256
+ major: version.major,
257
+ minor: version.minor,
258
+ patch: version.patch,
259
+ prerelease: [...prerelease, 0]
260
+ } : {
261
+ major: version.major,
262
+ minor: version.minor,
263
+ patch: version.patch + 1
264
+ };
265
+ }
266
+ function findMinimumForRange(range, options = {}) {
267
+ const parsedRange = parseRange(range, options);
268
+ const zero = {
269
+ major: 0,
270
+ minor: 0,
271
+ patch: 0
272
+ };
273
+ if (testParsedRange(parsedRange, zero)) return zero;
274
+ const zeroPrerelease = {
275
+ ...zero,
276
+ prerelease: [0]
277
+ };
278
+ if (testParsedRange(parsedRange, zeroPrerelease)) return zeroPrerelease;
279
+ let minimum = null;
280
+ for (const set of parsedRange.sets) {
281
+ let setMinimum = null;
282
+ for (const comparator of set) {
283
+ if (!comparator.version) continue;
284
+ const candidate = comparator.operator === ">" ? nextVersionAfter(comparator.version) : comparator.operator === "" || comparator.operator === ">=" ? structuredClone(comparator.version) : null;
285
+ if (candidate && (!setMinimum || compareParsed(candidate, setMinimum) > 0)) setMinimum = candidate;
286
+ }
287
+ if (setMinimum && (!minimum || compareParsed(minimum, setMinimum) > 0)) minimum = setMinimum;
288
+ }
289
+ return minimum && testParsedRange(parsedRange, minimum) ? minimum : null;
290
+ }
291
+ function rangesIntersect(left, right, options = {}) {
292
+ const parsedLeft = parseRange(left, options);
293
+ const parsedRight = parseRange(right, options);
294
+ return parsedRangesIntersect(parsedLeft, parsedRight, {
295
+ ...parsedLeft.options,
296
+ ...parsedRight.options,
297
+ ...options
298
+ });
299
+ }
300
+ function higherLowerBound(left, right) {
301
+ if (!left) return right;
302
+ const comparison = compareParsed(left.version, right.version);
303
+ return comparison > 0 ? left : comparison < 0 || right.operator === ">" && left.operator === ">=" ? right : left;
304
+ }
305
+ function lowerUpperBound(left, right) {
306
+ if (!left) return right;
307
+ const comparison = compareParsed(left.version, right.version);
308
+ return comparison < 0 ? left : comparison > 0 || right.operator === "<" && left.operator === "<=" ? right : left;
309
+ }
310
+ function simpleRangeSubset(rawSubset, rawSuperset, options) {
311
+ let subset = rawSubset;
312
+ let superset = rawSuperset;
313
+ const subsetAny = subset.length === 1 && !subset[0].version;
314
+ const supersetAny = superset.length === 1 && !superset[0].version;
315
+ if (subsetAny) {
316
+ if (supersetAny) return true;
317
+ subset = [parseComparator(options.includePrerelease ? ">=0.0.0-0" : ">=0.0.0")];
318
+ }
319
+ if (supersetAny) {
320
+ if (options.includePrerelease) return true;
321
+ superset = [parseComparator(">=0.0.0")];
322
+ }
323
+ const equal = /* @__PURE__ */ new Map();
324
+ let lower;
325
+ let upper;
326
+ for (const comparator of subset) if (comparator.operator === ">" || comparator.operator === ">=") lower = higherLowerBound(lower, comparator);
327
+ else if (comparator.operator === "<" || comparator.operator === "<=") upper = lowerUpperBound(upper, comparator);
328
+ else if (comparator.version) equal.set(formatComparableVersion(comparator.version), comparator.version);
329
+ if (equal.size > 1) return null;
330
+ let boundsComparison;
331
+ if (lower && upper) {
332
+ boundsComparison = compareParsed(lower.version, upper.version);
333
+ if (boundsComparison > 0) return null;
334
+ if (boundsComparison === 0 && (lower.operator !== ">=" || upper.operator !== "<=")) return null;
335
+ }
336
+ for (const version of equal.values()) {
337
+ if (lower && !testParsedComparator(lower, version)) return null;
338
+ if (upper && !testParsedComparator(upper, version)) return null;
339
+ return testComparatorSet(superset, version, options);
340
+ }
341
+ let needsLowerPrerelease = lower && !options.includePrerelease && lower.version.prerelease?.length ? lower.version : null;
342
+ let needsUpperPrerelease = upper && !options.includePrerelease && upper.version.prerelease?.length ? upper.version : null;
343
+ const upperPrerelease = needsUpperPrerelease?.prerelease;
344
+ if (upperPrerelease?.length === 1 && upper?.operator === "<" && upperPrerelease[0] === 0) needsUpperPrerelease = null;
345
+ let hasSupersetLower = false;
346
+ let hasSupersetUpper = false;
347
+ for (const comparator of superset) {
348
+ hasSupersetLower ||= comparator.operator === ">" || comparator.operator === ">=";
349
+ hasSupersetUpper ||= comparator.operator === "<" || comparator.operator === "<=";
350
+ if (lower) {
351
+ if (needsLowerPrerelease && comparatorAllowsPrerelease(comparator, needsLowerPrerelease)) needsLowerPrerelease = null;
352
+ if (comparator.operator === ">" || comparator.operator === ">=") {
353
+ const higher = higherLowerBound(lower, comparator);
354
+ if (higher === comparator && higher !== lower) return false;
355
+ } else if (lower.operator === ">=" && !testParsedComparator(comparator, lower.version)) return false;
356
+ }
357
+ if (upper) {
358
+ if (needsUpperPrerelease && comparatorAllowsPrerelease(comparator, needsUpperPrerelease)) needsUpperPrerelease = null;
359
+ if (comparator.operator === "<" || comparator.operator === "<=") {
360
+ const lowerBound = lowerUpperBound(upper, comparator);
361
+ if (lowerBound === comparator && lowerBound !== upper) return false;
362
+ } else if (upper.operator === "<=" && !testParsedComparator(comparator, upper.version)) return false;
363
+ }
364
+ if (comparator.operator === "" && (lower || upper) && boundsComparison !== 0) return false;
365
+ }
366
+ if (lower && hasSupersetUpper && !upper && boundsComparison !== 0) return false;
367
+ if (upper && hasSupersetLower && !lower && boundsComparison !== 0) return false;
368
+ return !needsLowerPrerelease && !needsUpperPrerelease;
369
+ }
370
+ function isRangeSubset(subset, superset, options = {}) {
371
+ if (subset === superset) return true;
372
+ const parsedSubset = parseRange(subset, options);
373
+ const parsedSuperset = parseRange(superset, options);
374
+ const effectiveOptions = {
375
+ ...parsedSubset.options,
376
+ ...parsedSuperset.options,
377
+ ...options
378
+ };
379
+ let sawNonNull = false;
380
+ for (const subsetSet of parsedSubset.sets) {
381
+ let matched = false;
382
+ for (const supersetSet of parsedSuperset.sets) {
383
+ const result = simpleRangeSubset(subsetSet, supersetSet, effectiveOptions);
384
+ sawNonNull ||= result !== null;
385
+ if (result) {
386
+ matched = true;
387
+ break;
388
+ }
389
+ }
390
+ if (!matched && sawNonNull) return false;
391
+ }
392
+ return true;
393
+ }
394
+ //#endregion
395
+ //#region src/utils/package-overrides.ts
396
+ function extractOverrideTargetName(key) {
397
+ let target = key.trim();
398
+ for (let delimiter = target.search(/[^ |@]>/); delimiter !== -1; delimiter = target.search(/[^ |@]>/)) target = target.slice(delimiter + 2).trim();
399
+ if (!target) return target;
400
+ if (target.includes("/")) {
401
+ const segments = target.split("/");
402
+ const last = segments[segments.length - 1];
403
+ const scope = segments[segments.length - 2];
404
+ target = scope?.startsWith("@") ? `${scope}/${last}` : last;
405
+ }
406
+ const nameStart = target.startsWith("@") ? target.indexOf("/") + 1 : 0;
407
+ const versionAt = target.indexOf("@", nameStart);
408
+ return versionAt > 0 ? target.slice(0, versionAt) : target;
409
+ }
410
+ //#endregion
411
+ export { rangeToComparators as a, normalizeRange as i, findMinimumForRange as n, rangesIntersect as o, isRangeSubset as r, satisfies as s, extractOverrideTargetName as t };