@cloudsnorkel/cdk-github-runners 0.9.5 → 0.9.7
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.
- package/.gitattributes +2 -0
- package/.jsii +118 -101
- package/API.md +28 -15
- package/README.md +120 -63
- package/assets/delete-runner.lambda/index.js +69 -63
- package/assets/image-builders/aws-image-builder/reaper.lambda/index.js +163 -0
- package/assets/image-builders/aws-image-builder/versioner.lambda/index.js +69 -63
- package/assets/status.lambda/index.js +69 -63
- package/assets/token-retriever.lambda/index.js +69 -63
- package/cdk.json +10 -0
- package/lib/access.js +1 -1
- package/lib/image-builders/api.js +1 -1
- package/lib/image-builders/aws-image-builder/builder.d.ts +1 -1
- package/lib/image-builders/aws-image-builder/builder.js +62 -26
- package/lib/image-builders/aws-image-builder/deprecated/ami.d.ts +2 -2
- package/lib/image-builders/aws-image-builder/deprecated/ami.js +4 -4
- package/lib/image-builders/aws-image-builder/deprecated/container.d.ts +3 -3
- package/lib/image-builders/aws-image-builder/deprecated/container.js +11 -14
- package/lib/image-builders/aws-image-builder/deprecated/linux-components.js +1 -1
- package/lib/image-builders/aws-image-builder/deprecated/windows-components.js +1 -1
- package/lib/image-builders/aws-image-builder/reaper-function.d.ts +13 -0
- package/lib/image-builders/aws-image-builder/reaper-function.js +23 -0
- package/lib/image-builders/aws-image-builder/reaper.lambda.d.ts +1 -0
- package/lib/image-builders/aws-image-builder/reaper.lambda.js +149 -0
- package/lib/image-builders/codebuild-deprecated.d.ts +4 -4
- package/lib/image-builders/codebuild-deprecated.js +18 -22
- package/lib/image-builders/codebuild.d.ts +1 -1
- package/lib/image-builders/codebuild.js +24 -25
- package/lib/image-builders/common.d.ts +2 -2
- package/lib/image-builders/common.js +1 -1
- package/lib/image-builders/components.js +4 -4
- package/lib/image-builders/static.d.ts +1 -1
- package/lib/image-builders/static.js +7 -6
- package/lib/providers/codebuild.js +2 -2
- package/lib/providers/common.d.ts +6 -0
- package/lib/providers/common.js +4 -4
- package/lib/providers/ec2.d.ts +1 -1
- package/lib/providers/ec2.js +3 -3
- package/lib/providers/ecs.d.ts +6 -2
- package/lib/providers/ecs.js +64 -32
- package/lib/providers/fargate.js +2 -2
- package/lib/providers/lambda.js +12 -3
- package/lib/runner.d.ts +3 -3
- package/lib/runner.js +5 -5
- package/lib/secrets.js +1 -1
- package/package.json +7 -5
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __copyProps = (to, from, except, desc) => {
|
|
9
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
10
|
+
for (let key of __getOwnPropNames(from))
|
|
11
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
12
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
13
|
+
}
|
|
14
|
+
return to;
|
|
15
|
+
};
|
|
16
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
17
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
18
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
19
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
20
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
|
+
mod
|
|
23
|
+
));
|
|
24
|
+
|
|
25
|
+
// src/image-builders/aws-image-builder/reaper.lambda.ts
|
|
26
|
+
var AWS = __toESM(require("aws-sdk"));
|
|
27
|
+
var ec2 = new AWS.EC2();
|
|
28
|
+
var ecr = new AWS.ECR();
|
|
29
|
+
var ib = new AWS.Imagebuilder();
|
|
30
|
+
async function iterateImageVersions(imageName) {
|
|
31
|
+
let result = [];
|
|
32
|
+
let params = {
|
|
33
|
+
owner: "Self",
|
|
34
|
+
filters: [
|
|
35
|
+
{
|
|
36
|
+
name: "name",
|
|
37
|
+
values: [imageName]
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
};
|
|
41
|
+
while (true) {
|
|
42
|
+
const response = await ib.listImages(params).promise();
|
|
43
|
+
if (response.imageVersionList) {
|
|
44
|
+
for (const imageVersion of response.imageVersionList) {
|
|
45
|
+
if (imageVersion.arn) {
|
|
46
|
+
result.push(imageVersion.arn);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
if (!response.nextToken) {
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
params.nextToken = response.nextToken;
|
|
54
|
+
}
|
|
55
|
+
return result;
|
|
56
|
+
}
|
|
57
|
+
async function iterateImageBuildVersions(imageVersionArn) {
|
|
58
|
+
var _a;
|
|
59
|
+
let result = [];
|
|
60
|
+
let params = {
|
|
61
|
+
imageVersionArn
|
|
62
|
+
};
|
|
63
|
+
while (true) {
|
|
64
|
+
const response = await ib.listImageBuildVersions(params).promise();
|
|
65
|
+
if (response.imageSummaryList) {
|
|
66
|
+
for (const imageBuildVersion of response.imageSummaryList) {
|
|
67
|
+
if (((_a = imageBuildVersion.state) == null ? void 0 : _a.status) !== "AVAILABLE") {
|
|
68
|
+
console.log(`${imageBuildVersion.arn} is still being created, so we can't delete it`);
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
result.push(imageBuildVersion);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
if (!response.nextToken) {
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
params.nextToken = response.nextToken;
|
|
78
|
+
}
|
|
79
|
+
return result;
|
|
80
|
+
}
|
|
81
|
+
async function amisGone(amis) {
|
|
82
|
+
var _a;
|
|
83
|
+
if (!amis) {
|
|
84
|
+
console.log("No AMIs found, so we can delete the image version build");
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
for (const ami of amis) {
|
|
88
|
+
console.log(`Checking if ${ami.image} exists`);
|
|
89
|
+
if (!ami.image) {
|
|
90
|
+
console.log("No AMI, so we can delete it");
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
try {
|
|
94
|
+
const response = await ec2.describeImages({
|
|
95
|
+
ImageIds: [ami.image]
|
|
96
|
+
}).promise();
|
|
97
|
+
if (((_a = response.Images) == null ? void 0 : _a.length) ?? 0 > 0) {
|
|
98
|
+
console.log("AMI still available, so we can't delete it");
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
} catch (e) {
|
|
102
|
+
if (e.code != "InvalidAMIID.NotFound") {
|
|
103
|
+
console.error(`Unknown exception while checking if ${ami.image} exists:`, e);
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
console.log("All AMIs are gone, so we can delete the image version build");
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
async function dockerImagesGone(dockerImages) {
|
|
112
|
+
var _a;
|
|
113
|
+
if (!dockerImages) {
|
|
114
|
+
console.log("No docker images, so we can delete the image version build");
|
|
115
|
+
return true;
|
|
116
|
+
}
|
|
117
|
+
for (const images of dockerImages) {
|
|
118
|
+
for (const image of images.imageUris ?? []) {
|
|
119
|
+
const [repo, version] = image.split(":", 2);
|
|
120
|
+
const [_, repoName] = repo.split("/", 2);
|
|
121
|
+
if (version === "latest") {
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
console.log(`Checking if ${repoName}:${version} exists`);
|
|
125
|
+
try {
|
|
126
|
+
const response = await ecr.describeImages({
|
|
127
|
+
repositoryName: repoName,
|
|
128
|
+
imageIds: [{ imageTag: version }]
|
|
129
|
+
}).promise();
|
|
130
|
+
if (response.imageDetails && response.imageDetails.length > 0) {
|
|
131
|
+
if ((_a = response.imageDetails[0].imageTags) == null ? void 0 : _a.includes("latest")) {
|
|
132
|
+
console.log(`Docker image ${repoName}:${version} still available and tagged latest, so we can't delete it`);
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
} catch (e) {
|
|
137
|
+
if (e.code != "RepositoryNotFoundException" && e.code != "ImageNotFoundException") {
|
|
138
|
+
console.error(`Unknown exception while checking if ${repoName}:${version} exists:`, e);
|
|
139
|
+
return false;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
console.log("All Docker images are gone, so we can delete the image version build");
|
|
145
|
+
return true;
|
|
146
|
+
}
|
|
147
|
+
exports.handler = async function(event, _context) {
|
|
148
|
+
var _a, _b;
|
|
149
|
+
for (const imageVersion of await iterateImageVersions(event.RecipeName)) {
|
|
150
|
+
for (const imageBuildVersion of await iterateImageBuildVersions(imageVersion)) {
|
|
151
|
+
if (!imageBuildVersion.arn) {
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
154
|
+
console.log(`Checking ${imageBuildVersion.name}/${imageBuildVersion.version}`);
|
|
155
|
+
if (await amisGone((_a = imageBuildVersion.outputResources) == null ? void 0 : _a.amis) && await dockerImagesGone((_b = imageBuildVersion.outputResources) == null ? void 0 : _b.containers)) {
|
|
156
|
+
console.log("Deleting image version build", imageBuildVersion.arn);
|
|
157
|
+
await ib.deleteImage({
|
|
158
|
+
imageBuildVersionArn: imageBuildVersion.arn
|
|
159
|
+
}).promise();
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
};
|
|
@@ -188,7 +188,7 @@ var require_semver = __commonJS({
|
|
|
188
188
|
version = version.version;
|
|
189
189
|
}
|
|
190
190
|
} else if (typeof version !== "string") {
|
|
191
|
-
throw new TypeError(`Invalid Version: ${version}`);
|
|
191
|
+
throw new TypeError(`Invalid Version: ${require("util").inspect(version)}`);
|
|
192
192
|
}
|
|
193
193
|
if (version.length > MAX_LENGTH) {
|
|
194
194
|
throw new TypeError(
|
|
@@ -361,9 +361,13 @@ var require_semver = __commonJS({
|
|
|
361
361
|
}
|
|
362
362
|
this.prerelease = [];
|
|
363
363
|
break;
|
|
364
|
-
case "pre":
|
|
364
|
+
case "pre": {
|
|
365
|
+
const base = Number(identifierBase) ? 1 : 0;
|
|
366
|
+
if (!identifier && identifierBase === false) {
|
|
367
|
+
throw new Error("invalid increment argument: identifier is empty");
|
|
368
|
+
}
|
|
365
369
|
if (this.prerelease.length === 0) {
|
|
366
|
-
this.prerelease = [
|
|
370
|
+
this.prerelease = [base];
|
|
367
371
|
} else {
|
|
368
372
|
let i = this.prerelease.length;
|
|
369
373
|
while (--i >= 0) {
|
|
@@ -373,20 +377,27 @@ var require_semver = __commonJS({
|
|
|
373
377
|
}
|
|
374
378
|
}
|
|
375
379
|
if (i === -1) {
|
|
376
|
-
this.prerelease.
|
|
380
|
+
if (identifier === this.prerelease.join(".") && identifierBase === false) {
|
|
381
|
+
throw new Error("invalid increment argument: identifier already exists");
|
|
382
|
+
}
|
|
383
|
+
this.prerelease.push(base);
|
|
377
384
|
}
|
|
378
385
|
}
|
|
379
386
|
if (identifier) {
|
|
380
|
-
|
|
387
|
+
let prerelease = [identifier, base];
|
|
388
|
+
if (identifierBase === false) {
|
|
389
|
+
prerelease = [identifier];
|
|
390
|
+
}
|
|
381
391
|
if (compareIdentifiers(this.prerelease[0], identifier) === 0) {
|
|
382
392
|
if (isNaN(this.prerelease[1])) {
|
|
383
|
-
this.prerelease =
|
|
393
|
+
this.prerelease = prerelease;
|
|
384
394
|
}
|
|
385
395
|
} else {
|
|
386
|
-
this.prerelease =
|
|
396
|
+
this.prerelease = prerelease;
|
|
387
397
|
}
|
|
388
398
|
}
|
|
389
399
|
break;
|
|
400
|
+
}
|
|
390
401
|
default:
|
|
391
402
|
throw new Error(`invalid increment argument: ${release}`);
|
|
392
403
|
}
|
|
@@ -402,22 +413,18 @@ var require_semver = __commonJS({
|
|
|
402
413
|
// node_modules/semver/functions/parse.js
|
|
403
414
|
var require_parse = __commonJS({
|
|
404
415
|
"node_modules/semver/functions/parse.js"(exports, module2) {
|
|
405
|
-
var { MAX_LENGTH } = require_constants();
|
|
406
416
|
var SemVer = require_semver();
|
|
407
|
-
var parse = (version, options) => {
|
|
417
|
+
var parse = (version, options, throwErrors = false) => {
|
|
408
418
|
if (version instanceof SemVer) {
|
|
409
419
|
return version;
|
|
410
420
|
}
|
|
411
|
-
if (typeof version !== "string") {
|
|
412
|
-
return null;
|
|
413
|
-
}
|
|
414
|
-
if (version.length > MAX_LENGTH) {
|
|
415
|
-
return null;
|
|
416
|
-
}
|
|
417
421
|
try {
|
|
418
422
|
return new SemVer(version, options);
|
|
419
423
|
} catch (er) {
|
|
420
|
-
|
|
424
|
+
if (!throwErrors) {
|
|
425
|
+
return null;
|
|
426
|
+
}
|
|
427
|
+
throw er;
|
|
421
428
|
}
|
|
422
429
|
};
|
|
423
430
|
module2.exports = parse;
|
|
@@ -471,60 +478,41 @@ var require_inc = __commonJS({
|
|
|
471
478
|
}
|
|
472
479
|
});
|
|
473
480
|
|
|
474
|
-
// node_modules/semver/functions/compare.js
|
|
475
|
-
var require_compare = __commonJS({
|
|
476
|
-
"node_modules/semver/functions/compare.js"(exports, module2) {
|
|
477
|
-
var SemVer = require_semver();
|
|
478
|
-
var compare = (a, b, loose) => new SemVer(a, loose).compare(new SemVer(b, loose));
|
|
479
|
-
module2.exports = compare;
|
|
480
|
-
}
|
|
481
|
-
});
|
|
482
|
-
|
|
483
|
-
// node_modules/semver/functions/eq.js
|
|
484
|
-
var require_eq = __commonJS({
|
|
485
|
-
"node_modules/semver/functions/eq.js"(exports, module2) {
|
|
486
|
-
var compare = require_compare();
|
|
487
|
-
var eq = (a, b, loose) => compare(a, b, loose) === 0;
|
|
488
|
-
module2.exports = eq;
|
|
489
|
-
}
|
|
490
|
-
});
|
|
491
|
-
|
|
492
481
|
// node_modules/semver/functions/diff.js
|
|
493
482
|
var require_diff = __commonJS({
|
|
494
483
|
"node_modules/semver/functions/diff.js"(exports, module2) {
|
|
495
484
|
var parse = require_parse();
|
|
496
|
-
var eq = require_eq();
|
|
497
485
|
var diff = (version1, version2) => {
|
|
498
|
-
const v1 = parse(version1);
|
|
499
|
-
const v2 = parse(version2);
|
|
500
|
-
|
|
486
|
+
const v1 = parse(version1, null, true);
|
|
487
|
+
const v2 = parse(version2, null, true);
|
|
488
|
+
const comparison = v1.compare(v2);
|
|
489
|
+
if (comparison === 0) {
|
|
501
490
|
return null;
|
|
502
|
-
} else {
|
|
503
|
-
const hasPre = v1.prerelease.length || v2.prerelease.length;
|
|
504
|
-
const prefix = hasPre ? "pre" : "";
|
|
505
|
-
const defaultResult = hasPre ? "prerelease" : "";
|
|
506
|
-
if (v1.major !== v2.major) {
|
|
507
|
-
return prefix + "major";
|
|
508
|
-
}
|
|
509
|
-
if (v1.minor !== v2.minor) {
|
|
510
|
-
return prefix + "minor";
|
|
511
|
-
}
|
|
512
|
-
if (v1.patch !== v2.patch) {
|
|
513
|
-
return prefix + "patch";
|
|
514
|
-
}
|
|
515
|
-
if (!v1.prerelease.length || !v2.prerelease.length) {
|
|
516
|
-
if (v1.patch) {
|
|
517
|
-
return "patch";
|
|
518
|
-
}
|
|
519
|
-
if (v1.minor) {
|
|
520
|
-
return "minor";
|
|
521
|
-
}
|
|
522
|
-
if (v1.major) {
|
|
523
|
-
return "major";
|
|
524
|
-
}
|
|
525
|
-
}
|
|
526
|
-
return defaultResult;
|
|
527
491
|
}
|
|
492
|
+
const v1Higher = comparison > 0;
|
|
493
|
+
const highVersion = v1Higher ? v1 : v2;
|
|
494
|
+
const lowVersion = v1Higher ? v2 : v1;
|
|
495
|
+
const highHasPre = !!highVersion.prerelease.length;
|
|
496
|
+
const prefix = highHasPre ? "pre" : "";
|
|
497
|
+
if (v1.major !== v2.major) {
|
|
498
|
+
return prefix + "major";
|
|
499
|
+
}
|
|
500
|
+
if (v1.minor !== v2.minor) {
|
|
501
|
+
return prefix + "minor";
|
|
502
|
+
}
|
|
503
|
+
if (v1.patch !== v2.patch) {
|
|
504
|
+
return prefix + "patch";
|
|
505
|
+
}
|
|
506
|
+
if (highHasPre) {
|
|
507
|
+
return "prerelease";
|
|
508
|
+
}
|
|
509
|
+
if (lowVersion.patch) {
|
|
510
|
+
return "patch";
|
|
511
|
+
}
|
|
512
|
+
if (lowVersion.minor) {
|
|
513
|
+
return "minor";
|
|
514
|
+
}
|
|
515
|
+
return "major";
|
|
528
516
|
};
|
|
529
517
|
module2.exports = diff;
|
|
530
518
|
}
|
|
@@ -569,6 +557,15 @@ var require_prerelease = __commonJS({
|
|
|
569
557
|
}
|
|
570
558
|
});
|
|
571
559
|
|
|
560
|
+
// node_modules/semver/functions/compare.js
|
|
561
|
+
var require_compare = __commonJS({
|
|
562
|
+
"node_modules/semver/functions/compare.js"(exports, module2) {
|
|
563
|
+
var SemVer = require_semver();
|
|
564
|
+
var compare = (a, b, loose) => new SemVer(a, loose).compare(new SemVer(b, loose));
|
|
565
|
+
module2.exports = compare;
|
|
566
|
+
}
|
|
567
|
+
});
|
|
568
|
+
|
|
572
569
|
// node_modules/semver/functions/rcompare.js
|
|
573
570
|
var require_rcompare = __commonJS({
|
|
574
571
|
"node_modules/semver/functions/rcompare.js"(exports, module2) {
|
|
@@ -636,6 +633,15 @@ var require_lt = __commonJS({
|
|
|
636
633
|
}
|
|
637
634
|
});
|
|
638
635
|
|
|
636
|
+
// node_modules/semver/functions/eq.js
|
|
637
|
+
var require_eq = __commonJS({
|
|
638
|
+
"node_modules/semver/functions/eq.js"(exports, module2) {
|
|
639
|
+
var compare = require_compare();
|
|
640
|
+
var eq = (a, b, loose) => compare(a, b, loose) === 0;
|
|
641
|
+
module2.exports = eq;
|
|
642
|
+
}
|
|
643
|
+
});
|
|
644
|
+
|
|
639
645
|
// node_modules/semver/functions/neq.js
|
|
640
646
|
var require_neq = __commonJS({
|
|
641
647
|
"node_modules/semver/functions/neq.js"(exports, module2) {
|
|
@@ -10322,7 +10322,7 @@ var require_semver = __commonJS({
|
|
|
10322
10322
|
version = version.version;
|
|
10323
10323
|
}
|
|
10324
10324
|
} else if (typeof version !== "string") {
|
|
10325
|
-
throw new TypeError(`Invalid Version: ${version}`);
|
|
10325
|
+
throw new TypeError(`Invalid Version: ${require("util").inspect(version)}`);
|
|
10326
10326
|
}
|
|
10327
10327
|
if (version.length > MAX_LENGTH) {
|
|
10328
10328
|
throw new TypeError(
|
|
@@ -10495,9 +10495,13 @@ var require_semver = __commonJS({
|
|
|
10495
10495
|
}
|
|
10496
10496
|
this.prerelease = [];
|
|
10497
10497
|
break;
|
|
10498
|
-
case "pre":
|
|
10498
|
+
case "pre": {
|
|
10499
|
+
const base = Number(identifierBase) ? 1 : 0;
|
|
10500
|
+
if (!identifier && identifierBase === false) {
|
|
10501
|
+
throw new Error("invalid increment argument: identifier is empty");
|
|
10502
|
+
}
|
|
10499
10503
|
if (this.prerelease.length === 0) {
|
|
10500
|
-
this.prerelease = [
|
|
10504
|
+
this.prerelease = [base];
|
|
10501
10505
|
} else {
|
|
10502
10506
|
let i = this.prerelease.length;
|
|
10503
10507
|
while (--i >= 0) {
|
|
@@ -10507,20 +10511,27 @@ var require_semver = __commonJS({
|
|
|
10507
10511
|
}
|
|
10508
10512
|
}
|
|
10509
10513
|
if (i === -1) {
|
|
10510
|
-
this.prerelease.
|
|
10514
|
+
if (identifier === this.prerelease.join(".") && identifierBase === false) {
|
|
10515
|
+
throw new Error("invalid increment argument: identifier already exists");
|
|
10516
|
+
}
|
|
10517
|
+
this.prerelease.push(base);
|
|
10511
10518
|
}
|
|
10512
10519
|
}
|
|
10513
10520
|
if (identifier) {
|
|
10514
|
-
|
|
10521
|
+
let prerelease = [identifier, base];
|
|
10522
|
+
if (identifierBase === false) {
|
|
10523
|
+
prerelease = [identifier];
|
|
10524
|
+
}
|
|
10515
10525
|
if (compareIdentifiers(this.prerelease[0], identifier) === 0) {
|
|
10516
10526
|
if (isNaN(this.prerelease[1])) {
|
|
10517
|
-
this.prerelease =
|
|
10527
|
+
this.prerelease = prerelease;
|
|
10518
10528
|
}
|
|
10519
10529
|
} else {
|
|
10520
|
-
this.prerelease =
|
|
10530
|
+
this.prerelease = prerelease;
|
|
10521
10531
|
}
|
|
10522
10532
|
}
|
|
10523
10533
|
break;
|
|
10534
|
+
}
|
|
10524
10535
|
default:
|
|
10525
10536
|
throw new Error(`invalid increment argument: ${release}`);
|
|
10526
10537
|
}
|
|
@@ -10536,22 +10547,18 @@ var require_semver = __commonJS({
|
|
|
10536
10547
|
// node_modules/semver/functions/parse.js
|
|
10537
10548
|
var require_parse = __commonJS({
|
|
10538
10549
|
"node_modules/semver/functions/parse.js"(exports2, module2) {
|
|
10539
|
-
var { MAX_LENGTH } = require_constants();
|
|
10540
10550
|
var SemVer = require_semver();
|
|
10541
|
-
var parse = (version, options) => {
|
|
10551
|
+
var parse = (version, options, throwErrors = false) => {
|
|
10542
10552
|
if (version instanceof SemVer) {
|
|
10543
10553
|
return version;
|
|
10544
10554
|
}
|
|
10545
|
-
if (typeof version !== "string") {
|
|
10546
|
-
return null;
|
|
10547
|
-
}
|
|
10548
|
-
if (version.length > MAX_LENGTH) {
|
|
10549
|
-
return null;
|
|
10550
|
-
}
|
|
10551
10555
|
try {
|
|
10552
10556
|
return new SemVer(version, options);
|
|
10553
10557
|
} catch (er) {
|
|
10554
|
-
|
|
10558
|
+
if (!throwErrors) {
|
|
10559
|
+
return null;
|
|
10560
|
+
}
|
|
10561
|
+
throw er;
|
|
10555
10562
|
}
|
|
10556
10563
|
};
|
|
10557
10564
|
module2.exports = parse;
|
|
@@ -10605,60 +10612,41 @@ var require_inc = __commonJS({
|
|
|
10605
10612
|
}
|
|
10606
10613
|
});
|
|
10607
10614
|
|
|
10608
|
-
// node_modules/semver/functions/compare.js
|
|
10609
|
-
var require_compare = __commonJS({
|
|
10610
|
-
"node_modules/semver/functions/compare.js"(exports2, module2) {
|
|
10611
|
-
var SemVer = require_semver();
|
|
10612
|
-
var compare = (a, b, loose) => new SemVer(a, loose).compare(new SemVer(b, loose));
|
|
10613
|
-
module2.exports = compare;
|
|
10614
|
-
}
|
|
10615
|
-
});
|
|
10616
|
-
|
|
10617
|
-
// node_modules/semver/functions/eq.js
|
|
10618
|
-
var require_eq = __commonJS({
|
|
10619
|
-
"node_modules/semver/functions/eq.js"(exports2, module2) {
|
|
10620
|
-
var compare = require_compare();
|
|
10621
|
-
var eq = (a, b, loose) => compare(a, b, loose) === 0;
|
|
10622
|
-
module2.exports = eq;
|
|
10623
|
-
}
|
|
10624
|
-
});
|
|
10625
|
-
|
|
10626
10615
|
// node_modules/semver/functions/diff.js
|
|
10627
10616
|
var require_diff = __commonJS({
|
|
10628
10617
|
"node_modules/semver/functions/diff.js"(exports2, module2) {
|
|
10629
10618
|
var parse = require_parse();
|
|
10630
|
-
var eq = require_eq();
|
|
10631
10619
|
var diff = (version1, version2) => {
|
|
10632
|
-
const v1 = parse(version1);
|
|
10633
|
-
const v2 = parse(version2);
|
|
10634
|
-
|
|
10620
|
+
const v1 = parse(version1, null, true);
|
|
10621
|
+
const v2 = parse(version2, null, true);
|
|
10622
|
+
const comparison = v1.compare(v2);
|
|
10623
|
+
if (comparison === 0) {
|
|
10635
10624
|
return null;
|
|
10636
|
-
} else {
|
|
10637
|
-
const hasPre = v1.prerelease.length || v2.prerelease.length;
|
|
10638
|
-
const prefix = hasPre ? "pre" : "";
|
|
10639
|
-
const defaultResult = hasPre ? "prerelease" : "";
|
|
10640
|
-
if (v1.major !== v2.major) {
|
|
10641
|
-
return prefix + "major";
|
|
10642
|
-
}
|
|
10643
|
-
if (v1.minor !== v2.minor) {
|
|
10644
|
-
return prefix + "minor";
|
|
10645
|
-
}
|
|
10646
|
-
if (v1.patch !== v2.patch) {
|
|
10647
|
-
return prefix + "patch";
|
|
10648
|
-
}
|
|
10649
|
-
if (!v1.prerelease.length || !v2.prerelease.length) {
|
|
10650
|
-
if (v1.patch) {
|
|
10651
|
-
return "patch";
|
|
10652
|
-
}
|
|
10653
|
-
if (v1.minor) {
|
|
10654
|
-
return "minor";
|
|
10655
|
-
}
|
|
10656
|
-
if (v1.major) {
|
|
10657
|
-
return "major";
|
|
10658
|
-
}
|
|
10659
|
-
}
|
|
10660
|
-
return defaultResult;
|
|
10661
10625
|
}
|
|
10626
|
+
const v1Higher = comparison > 0;
|
|
10627
|
+
const highVersion = v1Higher ? v1 : v2;
|
|
10628
|
+
const lowVersion = v1Higher ? v2 : v1;
|
|
10629
|
+
const highHasPre = !!highVersion.prerelease.length;
|
|
10630
|
+
const prefix = highHasPre ? "pre" : "";
|
|
10631
|
+
if (v1.major !== v2.major) {
|
|
10632
|
+
return prefix + "major";
|
|
10633
|
+
}
|
|
10634
|
+
if (v1.minor !== v2.minor) {
|
|
10635
|
+
return prefix + "minor";
|
|
10636
|
+
}
|
|
10637
|
+
if (v1.patch !== v2.patch) {
|
|
10638
|
+
return prefix + "patch";
|
|
10639
|
+
}
|
|
10640
|
+
if (highHasPre) {
|
|
10641
|
+
return "prerelease";
|
|
10642
|
+
}
|
|
10643
|
+
if (lowVersion.patch) {
|
|
10644
|
+
return "patch";
|
|
10645
|
+
}
|
|
10646
|
+
if (lowVersion.minor) {
|
|
10647
|
+
return "minor";
|
|
10648
|
+
}
|
|
10649
|
+
return "major";
|
|
10662
10650
|
};
|
|
10663
10651
|
module2.exports = diff;
|
|
10664
10652
|
}
|
|
@@ -10703,6 +10691,15 @@ var require_prerelease = __commonJS({
|
|
|
10703
10691
|
}
|
|
10704
10692
|
});
|
|
10705
10693
|
|
|
10694
|
+
// node_modules/semver/functions/compare.js
|
|
10695
|
+
var require_compare = __commonJS({
|
|
10696
|
+
"node_modules/semver/functions/compare.js"(exports2, module2) {
|
|
10697
|
+
var SemVer = require_semver();
|
|
10698
|
+
var compare = (a, b, loose) => new SemVer(a, loose).compare(new SemVer(b, loose));
|
|
10699
|
+
module2.exports = compare;
|
|
10700
|
+
}
|
|
10701
|
+
});
|
|
10702
|
+
|
|
10706
10703
|
// node_modules/semver/functions/rcompare.js
|
|
10707
10704
|
var require_rcompare = __commonJS({
|
|
10708
10705
|
"node_modules/semver/functions/rcompare.js"(exports2, module2) {
|
|
@@ -10770,6 +10767,15 @@ var require_lt = __commonJS({
|
|
|
10770
10767
|
}
|
|
10771
10768
|
});
|
|
10772
10769
|
|
|
10770
|
+
// node_modules/semver/functions/eq.js
|
|
10771
|
+
var require_eq = __commonJS({
|
|
10772
|
+
"node_modules/semver/functions/eq.js"(exports2, module2) {
|
|
10773
|
+
var compare = require_compare();
|
|
10774
|
+
var eq = (a, b, loose) => compare(a, b, loose) === 0;
|
|
10775
|
+
module2.exports = eq;
|
|
10776
|
+
}
|
|
10777
|
+
});
|
|
10778
|
+
|
|
10773
10779
|
// node_modules/semver/functions/neq.js
|
|
10774
10780
|
var require_neq = __commonJS({
|
|
10775
10781
|
"node_modules/semver/functions/neq.js"(exports2, module2) {
|