@vercel/python-analysis 0.14.0 → 0.15.1

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 (28) hide show
  1. package/dist/index.cjs +698 -9
  2. package/dist/index.js +722 -13
  3. package/dist/manifest/pep440.d.ts +21 -4
  4. package/dist/manifest/python-specifiers.d.ts +1 -1
  5. package/dist/wasm/interfaces/wasi-cli-environment.d.ts +1 -1
  6. package/dist/wasm/interfaces/wasi-cli-exit.d.ts +1 -1
  7. package/dist/wasm/interfaces/wasi-cli-stderr.d.ts +1 -1
  8. package/dist/wasm/interfaces/wasi-cli-stdin.d.ts +1 -1
  9. package/dist/wasm/interfaces/wasi-cli-stdout.d.ts +1 -1
  10. package/dist/wasm/interfaces/wasi-cli-terminal-input.d.ts +1 -1
  11. package/dist/wasm/interfaces/wasi-cli-terminal-output.d.ts +1 -1
  12. package/dist/wasm/interfaces/wasi-cli-terminal-stderr.d.ts +1 -1
  13. package/dist/wasm/interfaces/wasi-cli-terminal-stdin.d.ts +1 -1
  14. package/dist/wasm/interfaces/wasi-cli-terminal-stdout.d.ts +1 -1
  15. package/dist/wasm/interfaces/wasi-clocks-monotonic-clock.d.ts +1 -1
  16. package/dist/wasm/interfaces/wasi-clocks-wall-clock.d.ts +1 -1
  17. package/dist/wasm/interfaces/wasi-filesystem-preopens.d.ts +1 -1
  18. package/dist/wasm/interfaces/wasi-filesystem-types.d.ts +1 -1
  19. package/dist/wasm/interfaces/wasi-io-error.d.ts +1 -1
  20. package/dist/wasm/interfaces/wasi-io-poll.d.ts +1 -1
  21. package/dist/wasm/interfaces/wasi-io-streams.d.ts +1 -1
  22. package/dist/wasm/interfaces/wasi-random-insecure-seed.d.ts +1 -1
  23. package/dist/wasm/vercel_python_analysis.core.wasm +0 -0
  24. package/dist/wasm/vercel_python_analysis.core2.wasm +0 -0
  25. package/dist/wasm/vercel_python_analysis.core3.wasm +0 -0
  26. package/dist/wasm/vercel_python_analysis.d.ts +36 -36
  27. package/dist/wasm/vercel_python_analysis.js +76 -76
  28. package/package.json +2 -2
package/dist/index.cjs CHANGED
@@ -6,6 +6,9 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
6
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
7
  var __getProtoOf = Object.getPrototypeOf;
8
8
  var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __commonJS = (cb, mod) => function __require() {
10
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
11
+ };
9
12
  var __export = (target, all) => {
10
13
  for (var name in all)
11
14
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -28,6 +31,656 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
31
  ));
29
32
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
33
 
34
+ // ../../node_modules/.pnpm/@renovatebot+pep440@4.2.1/node_modules/@renovatebot/pep440/lib/version.js
35
+ var require_version = __commonJS({
36
+ "../../node_modules/.pnpm/@renovatebot+pep440@4.2.1/node_modules/@renovatebot/pep440/lib/version.js"(exports, module2) {
37
+ var VERSION_PATTERN = [
38
+ "v?",
39
+ "(?:",
40
+ /* */
41
+ "(?:(?<epoch>[0-9]+)!)?",
42
+ // epoch
43
+ /* */
44
+ "(?<release>[0-9]+(?:\\.[0-9]+)*)",
45
+ // release segment
46
+ /* */
47
+ "(?<pre>",
48
+ // pre-release
49
+ /* */
50
+ "[-_\\.]?",
51
+ /* */
52
+ "(?<pre_l>(a|b|c|rc|alpha|beta|pre|preview))",
53
+ /* */
54
+ "[-_\\.]?",
55
+ /* */
56
+ "(?<pre_n>[0-9]+)?",
57
+ /* */
58
+ ")?",
59
+ /* */
60
+ "(?<post>",
61
+ // post release
62
+ /* */
63
+ "(?:-(?<post_n1>[0-9]+))",
64
+ /* */
65
+ "|",
66
+ /* */
67
+ "(?:",
68
+ /* */
69
+ "[-_\\.]?",
70
+ /* */
71
+ "(?<post_l>post|rev|r)",
72
+ /* */
73
+ "[-_\\.]?",
74
+ /* */
75
+ "(?<post_n2>[0-9]+)?",
76
+ /* */
77
+ ")",
78
+ /* */
79
+ ")?",
80
+ /* */
81
+ "(?<dev>",
82
+ // dev release
83
+ /* */
84
+ "[-_\\.]?",
85
+ /* */
86
+ "(?<dev_l>dev)",
87
+ /* */
88
+ "[-_\\.]?",
89
+ /* */
90
+ "(?<dev_n>[0-9]+)?",
91
+ /* */
92
+ ")?",
93
+ ")",
94
+ "(?:\\+(?<local>[a-z0-9]+(?:[-_\\.][a-z0-9]+)*))?"
95
+ // local version
96
+ ].join("");
97
+ module2.exports = {
98
+ VERSION_PATTERN,
99
+ valid,
100
+ clean,
101
+ explain,
102
+ parse,
103
+ stringify
104
+ };
105
+ var validRegex = new RegExp("^" + VERSION_PATTERN + "$", "i");
106
+ function valid(version) {
107
+ return validRegex.test(version) ? version : null;
108
+ }
109
+ var cleanRegex = new RegExp("^\\s*" + VERSION_PATTERN + "\\s*$", "i");
110
+ function clean(version) {
111
+ return stringify(parse(version, cleanRegex));
112
+ }
113
+ function parse(version, regex) {
114
+ const { groups } = (regex || validRegex).exec(version) || {};
115
+ if (!groups) {
116
+ return null;
117
+ }
118
+ const parsed = {
119
+ epoch: Number(groups.epoch ? groups.epoch : 0),
120
+ release: groups.release.split(".").map(Number),
121
+ pre: normalize_letter_version(groups.pre_l, groups.pre_n),
122
+ post: normalize_letter_version(
123
+ groups.post_l,
124
+ groups.post_n1 || groups.post_n2
125
+ ),
126
+ dev: normalize_letter_version(groups.dev_l, groups.dev_n),
127
+ local: parse_local_version(groups.local)
128
+ };
129
+ return parsed;
130
+ }
131
+ function stringify(parsed) {
132
+ if (!parsed) {
133
+ return null;
134
+ }
135
+ const { epoch, release, pre, post, dev, local } = parsed;
136
+ const parts = [];
137
+ if (epoch !== 0) {
138
+ parts.push(`${epoch}!`);
139
+ }
140
+ parts.push(release.join("."));
141
+ if (pre) {
142
+ parts.push(pre.join(""));
143
+ }
144
+ if (post) {
145
+ parts.push("." + post.join(""));
146
+ }
147
+ if (dev) {
148
+ parts.push("." + dev.join(""));
149
+ }
150
+ if (local) {
151
+ parts.push(`+${local}`);
152
+ }
153
+ return parts.join("");
154
+ }
155
+ function normalize_letter_version(letterIn, numberIn) {
156
+ let letter = letterIn;
157
+ let number = numberIn;
158
+ if (letter) {
159
+ if (!number) {
160
+ number = 0;
161
+ }
162
+ letter = letter.toLowerCase();
163
+ if (letter === "alpha") {
164
+ letter = "a";
165
+ } else if (letter === "beta") {
166
+ letter = "b";
167
+ } else if (["c", "pre", "preview"].includes(letter)) {
168
+ letter = "rc";
169
+ } else if (["rev", "r"].includes(letter)) {
170
+ letter = "post";
171
+ }
172
+ return [letter, Number(number)];
173
+ }
174
+ if (!letter && number) {
175
+ letter = "post";
176
+ return [letter, Number(number)];
177
+ }
178
+ return null;
179
+ }
180
+ function parse_local_version(local) {
181
+ if (local) {
182
+ return local.split(/[._-]/).map(
183
+ (part) => Number.isNaN(Number(part)) ? part.toLowerCase() : Number(part)
184
+ );
185
+ }
186
+ return null;
187
+ }
188
+ function explain(version) {
189
+ const parsed = parse(version);
190
+ if (!parsed) {
191
+ return parsed;
192
+ }
193
+ const { epoch, release, pre, post, dev, local } = parsed;
194
+ let base_version = "";
195
+ if (epoch !== 0) {
196
+ base_version += epoch + "!";
197
+ }
198
+ base_version += release.join(".");
199
+ const is_prerelease = Boolean(dev || pre);
200
+ const is_devrelease = Boolean(dev);
201
+ const is_postrelease = Boolean(post);
202
+ return {
203
+ epoch,
204
+ release,
205
+ pre,
206
+ post: post ? post[1] : post,
207
+ dev: dev ? dev[1] : dev,
208
+ local: local ? local.join(".") : local,
209
+ public: stringify(parsed).split("+", 1)[0],
210
+ base_version,
211
+ is_prerelease,
212
+ is_devrelease,
213
+ is_postrelease
214
+ };
215
+ }
216
+ }
217
+ });
218
+
219
+ // ../../node_modules/.pnpm/@renovatebot+pep440@4.2.1/node_modules/@renovatebot/pep440/lib/operator.js
220
+ var require_operator = __commonJS({
221
+ "../../node_modules/.pnpm/@renovatebot+pep440@4.2.1/node_modules/@renovatebot/pep440/lib/operator.js"(exports, module2) {
222
+ var { parse } = require_version();
223
+ module2.exports = {
224
+ compare,
225
+ rcompare,
226
+ lt,
227
+ le,
228
+ eq,
229
+ ne,
230
+ ge,
231
+ gt,
232
+ "<": lt,
233
+ "<=": le,
234
+ "==": eq,
235
+ "!=": ne,
236
+ ">=": ge,
237
+ ">": gt,
238
+ "===": arbitrary
239
+ };
240
+ function lt(version, other) {
241
+ return compare(version, other) < 0;
242
+ }
243
+ function le(version, other) {
244
+ return compare(version, other) <= 0;
245
+ }
246
+ function eq(version, other) {
247
+ return compare(version, other) === 0;
248
+ }
249
+ function ne(version, other) {
250
+ return compare(version, other) !== 0;
251
+ }
252
+ function ge(version, other) {
253
+ return compare(version, other) >= 0;
254
+ }
255
+ function gt(version, other) {
256
+ return compare(version, other) > 0;
257
+ }
258
+ function arbitrary(version, other) {
259
+ return version.toLowerCase() === other.toLowerCase();
260
+ }
261
+ function compare(version, other) {
262
+ const parsedVersion = parse(version);
263
+ const parsedOther = parse(other);
264
+ const keyVersion = calculateKey(parsedVersion);
265
+ const keyOther = calculateKey(parsedOther);
266
+ return pyCompare(keyVersion, keyOther);
267
+ }
268
+ function rcompare(version, other) {
269
+ return -compare(version, other);
270
+ }
271
+ function pyCompare(elemIn, otherIn) {
272
+ let elem = elemIn;
273
+ let other = otherIn;
274
+ if (elem === other) {
275
+ return 0;
276
+ }
277
+ if (Array.isArray(elem) !== Array.isArray(other)) {
278
+ elem = Array.isArray(elem) ? elem : [elem];
279
+ other = Array.isArray(other) ? other : [other];
280
+ }
281
+ if (Array.isArray(elem)) {
282
+ const len = Math.min(elem.length, other.length);
283
+ for (let i = 0; i < len; i += 1) {
284
+ const res = pyCompare(elem[i], other[i]);
285
+ if (res !== 0) {
286
+ return res;
287
+ }
288
+ }
289
+ return elem.length - other.length;
290
+ }
291
+ if (elem === -Infinity || other === Infinity) {
292
+ return -1;
293
+ }
294
+ if (elem === Infinity || other === -Infinity) {
295
+ return 1;
296
+ }
297
+ return elem < other ? -1 : 1;
298
+ }
299
+ function calculateKey(input) {
300
+ const { epoch } = input;
301
+ let { release, pre, post, local, dev } = input;
302
+ release = release.concat();
303
+ release.reverse();
304
+ while (release.length && release[0] === 0) {
305
+ release.shift();
306
+ }
307
+ release.reverse();
308
+ if (!pre && !post && dev)
309
+ pre = -Infinity;
310
+ else if (!pre)
311
+ pre = Infinity;
312
+ if (!post)
313
+ post = -Infinity;
314
+ if (!dev)
315
+ dev = Infinity;
316
+ if (!local) {
317
+ local = -Infinity;
318
+ } else {
319
+ local = local.map(
320
+ (i) => Number.isNaN(Number(i)) ? [-Infinity, i] : [Number(i), ""]
321
+ );
322
+ }
323
+ return [epoch, release, pre, post, dev, local];
324
+ }
325
+ }
326
+ });
327
+
328
+ // ../../node_modules/.pnpm/@renovatebot+pep440@4.2.1/node_modules/@renovatebot/pep440/lib/specifier.js
329
+ var require_specifier = __commonJS({
330
+ "../../node_modules/.pnpm/@renovatebot+pep440@4.2.1/node_modules/@renovatebot/pep440/lib/specifier.js"(exports, module2) {
331
+ var { VERSION_PATTERN, explain: explainVersion } = require_version();
332
+ var Operator = require_operator();
333
+ var RANGE_PATTERN = [
334
+ "(?<operator>(===|~=|==|!=|<=|>=|<|>))",
335
+ "\\s*",
336
+ "(",
337
+ /* */
338
+ "(?<version>(?:" + VERSION_PATTERN.replace(/\?<\w+>/g, "?:") + "))",
339
+ /* */
340
+ "(?<prefix>\\.\\*)?",
341
+ /* */
342
+ "|",
343
+ /* */
344
+ "(?<legacy>[^,;\\s)]+)",
345
+ ")"
346
+ ].join("");
347
+ module2.exports = {
348
+ RANGE_PATTERN,
349
+ parse,
350
+ satisfies: satisfies2,
351
+ filter,
352
+ validRange,
353
+ maxSatisfying,
354
+ minSatisfying
355
+ };
356
+ var isEqualityOperator = (op) => ["==", "!=", "==="].includes(op);
357
+ var rangeRegex = new RegExp("^" + RANGE_PATTERN + "$", "i");
358
+ function parse(ranges) {
359
+ if (!ranges.trim()) {
360
+ return [];
361
+ }
362
+ const specifiers = ranges.split(",").map((range) => rangeRegex.exec(range.trim()) || {}).map(({ groups }) => {
363
+ if (!groups) {
364
+ return null;
365
+ }
366
+ let { ...spec } = groups;
367
+ const { operator, version, prefix, legacy } = groups;
368
+ if (version) {
369
+ spec = { ...spec, ...explainVersion(version) };
370
+ if (operator === "~=") {
371
+ if (spec.release.length < 2) {
372
+ return null;
373
+ }
374
+ }
375
+ if (!isEqualityOperator(operator) && spec.local) {
376
+ return null;
377
+ }
378
+ if (prefix) {
379
+ if (!isEqualityOperator(operator) || spec.dev || spec.local) {
380
+ return null;
381
+ }
382
+ }
383
+ }
384
+ if (legacy && operator !== "===") {
385
+ return null;
386
+ }
387
+ return spec;
388
+ });
389
+ if (specifiers.filter(Boolean).length !== specifiers.length) {
390
+ return null;
391
+ }
392
+ return specifiers;
393
+ }
394
+ function filter(versions, specifier, options = {}) {
395
+ const filtered = pick(versions, specifier, options);
396
+ if (filtered.length === 0 && options.prereleases === void 0) {
397
+ return pick(versions, specifier, { prereleases: true });
398
+ }
399
+ return filtered;
400
+ }
401
+ function maxSatisfying(versions, range, options) {
402
+ const found = filter(versions, range, options).sort(Operator.compare);
403
+ return found.length === 0 ? null : found[found.length - 1];
404
+ }
405
+ function minSatisfying(versions, range, options) {
406
+ const found = filter(versions, range, options).sort(Operator.compare);
407
+ return found.length === 0 ? null : found[0];
408
+ }
409
+ function pick(versions, specifier, options) {
410
+ const parsed = parse(specifier);
411
+ if (!parsed) {
412
+ return [];
413
+ }
414
+ return versions.filter((version) => {
415
+ const explained = explainVersion(version);
416
+ if (!parsed.length) {
417
+ return explained && !(explained.is_prerelease && !options.prereleases);
418
+ }
419
+ return parsed.reduce((pass, spec) => {
420
+ if (!pass) {
421
+ return false;
422
+ }
423
+ return contains({ ...spec, ...options }, { version, explained });
424
+ }, true);
425
+ });
426
+ }
427
+ function satisfies2(version, specifier, options = {}) {
428
+ const filtered = pick([version], specifier, options);
429
+ return filtered.length === 1;
430
+ }
431
+ function arrayStartsWith(array, prefix) {
432
+ if (prefix.length > array.length) {
433
+ return false;
434
+ }
435
+ for (let i = 0; i < prefix.length; i += 1) {
436
+ if (prefix[i] !== array[i]) {
437
+ return false;
438
+ }
439
+ }
440
+ return true;
441
+ }
442
+ function contains(specifier, input) {
443
+ const { explained } = input;
444
+ let { version } = input;
445
+ const { ...spec } = specifier;
446
+ if (spec.prereleases === void 0) {
447
+ spec.prereleases = spec.is_prerelease;
448
+ }
449
+ if (explained && explained.is_prerelease && !spec.prereleases) {
450
+ return false;
451
+ }
452
+ if (spec.operator === "~=") {
453
+ let compatiblePrefix = spec.release.slice(0, -1).concat("*").join(".");
454
+ if (spec.epoch) {
455
+ compatiblePrefix = spec.epoch + "!" + compatiblePrefix;
456
+ }
457
+ return satisfies2(version, `>=${spec.version}, ==${compatiblePrefix}`);
458
+ }
459
+ if (spec.prefix) {
460
+ const isMatching = explained.epoch === spec.epoch && arrayStartsWith(explained.release, spec.release);
461
+ const isEquality = spec.operator !== "!=";
462
+ return isEquality ? isMatching : !isMatching;
463
+ }
464
+ if (explained) {
465
+ if (explained.local && spec.version) {
466
+ version = explained.public;
467
+ spec.version = explainVersion(spec.version).public;
468
+ }
469
+ }
470
+ if (spec.operator === "<" || spec.operator === ">") {
471
+ if (Operator.eq(spec.release.join("."), explained.release.join("."))) {
472
+ return false;
473
+ }
474
+ }
475
+ const op = Operator[spec.operator];
476
+ return op(version, spec.version || spec.legacy);
477
+ }
478
+ function validRange(specifier) {
479
+ return Boolean(parse(specifier));
480
+ }
481
+ }
482
+ });
483
+
484
+ // ../../node_modules/.pnpm/@renovatebot+pep440@4.2.1/node_modules/@renovatebot/pep440/lib/semantic.js
485
+ var require_semantic = __commonJS({
486
+ "../../node_modules/.pnpm/@renovatebot+pep440@4.2.1/node_modules/@renovatebot/pep440/lib/semantic.js"(exports, module2) {
487
+ var { explain, parse, stringify } = require_version();
488
+ module2.exports = {
489
+ major,
490
+ minor,
491
+ patch,
492
+ inc
493
+ };
494
+ function major(input) {
495
+ const version = explain(input);
496
+ if (!version) {
497
+ throw new TypeError("Invalid Version: " + input);
498
+ }
499
+ return version.release[0];
500
+ }
501
+ function minor(input) {
502
+ const version = explain(input);
503
+ if (!version) {
504
+ throw new TypeError("Invalid Version: " + input);
505
+ }
506
+ if (version.release.length < 2) {
507
+ return 0;
508
+ }
509
+ return version.release[1];
510
+ }
511
+ function patch(input) {
512
+ const version = explain(input);
513
+ if (!version) {
514
+ throw new TypeError("Invalid Version: " + input);
515
+ }
516
+ if (version.release.length < 3) {
517
+ return 0;
518
+ }
519
+ return version.release[2];
520
+ }
521
+ function inc(input, release, preReleaseIdentifier) {
522
+ let identifier = preReleaseIdentifier || `a`;
523
+ const version = parse(input);
524
+ if (!version) {
525
+ return null;
526
+ }
527
+ if (!["a", "b", "c", "rc", "alpha", "beta", "pre", "preview"].includes(
528
+ identifier
529
+ )) {
530
+ return null;
531
+ }
532
+ switch (release) {
533
+ case "premajor":
534
+ {
535
+ const [majorVersion] = version.release;
536
+ version.release.fill(0);
537
+ version.release[0] = majorVersion + 1;
538
+ }
539
+ version.pre = [identifier, 0];
540
+ delete version.post;
541
+ delete version.dev;
542
+ delete version.local;
543
+ break;
544
+ case "preminor":
545
+ {
546
+ const [majorVersion, minorVersion = 0] = version.release;
547
+ version.release.fill(0);
548
+ version.release[0] = majorVersion;
549
+ version.release[1] = minorVersion + 1;
550
+ }
551
+ version.pre = [identifier, 0];
552
+ delete version.post;
553
+ delete version.dev;
554
+ delete version.local;
555
+ break;
556
+ case "prepatch":
557
+ {
558
+ const [majorVersion, minorVersion = 0, patchVersion = 0] = version.release;
559
+ version.release.fill(0);
560
+ version.release[0] = majorVersion;
561
+ version.release[1] = minorVersion;
562
+ version.release[2] = patchVersion + 1;
563
+ }
564
+ version.pre = [identifier, 0];
565
+ delete version.post;
566
+ delete version.dev;
567
+ delete version.local;
568
+ break;
569
+ case "prerelease":
570
+ if (version.pre === null) {
571
+ const [majorVersion, minorVersion = 0, patchVersion = 0] = version.release;
572
+ version.release.fill(0);
573
+ version.release[0] = majorVersion;
574
+ version.release[1] = minorVersion;
575
+ version.release[2] = patchVersion + 1;
576
+ version.pre = [identifier, 0];
577
+ } else {
578
+ if (preReleaseIdentifier === void 0 && version.pre !== null) {
579
+ [identifier] = version.pre;
580
+ }
581
+ const [letter, number] = version.pre;
582
+ if (letter === identifier) {
583
+ version.pre = [letter, number + 1];
584
+ } else {
585
+ version.pre = [identifier, 0];
586
+ }
587
+ }
588
+ delete version.post;
589
+ delete version.dev;
590
+ delete version.local;
591
+ break;
592
+ case "major":
593
+ if (version.release.slice(1).some((value) => value !== 0) || version.pre === null) {
594
+ const [majorVersion] = version.release;
595
+ version.release.fill(0);
596
+ version.release[0] = majorVersion + 1;
597
+ }
598
+ delete version.pre;
599
+ delete version.post;
600
+ delete version.dev;
601
+ delete version.local;
602
+ break;
603
+ case "minor":
604
+ if (version.release.slice(2).some((value) => value !== 0) || version.pre === null) {
605
+ const [majorVersion, minorVersion = 0] = version.release;
606
+ version.release.fill(0);
607
+ version.release[0] = majorVersion;
608
+ version.release[1] = minorVersion + 1;
609
+ }
610
+ delete version.pre;
611
+ delete version.post;
612
+ delete version.dev;
613
+ delete version.local;
614
+ break;
615
+ case "patch":
616
+ if (version.release.slice(3).some((value) => value !== 0) || version.pre === null) {
617
+ const [majorVersion, minorVersion = 0, patchVersion = 0] = version.release;
618
+ version.release.fill(0);
619
+ version.release[0] = majorVersion;
620
+ version.release[1] = minorVersion;
621
+ version.release[2] = patchVersion + 1;
622
+ }
623
+ delete version.pre;
624
+ delete version.post;
625
+ delete version.dev;
626
+ delete version.local;
627
+ break;
628
+ default:
629
+ return null;
630
+ }
631
+ return stringify(version);
632
+ }
633
+ }
634
+ });
635
+
636
+ // ../../node_modules/.pnpm/@renovatebot+pep440@4.2.1/node_modules/@renovatebot/pep440/index.js
637
+ var require_pep440 = __commonJS({
638
+ "../../node_modules/.pnpm/@renovatebot+pep440@4.2.1/node_modules/@renovatebot/pep440/index.js"(exports, module2) {
639
+ var { valid, clean, explain, parse } = require_version();
640
+ var { lt, le, eq, ne, ge, gt, compare, rcompare } = require_operator();
641
+ var {
642
+ filter,
643
+ maxSatisfying,
644
+ minSatisfying,
645
+ RANGE_PATTERN,
646
+ satisfies: satisfies2,
647
+ validRange
648
+ } = require_specifier();
649
+ var { major, minor, patch, inc } = require_semantic();
650
+ module2.exports = {
651
+ // version
652
+ valid,
653
+ clean,
654
+ explain,
655
+ parse,
656
+ // operator
657
+ lt,
658
+ le,
659
+ lte: le,
660
+ eq,
661
+ ne,
662
+ neq: ne,
663
+ ge,
664
+ gte: ge,
665
+ gt,
666
+ compare,
667
+ rcompare,
668
+ // range
669
+ filter,
670
+ maxSatisfying,
671
+ minSatisfying,
672
+ RANGE_PATTERN,
673
+ satisfies: satisfies2,
674
+ validRange,
675
+ // semantic
676
+ major,
677
+ minor,
678
+ patch,
679
+ inc
680
+ };
681
+ }
682
+ });
683
+
31
684
  // src/index.ts
32
685
  var src_exports = {};
33
686
  __export(src_exports, {
@@ -801,9 +1454,18 @@ async function readConfigIfExists(filename, schema, filetype = void 0) {
801
1454
 
802
1455
  // src/manifest/pep440.ts
803
1456
  var import_node_assert = __toESM(require("assert"), 1);
804
- var import_version = require("@renovatebot/pep440/lib/version");
805
- var import_pep440 = require("@renovatebot/pep440");
806
- var import_specifier = require("@renovatebot/pep440/lib/specifier");
1457
+ var import_pep440 = __toESM(require_pep440(), 1);
1458
+ var import_specifier = __toESM(require_specifier(), 1);
1459
+ var import_version = __toESM(require_version(), 1);
1460
+ function parsePep440Version(version) {
1461
+ return (0, import_pep440.parse)(version);
1462
+ }
1463
+ function parsePep440Constraint(ranges) {
1464
+ return (0, import_specifier.parse)(ranges);
1465
+ }
1466
+ function pep440Satisfies(version, specifier) {
1467
+ return (0, import_specifier.satisfies)(version, specifier);
1468
+ }
807
1469
  function pep440ConstraintFromVersion(v) {
808
1470
  return [
809
1471
  {
@@ -1644,12 +2306,12 @@ function parseUvPythonRequest(input) {
1644
2306
  }
1645
2307
  function parseVersionRequest(input) {
1646
2308
  const [version, variant] = parseVariantSuffix(input);
1647
- let parsedVer = (0, import_pep440.parse)(version);
2309
+ let parsedVer = parsePep440Version(version);
1648
2310
  if (parsedVer != null) {
1649
2311
  if (parsedVer.release.length === 1) {
1650
2312
  const converted = splitWheelTagVersion(version);
1651
2313
  if (converted != null) {
1652
- const convertedVer = (0, import_pep440.parse)(converted);
2314
+ const convertedVer = parsePep440Version(converted);
1653
2315
  if (convertedVer != null) {
1654
2316
  parsedVer = convertedVer;
1655
2317
  }
@@ -1660,7 +2322,7 @@ function parseVersionRequest(input) {
1660
2322
  variant
1661
2323
  };
1662
2324
  }
1663
- const parsedConstr = (0, import_specifier.parse)(version);
2325
+ const parsedConstr = parsePep440Constraint(version);
1664
2326
  if (parsedConstr?.length) {
1665
2327
  return {
1666
2328
  constraint: parsedConstr,
@@ -1919,7 +2581,7 @@ function computeRequiresPython(manifest, workspaceManifest, configs) {
1919
2581
  if (!hasPythonVersionFile) {
1920
2582
  const manifestRequiresPython = manifest?.data.project?.["requires-python"];
1921
2583
  if (manifestRequiresPython) {
1922
- const parsed = (0, import_specifier.parse)(manifestRequiresPython);
2584
+ const parsed = parsePep440Constraint(manifestRequiresPython);
1923
2585
  if (parsed?.length) {
1924
2586
  const request = pythonRequestFromConstraint(parsed);
1925
2587
  constraints.push({
@@ -1932,7 +2594,7 @@ function computeRequiresPython(manifest, workspaceManifest, configs) {
1932
2594
  } else {
1933
2595
  const workspaceRequiresPython = workspaceManifest?.data.project?.["requires-python"];
1934
2596
  if (workspaceRequiresPython) {
1935
- const parsed = (0, import_specifier.parse)(workspaceRequiresPython);
2597
+ const parsed = parsePep440Constraint(workspaceRequiresPython);
1936
2598
  if (parsed?.length) {
1937
2599
  const request = pythonRequestFromConstraint(parsed);
1938
2600
  constraints.push({
@@ -2018,8 +2680,35 @@ async function loadPythonManifest(root, prefix) {
2018
2680
  }
2019
2681
  }
2020
2682
  }
2683
+ if (manifest != null) {
2684
+ normalizeDependencyGroups(manifest);
2685
+ }
2021
2686
  return manifest;
2022
2687
  }
2688
+ function normalizeDependencyGroups(manifest) {
2689
+ const groups = manifest.data["dependency-groups"];
2690
+ if (groups == null) {
2691
+ return;
2692
+ }
2693
+ const normalized = {};
2694
+ for (const [name, entries] of Object.entries(groups)) {
2695
+ const key = normalizePackageName(name);
2696
+ if (Object.prototype.hasOwnProperty.call(normalized, key)) {
2697
+ throw new PythonAnalysisError({
2698
+ message: `duplicate dependency group "${key}": group names must be unique after normalization`,
2699
+ code: "PYTHON_DUPLICATE_DEPENDENCY_GROUP",
2700
+ path: manifest.path
2701
+ });
2702
+ }
2703
+ normalized[key] = entries.map(
2704
+ (entry) => typeof entry === "string" ? entry : {
2705
+ ...entry,
2706
+ "include-group": normalizePackageName(entry["include-group"])
2707
+ }
2708
+ );
2709
+ }
2710
+ manifest.data["dependency-groups"] = normalized;
2711
+ }
2023
2712
  async function maybeLoadLockFile(root, subdir) {
2024
2713
  const uvLockRelPath = import_node_path5.default.join(subdir, "uv.lock");
2025
2714
  const uvLockPath = import_node_path5.default.join(root, uvLockRelPath);
@@ -2573,7 +3262,7 @@ function buildMatchesRequest(build, request) {
2573
3262
  if (versionConstraints.length > 0) {
2574
3263
  const buildVersionStr = pythonVersionToString(build.version);
2575
3264
  const specifier = pep440ConstraintsToString(versionConstraints);
2576
- if (!(0, import_specifier.satisfies)(buildVersionStr, specifier)) {
3265
+ if (!pep440Satisfies(buildVersionStr, specifier)) {
2577
3266
  return false;
2578
3267
  }
2579
3268
  }