1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.validRange = exports.satisfiesWithPrereleases = void 0;
|
4 | const tslib_1 = require("tslib");
|
5 | const semver_1 = tslib_1.__importDefault(require("semver"));
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 | function satisfiesWithPrereleases(version, range, loose = false) {
|
20 | let semverRange;
|
21 | try {
|
22 | semverRange = new semver_1.default.Range(range, { includePrerelease: true, loose });
|
23 | }
|
24 | catch (err) {
|
25 | return false;
|
26 | }
|
27 | if (!version)
|
28 | return false;
|
29 | let semverVersion;
|
30 | try {
|
31 | semverVersion = new semver_1.default.SemVer(version, semverRange);
|
32 | if (semverVersion.prerelease) {
|
33 | semverVersion.prerelease = [];
|
34 | }
|
35 | }
|
36 | catch (err) {
|
37 | return false;
|
38 | }
|
39 |
|
40 |
|
41 | return semverRange.set.some(comparatorSet => {
|
42 | for (const comparator of comparatorSet)
|
43 | if (comparator.semver.prerelease)
|
44 | comparator.semver.prerelease = [];
|
45 | return comparatorSet.every(comparator => {
|
46 | return comparator.test(semverVersion);
|
47 | });
|
48 | });
|
49 | }
|
50 | exports.satisfiesWithPrereleases = satisfiesWithPrereleases;
|
51 | const rangesCache = new Map();
|
52 |
|
53 |
|
54 |
|
55 | function validRange(potentialRange) {
|
56 | if (potentialRange.indexOf(`:`) !== -1)
|
57 | return null;
|
58 | let range = rangesCache.get(potentialRange);
|
59 | if (typeof range !== `undefined`)
|
60 | return range;
|
61 | try {
|
62 | range = new semver_1.default.Range(potentialRange);
|
63 | }
|
64 | catch (_a) {
|
65 | range = null;
|
66 | }
|
67 | rangesCache.set(potentialRange, range);
|
68 | return range;
|
69 | }
|
70 | exports.validRange = validRange;
|