mirror of
https://github.com/ButlerLogic/action-autotag.git
synced 2024-11-23 00:31:07 +07:00
4862 lines
163 KiB
JavaScript
4862 lines
163 KiB
JavaScript
|
var __create = Object.create;
|
||
|
var __defProp = Object.defineProperty;
|
||
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||
|
var __getProtoOf = Object.getPrototypeOf;
|
||
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
||
|
var __commonJS = (cb, mod) => function __require() {
|
||
|
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
||
|
};
|
||
|
var __copyProps = (to, from, except, desc) => {
|
||
|
if (from && typeof from === "object" || typeof from === "function") {
|
||
|
for (let key of __getOwnPropNames(from))
|
||
|
if (!__hasOwnProp.call(to, key) && key !== except)
|
||
|
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
||
|
}
|
||
|
return to;
|
||
|
};
|
||
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
||
|
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
||
|
mod
|
||
|
));
|
||
|
|
||
|
// node_modules/@actions/core/lib/utils.js
|
||
|
var require_utils = __commonJS({
|
||
|
"node_modules/@actions/core/lib/utils.js"(exports) {
|
||
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
exports.toCommandProperties = exports.toCommandValue = void 0;
|
||
|
function toCommandValue(input) {
|
||
|
if (input === null || input === void 0) {
|
||
|
return "";
|
||
|
} else if (typeof input === "string" || input instanceof String) {
|
||
|
return input;
|
||
|
}
|
||
|
return JSON.stringify(input);
|
||
|
}
|
||
|
exports.toCommandValue = toCommandValue;
|
||
|
function toCommandProperties(annotationProperties) {
|
||
|
if (!Object.keys(annotationProperties).length) {
|
||
|
return {};
|
||
|
}
|
||
|
return {
|
||
|
title: annotationProperties.title,
|
||
|
file: annotationProperties.file,
|
||
|
line: annotationProperties.startLine,
|
||
|
endLine: annotationProperties.endLine,
|
||
|
col: annotationProperties.startColumn,
|
||
|
endColumn: annotationProperties.endColumn
|
||
|
};
|
||
|
}
|
||
|
exports.toCommandProperties = toCommandProperties;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/@actions/core/lib/command.js
|
||
|
var require_command = __commonJS({
|
||
|
"node_modules/@actions/core/lib/command.js"(exports) {
|
||
|
"use strict";
|
||
|
var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
|
||
|
if (k2 === void 0)
|
||
|
k2 = k;
|
||
|
Object.defineProperty(o, k2, { enumerable: true, get: function() {
|
||
|
return m[k];
|
||
|
} });
|
||
|
} : function(o, m, k, k2) {
|
||
|
if (k2 === void 0)
|
||
|
k2 = k;
|
||
|
o[k2] = m[k];
|
||
|
});
|
||
|
var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
|
||
|
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||
|
} : function(o, v) {
|
||
|
o["default"] = v;
|
||
|
});
|
||
|
var __importStar = exports && exports.__importStar || function(mod) {
|
||
|
if (mod && mod.__esModule)
|
||
|
return mod;
|
||
|
var result = {};
|
||
|
if (mod != null) {
|
||
|
for (var k in mod)
|
||
|
if (k !== "default" && Object.hasOwnProperty.call(mod, k))
|
||
|
__createBinding(result, mod, k);
|
||
|
}
|
||
|
__setModuleDefault(result, mod);
|
||
|
return result;
|
||
|
};
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
exports.issue = exports.issueCommand = void 0;
|
||
|
var os3 = __importStar(require("os"));
|
||
|
var utils_1 = require_utils();
|
||
|
function issueCommand(command, properties, message) {
|
||
|
const cmd = new Command(command, properties, message);
|
||
|
process.stdout.write(cmd.toString() + os3.EOL);
|
||
|
}
|
||
|
exports.issueCommand = issueCommand;
|
||
|
function issue(name, message = "") {
|
||
|
issueCommand(name, {}, message);
|
||
|
}
|
||
|
exports.issue = issue;
|
||
|
var CMD_STRING = "::";
|
||
|
var Command = class {
|
||
|
constructor(command, properties, message) {
|
||
|
if (!command) {
|
||
|
command = "missing.command";
|
||
|
}
|
||
|
this.command = command;
|
||
|
this.properties = properties;
|
||
|
this.message = message;
|
||
|
}
|
||
|
toString() {
|
||
|
let cmdStr = CMD_STRING + this.command;
|
||
|
if (this.properties && Object.keys(this.properties).length > 0) {
|
||
|
cmdStr += " ";
|
||
|
let first = true;
|
||
|
for (const key in this.properties) {
|
||
|
if (this.properties.hasOwnProperty(key)) {
|
||
|
const val = this.properties[key];
|
||
|
if (val) {
|
||
|
if (first) {
|
||
|
first = false;
|
||
|
} else {
|
||
|
cmdStr += ",";
|
||
|
}
|
||
|
cmdStr += `${key}=${escapeProperty(val)}`;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
cmdStr += `${CMD_STRING}${escapeData(this.message)}`;
|
||
|
return cmdStr;
|
||
|
}
|
||
|
};
|
||
|
function escapeData(s) {
|
||
|
return utils_1.toCommandValue(s).replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A");
|
||
|
}
|
||
|
function escapeProperty(s) {
|
||
|
return utils_1.toCommandValue(s).replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A").replace(/:/g, "%3A").replace(/,/g, "%2C");
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/uuid/dist/rng.js
|
||
|
var require_rng = __commonJS({
|
||
|
"node_modules/uuid/dist/rng.js"(exports) {
|
||
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.default = rng;
|
||
|
var _crypto = _interopRequireDefault(require("crypto"));
|
||
|
function _interopRequireDefault(obj) {
|
||
|
return obj && obj.__esModule ? obj : { default: obj };
|
||
|
}
|
||
|
var rnds8Pool = new Uint8Array(256);
|
||
|
var poolPtr = rnds8Pool.length;
|
||
|
function rng() {
|
||
|
if (poolPtr > rnds8Pool.length - 16) {
|
||
|
_crypto.default.randomFillSync(rnds8Pool);
|
||
|
poolPtr = 0;
|
||
|
}
|
||
|
return rnds8Pool.slice(poolPtr, poolPtr += 16);
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/uuid/dist/regex.js
|
||
|
var require_regex = __commonJS({
|
||
|
"node_modules/uuid/dist/regex.js"(exports) {
|
||
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.default = void 0;
|
||
|
var _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
|
||
|
exports.default = _default;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/uuid/dist/validate.js
|
||
|
var require_validate = __commonJS({
|
||
|
"node_modules/uuid/dist/validate.js"(exports) {
|
||
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.default = void 0;
|
||
|
var _regex = _interopRequireDefault(require_regex());
|
||
|
function _interopRequireDefault(obj) {
|
||
|
return obj && obj.__esModule ? obj : { default: obj };
|
||
|
}
|
||
|
function validate(uuid) {
|
||
|
return typeof uuid === "string" && _regex.default.test(uuid);
|
||
|
}
|
||
|
var _default = validate;
|
||
|
exports.default = _default;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/uuid/dist/stringify.js
|
||
|
var require_stringify = __commonJS({
|
||
|
"node_modules/uuid/dist/stringify.js"(exports) {
|
||
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.default = void 0;
|
||
|
var _validate = _interopRequireDefault(require_validate());
|
||
|
function _interopRequireDefault(obj) {
|
||
|
return obj && obj.__esModule ? obj : { default: obj };
|
||
|
}
|
||
|
var byteToHex = [];
|
||
|
for (let i = 0; i < 256; ++i) {
|
||
|
byteToHex.push((i + 256).toString(16).substr(1));
|
||
|
}
|
||
|
function stringify(arr, offset = 0) {
|
||
|
const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + "-" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + "-" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + "-" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + "-" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();
|
||
|
if (!(0, _validate.default)(uuid)) {
|
||
|
throw TypeError("Stringified UUID is invalid");
|
||
|
}
|
||
|
return uuid;
|
||
|
}
|
||
|
var _default = stringify;
|
||
|
exports.default = _default;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/uuid/dist/v1.js
|
||
|
var require_v1 = __commonJS({
|
||
|
"node_modules/uuid/dist/v1.js"(exports) {
|
||
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.default = void 0;
|
||
|
var _rng = _interopRequireDefault(require_rng());
|
||
|
var _stringify = _interopRequireDefault(require_stringify());
|
||
|
function _interopRequireDefault(obj) {
|
||
|
return obj && obj.__esModule ? obj : { default: obj };
|
||
|
}
|
||
|
var _nodeId;
|
||
|
var _clockseq;
|
||
|
var _lastMSecs = 0;
|
||
|
var _lastNSecs = 0;
|
||
|
function v1(options, buf, offset) {
|
||
|
let i = buf && offset || 0;
|
||
|
const b = buf || new Array(16);
|
||
|
options = options || {};
|
||
|
let node = options.node || _nodeId;
|
||
|
let clockseq = options.clockseq !== void 0 ? options.clockseq : _clockseq;
|
||
|
if (node == null || clockseq == null) {
|
||
|
const seedBytes = options.random || (options.rng || _rng.default)();
|
||
|
if (node == null) {
|
||
|
node = _nodeId = [seedBytes[0] | 1, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];
|
||
|
}
|
||
|
if (clockseq == null) {
|
||
|
clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 16383;
|
||
|
}
|
||
|
}
|
||
|
let msecs = options.msecs !== void 0 ? options.msecs : Date.now();
|
||
|
let nsecs = options.nsecs !== void 0 ? options.nsecs : _lastNSecs + 1;
|
||
|
const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 1e4;
|
||
|
if (dt < 0 && options.clockseq === void 0) {
|
||
|
clockseq = clockseq + 1 & 16383;
|
||
|
}
|
||
|
if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === void 0) {
|
||
|
nsecs = 0;
|
||
|
}
|
||
|
if (nsecs >= 1e4) {
|
||
|
throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");
|
||
|
}
|
||
|
_lastMSecs = msecs;
|
||
|
_lastNSecs = nsecs;
|
||
|
_clockseq = clockseq;
|
||
|
msecs += 122192928e5;
|
||
|
const tl = ((msecs & 268435455) * 1e4 + nsecs) % 4294967296;
|
||
|
b[i++] = tl >>> 24 & 255;
|
||
|
b[i++] = tl >>> 16 & 255;
|
||
|
b[i++] = tl >>> 8 & 255;
|
||
|
b[i++] = tl & 255;
|
||
|
const tmh = msecs / 4294967296 * 1e4 & 268435455;
|
||
|
b[i++] = tmh >>> 8 & 255;
|
||
|
b[i++] = tmh & 255;
|
||
|
b[i++] = tmh >>> 24 & 15 | 16;
|
||
|
b[i++] = tmh >>> 16 & 255;
|
||
|
b[i++] = clockseq >>> 8 | 128;
|
||
|
b[i++] = clockseq & 255;
|
||
|
for (let n = 0; n < 6; ++n) {
|
||
|
b[i + n] = node[n];
|
||
|
}
|
||
|
return buf || (0, _stringify.default)(b);
|
||
|
}
|
||
|
var _default = v1;
|
||
|
exports.default = _default;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/uuid/dist/parse.js
|
||
|
var require_parse = __commonJS({
|
||
|
"node_modules/uuid/dist/parse.js"(exports) {
|
||
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.default = void 0;
|
||
|
var _validate = _interopRequireDefault(require_validate());
|
||
|
function _interopRequireDefault(obj) {
|
||
|
return obj && obj.__esModule ? obj : { default: obj };
|
||
|
}
|
||
|
function parse(uuid) {
|
||
|
if (!(0, _validate.default)(uuid)) {
|
||
|
throw TypeError("Invalid UUID");
|
||
|
}
|
||
|
let v;
|
||
|
const arr = new Uint8Array(16);
|
||
|
arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;
|
||
|
arr[1] = v >>> 16 & 255;
|
||
|
arr[2] = v >>> 8 & 255;
|
||
|
arr[3] = v & 255;
|
||
|
arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;
|
||
|
arr[5] = v & 255;
|
||
|
arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;
|
||
|
arr[7] = v & 255;
|
||
|
arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;
|
||
|
arr[9] = v & 255;
|
||
|
arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 1099511627776 & 255;
|
||
|
arr[11] = v / 4294967296 & 255;
|
||
|
arr[12] = v >>> 24 & 255;
|
||
|
arr[13] = v >>> 16 & 255;
|
||
|
arr[14] = v >>> 8 & 255;
|
||
|
arr[15] = v & 255;
|
||
|
return arr;
|
||
|
}
|
||
|
var _default = parse;
|
||
|
exports.default = _default;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/uuid/dist/v35.js
|
||
|
var require_v35 = __commonJS({
|
||
|
"node_modules/uuid/dist/v35.js"(exports) {
|
||
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.default = _default;
|
||
|
exports.URL = exports.DNS = void 0;
|
||
|
var _stringify = _interopRequireDefault(require_stringify());
|
||
|
var _parse = _interopRequireDefault(require_parse());
|
||
|
function _interopRequireDefault(obj) {
|
||
|
return obj && obj.__esModule ? obj : { default: obj };
|
||
|
}
|
||
|
function stringToBytes(str) {
|
||
|
str = unescape(encodeURIComponent(str));
|
||
|
const bytes = [];
|
||
|
for (let i = 0; i < str.length; ++i) {
|
||
|
bytes.push(str.charCodeAt(i));
|
||
|
}
|
||
|
return bytes;
|
||
|
}
|
||
|
var DNS = "6ba7b810-9dad-11d1-80b4-00c04fd430c8";
|
||
|
exports.DNS = DNS;
|
||
|
var URL2 = "6ba7b811-9dad-11d1-80b4-00c04fd430c8";
|
||
|
exports.URL = URL2;
|
||
|
function _default(name, version, hashfunc) {
|
||
|
function generateUUID(value, namespace, buf, offset) {
|
||
|
if (typeof value === "string") {
|
||
|
value = stringToBytes(value);
|
||
|
}
|
||
|
if (typeof namespace === "string") {
|
||
|
namespace = (0, _parse.default)(namespace);
|
||
|
}
|
||
|
if (namespace.length !== 16) {
|
||
|
throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");
|
||
|
}
|
||
|
let bytes = new Uint8Array(16 + value.length);
|
||
|
bytes.set(namespace);
|
||
|
bytes.set(value, namespace.length);
|
||
|
bytes = hashfunc(bytes);
|
||
|
bytes[6] = bytes[6] & 15 | version;
|
||
|
bytes[8] = bytes[8] & 63 | 128;
|
||
|
if (buf) {
|
||
|
offset = offset || 0;
|
||
|
for (let i = 0; i < 16; ++i) {
|
||
|
buf[offset + i] = bytes[i];
|
||
|
}
|
||
|
return buf;
|
||
|
}
|
||
|
return (0, _stringify.default)(bytes);
|
||
|
}
|
||
|
try {
|
||
|
generateUUID.name = name;
|
||
|
} catch (err) {
|
||
|
}
|
||
|
generateUUID.DNS = DNS;
|
||
|
generateUUID.URL = URL2;
|
||
|
return generateUUID;
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/uuid/dist/md5.js
|
||
|
var require_md5 = __commonJS({
|
||
|
"node_modules/uuid/dist/md5.js"(exports) {
|
||
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.default = void 0;
|
||
|
var _crypto = _interopRequireDefault(require("crypto"));
|
||
|
function _interopRequireDefault(obj) {
|
||
|
return obj && obj.__esModule ? obj : { default: obj };
|
||
|
}
|
||
|
function md5(bytes) {
|
||
|
if (Array.isArray(bytes)) {
|
||
|
bytes = Buffer.from(bytes);
|
||
|
} else if (typeof bytes === "string") {
|
||
|
bytes = Buffer.from(bytes, "utf8");
|
||
|
}
|
||
|
return _crypto.default.createHash("md5").update(bytes).digest();
|
||
|
}
|
||
|
var _default = md5;
|
||
|
exports.default = _default;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/uuid/dist/v3.js
|
||
|
var require_v3 = __commonJS({
|
||
|
"node_modules/uuid/dist/v3.js"(exports) {
|
||
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.default = void 0;
|
||
|
var _v = _interopRequireDefault(require_v35());
|
||
|
var _md = _interopRequireDefault(require_md5());
|
||
|
function _interopRequireDefault(obj) {
|
||
|
return obj && obj.__esModule ? obj : { default: obj };
|
||
|
}
|
||
|
var v3 = (0, _v.default)("v3", 48, _md.default);
|
||
|
var _default = v3;
|
||
|
exports.default = _default;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/uuid/dist/v4.js
|
||
|
var require_v4 = __commonJS({
|
||
|
"node_modules/uuid/dist/v4.js"(exports) {
|
||
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.default = void 0;
|
||
|
var _rng = _interopRequireDefault(require_rng());
|
||
|
var _stringify = _interopRequireDefault(require_stringify());
|
||
|
function _interopRequireDefault(obj) {
|
||
|
return obj && obj.__esModule ? obj : { default: obj };
|
||
|
}
|
||
|
function v4(options, buf, offset) {
|
||
|
options = options || {};
|
||
|
const rnds = options.random || (options.rng || _rng.default)();
|
||
|
rnds[6] = rnds[6] & 15 | 64;
|
||
|
rnds[8] = rnds[8] & 63 | 128;
|
||
|
if (buf) {
|
||
|
offset = offset || 0;
|
||
|
for (let i = 0; i < 16; ++i) {
|
||
|
buf[offset + i] = rnds[i];
|
||
|
}
|
||
|
return buf;
|
||
|
}
|
||
|
return (0, _stringify.default)(rnds);
|
||
|
}
|
||
|
var _default = v4;
|
||
|
exports.default = _default;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/uuid/dist/sha1.js
|
||
|
var require_sha1 = __commonJS({
|
||
|
"node_modules/uuid/dist/sha1.js"(exports) {
|
||
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.default = void 0;
|
||
|
var _crypto = _interopRequireDefault(require("crypto"));
|
||
|
function _interopRequireDefault(obj) {
|
||
|
return obj && obj.__esModule ? obj : { default: obj };
|
||
|
}
|
||
|
function sha1(bytes) {
|
||
|
if (Array.isArray(bytes)) {
|
||
|
bytes = Buffer.from(bytes);
|
||
|
} else if (typeof bytes === "string") {
|
||
|
bytes = Buffer.from(bytes, "utf8");
|
||
|
}
|
||
|
return _crypto.default.createHash("sha1").update(bytes).digest();
|
||
|
}
|
||
|
var _default = sha1;
|
||
|
exports.default = _default;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/uuid/dist/v5.js
|
||
|
var require_v5 = __commonJS({
|
||
|
"node_modules/uuid/dist/v5.js"(exports) {
|
||
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.default = void 0;
|
||
|
var _v = _interopRequireDefault(require_v35());
|
||
|
var _sha = _interopRequireDefault(require_sha1());
|
||
|
function _interopRequireDefault(obj) {
|
||
|
return obj && obj.__esModule ? obj : { default: obj };
|
||
|
}
|
||
|
var v5 = (0, _v.default)("v5", 80, _sha.default);
|
||
|
var _default = v5;
|
||
|
exports.default = _default;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/uuid/dist/nil.js
|
||
|
var require_nil = __commonJS({
|
||
|
"node_modules/uuid/dist/nil.js"(exports) {
|
||
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.default = void 0;
|
||
|
var _default = "00000000-0000-0000-0000-000000000000";
|
||
|
exports.default = _default;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/uuid/dist/version.js
|
||
|
var require_version = __commonJS({
|
||
|
"node_modules/uuid/dist/version.js"(exports) {
|
||
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.default = void 0;
|
||
|
var _validate = _interopRequireDefault(require_validate());
|
||
|
function _interopRequireDefault(obj) {
|
||
|
return obj && obj.__esModule ? obj : { default: obj };
|
||
|
}
|
||
|
function version(uuid) {
|
||
|
if (!(0, _validate.default)(uuid)) {
|
||
|
throw TypeError("Invalid UUID");
|
||
|
}
|
||
|
return parseInt(uuid.substr(14, 1), 16);
|
||
|
}
|
||
|
var _default = version;
|
||
|
exports.default = _default;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/uuid/dist/index.js
|
||
|
var require_dist = __commonJS({
|
||
|
"node_modules/uuid/dist/index.js"(exports) {
|
||
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
Object.defineProperty(exports, "v1", {
|
||
|
enumerable: true,
|
||
|
get: function() {
|
||
|
return _v.default;
|
||
|
}
|
||
|
});
|
||
|
Object.defineProperty(exports, "v3", {
|
||
|
enumerable: true,
|
||
|
get: function() {
|
||
|
return _v2.default;
|
||
|
}
|
||
|
});
|
||
|
Object.defineProperty(exports, "v4", {
|
||
|
enumerable: true,
|
||
|
get: function() {
|
||
|
return _v3.default;
|
||
|
}
|
||
|
});
|
||
|
Object.defineProperty(exports, "v5", {
|
||
|
enumerable: true,
|
||
|
get: function() {
|
||
|
return _v4.default;
|
||
|
}
|
||
|
});
|
||
|
Object.defineProperty(exports, "NIL", {
|
||
|
enumerable: true,
|
||
|
get: function() {
|
||
|
return _nil.default;
|
||
|
}
|
||
|
});
|
||
|
Object.defineProperty(exports, "version", {
|
||
|
enumerable: true,
|
||
|
get: function() {
|
||
|
return _version.default;
|
||
|
}
|
||
|
});
|
||
|
Object.defineProperty(exports, "validate", {
|
||
|
enumerable: true,
|
||
|
get: function() {
|
||
|
return _validate.default;
|
||
|
}
|
||
|
});
|
||
|
Object.defineProperty(exports, "stringify", {
|
||
|
enumerable: true,
|
||
|
get: function() {
|
||
|
return _stringify.default;
|
||
|
}
|
||
|
});
|
||
|
Object.defineProperty(exports, "parse", {
|
||
|
enumerable: true,
|
||
|
get: function() {
|
||
|
return _parse.default;
|
||
|
}
|
||
|
});
|
||
|
var _v = _interopRequireDefault(require_v1());
|
||
|
var _v2 = _interopRequireDefault(require_v3());
|
||
|
var _v3 = _interopRequireDefault(require_v4());
|
||
|
var _v4 = _interopRequireDefault(require_v5());
|
||
|
var _nil = _interopRequireDefault(require_nil());
|
||
|
var _version = _interopRequireDefault(require_version());
|
||
|
var _validate = _interopRequireDefault(require_validate());
|
||
|
var _stringify = _interopRequireDefault(require_stringify());
|
||
|
var _parse = _interopRequireDefault(require_parse());
|
||
|
function _interopRequireDefault(obj) {
|
||
|
return obj && obj.__esModule ? obj : { default: obj };
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/@actions/core/lib/file-command.js
|
||
|
var require_file_command = __commonJS({
|
||
|
"node_modules/@actions/core/lib/file-command.js"(exports) {
|
||
|
"use strict";
|
||
|
var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
|
||
|
if (k2 === void 0)
|
||
|
k2 = k;
|
||
|
Object.defineProperty(o, k2, { enumerable: true, get: function() {
|
||
|
return m[k];
|
||
|
} });
|
||
|
} : function(o, m, k, k2) {
|
||
|
if (k2 === void 0)
|
||
|
k2 = k;
|
||
|
o[k2] = m[k];
|
||
|
});
|
||
|
var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
|
||
|
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||
|
} : function(o, v) {
|
||
|
o["default"] = v;
|
||
|
});
|
||
|
var __importStar = exports && exports.__importStar || function(mod) {
|
||
|
if (mod && mod.__esModule)
|
||
|
return mod;
|
||
|
var result = {};
|
||
|
if (mod != null) {
|
||
|
for (var k in mod)
|
||
|
if (k !== "default" && Object.hasOwnProperty.call(mod, k))
|
||
|
__createBinding(result, mod, k);
|
||
|
}
|
||
|
__setModuleDefault(result, mod);
|
||
|
return result;
|
||
|
};
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
exports.prepareKeyValueMessage = exports.issueFileCommand = void 0;
|
||
|
var fs2 = __importStar(require("fs"));
|
||
|
var os3 = __importStar(require("os"));
|
||
|
var uuid_1 = require_dist();
|
||
|
var utils_1 = require_utils();
|
||
|
function issueFileCommand(command, message) {
|
||
|
const filePath = process.env[`GITHUB_${command}`];
|
||
|
if (!filePath) {
|
||
|
throw new Error(`Unable to find environment variable for file command ${command}`);
|
||
|
}
|
||
|
if (!fs2.existsSync(filePath)) {
|
||
|
throw new Error(`Missing file at path: ${filePath}`);
|
||
|
}
|
||
|
fs2.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os3.EOL}`, {
|
||
|
encoding: "utf8"
|
||
|
});
|
||
|
}
|
||
|
exports.issueFileCommand = issueFileCommand;
|
||
|
function prepareKeyValueMessage(key, value) {
|
||
|
const delimiter = `ghadelimiter_${uuid_1.v4()}`;
|
||
|
const convertedValue = utils_1.toCommandValue(value);
|
||
|
if (key.includes(delimiter)) {
|
||
|
throw new Error(`Unexpected input: name should not contain the delimiter "${delimiter}"`);
|
||
|
}
|
||
|
if (convertedValue.includes(delimiter)) {
|
||
|
throw new Error(`Unexpected input: value should not contain the delimiter "${delimiter}"`);
|
||
|
}
|
||
|
return `${key}<<${delimiter}${os3.EOL}${convertedValue}${os3.EOL}${delimiter}`;
|
||
|
}
|
||
|
exports.prepareKeyValueMessage = prepareKeyValueMessage;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/@actions/http-client/lib/proxy.js
|
||
|
var require_proxy = __commonJS({
|
||
|
"node_modules/@actions/http-client/lib/proxy.js"(exports) {
|
||
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
exports.checkBypass = exports.getProxyUrl = void 0;
|
||
|
function getProxyUrl(reqUrl) {
|
||
|
const usingSsl = reqUrl.protocol === "https:";
|
||
|
if (checkBypass(reqUrl)) {
|
||
|
return void 0;
|
||
|
}
|
||
|
const proxyVar = (() => {
|
||
|
if (usingSsl) {
|
||
|
return process.env["https_proxy"] || process.env["HTTPS_PROXY"];
|
||
|
} else {
|
||
|
return process.env["http_proxy"] || process.env["HTTP_PROXY"];
|
||
|
}
|
||
|
})();
|
||
|
if (proxyVar) {
|
||
|
return new URL(proxyVar);
|
||
|
} else {
|
||
|
return void 0;
|
||
|
}
|
||
|
}
|
||
|
exports.getProxyUrl = getProxyUrl;
|
||
|
function checkBypass(reqUrl) {
|
||
|
if (!reqUrl.hostname) {
|
||
|
return false;
|
||
|
}
|
||
|
const reqHost = reqUrl.hostname;
|
||
|
if (isLoopbackAddress(reqHost)) {
|
||
|
return true;
|
||
|
}
|
||
|
const noProxy = process.env["no_proxy"] || process.env["NO_PROXY"] || "";
|
||
|
if (!noProxy) {
|
||
|
return false;
|
||
|
}
|
||
|
let reqPort;
|
||
|
if (reqUrl.port) {
|
||
|
reqPort = Number(reqUrl.port);
|
||
|
} else if (reqUrl.protocol === "http:") {
|
||
|
reqPort = 80;
|
||
|
} else if (reqUrl.protocol === "https:") {
|
||
|
reqPort = 443;
|
||
|
}
|
||
|
const upperReqHosts = [reqUrl.hostname.toUpperCase()];
|
||
|
if (typeof reqPort === "number") {
|
||
|
upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);
|
||
|
}
|
||
|
for (const upperNoProxyItem of noProxy.split(",").map((x) => x.trim().toUpperCase()).filter((x) => x)) {
|
||
|
if (upperNoProxyItem === "*" || upperReqHosts.some((x) => x === upperNoProxyItem || x.endsWith(`.${upperNoProxyItem}`) || upperNoProxyItem.startsWith(".") && x.endsWith(`${upperNoProxyItem}`))) {
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
return false;
|
||
|
}
|
||
|
exports.checkBypass = checkBypass;
|
||
|
function isLoopbackAddress(host) {
|
||
|
const hostLower = host.toLowerCase();
|
||
|
return hostLower === "localhost" || hostLower.startsWith("127.") || hostLower.startsWith("[::1]") || hostLower.startsWith("[0:0:0:0:0:0:0:1]");
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/tunnel/lib/tunnel.js
|
||
|
var require_tunnel = __commonJS({
|
||
|
"node_modules/tunnel/lib/tunnel.js"(exports) {
|
||
|
"use strict";
|
||
|
var net = require("net");
|
||
|
var tls = require("tls");
|
||
|
var http = require("http");
|
||
|
var https = require("https");
|
||
|
var events = require("events");
|
||
|
var assert = require("assert");
|
||
|
var util = require("util");
|
||
|
exports.httpOverHttp = httpOverHttp;
|
||
|
exports.httpsOverHttp = httpsOverHttp;
|
||
|
exports.httpOverHttps = httpOverHttps;
|
||
|
exports.httpsOverHttps = httpsOverHttps;
|
||
|
function httpOverHttp(options) {
|
||
|
var agent = new TunnelingAgent(options);
|
||
|
agent.request = http.request;
|
||
|
return agent;
|
||
|
}
|
||
|
function httpsOverHttp(options) {
|
||
|
var agent = new TunnelingAgent(options);
|
||
|
agent.request = http.request;
|
||
|
agent.createSocket = createSecureSocket;
|
||
|
agent.defaultPort = 443;
|
||
|
return agent;
|
||
|
}
|
||
|
function httpOverHttps(options) {
|
||
|
var agent = new TunnelingAgent(options);
|
||
|
agent.request = https.request;
|
||
|
return agent;
|
||
|
}
|
||
|
function httpsOverHttps(options) {
|
||
|
var agent = new TunnelingAgent(options);
|
||
|
agent.request = https.request;
|
||
|
agent.createSocket = createSecureSocket;
|
||
|
agent.defaultPort = 443;
|
||
|
return agent;
|
||
|
}
|
||
|
function TunnelingAgent(options) {
|
||
|
var self = this;
|
||
|
self.options = options || {};
|
||
|
self.proxyOptions = self.options.proxy || {};
|
||
|
self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;
|
||
|
self.requests = [];
|
||
|
self.sockets = [];
|
||
|
self.on("free", function onFree(socket, host, port, localAddress) {
|
||
|
var options2 = toOptions(host, port, localAddress);
|
||
|
for (var i = 0, len = self.requests.length; i < len; ++i) {
|
||
|
var pending = self.requests[i];
|
||
|
if (pending.host === options2.host && pending.port === options2.port) {
|
||
|
self.requests.splice(i, 1);
|
||
|
pending.request.onSocket(socket);
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
socket.destroy();
|
||
|
self.removeSocket(socket);
|
||
|
});
|
||
|
}
|
||
|
util.inherits(TunnelingAgent, events.EventEmitter);
|
||
|
TunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {
|
||
|
var self = this;
|
||
|
var options = mergeOptions({ request: req }, self.options, toOptions(host, port, localAddress));
|
||
|
if (self.sockets.length >= this.maxSockets) {
|
||
|
self.requests.push(options);
|
||
|
return;
|
||
|
}
|
||
|
self.createSocket(options, function(socket) {
|
||
|
socket.on("free", onFree);
|
||
|
socket.on("close", onCloseOrRemove);
|
||
|
socket.on("agentRemove", onCloseOrRemove);
|
||
|
req.onSocket(socket);
|
||
|
function onFree() {
|
||
|
self.emit("free", socket, options);
|
||
|
}
|
||
|
function onCloseOrRemove(err) {
|
||
|
self.removeSocket(socket);
|
||
|
socket.removeListener("free", onFree);
|
||
|
socket.removeListener("close", onCloseOrRemove);
|
||
|
socket.removeListener("agentRemove", onCloseOrRemove);
|
||
|
}
|
||
|
});
|
||
|
};
|
||
|
TunnelingAgent.prototype.createSocket = function createSocket(options, cb) {
|
||
|
var self = this;
|
||
|
var placeholder = {};
|
||
|
self.sockets.push(placeholder);
|
||
|
var connectOptions = mergeOptions({}, self.proxyOptions, {
|
||
|
method: "CONNECT",
|
||
|
path: options.host + ":" + options.port,
|
||
|
agent: false,
|
||
|
headers: {
|
||
|
host: options.host + ":" + options.port
|
||
|
}
|
||
|
});
|
||
|
if (options.localAddress) {
|
||
|
connectOptions.localAddress = options.localAddress;
|
||
|
}
|
||
|
if (connectOptions.proxyAuth) {
|
||
|
connectOptions.headers = connectOptions.headers || {};
|
||
|
connectOptions.headers["Proxy-Authorization"] = "Basic " + new Buffer(connectOptions.proxyAuth).toString("base64");
|
||
|
}
|
||
|
debug2("making CONNECT request");
|
||
|
var connectReq = self.request(connectOptions);
|
||
|
connectReq.useChunkedEncodingByDefault = false;
|
||
|
connectReq.once("response", onResponse);
|
||
|
connectReq.once("upgrade", onUpgrade);
|
||
|
connectReq.once("connect", onConnect);
|
||
|
connectReq.once("error", onError);
|
||
|
connectReq.end();
|
||
|
function onResponse(res) {
|
||
|
res.upgrade = true;
|
||
|
}
|
||
|
function onUpgrade(res, socket, head) {
|
||
|
process.nextTick(function() {
|
||
|
onConnect(res, socket, head);
|
||
|
});
|
||
|
}
|
||
|
function onConnect(res, socket, head) {
|
||
|
connectReq.removeAllListeners();
|
||
|
socket.removeAllListeners();
|
||
|
if (res.statusCode !== 200) {
|
||
|
debug2(
|
||
|
"tunneling socket could not be established, statusCode=%d",
|
||
|
res.statusCode
|
||
|
);
|
||
|
socket.destroy();
|
||
|
var error = new Error("tunneling socket could not be established, statusCode=" + res.statusCode);
|
||
|
error.code = "ECONNRESET";
|
||
|
options.request.emit("error", error);
|
||
|
self.removeSocket(placeholder);
|
||
|
return;
|
||
|
}
|
||
|
if (head.length > 0) {
|
||
|
debug2("got illegal response body from proxy");
|
||
|
socket.destroy();
|
||
|
var error = new Error("got illegal response body from proxy");
|
||
|
error.code = "ECONNRESET";
|
||
|
options.request.emit("error", error);
|
||
|
self.removeSocket(placeholder);
|
||
|
return;
|
||
|
}
|
||
|
debug2("tunneling connection has established");
|
||
|
self.sockets[self.sockets.indexOf(placeholder)] = socket;
|
||
|
return cb(socket);
|
||
|
}
|
||
|
function onError(cause) {
|
||
|
connectReq.removeAllListeners();
|
||
|
debug2(
|
||
|
"tunneling socket could not be established, cause=%s\n",
|
||
|
cause.message,
|
||
|
cause.stack
|
||
|
);
|
||
|
var error = new Error("tunneling socket could not be established, cause=" + cause.message);
|
||
|
error.code = "ECONNRESET";
|
||
|
options.request.emit("error", error);
|
||
|
self.removeSocket(placeholder);
|
||
|
}
|
||
|
};
|
||
|
TunnelingAgent.prototype.removeSocket = function removeSocket(socket) {
|
||
|
var pos = this.sockets.indexOf(socket);
|
||
|
if (pos === -1) {
|
||
|
return;
|
||
|
}
|
||
|
this.sockets.splice(pos, 1);
|
||
|
var pending = this.requests.shift();
|
||
|
if (pending) {
|
||
|
this.createSocket(pending, function(socket2) {
|
||
|
pending.request.onSocket(socket2);
|
||
|
});
|
||
|
}
|
||
|
};
|
||
|
function createSecureSocket(options, cb) {
|
||
|
var self = this;
|
||
|
TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {
|
||
|
var hostHeader = options.request.getHeader("host");
|
||
|
var tlsOptions = mergeOptions({}, self.options, {
|
||
|
socket,
|
||
|
servername: hostHeader ? hostHeader.replace(/:.*$/, "") : options.host
|
||
|
});
|
||
|
var secureSocket = tls.connect(0, tlsOptions);
|
||
|
self.sockets[self.sockets.indexOf(socket)] = secureSocket;
|
||
|
cb(secureSocket);
|
||
|
});
|
||
|
}
|
||
|
function toOptions(host, port, localAddress) {
|
||
|
if (typeof host === "string") {
|
||
|
return {
|
||
|
host,
|
||
|
port,
|
||
|
localAddress
|
||
|
};
|
||
|
}
|
||
|
return host;
|
||
|
}
|
||
|
function mergeOptions(target) {
|
||
|
for (var i = 1, len = arguments.length; i < len; ++i) {
|
||
|
var overrides = arguments[i];
|
||
|
if (typeof overrides === "object") {
|
||
|
var keys = Object.keys(overrides);
|
||
|
for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {
|
||
|
var k = keys[j];
|
||
|
if (overrides[k] !== void 0) {
|
||
|
target[k] = overrides[k];
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
return target;
|
||
|
}
|
||
|
var debug2;
|
||
|
if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) {
|
||
|
debug2 = function() {
|
||
|
var args = Array.prototype.slice.call(arguments);
|
||
|
if (typeof args[0] === "string") {
|
||
|
args[0] = "TUNNEL: " + args[0];
|
||
|
} else {
|
||
|
args.unshift("TUNNEL:");
|
||
|
}
|
||
|
console.error.apply(console, args);
|
||
|
};
|
||
|
} else {
|
||
|
debug2 = function() {
|
||
|
};
|
||
|
}
|
||
|
exports.debug = debug2;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/tunnel/index.js
|
||
|
var require_tunnel2 = __commonJS({
|
||
|
"node_modules/tunnel/index.js"(exports, module2) {
|
||
|
module2.exports = require_tunnel();
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/@actions/http-client/lib/index.js
|
||
|
var require_lib = __commonJS({
|
||
|
"node_modules/@actions/http-client/lib/index.js"(exports) {
|
||
|
"use strict";
|
||
|
var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
|
||
|
if (k2 === void 0)
|
||
|
k2 = k;
|
||
|
Object.defineProperty(o, k2, { enumerable: true, get: function() {
|
||
|
return m[k];
|
||
|
} });
|
||
|
} : function(o, m, k, k2) {
|
||
|
if (k2 === void 0)
|
||
|
k2 = k;
|
||
|
o[k2] = m[k];
|
||
|
});
|
||
|
var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
|
||
|
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||
|
} : function(o, v) {
|
||
|
o["default"] = v;
|
||
|
});
|
||
|
var __importStar = exports && exports.__importStar || function(mod) {
|
||
|
if (mod && mod.__esModule)
|
||
|
return mod;
|
||
|
var result = {};
|
||
|
if (mod != null) {
|
||
|
for (var k in mod)
|
||
|
if (k !== "default" && Object.hasOwnProperty.call(mod, k))
|
||
|
__createBinding(result, mod, k);
|
||
|
}
|
||
|
__setModuleDefault(result, mod);
|
||
|
return result;
|
||
|
};
|
||
|
var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
|
||
|
function adopt(value) {
|
||
|
return value instanceof P ? value : new P(function(resolve2) {
|
||
|
resolve2(value);
|
||
|
});
|
||
|
}
|
||
|
return new (P || (P = Promise))(function(resolve2, reject) {
|
||
|
function fulfilled(value) {
|
||
|
try {
|
||
|
step(generator.next(value));
|
||
|
} catch (e) {
|
||
|
reject(e);
|
||
|
}
|
||
|
}
|
||
|
function rejected(value) {
|
||
|
try {
|
||
|
step(generator["throw"](value));
|
||
|
} catch (e) {
|
||
|
reject(e);
|
||
|
}
|
||
|
}
|
||
|
function step(result) {
|
||
|
result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected);
|
||
|
}
|
||
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||
|
});
|
||
|
};
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
exports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0;
|
||
|
var http = __importStar(require("http"));
|
||
|
var https = __importStar(require("https"));
|
||
|
var pm = __importStar(require_proxy());
|
||
|
var tunnel = __importStar(require_tunnel2());
|
||
|
var HttpCodes;
|
||
|
(function(HttpCodes2) {
|
||
|
HttpCodes2[HttpCodes2["OK"] = 200] = "OK";
|
||
|
HttpCodes2[HttpCodes2["MultipleChoices"] = 300] = "MultipleChoices";
|
||
|
HttpCodes2[HttpCodes2["MovedPermanently"] = 301] = "MovedPermanently";
|
||
|
HttpCodes2[HttpCodes2["ResourceMoved"] = 302] = "ResourceMoved";
|
||
|
HttpCodes2[HttpCodes2["SeeOther"] = 303] = "SeeOther";
|
||
|
HttpCodes2[HttpCodes2["NotModified"] = 304] = "NotModified";
|
||
|
HttpCodes2[HttpCodes2["UseProxy"] = 305] = "UseProxy";
|
||
|
HttpCodes2[HttpCodes2["SwitchProxy"] = 306] = "SwitchProxy";
|
||
|
HttpCodes2[HttpCodes2["TemporaryRedirect"] = 307] = "TemporaryRedirect";
|
||
|
HttpCodes2[HttpCodes2["PermanentRedirect"] = 308] = "PermanentRedirect";
|
||
|
HttpCodes2[HttpCodes2["BadRequest"] = 400] = "BadRequest";
|
||
|
HttpCodes2[HttpCodes2["Unauthorized"] = 401] = "Unauthorized";
|
||
|
HttpCodes2[HttpCodes2["PaymentRequired"] = 402] = "PaymentRequired";
|
||
|
HttpCodes2[HttpCodes2["Forbidden"] = 403] = "Forbidden";
|
||
|
HttpCodes2[HttpCodes2["NotFound"] = 404] = "NotFound";
|
||
|
HttpCodes2[HttpCodes2["MethodNotAllowed"] = 405] = "MethodNotAllowed";
|
||
|
HttpCodes2[HttpCodes2["NotAcceptable"] = 406] = "NotAcceptable";
|
||
|
HttpCodes2[HttpCodes2["ProxyAuthenticationRequired"] = 407] = "ProxyAuthenticationRequired";
|
||
|
HttpCodes2[HttpCodes2["RequestTimeout"] = 408] = "RequestTimeout";
|
||
|
HttpCodes2[HttpCodes2["Conflict"] = 409] = "Conflict";
|
||
|
HttpCodes2[HttpCodes2["Gone"] = 410] = "Gone";
|
||
|
HttpCodes2[HttpCodes2["TooManyRequests"] = 429] = "TooManyRequests";
|
||
|
HttpCodes2[HttpCodes2["InternalServerError"] = 500] = "InternalServerError";
|
||
|
HttpCodes2[HttpCodes2["NotImplemented"] = 501] = "NotImplemented";
|
||
|
HttpCodes2[HttpCodes2["BadGateway"] = 502] = "BadGateway";
|
||
|
HttpCodes2[HttpCodes2["ServiceUnavailable"] = 503] = "ServiceUnavailable";
|
||
|
HttpCodes2[HttpCodes2["GatewayTimeout"] = 504] = "GatewayTimeout";
|
||
|
})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));
|
||
|
var Headers;
|
||
|
(function(Headers2) {
|
||
|
Headers2["Accept"] = "accept";
|
||
|
Headers2["ContentType"] = "content-type";
|
||
|
})(Headers = exports.Headers || (exports.Headers = {}));
|
||
|
var MediaTypes;
|
||
|
(function(MediaTypes2) {
|
||
|
MediaTypes2["ApplicationJson"] = "application/json";
|
||
|
})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));
|
||
|
function getProxyUrl(serverUrl) {
|
||
|
const proxyUrl = pm.getProxyUrl(new URL(serverUrl));
|
||
|
return proxyUrl ? proxyUrl.href : "";
|
||
|
}
|
||
|
exports.getProxyUrl = getProxyUrl;
|
||
|
var HttpRedirectCodes = [
|
||
|
HttpCodes.MovedPermanently,
|
||
|
HttpCodes.ResourceMoved,
|
||
|
HttpCodes.SeeOther,
|
||
|
HttpCodes.TemporaryRedirect,
|
||
|
HttpCodes.PermanentRedirect
|
||
|
];
|
||
|
var HttpResponseRetryCodes = [
|
||
|
HttpCodes.BadGateway,
|
||
|
HttpCodes.ServiceUnavailable,
|
||
|
HttpCodes.GatewayTimeout
|
||
|
];
|
||
|
var RetryableHttpVerbs = ["OPTIONS", "GET", "DELETE", "HEAD"];
|
||
|
var ExponentialBackoffCeiling = 10;
|
||
|
var ExponentialBackoffTimeSlice = 5;
|
||
|
var HttpClientError = class extends Error {
|
||
|
constructor(message, statusCode) {
|
||
|
super(message);
|
||
|
this.name = "HttpClientError";
|
||
|
this.statusCode = statusCode;
|
||
|
Object.setPrototypeOf(this, HttpClientError.prototype);
|
||
|
}
|
||
|
};
|
||
|
exports.HttpClientError = HttpClientError;
|
||
|
var HttpClientResponse = class {
|
||
|
constructor(message) {
|
||
|
this.message = message;
|
||
|
}
|
||
|
readBody() {
|
||
|
return __awaiter(this, void 0, void 0, function* () {
|
||
|
return new Promise((resolve2) => __awaiter(this, void 0, void 0, function* () {
|
||
|
let output = Buffer.alloc(0);
|
||
|
this.message.on("data", (chunk) => {
|
||
|
output = Buffer.concat([output, chunk]);
|
||
|
});
|
||
|
this.message.on("end", () => {
|
||
|
resolve2(output.toString());
|
||
|
});
|
||
|
}));
|
||
|
});
|
||
|
}
|
||
|
};
|
||
|
exports.HttpClientResponse = HttpClientResponse;
|
||
|
function isHttps(requestUrl) {
|
||
|
const parsedUrl = new URL(requestUrl);
|
||
|
return parsedUrl.protocol === "https:";
|
||
|
}
|
||
|
exports.isHttps = isHttps;
|
||
|
var HttpClient = class {
|
||
|
constructor(userAgent, handlers, requestOptions) {
|
||
|
this._ignoreSslError = false;
|
||
|
this._allowRedirects = true;
|
||
|
this._allowRedirectDowngrade = false;
|
||
|
this._maxRedirects = 50;
|
||
|
this._allowRetries = false;
|
||
|
this._maxRetries = 1;
|
||
|
this._keepAlive = false;
|
||
|
this._disposed = false;
|
||
|
this.userAgent = userAgent;
|
||
|
this.handlers = handlers || [];
|
||
|
this.requestOptions = requestOptions;
|
||
|
if (requestOptions) {
|
||
|
if (requestOptions.ignoreSslError != null) {
|
||
|
this._ignoreSslError = requestOptions.ignoreSslError;
|
||
|
}
|
||
|
this._socketTimeout = requestOptions.socketTimeout;
|
||
|
if (requestOptions.allowRedirects != null) {
|
||
|
this._allowRedirects = requestOptions.allowRedirects;
|
||
|
}
|
||
|
if (requestOptions.allowRedirectDowngrade != null) {
|
||
|
this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;
|
||
|
}
|
||
|
if (requestOptions.maxRedirects != null) {
|
||
|
this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);
|
||
|
}
|
||
|
if (requestOptions.keepAlive != null) {
|
||
|
this._keepAlive = requestOptions.keepAlive;
|
||
|
}
|
||
|
if (requestOptions.allowRetries != null) {
|
||
|
this._allowRetries = requestOptions.allowRetries;
|
||
|
}
|
||
|
if (requestOptions.maxRetries != null) {
|
||
|
this._maxRetries = requestOptions.maxRetries;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
options(requestUrl, additionalHeaders) {
|
||
|
return __awaiter(this, void 0, void 0, function* () {
|
||
|
return this.request("OPTIONS", requestUrl, null, additionalHeaders || {});
|
||
|
});
|
||
|
}
|
||
|
get(requestUrl, additionalHeaders) {
|
||
|
return __awaiter(this, void 0, void 0, function* () {
|
||
|
return this.request("GET", requestUrl, null, additionalHeaders || {});
|
||
|
});
|
||
|
}
|
||
|
del(requestUrl, additionalHeaders) {
|
||
|
return __awaiter(this, void 0, void 0, function* () {
|
||
|
return this.request("DELETE", requestUrl, null, additionalHeaders || {});
|
||
|
});
|
||
|
}
|
||
|
post(requestUrl, data, additionalHeaders) {
|
||
|
return __awaiter(this, void 0, void 0, function* () {
|
||
|
return this.request("POST", requestUrl, data, additionalHeaders || {});
|
||
|
});
|
||
|
}
|
||
|
patch(requestUrl, data, additionalHeaders) {
|
||
|
return __awaiter(this, void 0, void 0, function* () {
|
||
|
return this.request("PATCH", requestUrl, data, additionalHeaders || {});
|
||
|
});
|
||
|
}
|
||
|
put(requestUrl, data, additionalHeaders) {
|
||
|
return __awaiter(this, void 0, void 0, function* () {
|
||
|
return this.request("PUT", requestUrl, data, additionalHeaders || {});
|
||
|
});
|
||
|
}
|
||
|
head(requestUrl, additionalHeaders) {
|
||
|
return __awaiter(this, void 0, void 0, function* () {
|
||
|
return this.request("HEAD", requestUrl, null, additionalHeaders || {});
|
||
|
});
|
||
|
}
|
||
|
sendStream(verb, requestUrl, stream, additionalHeaders) {
|
||
|
return __awaiter(this, void 0, void 0, function* () {
|
||
|
return this.request(verb, requestUrl, stream, additionalHeaders);
|
||
|
});
|
||
|
}
|
||
|
getJson(requestUrl, additionalHeaders = {}) {
|
||
|
return __awaiter(this, void 0, void 0, function* () {
|
||
|
additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);
|
||
|
const res = yield this.get(requestUrl, additionalHeaders);
|
||
|
return this._processResponse(res, this.requestOptions);
|
||
|
});
|
||
|
}
|
||
|
postJson(requestUrl, obj, additionalHeaders = {}) {
|
||
|
return __awaiter(this, void 0, void 0, function* () {
|
||
|
const data = JSON.stringify(obj, null, 2);
|
||
|
additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);
|
||
|
additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);
|
||
|
const res = yield this.post(requestUrl, data, additionalHeaders);
|
||
|
return this._processResponse(res, this.requestOptions);
|
||
|
});
|
||
|
}
|
||
|
putJson(requestUrl, obj, additionalHeaders = {}) {
|
||
|
return __awaiter(this, void 0, void 0, function* () {
|
||
|
const data = JSON.stringify(obj, null, 2);
|
||
|
additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);
|
||
|
additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);
|
||
|
const res = yield this.put(requestUrl, data, additionalHeaders);
|
||
|
return this._processResponse(res, this.requestOptions);
|
||
|
});
|
||
|
}
|
||
|
patchJson(requestUrl, obj, additionalHeaders = {}) {
|
||
|
return __awaiter(this, void 0, void 0, function* () {
|
||
|
const data = JSON.stringify(obj, null, 2);
|
||
|
additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);
|
||
|
additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);
|
||
|
const res = yield this.patch(requestUrl, data, additionalHeaders);
|
||
|
return this._processResponse(res, this.requestOptions);
|
||
|
});
|
||
|
}
|
||
|
request(verb, requestUrl, data, headers) {
|
||
|
return __awaiter(this, void 0, void 0, function* () {
|
||
|
if (this._disposed) {
|
||
|
throw new Error("Client has already been disposed.");
|
||
|
}
|
||
|
const parsedUrl = new URL(requestUrl);
|
||
|
let info2 = this._prepareRequest(verb, parsedUrl, headers);
|
||
|
const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb) ? this._maxRetries + 1 : 1;
|
||
|
let numTries = 0;
|
||
|
let response;
|
||
|
do {
|
||
|
response = yield this.requestRaw(info2, data);
|
||
|
if (response && response.message && response.message.statusCode === HttpCodes.Unauthorized) {
|
||
|
let authenticationHandler;
|
||
|
for (const handler of this.handlers) {
|
||
|
if (handler.canHandleAuthentication(response)) {
|
||
|
authenticationHandler = handler;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
if (authenticationHandler) {
|
||
|
return authenticationHandler.handleAuthentication(this, info2, data);
|
||
|
} else {
|
||
|
return response;
|
||
|
}
|
||
|
}
|
||
|
let redirectsRemaining = this._maxRedirects;
|
||
|
while (response.message.statusCode && HttpRedirectCodes.includes(response.message.statusCode) && this._allowRedirects && redirectsRemaining > 0) {
|
||
|
const redirectUrl = response.message.headers["location"];
|
||
|
if (!redirectUrl) {
|
||
|
break;
|
||
|
}
|
||
|
const parsedRedirectUrl = new URL(redirectUrl);
|
||
|
if (parsedUrl.protocol === "https:" && parsedUrl.protocol !== parsedRedirectUrl.protocol && !this._allowRedirectDowngrade) {
|
||
|
throw new Error("Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.");
|
||
|
}
|
||
|
yield response.readBody();
|
||
|
if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {
|
||
|
for (const header in headers) {
|
||
|
if (header.toLowerCase() === "authorization") {
|
||
|
delete headers[header];
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
info2 = this._prepareRequest(verb, parsedRedirectUrl, headers);
|
||
|
response = yield this.requestRaw(info2, data);
|
||
|
redirectsRemaining--;
|
||
|
}
|
||
|
if (!response.message.statusCode || !HttpResponseRetryCodes.includes(response.message.statusCode)) {
|
||
|
return response;
|
||
|
}
|
||
|
numTries += 1;
|
||
|
if (numTries < maxTries) {
|
||
|
yield response.readBody();
|
||
|
yield this._performExponentialBackoff(numTries);
|
||
|
}
|
||
|
} while (numTries < maxTries);
|
||
|
return response;
|
||
|
});
|
||
|
}
|
||
|
dispose() {
|
||
|
if (this._agent) {
|
||
|
this._agent.destroy();
|
||
|
}
|
||
|
this._disposed = true;
|
||
|
}
|
||
|
requestRaw(info2, data) {
|
||
|
return __awaiter(this, void 0, void 0, function* () {
|
||
|
return new Promise((resolve2, reject) => {
|
||
|
function callbackForResult(err, res) {
|
||
|
if (err) {
|
||
|
reject(err);
|
||
|
} else if (!res) {
|
||
|
reject(new Error("Unknown error"));
|
||
|
} else {
|
||
|
resolve2(res);
|
||
|
}
|
||
|
}
|
||
|
this.requestRawWithCallback(info2, data, callbackForResult);
|
||
|
});
|
||
|
});
|
||
|
}
|
||
|
requestRawWithCallback(info2, data, onResult) {
|
||
|
if (typeof data === "string") {
|
||
|
if (!info2.options.headers) {
|
||
|
info2.options.headers = {};
|
||
|
}
|
||
|
info2.options.headers["Content-Length"] = Buffer.byteLength(data, "utf8");
|
||
|
}
|
||
|
let callbackCalled = false;
|
||
|
function handleResult(err, res) {
|
||
|
if (!callbackCalled) {
|
||
|
callbackCalled = true;
|
||
|
onResult(err, res);
|
||
|
}
|
||
|
}
|
||
|
const req = info2.httpModule.request(info2.options, (msg) => {
|
||
|
const res = new HttpClientResponse(msg);
|
||
|
handleResult(void 0, res);
|
||
|
});
|
||
|
let socket;
|
||
|
req.on("socket", (sock) => {
|
||
|
socket = sock;
|
||
|
});
|
||
|
req.setTimeout(this._socketTimeout || 3 * 6e4, () => {
|
||
|
if (socket) {
|
||
|
socket.end();
|
||
|
}
|
||
|
handleResult(new Error(`Request timeout: ${info2.options.path}`));
|
||
|
});
|
||
|
req.on("error", function(err) {
|
||
|
handleResult(err);
|
||
|
});
|
||
|
if (data && typeof data === "string") {
|
||
|
req.write(data, "utf8");
|
||
|
}
|
||
|
if (data && typeof data !== "string") {
|
||
|
data.on("close", function() {
|
||
|
req.end();
|
||
|
});
|
||
|
data.pipe(req);
|
||
|
} else {
|
||
|
req.end();
|
||
|
}
|
||
|
}
|
||
|
getAgent(serverUrl) {
|
||
|
const parsedUrl = new URL(serverUrl);
|
||
|
return this._getAgent(parsedUrl);
|
||
|
}
|
||
|
_prepareRequest(method, requestUrl, headers) {
|
||
|
const info2 = {};
|
||
|
info2.parsedUrl = requestUrl;
|
||
|
const usingSsl = info2.parsedUrl.protocol === "https:";
|
||
|
info2.httpModule = usingSsl ? https : http;
|
||
|
const defaultPort = usingSsl ? 443 : 80;
|
||
|
info2.options = {};
|
||
|
info2.options.host = info2.parsedUrl.hostname;
|
||
|
info2.options.port = info2.parsedUrl.port ? parseInt(info2.parsedUrl.port) : defaultPort;
|
||
|
info2.options.path = (info2.parsedUrl.pathname || "") + (info2.parsedUrl.search || "");
|
||
|
info2.options.method = method;
|
||
|
info2.options.headers = this._mergeHeaders(headers);
|
||
|
if (this.userAgent != null) {
|
||
|
info2.options.headers["user-agent"] = this.userAgent;
|
||
|
}
|
||
|
info2.options.agent = this._getAgent(info2.parsedUrl);
|
||
|
if (this.handlers) {
|
||
|
for (const handler of this.handlers) {
|
||
|
handler.prepareRequest(info2.options);
|
||
|
}
|
||
|
}
|
||
|
return info2;
|
||
|
}
|
||
|
_mergeHeaders(headers) {
|
||
|
if (this.requestOptions && this.requestOptions.headers) {
|
||
|
return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {}));
|
||
|
}
|
||
|
return lowercaseKeys(headers || {});
|
||
|
}
|
||
|
_getExistingOrDefaultHeader(additionalHeaders, header, _default) {
|
||
|
let clientHeader;
|
||
|
if (this.requestOptions && this.requestOptions.headers) {
|
||
|
clientHeader = lowercaseKeys(this.requestOptions.headers)[header];
|
||
|
}
|
||
|
return additionalHeaders[header] || clientHeader || _default;
|
||
|
}
|
||
|
_getAgent(parsedUrl) {
|
||
|
let agent;
|
||
|
const proxyUrl = pm.getProxyUrl(parsedUrl);
|
||
|
const useProxy = proxyUrl && proxyUrl.hostname;
|
||
|
if (this._keepAlive && useProxy) {
|
||
|
agent = this._proxyAgent;
|
||
|
}
|
||
|
if (this._keepAlive && !useProxy) {
|
||
|
agent = this._agent;
|
||
|
}
|
||
|
if (agent) {
|
||
|
return agent;
|
||
|
}
|
||
|
const usingSsl = parsedUrl.protocol === "https:";
|
||
|
let maxSockets = 100;
|
||
|
if (this.requestOptions) {
|
||
|
maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;
|
||
|
}
|
||
|
if (proxyUrl && proxyUrl.hostname) {
|
||
|
const agentOptions = {
|
||
|
maxSockets,
|
||
|
keepAlive: this._keepAlive,
|
||
|
proxy: Object.assign(Object.assign({}, (proxyUrl.username || proxyUrl.password) && {
|
||
|
proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`
|
||
|
}), { host: proxyUrl.hostname, port: proxyUrl.port })
|
||
|
};
|
||
|
let tunnelAgent;
|
||
|
const overHttps = proxyUrl.protocol === "https:";
|
||
|
if (usingSsl) {
|
||
|
tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;
|
||
|
} else {
|
||
|
tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;
|
||
|
}
|
||
|
agent = tunnelAgent(agentOptions);
|
||
|
this._proxyAgent = agent;
|
||
|
}
|
||
|
if (this._keepAlive && !agent) {
|
||
|
const options = { keepAlive: this._keepAlive, maxSockets };
|
||
|
agent = usingSsl ? new https.Agent(options) : new http.Agent(options);
|
||
|
this._agent = agent;
|
||
|
}
|
||
|
if (!agent) {
|
||
|
agent = usingSsl ? https.globalAgent : http.globalAgent;
|
||
|
}
|
||
|
if (usingSsl && this._ignoreSslError) {
|
||
|
agent.options = Object.assign(agent.options || {}, {
|
||
|
rejectUnauthorized: false
|
||
|
});
|
||
|
}
|
||
|
return agent;
|
||
|
}
|
||
|
_performExponentialBackoff(retryNumber) {
|
||
|
return __awaiter(this, void 0, void 0, function* () {
|
||
|
retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);
|
||
|
const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);
|
||
|
return new Promise((resolve2) => setTimeout(() => resolve2(), ms));
|
||
|
});
|
||
|
}
|
||
|
_processResponse(res, options) {
|
||
|
return __awaiter(this, void 0, void 0, function* () {
|
||
|
return new Promise((resolve2, reject) => __awaiter(this, void 0, void 0, function* () {
|
||
|
const statusCode = res.message.statusCode || 0;
|
||
|
const response = {
|
||
|
statusCode,
|
||
|
result: null,
|
||
|
headers: {}
|
||
|
};
|
||
|
if (statusCode === HttpCodes.NotFound) {
|
||
|
resolve2(response);
|
||
|
}
|
||
|
function dateTimeDeserializer(key, value) {
|
||
|
if (typeof value === "string") {
|
||
|
const a = new Date(value);
|
||
|
if (!isNaN(a.valueOf())) {
|
||
|
return a;
|
||
|
}
|
||
|
}
|
||
|
return value;
|
||
|
}
|
||
|
let obj;
|
||
|
let contents;
|
||
|
try {
|
||
|
contents = yield res.readBody();
|
||
|
if (contents && contents.length > 0) {
|
||
|
if (options && options.deserializeDates) {
|
||
|
obj = JSON.parse(contents, dateTimeDeserializer);
|
||
|
} else {
|
||
|
obj = JSON.parse(contents);
|
||
|
}
|
||
|
response.result = obj;
|
||
|
}
|
||
|
response.headers = res.message.headers;
|
||
|
} catch (err) {
|
||
|
}
|
||
|
if (statusCode > 299) {
|
||
|
let msg;
|
||
|
if (obj && obj.message) {
|
||
|
msg = obj.message;
|
||
|
} else if (contents && contents.length > 0) {
|
||
|
msg = contents;
|
||
|
} else {
|
||
|
msg = `Failed request: (${statusCode})`;
|
||
|
}
|
||
|
const err = new HttpClientError(msg, statusCode);
|
||
|
err.result = response.result;
|
||
|
reject(err);
|
||
|
} else {
|
||
|
resolve2(response);
|
||
|
}
|
||
|
}));
|
||
|
});
|
||
|
}
|
||
|
};
|
||
|
exports.HttpClient = HttpClient;
|
||
|
var lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => (c[k.toLowerCase()] = obj[k], c), {});
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/@actions/http-client/lib/auth.js
|
||
|
var require_auth = __commonJS({
|
||
|
"node_modules/@actions/http-client/lib/auth.js"(exports) {
|
||
|
"use strict";
|
||
|
var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
|
||
|
function adopt(value) {
|
||
|
return value instanceof P ? value : new P(function(resolve2) {
|
||
|
resolve2(value);
|
||
|
});
|
||
|
}
|
||
|
return new (P || (P = Promise))(function(resolve2, reject) {
|
||
|
function fulfilled(value) {
|
||
|
try {
|
||
|
step(generator.next(value));
|
||
|
} catch (e) {
|
||
|
reject(e);
|
||
|
}
|
||
|
}
|
||
|
function rejected(value) {
|
||
|
try {
|
||
|
step(generator["throw"](value));
|
||
|
} catch (e) {
|
||
|
reject(e);
|
||
|
}
|
||
|
}
|
||
|
function step(result) {
|
||
|
result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected);
|
||
|
}
|
||
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||
|
});
|
||
|
};
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
exports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0;
|
||
|
var BasicCredentialHandler = class {
|
||
|
constructor(username, password) {
|
||
|
this.username = username;
|
||
|
this.password = password;
|
||
|
}
|
||
|
prepareRequest(options) {
|
||
|
if (!options.headers) {
|
||
|
throw Error("The request has no headers");
|
||
|
}
|
||
|
options.headers["Authorization"] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString("base64")}`;
|
||
|
}
|
||
|
canHandleAuthentication() {
|
||
|
return false;
|
||
|
}
|
||
|
handleAuthentication() {
|
||
|
return __awaiter(this, void 0, void 0, function* () {
|
||
|
throw new Error("not implemented");
|
||
|
});
|
||
|
}
|
||
|
};
|
||
|
exports.BasicCredentialHandler = BasicCredentialHandler;
|
||
|
var BearerCredentialHandler = class {
|
||
|
constructor(token) {
|
||
|
this.token = token;
|
||
|
}
|
||
|
prepareRequest(options) {
|
||
|
if (!options.headers) {
|
||
|
throw Error("The request has no headers");
|
||
|
}
|
||
|
options.headers["Authorization"] = `Bearer ${this.token}`;
|
||
|
}
|
||
|
canHandleAuthentication() {
|
||
|
return false;
|
||
|
}
|
||
|
handleAuthentication() {
|
||
|
return __awaiter(this, void 0, void 0, function* () {
|
||
|
throw new Error("not implemented");
|
||
|
});
|
||
|
}
|
||
|
};
|
||
|
exports.BearerCredentialHandler = BearerCredentialHandler;
|
||
|
var PersonalAccessTokenCredentialHandler = class {
|
||
|
constructor(token) {
|
||
|
this.token = token;
|
||
|
}
|
||
|
prepareRequest(options) {
|
||
|
if (!options.headers) {
|
||
|
throw Error("The request has no headers");
|
||
|
}
|
||
|
options.headers["Authorization"] = `Basic ${Buffer.from(`PAT:${this.token}`).toString("base64")}`;
|
||
|
}
|
||
|
canHandleAuthentication() {
|
||
|
return false;
|
||
|
}
|
||
|
handleAuthentication() {
|
||
|
return __awaiter(this, void 0, void 0, function* () {
|
||
|
throw new Error("not implemented");
|
||
|
});
|
||
|
}
|
||
|
};
|
||
|
exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/@actions/core/lib/oidc-utils.js
|
||
|
var require_oidc_utils = __commonJS({
|
||
|
"node_modules/@actions/core/lib/oidc-utils.js"(exports) {
|
||
|
"use strict";
|
||
|
var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
|
||
|
function adopt(value) {
|
||
|
return value instanceof P ? value : new P(function(resolve2) {
|
||
|
resolve2(value);
|
||
|
});
|
||
|
}
|
||
|
return new (P || (P = Promise))(function(resolve2, reject) {
|
||
|
function fulfilled(value) {
|
||
|
try {
|
||
|
step(generator.next(value));
|
||
|
} catch (e) {
|
||
|
reject(e);
|
||
|
}
|
||
|
}
|
||
|
function rejected(value) {
|
||
|
try {
|
||
|
step(generator["throw"](value));
|
||
|
} catch (e) {
|
||
|
reject(e);
|
||
|
}
|
||
|
}
|
||
|
function step(result) {
|
||
|
result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected);
|
||
|
}
|
||
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||
|
});
|
||
|
};
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
exports.OidcClient = void 0;
|
||
|
var http_client_1 = require_lib();
|
||
|
var auth_1 = require_auth();
|
||
|
var core_1 = require_core();
|
||
|
var OidcClient = class {
|
||
|
static createHttpClient(allowRetry = true, maxRetry = 10) {
|
||
|
const requestOptions = {
|
||
|
allowRetries: allowRetry,
|
||
|
maxRetries: maxRetry
|
||
|
};
|
||
|
return new http_client_1.HttpClient("actions/oidc-client", [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], requestOptions);
|
||
|
}
|
||
|
static getRequestToken() {
|
||
|
const token = process.env["ACTIONS_ID_TOKEN_REQUEST_TOKEN"];
|
||
|
if (!token) {
|
||
|
throw new Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable");
|
||
|
}
|
||
|
return token;
|
||
|
}
|
||
|
static getIDTokenUrl() {
|
||
|
const runtimeUrl = process.env["ACTIONS_ID_TOKEN_REQUEST_URL"];
|
||
|
if (!runtimeUrl) {
|
||
|
throw new Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable");
|
||
|
}
|
||
|
return runtimeUrl;
|
||
|
}
|
||
|
static getCall(id_token_url) {
|
||
|
var _a;
|
||
|
return __awaiter(this, void 0, void 0, function* () {
|
||
|
const httpclient = OidcClient.createHttpClient();
|
||
|
const res = yield httpclient.getJson(id_token_url).catch((error) => {
|
||
|
throw new Error(`Failed to get ID Token.
|
||
|
|
||
|
Error Code : ${error.statusCode}
|
||
|
|
||
|
Error Message: ${error.result.message}`);
|
||
|
});
|
||
|
const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value;
|
||
|
if (!id_token) {
|
||
|
throw new Error("Response json body do not have ID Token field");
|
||
|
}
|
||
|
return id_token;
|
||
|
});
|
||
|
}
|
||
|
static getIDToken(audience) {
|
||
|
return __awaiter(this, void 0, void 0, function* () {
|
||
|
try {
|
||
|
let id_token_url = OidcClient.getIDTokenUrl();
|
||
|
if (audience) {
|
||
|
const encodedAudience = encodeURIComponent(audience);
|
||
|
id_token_url = `${id_token_url}&audience=${encodedAudience}`;
|
||
|
}
|
||
|
core_1.debug(`ID token url is ${id_token_url}`);
|
||
|
const id_token = yield OidcClient.getCall(id_token_url);
|
||
|
core_1.setSecret(id_token);
|
||
|
return id_token;
|
||
|
} catch (error) {
|
||
|
throw new Error(`Error message: ${error.message}`);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
};
|
||
|
exports.OidcClient = OidcClient;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/@actions/core/lib/summary.js
|
||
|
var require_summary = __commonJS({
|
||
|
"node_modules/@actions/core/lib/summary.js"(exports) {
|
||
|
"use strict";
|
||
|
var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
|
||
|
function adopt(value) {
|
||
|
return value instanceof P ? value : new P(function(resolve2) {
|
||
|
resolve2(value);
|
||
|
});
|
||
|
}
|
||
|
return new (P || (P = Promise))(function(resolve2, reject) {
|
||
|
function fulfilled(value) {
|
||
|
try {
|
||
|
step(generator.next(value));
|
||
|
} catch (e) {
|
||
|
reject(e);
|
||
|
}
|
||
|
}
|
||
|
function rejected(value) {
|
||
|
try {
|
||
|
step(generator["throw"](value));
|
||
|
} catch (e) {
|
||
|
reject(e);
|
||
|
}
|
||
|
}
|
||
|
function step(result) {
|
||
|
result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected);
|
||
|
}
|
||
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||
|
});
|
||
|
};
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
exports.summary = exports.markdownSummary = exports.SUMMARY_DOCS_URL = exports.SUMMARY_ENV_VAR = void 0;
|
||
|
var os_1 = require("os");
|
||
|
var fs_1 = require("fs");
|
||
|
var { access, appendFile, writeFile } = fs_1.promises;
|
||
|
exports.SUMMARY_ENV_VAR = "GITHUB_STEP_SUMMARY";
|
||
|
exports.SUMMARY_DOCS_URL = "https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary";
|
||
|
var Summary = class {
|
||
|
constructor() {
|
||
|
this._buffer = "";
|
||
|
}
|
||
|
filePath() {
|
||
|
return __awaiter(this, void 0, void 0, function* () {
|
||
|
if (this._filePath) {
|
||
|
return this._filePath;
|
||
|
}
|
||
|
const pathFromEnv = process.env[exports.SUMMARY_ENV_VAR];
|
||
|
if (!pathFromEnv) {
|
||
|
throw new Error(`Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`);
|
||
|
}
|
||
|
try {
|
||
|
yield access(pathFromEnv, fs_1.constants.R_OK | fs_1.constants.W_OK);
|
||
|
} catch (_a) {
|
||
|
throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`);
|
||
|
}
|
||
|
this._filePath = pathFromEnv;
|
||
|
return this._filePath;
|
||
|
});
|
||
|
}
|
||
|
wrap(tag, content, attrs = {}) {
|
||
|
const htmlAttrs = Object.entries(attrs).map(([key, value]) => ` ${key}="${value}"`).join("");
|
||
|
if (!content) {
|
||
|
return `<${tag}${htmlAttrs}>`;
|
||
|
}
|
||
|
return `<${tag}${htmlAttrs}>${content}</${tag}>`;
|
||
|
}
|
||
|
write(options) {
|
||
|
return __awaiter(this, void 0, void 0, function* () {
|
||
|
const overwrite = !!(options === null || options === void 0 ? void 0 : options.overwrite);
|
||
|
const filePath = yield this.filePath();
|
||
|
const writeFunc = overwrite ? writeFile : appendFile;
|
||
|
yield writeFunc(filePath, this._buffer, { encoding: "utf8" });
|
||
|
return this.emptyBuffer();
|
||
|
});
|
||
|
}
|
||
|
clear() {
|
||
|
return __awaiter(this, void 0, void 0, function* () {
|
||
|
return this.emptyBuffer().write({ overwrite: true });
|
||
|
});
|
||
|
}
|
||
|
stringify() {
|
||
|
return this._buffer;
|
||
|
}
|
||
|
isEmptyBuffer() {
|
||
|
return this._buffer.length === 0;
|
||
|
}
|
||
|
emptyBuffer() {
|
||
|
this._buffer = "";
|
||
|
return this;
|
||
|
}
|
||
|
addRaw(text, addEOL = false) {
|
||
|
this._buffer += text;
|
||
|
return addEOL ? this.addEOL() : this;
|
||
|
}
|
||
|
addEOL() {
|
||
|
return this.addRaw(os_1.EOL);
|
||
|
}
|
||
|
addCodeBlock(code, lang) {
|
||
|
const attrs = Object.assign({}, lang && { lang });
|
||
|
const element = this.wrap("pre", this.wrap("code", code), attrs);
|
||
|
return this.addRaw(element).addEOL();
|
||
|
}
|
||
|
addList(items, ordered = false) {
|
||
|
const tag = ordered ? "ol" : "ul";
|
||
|
const listItems = items.map((item) => this.wrap("li", item)).join("");
|
||
|
const element = this.wrap(tag, listItems);
|
||
|
return this.addRaw(element).addEOL();
|
||
|
}
|
||
|
addTable(rows) {
|
||
|
const tableBody = rows.map((row) => {
|
||
|
const cells = row.map((cell) => {
|
||
|
if (typeof cell === "string") {
|
||
|
return this.wrap("td", cell);
|
||
|
}
|
||
|
const { header, data, colspan, rowspan } = cell;
|
||
|
const tag = header ? "th" : "td";
|
||
|
const attrs = Object.assign(Object.assign({}, colspan && { colspan }), rowspan && { rowspan });
|
||
|
return this.wrap(tag, data, attrs);
|
||
|
}).join("");
|
||
|
return this.wrap("tr", cells);
|
||
|
}).join("");
|
||
|
const element = this.wrap("table", tableBody);
|
||
|
return this.addRaw(element).addEOL();
|
||
|
}
|
||
|
addDetails(label, content) {
|
||
|
const element = this.wrap("details", this.wrap("summary", label) + content);
|
||
|
return this.addRaw(element).addEOL();
|
||
|
}
|
||
|
addImage(src, alt, options) {
|
||
|
const { width, height } = options || {};
|
||
|
const attrs = Object.assign(Object.assign({}, width && { width }), height && { height });
|
||
|
const element = this.wrap("img", null, Object.assign({ src, alt }, attrs));
|
||
|
return this.addRaw(element).addEOL();
|
||
|
}
|
||
|
addHeading(text, level) {
|
||
|
const tag = `h${level}`;
|
||
|
const allowedTag = ["h1", "h2", "h3", "h4", "h5", "h6"].includes(tag) ? tag : "h1";
|
||
|
const element = this.wrap(allowedTag, text);
|
||
|
return this.addRaw(element).addEOL();
|
||
|
}
|
||
|
addSeparator() {
|
||
|
const element = this.wrap("hr", null);
|
||
|
return this.addRaw(element).addEOL();
|
||
|
}
|
||
|
addBreak() {
|
||
|
const element = this.wrap("br", null);
|
||
|
return this.addRaw(element).addEOL();
|
||
|
}
|
||
|
addQuote(text, cite) {
|
||
|
const attrs = Object.assign({}, cite && { cite });
|
||
|
const element = this.wrap("blockquote", text, attrs);
|
||
|
return this.addRaw(element).addEOL();
|
||
|
}
|
||
|
addLink(text, href) {
|
||
|
const element = this.wrap("a", text, { href });
|
||
|
return this.addRaw(element).addEOL();
|
||
|
}
|
||
|
};
|
||
|
var _summary = new Summary();
|
||
|
exports.markdownSummary = _summary;
|
||
|
exports.summary = _summary;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/@actions/core/lib/path-utils.js
|
||
|
var require_path_utils = __commonJS({
|
||
|
"node_modules/@actions/core/lib/path-utils.js"(exports) {
|
||
|
"use strict";
|
||
|
var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
|
||
|
if (k2 === void 0)
|
||
|
k2 = k;
|
||
|
Object.defineProperty(o, k2, { enumerable: true, get: function() {
|
||
|
return m[k];
|
||
|
} });
|
||
|
} : function(o, m, k, k2) {
|
||
|
if (k2 === void 0)
|
||
|
k2 = k;
|
||
|
o[k2] = m[k];
|
||
|
});
|
||
|
var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
|
||
|
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||
|
} : function(o, v) {
|
||
|
o["default"] = v;
|
||
|
});
|
||
|
var __importStar = exports && exports.__importStar || function(mod) {
|
||
|
if (mod && mod.__esModule)
|
||
|
return mod;
|
||
|
var result = {};
|
||
|
if (mod != null) {
|
||
|
for (var k in mod)
|
||
|
if (k !== "default" && Object.hasOwnProperty.call(mod, k))
|
||
|
__createBinding(result, mod, k);
|
||
|
}
|
||
|
__setModuleDefault(result, mod);
|
||
|
return result;
|
||
|
};
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
exports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0;
|
||
|
var path3 = __importStar(require("path"));
|
||
|
function toPosixPath(pth) {
|
||
|
return pth.replace(/[\\]/g, "/");
|
||
|
}
|
||
|
exports.toPosixPath = toPosixPath;
|
||
|
function toWin32Path(pth) {
|
||
|
return pth.replace(/[/]/g, "\\");
|
||
|
}
|
||
|
exports.toWin32Path = toWin32Path;
|
||
|
function toPlatformPath(pth) {
|
||
|
return pth.replace(/[/\\]/g, path3.sep);
|
||
|
}
|
||
|
exports.toPlatformPath = toPlatformPath;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/@actions/core/lib/core.js
|
||
|
var require_core = __commonJS({
|
||
|
"node_modules/@actions/core/lib/core.js"(exports) {
|
||
|
"use strict";
|
||
|
var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
|
||
|
if (k2 === void 0)
|
||
|
k2 = k;
|
||
|
Object.defineProperty(o, k2, { enumerable: true, get: function() {
|
||
|
return m[k];
|
||
|
} });
|
||
|
} : function(o, m, k, k2) {
|
||
|
if (k2 === void 0)
|
||
|
k2 = k;
|
||
|
o[k2] = m[k];
|
||
|
});
|
||
|
var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
|
||
|
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||
|
} : function(o, v) {
|
||
|
o["default"] = v;
|
||
|
});
|
||
|
var __importStar = exports && exports.__importStar || function(mod) {
|
||
|
if (mod && mod.__esModule)
|
||
|
return mod;
|
||
|
var result = {};
|
||
|
if (mod != null) {
|
||
|
for (var k in mod)
|
||
|
if (k !== "default" && Object.hasOwnProperty.call(mod, k))
|
||
|
__createBinding(result, mod, k);
|
||
|
}
|
||
|
__setModuleDefault(result, mod);
|
||
|
return result;
|
||
|
};
|
||
|
var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
|
||
|
function adopt(value) {
|
||
|
return value instanceof P ? value : new P(function(resolve2) {
|
||
|
resolve2(value);
|
||
|
});
|
||
|
}
|
||
|
return new (P || (P = Promise))(function(resolve2, reject) {
|
||
|
function fulfilled(value) {
|
||
|
try {
|
||
|
step(generator.next(value));
|
||
|
} catch (e) {
|
||
|
reject(e);
|
||
|
}
|
||
|
}
|
||
|
function rejected(value) {
|
||
|
try {
|
||
|
step(generator["throw"](value));
|
||
|
} catch (e) {
|
||
|
reject(e);
|
||
|
}
|
||
|
}
|
||
|
function step(result) {
|
||
|
result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected);
|
||
|
}
|
||
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||
|
});
|
||
|
};
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
exports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;
|
||
|
var command_1 = require_command();
|
||
|
var file_command_1 = require_file_command();
|
||
|
var utils_1 = require_utils();
|
||
|
var os3 = __importStar(require("os"));
|
||
|
var path3 = __importStar(require("path"));
|
||
|
var oidc_utils_1 = require_oidc_utils();
|
||
|
var ExitCode;
|
||
|
(function(ExitCode2) {
|
||
|
ExitCode2[ExitCode2["Success"] = 0] = "Success";
|
||
|
ExitCode2[ExitCode2["Failure"] = 1] = "Failure";
|
||
|
})(ExitCode = exports.ExitCode || (exports.ExitCode = {}));
|
||
|
function exportVariable(name, val) {
|
||
|
const convertedVal = utils_1.toCommandValue(val);
|
||
|
process.env[name] = convertedVal;
|
||
|
const filePath = process.env["GITHUB_ENV"] || "";
|
||
|
if (filePath) {
|
||
|
return file_command_1.issueFileCommand("ENV", file_command_1.prepareKeyValueMessage(name, val));
|
||
|
}
|
||
|
command_1.issueCommand("set-env", { name }, convertedVal);
|
||
|
}
|
||
|
exports.exportVariable = exportVariable;
|
||
|
function setSecret(secret) {
|
||
|
command_1.issueCommand("add-mask", {}, secret);
|
||
|
}
|
||
|
exports.setSecret = setSecret;
|
||
|
function addPath(inputPath) {
|
||
|
const filePath = process.env["GITHUB_PATH"] || "";
|
||
|
if (filePath) {
|
||
|
file_command_1.issueFileCommand("PATH", inputPath);
|
||
|
} else {
|
||
|
command_1.issueCommand("add-path", {}, inputPath);
|
||
|
}
|
||
|
process.env["PATH"] = `${inputPath}${path3.delimiter}${process.env["PATH"]}`;
|
||
|
}
|
||
|
exports.addPath = addPath;
|
||
|
function getInput2(name, options) {
|
||
|
const val = process.env[`INPUT_${name.replace(/ /g, "_").toUpperCase()}`] || "";
|
||
|
if (options && options.required && !val) {
|
||
|
throw new Error(`Input required and not supplied: ${name}`);
|
||
|
}
|
||
|
if (options && options.trimWhitespace === false) {
|
||
|
return val;
|
||
|
}
|
||
|
return val.trim();
|
||
|
}
|
||
|
exports.getInput = getInput2;
|
||
|
function getMultilineInput(name, options) {
|
||
|
const inputs = getInput2(name, options).split("\n").filter((x) => x !== "");
|
||
|
if (options && options.trimWhitespace === false) {
|
||
|
return inputs;
|
||
|
}
|
||
|
return inputs.map((input) => input.trim());
|
||
|
}
|
||
|
exports.getMultilineInput = getMultilineInput;
|
||
|
function getBooleanInput(name, options) {
|
||
|
const trueValue = ["true", "True", "TRUE"];
|
||
|
const falseValue = ["false", "False", "FALSE"];
|
||
|
const val = getInput2(name, options);
|
||
|
if (trueValue.includes(val))
|
||
|
return true;
|
||
|
if (falseValue.includes(val))
|
||
|
return false;
|
||
|
throw new TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${name}
|
||
|
Support boolean input list: \`true | True | TRUE | false | False | FALSE\``);
|
||
|
}
|
||
|
exports.getBooleanInput = getBooleanInput;
|
||
|
function setOutput2(name, value) {
|
||
|
const filePath = process.env["GITHUB_OUTPUT"] || "";
|
||
|
if (filePath) {
|
||
|
return file_command_1.issueFileCommand("OUTPUT", file_command_1.prepareKeyValueMessage(name, value));
|
||
|
}
|
||
|
process.stdout.write(os3.EOL);
|
||
|
command_1.issueCommand("set-output", { name }, utils_1.toCommandValue(value));
|
||
|
}
|
||
|
exports.setOutput = setOutput2;
|
||
|
function setCommandEcho(enabled) {
|
||
|
command_1.issue("echo", enabled ? "on" : "off");
|
||
|
}
|
||
|
exports.setCommandEcho = setCommandEcho;
|
||
|
function setFailed2(message) {
|
||
|
process.exitCode = ExitCode.Failure;
|
||
|
error(message);
|
||
|
}
|
||
|
exports.setFailed = setFailed2;
|
||
|
function isDebug() {
|
||
|
return process.env["RUNNER_DEBUG"] === "1";
|
||
|
}
|
||
|
exports.isDebug = isDebug;
|
||
|
function debug2(message) {
|
||
|
command_1.issueCommand("debug", {}, message);
|
||
|
}
|
||
|
exports.debug = debug2;
|
||
|
function error(message, properties = {}) {
|
||
|
command_1.issueCommand("error", utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);
|
||
|
}
|
||
|
exports.error = error;
|
||
|
function warning2(message, properties = {}) {
|
||
|
command_1.issueCommand("warning", utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);
|
||
|
}
|
||
|
exports.warning = warning2;
|
||
|
function notice2(message, properties = {}) {
|
||
|
command_1.issueCommand("notice", utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);
|
||
|
}
|
||
|
exports.notice = notice2;
|
||
|
function info2(message) {
|
||
|
process.stdout.write(message + os3.EOL);
|
||
|
}
|
||
|
exports.info = info2;
|
||
|
function startGroup(name) {
|
||
|
command_1.issue("group", name);
|
||
|
}
|
||
|
exports.startGroup = startGroup;
|
||
|
function endGroup() {
|
||
|
command_1.issue("endgroup");
|
||
|
}
|
||
|
exports.endGroup = endGroup;
|
||
|
function group(name, fn) {
|
||
|
return __awaiter(this, void 0, void 0, function* () {
|
||
|
startGroup(name);
|
||
|
let result;
|
||
|
try {
|
||
|
result = yield fn();
|
||
|
} finally {
|
||
|
endGroup();
|
||
|
}
|
||
|
return result;
|
||
|
});
|
||
|
}
|
||
|
exports.group = group;
|
||
|
function saveState(name, value) {
|
||
|
const filePath = process.env["GITHUB_STATE"] || "";
|
||
|
if (filePath) {
|
||
|
return file_command_1.issueFileCommand("STATE", file_command_1.prepareKeyValueMessage(name, value));
|
||
|
}
|
||
|
command_1.issueCommand("save-state", { name }, utils_1.toCommandValue(value));
|
||
|
}
|
||
|
exports.saveState = saveState;
|
||
|
function getState(name) {
|
||
|
return process.env[`STATE_${name}`] || "";
|
||
|
}
|
||
|
exports.getState = getState;
|
||
|
function getIDToken(aud) {
|
||
|
return __awaiter(this, void 0, void 0, function* () {
|
||
|
return yield oidc_utils_1.OidcClient.getIDToken(aud);
|
||
|
});
|
||
|
}
|
||
|
exports.getIDToken = getIDToken;
|
||
|
var summary_1 = require_summary();
|
||
|
Object.defineProperty(exports, "summary", { enumerable: true, get: function() {
|
||
|
return summary_1.summary;
|
||
|
} });
|
||
|
var summary_2 = require_summary();
|
||
|
Object.defineProperty(exports, "markdownSummary", { enumerable: true, get: function() {
|
||
|
return summary_2.markdownSummary;
|
||
|
} });
|
||
|
var path_utils_1 = require_path_utils();
|
||
|
Object.defineProperty(exports, "toPosixPath", { enumerable: true, get: function() {
|
||
|
return path_utils_1.toPosixPath;
|
||
|
} });
|
||
|
Object.defineProperty(exports, "toWin32Path", { enumerable: true, get: function() {
|
||
|
return path_utils_1.toWin32Path;
|
||
|
} });
|
||
|
Object.defineProperty(exports, "toPlatformPath", { enumerable: true, get: function() {
|
||
|
return path_utils_1.toPlatformPath;
|
||
|
} });
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/internal/constants.js
|
||
|
var require_constants = __commonJS({
|
||
|
"node_modules/semver/internal/constants.js"(exports, module2) {
|
||
|
var SEMVER_SPEC_VERSION = "2.0.0";
|
||
|
var MAX_LENGTH = 256;
|
||
|
var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;
|
||
|
var MAX_SAFE_COMPONENT_LENGTH = 16;
|
||
|
module2.exports = {
|
||
|
SEMVER_SPEC_VERSION,
|
||
|
MAX_LENGTH,
|
||
|
MAX_SAFE_INTEGER,
|
||
|
MAX_SAFE_COMPONENT_LENGTH
|
||
|
};
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/internal/debug.js
|
||
|
var require_debug = __commonJS({
|
||
|
"node_modules/semver/internal/debug.js"(exports, module2) {
|
||
|
var debug2 = typeof process === "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error("SEMVER", ...args) : () => {
|
||
|
};
|
||
|
module2.exports = debug2;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/internal/re.js
|
||
|
var require_re = __commonJS({
|
||
|
"node_modules/semver/internal/re.js"(exports, module2) {
|
||
|
var { MAX_SAFE_COMPONENT_LENGTH } = require_constants();
|
||
|
var debug2 = require_debug();
|
||
|
exports = module2.exports = {};
|
||
|
var re = exports.re = [];
|
||
|
var src = exports.src = [];
|
||
|
var t = exports.t = {};
|
||
|
var R = 0;
|
||
|
var createToken = (name, value, isGlobal) => {
|
||
|
const index = R++;
|
||
|
debug2(name, index, value);
|
||
|
t[name] = index;
|
||
|
src[index] = value;
|
||
|
re[index] = new RegExp(value, isGlobal ? "g" : void 0);
|
||
|
};
|
||
|
createToken("NUMERICIDENTIFIER", "0|[1-9]\\d*");
|
||
|
createToken("NUMERICIDENTIFIERLOOSE", "[0-9]+");
|
||
|
createToken("NONNUMERICIDENTIFIER", "\\d*[a-zA-Z-][a-zA-Z0-9-]*");
|
||
|
createToken("MAINVERSION", `(${src[t.NUMERICIDENTIFIER]})\\.(${src[t.NUMERICIDENTIFIER]})\\.(${src[t.NUMERICIDENTIFIER]})`);
|
||
|
createToken("MAINVERSIONLOOSE", `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.(${src[t.NUMERICIDENTIFIERLOOSE]})\\.(${src[t.NUMERICIDENTIFIERLOOSE]})`);
|
||
|
createToken("PRERELEASEIDENTIFIER", `(?:${src[t.NUMERICIDENTIFIER]}|${src[t.NONNUMERICIDENTIFIER]})`);
|
||
|
createToken("PRERELEASEIDENTIFIERLOOSE", `(?:${src[t.NUMERICIDENTIFIERLOOSE]}|${src[t.NONNUMERICIDENTIFIER]})`);
|
||
|
createToken("PRERELEASE", `(?:-(${src[t.PRERELEASEIDENTIFIER]}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`);
|
||
|
createToken("PRERELEASELOOSE", `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`);
|
||
|
createToken("BUILDIDENTIFIER", "[0-9A-Za-z-]+");
|
||
|
createToken("BUILD", `(?:\\+(${src[t.BUILDIDENTIFIER]}(?:\\.${src[t.BUILDIDENTIFIER]})*))`);
|
||
|
createToken("FULLPLAIN", `v?${src[t.MAINVERSION]}${src[t.PRERELEASE]}?${src[t.BUILD]}?`);
|
||
|
createToken("FULL", `^${src[t.FULLPLAIN]}$`);
|
||
|
createToken("LOOSEPLAIN", `[v=\\s]*${src[t.MAINVERSIONLOOSE]}${src[t.PRERELEASELOOSE]}?${src[t.BUILD]}?`);
|
||
|
createToken("LOOSE", `^${src[t.LOOSEPLAIN]}$`);
|
||
|
createToken("GTLT", "((?:<|>)?=?)");
|
||
|
createToken("XRANGEIDENTIFIERLOOSE", `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);
|
||
|
createToken("XRANGEIDENTIFIER", `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`);
|
||
|
createToken("XRANGEPLAIN", `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})(?:\\.(${src[t.XRANGEIDENTIFIER]})(?:\\.(${src[t.XRANGEIDENTIFIER]})(?:${src[t.PRERELEASE]})?${src[t.BUILD]}?)?)?`);
|
||
|
createToken("XRANGEPLAINLOOSE", `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:${src[t.PRERELEASELOOSE]})?${src[t.BUILD]}?)?)?`);
|
||
|
createToken("XRANGE", `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`);
|
||
|
createToken("XRANGELOOSE", `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`);
|
||
|
createToken("COERCE", `${"(^|[^\\d])(\\d{1,"}${MAX_SAFE_COMPONENT_LENGTH}})(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:$|[^\\d])`);
|
||
|
createToken("COERCERTL", src[t.COERCE], true);
|
||
|
createToken("LONETILDE", "(?:~>?)");
|
||
|
createToken("TILDETRIM", `(\\s*)${src[t.LONETILDE]}\\s+`, true);
|
||
|
exports.tildeTrimReplace = "$1~";
|
||
|
createToken("TILDE", `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`);
|
||
|
createToken("TILDELOOSE", `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`);
|
||
|
createToken("LONECARET", "(?:\\^)");
|
||
|
createToken("CARETTRIM", `(\\s*)${src[t.LONECARET]}\\s+`, true);
|
||
|
exports.caretTrimReplace = "$1^";
|
||
|
createToken("CARET", `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`);
|
||
|
createToken("CARETLOOSE", `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`);
|
||
|
createToken("COMPARATORLOOSE", `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`);
|
||
|
createToken("COMPARATOR", `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`);
|
||
|
createToken("COMPARATORTRIM", `(\\s*)${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true);
|
||
|
exports.comparatorTrimReplace = "$1$2$3";
|
||
|
createToken("HYPHENRANGE", `^\\s*(${src[t.XRANGEPLAIN]})\\s+-\\s+(${src[t.XRANGEPLAIN]})\\s*$`);
|
||
|
createToken("HYPHENRANGELOOSE", `^\\s*(${src[t.XRANGEPLAINLOOSE]})\\s+-\\s+(${src[t.XRANGEPLAINLOOSE]})\\s*$`);
|
||
|
createToken("STAR", "(<|>)?=?\\s*\\*");
|
||
|
createToken("GTE0", "^\\s*>=\\s*0\\.0\\.0\\s*$");
|
||
|
createToken("GTE0PRE", "^\\s*>=\\s*0\\.0\\.0-0\\s*$");
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/internal/parse-options.js
|
||
|
var require_parse_options = __commonJS({
|
||
|
"node_modules/semver/internal/parse-options.js"(exports, module2) {
|
||
|
var opts = ["includePrerelease", "loose", "rtl"];
|
||
|
var parseOptions = (options) => !options ? {} : typeof options !== "object" ? { loose: true } : opts.filter((k) => options[k]).reduce((o, k) => {
|
||
|
o[k] = true;
|
||
|
return o;
|
||
|
}, {});
|
||
|
module2.exports = parseOptions;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/internal/identifiers.js
|
||
|
var require_identifiers = __commonJS({
|
||
|
"node_modules/semver/internal/identifiers.js"(exports, module2) {
|
||
|
var numeric = /^[0-9]+$/;
|
||
|
var compareIdentifiers = (a, b) => {
|
||
|
const anum = numeric.test(a);
|
||
|
const bnum = numeric.test(b);
|
||
|
if (anum && bnum) {
|
||
|
a = +a;
|
||
|
b = +b;
|
||
|
}
|
||
|
return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1;
|
||
|
};
|
||
|
var rcompareIdentifiers = (a, b) => compareIdentifiers(b, a);
|
||
|
module2.exports = {
|
||
|
compareIdentifiers,
|
||
|
rcompareIdentifiers
|
||
|
};
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/classes/semver.js
|
||
|
var require_semver = __commonJS({
|
||
|
"node_modules/semver/classes/semver.js"(exports, module2) {
|
||
|
var debug2 = require_debug();
|
||
|
var { MAX_LENGTH, MAX_SAFE_INTEGER } = require_constants();
|
||
|
var { re, t } = require_re();
|
||
|
var parseOptions = require_parse_options();
|
||
|
var { compareIdentifiers } = require_identifiers();
|
||
|
var SemVer = class {
|
||
|
constructor(version, options) {
|
||
|
options = parseOptions(options);
|
||
|
if (version instanceof SemVer) {
|
||
|
if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) {
|
||
|
return version;
|
||
|
} else {
|
||
|
version = version.version;
|
||
|
}
|
||
|
} else if (typeof version !== "string") {
|
||
|
throw new TypeError(`Invalid Version: ${version}`);
|
||
|
}
|
||
|
if (version.length > MAX_LENGTH) {
|
||
|
throw new TypeError(
|
||
|
`version is longer than ${MAX_LENGTH} characters`
|
||
|
);
|
||
|
}
|
||
|
debug2("SemVer", version, options);
|
||
|
this.options = options;
|
||
|
this.loose = !!options.loose;
|
||
|
this.includePrerelease = !!options.includePrerelease;
|
||
|
const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]);
|
||
|
if (!m) {
|
||
|
throw new TypeError(`Invalid Version: ${version}`);
|
||
|
}
|
||
|
this.raw = version;
|
||
|
this.major = +m[1];
|
||
|
this.minor = +m[2];
|
||
|
this.patch = +m[3];
|
||
|
if (this.major > MAX_SAFE_INTEGER || this.major < 0) {
|
||
|
throw new TypeError("Invalid major version");
|
||
|
}
|
||
|
if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {
|
||
|
throw new TypeError("Invalid minor version");
|
||
|
}
|
||
|
if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {
|
||
|
throw new TypeError("Invalid patch version");
|
||
|
}
|
||
|
if (!m[4]) {
|
||
|
this.prerelease = [];
|
||
|
} else {
|
||
|
this.prerelease = m[4].split(".").map((id) => {
|
||
|
if (/^[0-9]+$/.test(id)) {
|
||
|
const num = +id;
|
||
|
if (num >= 0 && num < MAX_SAFE_INTEGER) {
|
||
|
return num;
|
||
|
}
|
||
|
}
|
||
|
return id;
|
||
|
});
|
||
|
}
|
||
|
this.build = m[5] ? m[5].split(".") : [];
|
||
|
this.format();
|
||
|
}
|
||
|
format() {
|
||
|
this.version = `${this.major}.${this.minor}.${this.patch}`;
|
||
|
if (this.prerelease.length) {
|
||
|
this.version += `-${this.prerelease.join(".")}`;
|
||
|
}
|
||
|
return this.version;
|
||
|
}
|
||
|
toString() {
|
||
|
return this.version;
|
||
|
}
|
||
|
compare(other) {
|
||
|
debug2("SemVer.compare", this.version, this.options, other);
|
||
|
if (!(other instanceof SemVer)) {
|
||
|
if (typeof other === "string" && other === this.version) {
|
||
|
return 0;
|
||
|
}
|
||
|
other = new SemVer(other, this.options);
|
||
|
}
|
||
|
if (other.version === this.version) {
|
||
|
return 0;
|
||
|
}
|
||
|
return this.compareMain(other) || this.comparePre(other);
|
||
|
}
|
||
|
compareMain(other) {
|
||
|
if (!(other instanceof SemVer)) {
|
||
|
other = new SemVer(other, this.options);
|
||
|
}
|
||
|
return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch);
|
||
|
}
|
||
|
comparePre(other) {
|
||
|
if (!(other instanceof SemVer)) {
|
||
|
other = new SemVer(other, this.options);
|
||
|
}
|
||
|
if (this.prerelease.length && !other.prerelease.length) {
|
||
|
return -1;
|
||
|
} else if (!this.prerelease.length && other.prerelease.length) {
|
||
|
return 1;
|
||
|
} else if (!this.prerelease.length && !other.prerelease.length) {
|
||
|
return 0;
|
||
|
}
|
||
|
let i = 0;
|
||
|
do {
|
||
|
const a = this.prerelease[i];
|
||
|
const b = other.prerelease[i];
|
||
|
debug2("prerelease compare", i, a, b);
|
||
|
if (a === void 0 && b === void 0) {
|
||
|
return 0;
|
||
|
} else if (b === void 0) {
|
||
|
return 1;
|
||
|
} else if (a === void 0) {
|
||
|
return -1;
|
||
|
} else if (a === b) {
|
||
|
continue;
|
||
|
} else {
|
||
|
return compareIdentifiers(a, b);
|
||
|
}
|
||
|
} while (++i);
|
||
|
}
|
||
|
compareBuild(other) {
|
||
|
if (!(other instanceof SemVer)) {
|
||
|
other = new SemVer(other, this.options);
|
||
|
}
|
||
|
let i = 0;
|
||
|
do {
|
||
|
const a = this.build[i];
|
||
|
const b = other.build[i];
|
||
|
debug2("prerelease compare", i, a, b);
|
||
|
if (a === void 0 && b === void 0) {
|
||
|
return 0;
|
||
|
} else if (b === void 0) {
|
||
|
return 1;
|
||
|
} else if (a === void 0) {
|
||
|
return -1;
|
||
|
} else if (a === b) {
|
||
|
continue;
|
||
|
} else {
|
||
|
return compareIdentifiers(a, b);
|
||
|
}
|
||
|
} while (++i);
|
||
|
}
|
||
|
inc(release, identifier) {
|
||
|
switch (release) {
|
||
|
case "premajor":
|
||
|
this.prerelease.length = 0;
|
||
|
this.patch = 0;
|
||
|
this.minor = 0;
|
||
|
this.major++;
|
||
|
this.inc("pre", identifier);
|
||
|
break;
|
||
|
case "preminor":
|
||
|
this.prerelease.length = 0;
|
||
|
this.patch = 0;
|
||
|
this.minor++;
|
||
|
this.inc("pre", identifier);
|
||
|
break;
|
||
|
case "prepatch":
|
||
|
this.prerelease.length = 0;
|
||
|
this.inc("patch", identifier);
|
||
|
this.inc("pre", identifier);
|
||
|
break;
|
||
|
case "prerelease":
|
||
|
if (this.prerelease.length === 0) {
|
||
|
this.inc("patch", identifier);
|
||
|
}
|
||
|
this.inc("pre", identifier);
|
||
|
break;
|
||
|
case "major":
|
||
|
if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) {
|
||
|
this.major++;
|
||
|
}
|
||
|
this.minor = 0;
|
||
|
this.patch = 0;
|
||
|
this.prerelease = [];
|
||
|
break;
|
||
|
case "minor":
|
||
|
if (this.patch !== 0 || this.prerelease.length === 0) {
|
||
|
this.minor++;
|
||
|
}
|
||
|
this.patch = 0;
|
||
|
this.prerelease = [];
|
||
|
break;
|
||
|
case "patch":
|
||
|
if (this.prerelease.length === 0) {
|
||
|
this.patch++;
|
||
|
}
|
||
|
this.prerelease = [];
|
||
|
break;
|
||
|
case "pre":
|
||
|
if (this.prerelease.length === 0) {
|
||
|
this.prerelease = [0];
|
||
|
} else {
|
||
|
let i = this.prerelease.length;
|
||
|
while (--i >= 0) {
|
||
|
if (typeof this.prerelease[i] === "number") {
|
||
|
this.prerelease[i]++;
|
||
|
i = -2;
|
||
|
}
|
||
|
}
|
||
|
if (i === -1) {
|
||
|
this.prerelease.push(0);
|
||
|
}
|
||
|
}
|
||
|
if (identifier) {
|
||
|
if (compareIdentifiers(this.prerelease[0], identifier) === 0) {
|
||
|
if (isNaN(this.prerelease[1])) {
|
||
|
this.prerelease = [identifier, 0];
|
||
|
}
|
||
|
} else {
|
||
|
this.prerelease = [identifier, 0];
|
||
|
}
|
||
|
}
|
||
|
break;
|
||
|
default:
|
||
|
throw new Error(`invalid increment argument: ${release}`);
|
||
|
}
|
||
|
this.format();
|
||
|
this.raw = this.version;
|
||
|
return this;
|
||
|
}
|
||
|
};
|
||
|
module2.exports = SemVer;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/functions/parse.js
|
||
|
var require_parse2 = __commonJS({
|
||
|
"node_modules/semver/functions/parse.js"(exports, module2) {
|
||
|
var { MAX_LENGTH } = require_constants();
|
||
|
var { re, t } = require_re();
|
||
|
var SemVer = require_semver();
|
||
|
var parseOptions = require_parse_options();
|
||
|
var parse = (version, options) => {
|
||
|
options = parseOptions(options);
|
||
|
if (version instanceof SemVer) {
|
||
|
return version;
|
||
|
}
|
||
|
if (typeof version !== "string") {
|
||
|
return null;
|
||
|
}
|
||
|
if (version.length > MAX_LENGTH) {
|
||
|
return null;
|
||
|
}
|
||
|
const r = options.loose ? re[t.LOOSE] : re[t.FULL];
|
||
|
if (!r.test(version)) {
|
||
|
return null;
|
||
|
}
|
||
|
try {
|
||
|
return new SemVer(version, options);
|
||
|
} catch (er) {
|
||
|
return null;
|
||
|
}
|
||
|
};
|
||
|
module2.exports = parse;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/functions/valid.js
|
||
|
var require_valid = __commonJS({
|
||
|
"node_modules/semver/functions/valid.js"(exports, module2) {
|
||
|
var parse = require_parse2();
|
||
|
var valid = (version, options) => {
|
||
|
const v = parse(version, options);
|
||
|
return v ? v.version : null;
|
||
|
};
|
||
|
module2.exports = valid;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/functions/clean.js
|
||
|
var require_clean = __commonJS({
|
||
|
"node_modules/semver/functions/clean.js"(exports, module2) {
|
||
|
var parse = require_parse2();
|
||
|
var clean = (version, options) => {
|
||
|
const s = parse(version.trim().replace(/^[=v]+/, ""), options);
|
||
|
return s ? s.version : null;
|
||
|
};
|
||
|
module2.exports = clean;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/functions/inc.js
|
||
|
var require_inc = __commonJS({
|
||
|
"node_modules/semver/functions/inc.js"(exports, module2) {
|
||
|
var SemVer = require_semver();
|
||
|
var inc = (version, release, options, identifier) => {
|
||
|
if (typeof options === "string") {
|
||
|
identifier = options;
|
||
|
options = void 0;
|
||
|
}
|
||
|
try {
|
||
|
return new SemVer(
|
||
|
version instanceof SemVer ? version.version : version,
|
||
|
options
|
||
|
).inc(release, identifier).version;
|
||
|
} catch (er) {
|
||
|
return null;
|
||
|
}
|
||
|
};
|
||
|
module2.exports = inc;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/functions/compare.js
|
||
|
var require_compare = __commonJS({
|
||
|
"node_modules/semver/functions/compare.js"(exports, module2) {
|
||
|
var SemVer = require_semver();
|
||
|
var compare = (a, b, loose) => new SemVer(a, loose).compare(new SemVer(b, loose));
|
||
|
module2.exports = compare;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/functions/eq.js
|
||
|
var require_eq = __commonJS({
|
||
|
"node_modules/semver/functions/eq.js"(exports, module2) {
|
||
|
var compare = require_compare();
|
||
|
var eq = (a, b, loose) => compare(a, b, loose) === 0;
|
||
|
module2.exports = eq;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/functions/diff.js
|
||
|
var require_diff = __commonJS({
|
||
|
"node_modules/semver/functions/diff.js"(exports, module2) {
|
||
|
var parse = require_parse2();
|
||
|
var eq = require_eq();
|
||
|
var diff = (version1, version2) => {
|
||
|
if (eq(version1, version2)) {
|
||
|
return null;
|
||
|
} else {
|
||
|
const v1 = parse(version1);
|
||
|
const v2 = parse(version2);
|
||
|
const hasPre = v1.prerelease.length || v2.prerelease.length;
|
||
|
const prefix = hasPre ? "pre" : "";
|
||
|
const defaultResult = hasPre ? "prerelease" : "";
|
||
|
for (const key in v1) {
|
||
|
if (key === "major" || key === "minor" || key === "patch") {
|
||
|
if (v1[key] !== v2[key]) {
|
||
|
return prefix + key;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
return defaultResult;
|
||
|
}
|
||
|
};
|
||
|
module2.exports = diff;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/functions/major.js
|
||
|
var require_major = __commonJS({
|
||
|
"node_modules/semver/functions/major.js"(exports, module2) {
|
||
|
var SemVer = require_semver();
|
||
|
var major = (a, loose) => new SemVer(a, loose).major;
|
||
|
module2.exports = major;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/functions/minor.js
|
||
|
var require_minor = __commonJS({
|
||
|
"node_modules/semver/functions/minor.js"(exports, module2) {
|
||
|
var SemVer = require_semver();
|
||
|
var minor = (a, loose) => new SemVer(a, loose).minor;
|
||
|
module2.exports = minor;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/functions/patch.js
|
||
|
var require_patch = __commonJS({
|
||
|
"node_modules/semver/functions/patch.js"(exports, module2) {
|
||
|
var SemVer = require_semver();
|
||
|
var patch = (a, loose) => new SemVer(a, loose).patch;
|
||
|
module2.exports = patch;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/functions/prerelease.js
|
||
|
var require_prerelease = __commonJS({
|
||
|
"node_modules/semver/functions/prerelease.js"(exports, module2) {
|
||
|
var parse = require_parse2();
|
||
|
var prerelease = (version, options) => {
|
||
|
const parsed = parse(version, options);
|
||
|
return parsed && parsed.prerelease.length ? parsed.prerelease : null;
|
||
|
};
|
||
|
module2.exports = prerelease;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/functions/rcompare.js
|
||
|
var require_rcompare = __commonJS({
|
||
|
"node_modules/semver/functions/rcompare.js"(exports, module2) {
|
||
|
var compare = require_compare();
|
||
|
var rcompare = (a, b, loose) => compare(b, a, loose);
|
||
|
module2.exports = rcompare;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/functions/compare-loose.js
|
||
|
var require_compare_loose = __commonJS({
|
||
|
"node_modules/semver/functions/compare-loose.js"(exports, module2) {
|
||
|
var compare = require_compare();
|
||
|
var compareLoose = (a, b) => compare(a, b, true);
|
||
|
module2.exports = compareLoose;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/functions/compare-build.js
|
||
|
var require_compare_build = __commonJS({
|
||
|
"node_modules/semver/functions/compare-build.js"(exports, module2) {
|
||
|
var SemVer = require_semver();
|
||
|
var compareBuild = (a, b, loose) => {
|
||
|
const versionA = new SemVer(a, loose);
|
||
|
const versionB = new SemVer(b, loose);
|
||
|
return versionA.compare(versionB) || versionA.compareBuild(versionB);
|
||
|
};
|
||
|
module2.exports = compareBuild;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/functions/sort.js
|
||
|
var require_sort = __commonJS({
|
||
|
"node_modules/semver/functions/sort.js"(exports, module2) {
|
||
|
var compareBuild = require_compare_build();
|
||
|
var sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose));
|
||
|
module2.exports = sort;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/functions/rsort.js
|
||
|
var require_rsort = __commonJS({
|
||
|
"node_modules/semver/functions/rsort.js"(exports, module2) {
|
||
|
var compareBuild = require_compare_build();
|
||
|
var rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose));
|
||
|
module2.exports = rsort;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/functions/gt.js
|
||
|
var require_gt = __commonJS({
|
||
|
"node_modules/semver/functions/gt.js"(exports, module2) {
|
||
|
var compare = require_compare();
|
||
|
var gt = (a, b, loose) => compare(a, b, loose) > 0;
|
||
|
module2.exports = gt;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/functions/lt.js
|
||
|
var require_lt = __commonJS({
|
||
|
"node_modules/semver/functions/lt.js"(exports, module2) {
|
||
|
var compare = require_compare();
|
||
|
var lt = (a, b, loose) => compare(a, b, loose) < 0;
|
||
|
module2.exports = lt;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/functions/neq.js
|
||
|
var require_neq = __commonJS({
|
||
|
"node_modules/semver/functions/neq.js"(exports, module2) {
|
||
|
var compare = require_compare();
|
||
|
var neq = (a, b, loose) => compare(a, b, loose) !== 0;
|
||
|
module2.exports = neq;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/functions/gte.js
|
||
|
var require_gte = __commonJS({
|
||
|
"node_modules/semver/functions/gte.js"(exports, module2) {
|
||
|
var compare = require_compare();
|
||
|
var gte = (a, b, loose) => compare(a, b, loose) >= 0;
|
||
|
module2.exports = gte;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/functions/lte.js
|
||
|
var require_lte = __commonJS({
|
||
|
"node_modules/semver/functions/lte.js"(exports, module2) {
|
||
|
var compare = require_compare();
|
||
|
var lte = (a, b, loose) => compare(a, b, loose) <= 0;
|
||
|
module2.exports = lte;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/functions/cmp.js
|
||
|
var require_cmp = __commonJS({
|
||
|
"node_modules/semver/functions/cmp.js"(exports, module2) {
|
||
|
var eq = require_eq();
|
||
|
var neq = require_neq();
|
||
|
var gt = require_gt();
|
||
|
var gte = require_gte();
|
||
|
var lt = require_lt();
|
||
|
var lte = require_lte();
|
||
|
var cmp = (a, op, b, loose) => {
|
||
|
switch (op) {
|
||
|
case "===":
|
||
|
if (typeof a === "object") {
|
||
|
a = a.version;
|
||
|
}
|
||
|
if (typeof b === "object") {
|
||
|
b = b.version;
|
||
|
}
|
||
|
return a === b;
|
||
|
case "!==":
|
||
|
if (typeof a === "object") {
|
||
|
a = a.version;
|
||
|
}
|
||
|
if (typeof b === "object") {
|
||
|
b = b.version;
|
||
|
}
|
||
|
return a !== b;
|
||
|
case "":
|
||
|
case "=":
|
||
|
case "==":
|
||
|
return eq(a, b, loose);
|
||
|
case "!=":
|
||
|
return neq(a, b, loose);
|
||
|
case ">":
|
||
|
return gt(a, b, loose);
|
||
|
case ">=":
|
||
|
return gte(a, b, loose);
|
||
|
case "<":
|
||
|
return lt(a, b, loose);
|
||
|
case "<=":
|
||
|
return lte(a, b, loose);
|
||
|
default:
|
||
|
throw new TypeError(`Invalid operator: ${op}`);
|
||
|
}
|
||
|
};
|
||
|
module2.exports = cmp;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/functions/coerce.js
|
||
|
var require_coerce = __commonJS({
|
||
|
"node_modules/semver/functions/coerce.js"(exports, module2) {
|
||
|
var SemVer = require_semver();
|
||
|
var parse = require_parse2();
|
||
|
var { re, t } = require_re();
|
||
|
var coerce = (version, options) => {
|
||
|
if (version instanceof SemVer) {
|
||
|
return version;
|
||
|
}
|
||
|
if (typeof version === "number") {
|
||
|
version = String(version);
|
||
|
}
|
||
|
if (typeof version !== "string") {
|
||
|
return null;
|
||
|
}
|
||
|
options = options || {};
|
||
|
let match = null;
|
||
|
if (!options.rtl) {
|
||
|
match = version.match(re[t.COERCE]);
|
||
|
} else {
|
||
|
let next;
|
||
|
while ((next = re[t.COERCERTL].exec(version)) && (!match || match.index + match[0].length !== version.length)) {
|
||
|
if (!match || next.index + next[0].length !== match.index + match[0].length) {
|
||
|
match = next;
|
||
|
}
|
||
|
re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length;
|
||
|
}
|
||
|
re[t.COERCERTL].lastIndex = -1;
|
||
|
}
|
||
|
if (match === null) {
|
||
|
return null;
|
||
|
}
|
||
|
return parse(`${match[2]}.${match[3] || "0"}.${match[4] || "0"}`, options);
|
||
|
};
|
||
|
module2.exports = coerce;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/yallist/iterator.js
|
||
|
var require_iterator = __commonJS({
|
||
|
"node_modules/yallist/iterator.js"(exports, module2) {
|
||
|
"use strict";
|
||
|
module2.exports = function(Yallist) {
|
||
|
Yallist.prototype[Symbol.iterator] = function* () {
|
||
|
for (let walker = this.head; walker; walker = walker.next) {
|
||
|
yield walker.value;
|
||
|
}
|
||
|
};
|
||
|
};
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/yallist/yallist.js
|
||
|
var require_yallist = __commonJS({
|
||
|
"node_modules/yallist/yallist.js"(exports, module2) {
|
||
|
"use strict";
|
||
|
module2.exports = Yallist;
|
||
|
Yallist.Node = Node;
|
||
|
Yallist.create = Yallist;
|
||
|
function Yallist(list) {
|
||
|
var self = this;
|
||
|
if (!(self instanceof Yallist)) {
|
||
|
self = new Yallist();
|
||
|
}
|
||
|
self.tail = null;
|
||
|
self.head = null;
|
||
|
self.length = 0;
|
||
|
if (list && typeof list.forEach === "function") {
|
||
|
list.forEach(function(item) {
|
||
|
self.push(item);
|
||
|
});
|
||
|
} else if (arguments.length > 0) {
|
||
|
for (var i = 0, l = arguments.length; i < l; i++) {
|
||
|
self.push(arguments[i]);
|
||
|
}
|
||
|
}
|
||
|
return self;
|
||
|
}
|
||
|
Yallist.prototype.removeNode = function(node) {
|
||
|
if (node.list !== this) {
|
||
|
throw new Error("removing node which does not belong to this list");
|
||
|
}
|
||
|
var next = node.next;
|
||
|
var prev = node.prev;
|
||
|
if (next) {
|
||
|
next.prev = prev;
|
||
|
}
|
||
|
if (prev) {
|
||
|
prev.next = next;
|
||
|
}
|
||
|
if (node === this.head) {
|
||
|
this.head = next;
|
||
|
}
|
||
|
if (node === this.tail) {
|
||
|
this.tail = prev;
|
||
|
}
|
||
|
node.list.length--;
|
||
|
node.next = null;
|
||
|
node.prev = null;
|
||
|
node.list = null;
|
||
|
return next;
|
||
|
};
|
||
|
Yallist.prototype.unshiftNode = function(node) {
|
||
|
if (node === this.head) {
|
||
|
return;
|
||
|
}
|
||
|
if (node.list) {
|
||
|
node.list.removeNode(node);
|
||
|
}
|
||
|
var head = this.head;
|
||
|
node.list = this;
|
||
|
node.next = head;
|
||
|
if (head) {
|
||
|
head.prev = node;
|
||
|
}
|
||
|
this.head = node;
|
||
|
if (!this.tail) {
|
||
|
this.tail = node;
|
||
|
}
|
||
|
this.length++;
|
||
|
};
|
||
|
Yallist.prototype.pushNode = function(node) {
|
||
|
if (node === this.tail) {
|
||
|
return;
|
||
|
}
|
||
|
if (node.list) {
|
||
|
node.list.removeNode(node);
|
||
|
}
|
||
|
var tail = this.tail;
|
||
|
node.list = this;
|
||
|
node.prev = tail;
|
||
|
if (tail) {
|
||
|
tail.next = node;
|
||
|
}
|
||
|
this.tail = node;
|
||
|
if (!this.head) {
|
||
|
this.head = node;
|
||
|
}
|
||
|
this.length++;
|
||
|
};
|
||
|
Yallist.prototype.push = function() {
|
||
|
for (var i = 0, l = arguments.length; i < l; i++) {
|
||
|
push(this, arguments[i]);
|
||
|
}
|
||
|
return this.length;
|
||
|
};
|
||
|
Yallist.prototype.unshift = function() {
|
||
|
for (var i = 0, l = arguments.length; i < l; i++) {
|
||
|
unshift(this, arguments[i]);
|
||
|
}
|
||
|
return this.length;
|
||
|
};
|
||
|
Yallist.prototype.pop = function() {
|
||
|
if (!this.tail) {
|
||
|
return void 0;
|
||
|
}
|
||
|
var res = this.tail.value;
|
||
|
this.tail = this.tail.prev;
|
||
|
if (this.tail) {
|
||
|
this.tail.next = null;
|
||
|
} else {
|
||
|
this.head = null;
|
||
|
}
|
||
|
this.length--;
|
||
|
return res;
|
||
|
};
|
||
|
Yallist.prototype.shift = function() {
|
||
|
if (!this.head) {
|
||
|
return void 0;
|
||
|
}
|
||
|
var res = this.head.value;
|
||
|
this.head = this.head.next;
|
||
|
if (this.head) {
|
||
|
this.head.prev = null;
|
||
|
} else {
|
||
|
this.tail = null;
|
||
|
}
|
||
|
this.length--;
|
||
|
return res;
|
||
|
};
|
||
|
Yallist.prototype.forEach = function(fn, thisp) {
|
||
|
thisp = thisp || this;
|
||
|
for (var walker = this.head, i = 0; walker !== null; i++) {
|
||
|
fn.call(thisp, walker.value, i, this);
|
||
|
walker = walker.next;
|
||
|
}
|
||
|
};
|
||
|
Yallist.prototype.forEachReverse = function(fn, thisp) {
|
||
|
thisp = thisp || this;
|
||
|
for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {
|
||
|
fn.call(thisp, walker.value, i, this);
|
||
|
walker = walker.prev;
|
||
|
}
|
||
|
};
|
||
|
Yallist.prototype.get = function(n) {
|
||
|
for (var i = 0, walker = this.head; walker !== null && i < n; i++) {
|
||
|
walker = walker.next;
|
||
|
}
|
||
|
if (i === n && walker !== null) {
|
||
|
return walker.value;
|
||
|
}
|
||
|
};
|
||
|
Yallist.prototype.getReverse = function(n) {
|
||
|
for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {
|
||
|
walker = walker.prev;
|
||
|
}
|
||
|
if (i === n && walker !== null) {
|
||
|
return walker.value;
|
||
|
}
|
||
|
};
|
||
|
Yallist.prototype.map = function(fn, thisp) {
|
||
|
thisp = thisp || this;
|
||
|
var res = new Yallist();
|
||
|
for (var walker = this.head; walker !== null; ) {
|
||
|
res.push(fn.call(thisp, walker.value, this));
|
||
|
walker = walker.next;
|
||
|
}
|
||
|
return res;
|
||
|
};
|
||
|
Yallist.prototype.mapReverse = function(fn, thisp) {
|
||
|
thisp = thisp || this;
|
||
|
var res = new Yallist();
|
||
|
for (var walker = this.tail; walker !== null; ) {
|
||
|
res.push(fn.call(thisp, walker.value, this));
|
||
|
walker = walker.prev;
|
||
|
}
|
||
|
return res;
|
||
|
};
|
||
|
Yallist.prototype.reduce = function(fn, initial) {
|
||
|
var acc;
|
||
|
var walker = this.head;
|
||
|
if (arguments.length > 1) {
|
||
|
acc = initial;
|
||
|
} else if (this.head) {
|
||
|
walker = this.head.next;
|
||
|
acc = this.head.value;
|
||
|
} else {
|
||
|
throw new TypeError("Reduce of empty list with no initial value");
|
||
|
}
|
||
|
for (var i = 0; walker !== null; i++) {
|
||
|
acc = fn(acc, walker.value, i);
|
||
|
walker = walker.next;
|
||
|
}
|
||
|
return acc;
|
||
|
};
|
||
|
Yallist.prototype.reduceReverse = function(fn, initial) {
|
||
|
var acc;
|
||
|
var walker = this.tail;
|
||
|
if (arguments.length > 1) {
|
||
|
acc = initial;
|
||
|
} else if (this.tail) {
|
||
|
walker = this.tail.prev;
|
||
|
acc = this.tail.value;
|
||
|
} else {
|
||
|
throw new TypeError("Reduce of empty list with no initial value");
|
||
|
}
|
||
|
for (var i = this.length - 1; walker !== null; i--) {
|
||
|
acc = fn(acc, walker.value, i);
|
||
|
walker = walker.prev;
|
||
|
}
|
||
|
return acc;
|
||
|
};
|
||
|
Yallist.prototype.toArray = function() {
|
||
|
var arr = new Array(this.length);
|
||
|
for (var i = 0, walker = this.head; walker !== null; i++) {
|
||
|
arr[i] = walker.value;
|
||
|
walker = walker.next;
|
||
|
}
|
||
|
return arr;
|
||
|
};
|
||
|
Yallist.prototype.toArrayReverse = function() {
|
||
|
var arr = new Array(this.length);
|
||
|
for (var i = 0, walker = this.tail; walker !== null; i++) {
|
||
|
arr[i] = walker.value;
|
||
|
walker = walker.prev;
|
||
|
}
|
||
|
return arr;
|
||
|
};
|
||
|
Yallist.prototype.slice = function(from, to) {
|
||
|
to = to || this.length;
|
||
|
if (to < 0) {
|
||
|
to += this.length;
|
||
|
}
|
||
|
from = from || 0;
|
||
|
if (from < 0) {
|
||
|
from += this.length;
|
||
|
}
|
||
|
var ret = new Yallist();
|
||
|
if (to < from || to < 0) {
|
||
|
return ret;
|
||
|
}
|
||
|
if (from < 0) {
|
||
|
from = 0;
|
||
|
}
|
||
|
if (to > this.length) {
|
||
|
to = this.length;
|
||
|
}
|
||
|
for (var i = 0, walker = this.head; walker !== null && i < from; i++) {
|
||
|
walker = walker.next;
|
||
|
}
|
||
|
for (; walker !== null && i < to; i++, walker = walker.next) {
|
||
|
ret.push(walker.value);
|
||
|
}
|
||
|
return ret;
|
||
|
};
|
||
|
Yallist.prototype.sliceReverse = function(from, to) {
|
||
|
to = to || this.length;
|
||
|
if (to < 0) {
|
||
|
to += this.length;
|
||
|
}
|
||
|
from = from || 0;
|
||
|
if (from < 0) {
|
||
|
from += this.length;
|
||
|
}
|
||
|
var ret = new Yallist();
|
||
|
if (to < from || to < 0) {
|
||
|
return ret;
|
||
|
}
|
||
|
if (from < 0) {
|
||
|
from = 0;
|
||
|
}
|
||
|
if (to > this.length) {
|
||
|
to = this.length;
|
||
|
}
|
||
|
for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {
|
||
|
walker = walker.prev;
|
||
|
}
|
||
|
for (; walker !== null && i > from; i--, walker = walker.prev) {
|
||
|
ret.push(walker.value);
|
||
|
}
|
||
|
return ret;
|
||
|
};
|
||
|
Yallist.prototype.splice = function(start, deleteCount, ...nodes) {
|
||
|
if (start > this.length) {
|
||
|
start = this.length - 1;
|
||
|
}
|
||
|
if (start < 0) {
|
||
|
start = this.length + start;
|
||
|
}
|
||
|
for (var i = 0, walker = this.head; walker !== null && i < start; i++) {
|
||
|
walker = walker.next;
|
||
|
}
|
||
|
var ret = [];
|
||
|
for (var i = 0; walker && i < deleteCount; i++) {
|
||
|
ret.push(walker.value);
|
||
|
walker = this.removeNode(walker);
|
||
|
}
|
||
|
if (walker === null) {
|
||
|
walker = this.tail;
|
||
|
}
|
||
|
if (walker !== this.head && walker !== this.tail) {
|
||
|
walker = walker.prev;
|
||
|
}
|
||
|
for (var i = 0; i < nodes.length; i++) {
|
||
|
walker = insert(this, walker, nodes[i]);
|
||
|
}
|
||
|
return ret;
|
||
|
};
|
||
|
Yallist.prototype.reverse = function() {
|
||
|
var head = this.head;
|
||
|
var tail = this.tail;
|
||
|
for (var walker = head; walker !== null; walker = walker.prev) {
|
||
|
var p = walker.prev;
|
||
|
walker.prev = walker.next;
|
||
|
walker.next = p;
|
||
|
}
|
||
|
this.head = tail;
|
||
|
this.tail = head;
|
||
|
return this;
|
||
|
};
|
||
|
function insert(self, node, value) {
|
||
|
var inserted = node === self.head ? new Node(value, null, node, self) : new Node(value, node, node.next, self);
|
||
|
if (inserted.next === null) {
|
||
|
self.tail = inserted;
|
||
|
}
|
||
|
if (inserted.prev === null) {
|
||
|
self.head = inserted;
|
||
|
}
|
||
|
self.length++;
|
||
|
return inserted;
|
||
|
}
|
||
|
function push(self, item) {
|
||
|
self.tail = new Node(item, self.tail, null, self);
|
||
|
if (!self.head) {
|
||
|
self.head = self.tail;
|
||
|
}
|
||
|
self.length++;
|
||
|
}
|
||
|
function unshift(self, item) {
|
||
|
self.head = new Node(item, null, self.head, self);
|
||
|
if (!self.tail) {
|
||
|
self.tail = self.head;
|
||
|
}
|
||
|
self.length++;
|
||
|
}
|
||
|
function Node(value, prev, next, list) {
|
||
|
if (!(this instanceof Node)) {
|
||
|
return new Node(value, prev, next, list);
|
||
|
}
|
||
|
this.list = list;
|
||
|
this.value = value;
|
||
|
if (prev) {
|
||
|
prev.next = this;
|
||
|
this.prev = prev;
|
||
|
} else {
|
||
|
this.prev = null;
|
||
|
}
|
||
|
if (next) {
|
||
|
next.prev = this;
|
||
|
this.next = next;
|
||
|
} else {
|
||
|
this.next = null;
|
||
|
}
|
||
|
}
|
||
|
try {
|
||
|
require_iterator()(Yallist);
|
||
|
} catch (er) {
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/lru-cache/index.js
|
||
|
var require_lru_cache = __commonJS({
|
||
|
"node_modules/lru-cache/index.js"(exports, module2) {
|
||
|
"use strict";
|
||
|
var Yallist = require_yallist();
|
||
|
var MAX = Symbol("max");
|
||
|
var LENGTH = Symbol("length");
|
||
|
var LENGTH_CALCULATOR = Symbol("lengthCalculator");
|
||
|
var ALLOW_STALE = Symbol("allowStale");
|
||
|
var MAX_AGE = Symbol("maxAge");
|
||
|
var DISPOSE = Symbol("dispose");
|
||
|
var NO_DISPOSE_ON_SET = Symbol("noDisposeOnSet");
|
||
|
var LRU_LIST = Symbol("lruList");
|
||
|
var CACHE = Symbol("cache");
|
||
|
var UPDATE_AGE_ON_GET = Symbol("updateAgeOnGet");
|
||
|
var naiveLength = () => 1;
|
||
|
var LRUCache = class {
|
||
|
constructor(options) {
|
||
|
if (typeof options === "number")
|
||
|
options = { max: options };
|
||
|
if (!options)
|
||
|
options = {};
|
||
|
if (options.max && (typeof options.max !== "number" || options.max < 0))
|
||
|
throw new TypeError("max must be a non-negative number");
|
||
|
const max = this[MAX] = options.max || Infinity;
|
||
|
const lc = options.length || naiveLength;
|
||
|
this[LENGTH_CALCULATOR] = typeof lc !== "function" ? naiveLength : lc;
|
||
|
this[ALLOW_STALE] = options.stale || false;
|
||
|
if (options.maxAge && typeof options.maxAge !== "number")
|
||
|
throw new TypeError("maxAge must be a number");
|
||
|
this[MAX_AGE] = options.maxAge || 0;
|
||
|
this[DISPOSE] = options.dispose;
|
||
|
this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false;
|
||
|
this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false;
|
||
|
this.reset();
|
||
|
}
|
||
|
set max(mL) {
|
||
|
if (typeof mL !== "number" || mL < 0)
|
||
|
throw new TypeError("max must be a non-negative number");
|
||
|
this[MAX] = mL || Infinity;
|
||
|
trim(this);
|
||
|
}
|
||
|
get max() {
|
||
|
return this[MAX];
|
||
|
}
|
||
|
set allowStale(allowStale) {
|
||
|
this[ALLOW_STALE] = !!allowStale;
|
||
|
}
|
||
|
get allowStale() {
|
||
|
return this[ALLOW_STALE];
|
||
|
}
|
||
|
set maxAge(mA) {
|
||
|
if (typeof mA !== "number")
|
||
|
throw new TypeError("maxAge must be a non-negative number");
|
||
|
this[MAX_AGE] = mA;
|
||
|
trim(this);
|
||
|
}
|
||
|
get maxAge() {
|
||
|
return this[MAX_AGE];
|
||
|
}
|
||
|
set lengthCalculator(lC) {
|
||
|
if (typeof lC !== "function")
|
||
|
lC = naiveLength;
|
||
|
if (lC !== this[LENGTH_CALCULATOR]) {
|
||
|
this[LENGTH_CALCULATOR] = lC;
|
||
|
this[LENGTH] = 0;
|
||
|
this[LRU_LIST].forEach((hit) => {
|
||
|
hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key);
|
||
|
this[LENGTH] += hit.length;
|
||
|
});
|
||
|
}
|
||
|
trim(this);
|
||
|
}
|
||
|
get lengthCalculator() {
|
||
|
return this[LENGTH_CALCULATOR];
|
||
|
}
|
||
|
get length() {
|
||
|
return this[LENGTH];
|
||
|
}
|
||
|
get itemCount() {
|
||
|
return this[LRU_LIST].length;
|
||
|
}
|
||
|
rforEach(fn, thisp) {
|
||
|
thisp = thisp || this;
|
||
|
for (let walker = this[LRU_LIST].tail; walker !== null; ) {
|
||
|
const prev = walker.prev;
|
||
|
forEachStep(this, fn, walker, thisp);
|
||
|
walker = prev;
|
||
|
}
|
||
|
}
|
||
|
forEach(fn, thisp) {
|
||
|
thisp = thisp || this;
|
||
|
for (let walker = this[LRU_LIST].head; walker !== null; ) {
|
||
|
const next = walker.next;
|
||
|
forEachStep(this, fn, walker, thisp);
|
||
|
walker = next;
|
||
|
}
|
||
|
}
|
||
|
keys() {
|
||
|
return this[LRU_LIST].toArray().map((k) => k.key);
|
||
|
}
|
||
|
values() {
|
||
|
return this[LRU_LIST].toArray().map((k) => k.value);
|
||
|
}
|
||
|
reset() {
|
||
|
if (this[DISPOSE] && this[LRU_LIST] && this[LRU_LIST].length) {
|
||
|
this[LRU_LIST].forEach((hit) => this[DISPOSE](hit.key, hit.value));
|
||
|
}
|
||
|
this[CACHE] = /* @__PURE__ */ new Map();
|
||
|
this[LRU_LIST] = new Yallist();
|
||
|
this[LENGTH] = 0;
|
||
|
}
|
||
|
dump() {
|
||
|
return this[LRU_LIST].map((hit) => isStale(this, hit) ? false : {
|
||
|
k: hit.key,
|
||
|
v: hit.value,
|
||
|
e: hit.now + (hit.maxAge || 0)
|
||
|
}).toArray().filter((h) => h);
|
||
|
}
|
||
|
dumpLru() {
|
||
|
return this[LRU_LIST];
|
||
|
}
|
||
|
set(key, value, maxAge) {
|
||
|
maxAge = maxAge || this[MAX_AGE];
|
||
|
if (maxAge && typeof maxAge !== "number")
|
||
|
throw new TypeError("maxAge must be a number");
|
||
|
const now = maxAge ? Date.now() : 0;
|
||
|
const len = this[LENGTH_CALCULATOR](value, key);
|
||
|
if (this[CACHE].has(key)) {
|
||
|
if (len > this[MAX]) {
|
||
|
del(this, this[CACHE].get(key));
|
||
|
return false;
|
||
|
}
|
||
|
const node = this[CACHE].get(key);
|
||
|
const item = node.value;
|
||
|
if (this[DISPOSE]) {
|
||
|
if (!this[NO_DISPOSE_ON_SET])
|
||
|
this[DISPOSE](key, item.value);
|
||
|
}
|
||
|
item.now = now;
|
||
|
item.maxAge = maxAge;
|
||
|
item.value = value;
|
||
|
this[LENGTH] += len - item.length;
|
||
|
item.length = len;
|
||
|
this.get(key);
|
||
|
trim(this);
|
||
|
return true;
|
||
|
}
|
||
|
const hit = new Entry(key, value, len, now, maxAge);
|
||
|
if (hit.length > this[MAX]) {
|
||
|
if (this[DISPOSE])
|
||
|
this[DISPOSE](key, value);
|
||
|
return false;
|
||
|
}
|
||
|
this[LENGTH] += hit.length;
|
||
|
this[LRU_LIST].unshift(hit);
|
||
|
this[CACHE].set(key, this[LRU_LIST].head);
|
||
|
trim(this);
|
||
|
return true;
|
||
|
}
|
||
|
has(key) {
|
||
|
if (!this[CACHE].has(key))
|
||
|
return false;
|
||
|
const hit = this[CACHE].get(key).value;
|
||
|
return !isStale(this, hit);
|
||
|
}
|
||
|
get(key) {
|
||
|
return get(this, key, true);
|
||
|
}
|
||
|
peek(key) {
|
||
|
return get(this, key, false);
|
||
|
}
|
||
|
pop() {
|
||
|
const node = this[LRU_LIST].tail;
|
||
|
if (!node)
|
||
|
return null;
|
||
|
del(this, node);
|
||
|
return node.value;
|
||
|
}
|
||
|
del(key) {
|
||
|
del(this, this[CACHE].get(key));
|
||
|
}
|
||
|
load(arr) {
|
||
|
this.reset();
|
||
|
const now = Date.now();
|
||
|
for (let l = arr.length - 1; l >= 0; l--) {
|
||
|
const hit = arr[l];
|
||
|
const expiresAt = hit.e || 0;
|
||
|
if (expiresAt === 0)
|
||
|
this.set(hit.k, hit.v);
|
||
|
else {
|
||
|
const maxAge = expiresAt - now;
|
||
|
if (maxAge > 0) {
|
||
|
this.set(hit.k, hit.v, maxAge);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
prune() {
|
||
|
this[CACHE].forEach((value, key) => get(this, key, false));
|
||
|
}
|
||
|
};
|
||
|
var get = (self, key, doUse) => {
|
||
|
const node = self[CACHE].get(key);
|
||
|
if (node) {
|
||
|
const hit = node.value;
|
||
|
if (isStale(self, hit)) {
|
||
|
del(self, node);
|
||
|
if (!self[ALLOW_STALE])
|
||
|
return void 0;
|
||
|
} else {
|
||
|
if (doUse) {
|
||
|
if (self[UPDATE_AGE_ON_GET])
|
||
|
node.value.now = Date.now();
|
||
|
self[LRU_LIST].unshiftNode(node);
|
||
|
}
|
||
|
}
|
||
|
return hit.value;
|
||
|
}
|
||
|
};
|
||
|
var isStale = (self, hit) => {
|
||
|
if (!hit || !hit.maxAge && !self[MAX_AGE])
|
||
|
return false;
|
||
|
const diff = Date.now() - hit.now;
|
||
|
return hit.maxAge ? diff > hit.maxAge : self[MAX_AGE] && diff > self[MAX_AGE];
|
||
|
};
|
||
|
var trim = (self) => {
|
||
|
if (self[LENGTH] > self[MAX]) {
|
||
|
for (let walker = self[LRU_LIST].tail; self[LENGTH] > self[MAX] && walker !== null; ) {
|
||
|
const prev = walker.prev;
|
||
|
del(self, walker);
|
||
|
walker = prev;
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
var del = (self, node) => {
|
||
|
if (node) {
|
||
|
const hit = node.value;
|
||
|
if (self[DISPOSE])
|
||
|
self[DISPOSE](hit.key, hit.value);
|
||
|
self[LENGTH] -= hit.length;
|
||
|
self[CACHE].delete(hit.key);
|
||
|
self[LRU_LIST].removeNode(node);
|
||
|
}
|
||
|
};
|
||
|
var Entry = class {
|
||
|
constructor(key, value, length, now, maxAge) {
|
||
|
this.key = key;
|
||
|
this.value = value;
|
||
|
this.length = length;
|
||
|
this.now = now;
|
||
|
this.maxAge = maxAge || 0;
|
||
|
}
|
||
|
};
|
||
|
var forEachStep = (self, fn, node, thisp) => {
|
||
|
let hit = node.value;
|
||
|
if (isStale(self, hit)) {
|
||
|
del(self, node);
|
||
|
if (!self[ALLOW_STALE])
|
||
|
hit = void 0;
|
||
|
}
|
||
|
if (hit)
|
||
|
fn.call(thisp, hit.value, hit.key, self);
|
||
|
};
|
||
|
module2.exports = LRUCache;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/classes/range.js
|
||
|
var require_range = __commonJS({
|
||
|
"node_modules/semver/classes/range.js"(exports, module2) {
|
||
|
var Range = class {
|
||
|
constructor(range, options) {
|
||
|
options = parseOptions(options);
|
||
|
if (range instanceof Range) {
|
||
|
if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) {
|
||
|
return range;
|
||
|
} else {
|
||
|
return new Range(range.raw, options);
|
||
|
}
|
||
|
}
|
||
|
if (range instanceof Comparator) {
|
||
|
this.raw = range.value;
|
||
|
this.set = [[range]];
|
||
|
this.format();
|
||
|
return this;
|
||
|
}
|
||
|
this.options = options;
|
||
|
this.loose = !!options.loose;
|
||
|
this.includePrerelease = !!options.includePrerelease;
|
||
|
this.raw = range;
|
||
|
this.set = range.split("||").map((r) => this.parseRange(r.trim())).filter((c) => c.length);
|
||
|
if (!this.set.length) {
|
||
|
throw new TypeError(`Invalid SemVer Range: ${range}`);
|
||
|
}
|
||
|
if (this.set.length > 1) {
|
||
|
const first = this.set[0];
|
||
|
this.set = this.set.filter((c) => !isNullSet(c[0]));
|
||
|
if (this.set.length === 0) {
|
||
|
this.set = [first];
|
||
|
} else if (this.set.length > 1) {
|
||
|
for (const c of this.set) {
|
||
|
if (c.length === 1 && isAny(c[0])) {
|
||
|
this.set = [c];
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
this.format();
|
||
|
}
|
||
|
format() {
|
||
|
this.range = this.set.map((comps) => {
|
||
|
return comps.join(" ").trim();
|
||
|
}).join("||").trim();
|
||
|
return this.range;
|
||
|
}
|
||
|
toString() {
|
||
|
return this.range;
|
||
|
}
|
||
|
parseRange(range) {
|
||
|
range = range.trim();
|
||
|
const memoOpts = Object.keys(this.options).join(",");
|
||
|
const memoKey = `parseRange:${memoOpts}:${range}`;
|
||
|
const cached = cache.get(memoKey);
|
||
|
if (cached) {
|
||
|
return cached;
|
||
|
}
|
||
|
const loose = this.options.loose;
|
||
|
const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE];
|
||
|
range = range.replace(hr, hyphenReplace(this.options.includePrerelease));
|
||
|
debug2("hyphen replace", range);
|
||
|
range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace);
|
||
|
debug2("comparator trim", range);
|
||
|
range = range.replace(re[t.TILDETRIM], tildeTrimReplace);
|
||
|
range = range.replace(re[t.CARETTRIM], caretTrimReplace);
|
||
|
range = range.split(/\s+/).join(" ");
|
||
|
let rangeList = range.split(" ").map((comp) => parseComparator(comp, this.options)).join(" ").split(/\s+/).map((comp) => replaceGTE0(comp, this.options));
|
||
|
if (loose) {
|
||
|
rangeList = rangeList.filter((comp) => {
|
||
|
debug2("loose invalid filter", comp, this.options);
|
||
|
return !!comp.match(re[t.COMPARATORLOOSE]);
|
||
|
});
|
||
|
}
|
||
|
debug2("range list", rangeList);
|
||
|
const rangeMap = /* @__PURE__ */ new Map();
|
||
|
const comparators = rangeList.map((comp) => new Comparator(comp, this.options));
|
||
|
for (const comp of comparators) {
|
||
|
if (isNullSet(comp)) {
|
||
|
return [comp];
|
||
|
}
|
||
|
rangeMap.set(comp.value, comp);
|
||
|
}
|
||
|
if (rangeMap.size > 1 && rangeMap.has("")) {
|
||
|
rangeMap.delete("");
|
||
|
}
|
||
|
const result = [...rangeMap.values()];
|
||
|
cache.set(memoKey, result);
|
||
|
return result;
|
||
|
}
|
||
|
intersects(range, options) {
|
||
|
if (!(range instanceof Range)) {
|
||
|
throw new TypeError("a Range is required");
|
||
|
}
|
||
|
return this.set.some((thisComparators) => {
|
||
|
return isSatisfiable(thisComparators, options) && range.set.some((rangeComparators) => {
|
||
|
return isSatisfiable(rangeComparators, options) && thisComparators.every((thisComparator) => {
|
||
|
return rangeComparators.every((rangeComparator) => {
|
||
|
return thisComparator.intersects(rangeComparator, options);
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
}
|
||
|
test(version) {
|
||
|
if (!version) {
|
||
|
return false;
|
||
|
}
|
||
|
if (typeof version === "string") {
|
||
|
try {
|
||
|
version = new SemVer(version, this.options);
|
||
|
} catch (er) {
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
for (let i = 0; i < this.set.length; i++) {
|
||
|
if (testSet(this.set[i], version, this.options)) {
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
return false;
|
||
|
}
|
||
|
};
|
||
|
module2.exports = Range;
|
||
|
var LRU = require_lru_cache();
|
||
|
var cache = new LRU({ max: 1e3 });
|
||
|
var parseOptions = require_parse_options();
|
||
|
var Comparator = require_comparator();
|
||
|
var debug2 = require_debug();
|
||
|
var SemVer = require_semver();
|
||
|
var {
|
||
|
re,
|
||
|
t,
|
||
|
comparatorTrimReplace,
|
||
|
tildeTrimReplace,
|
||
|
caretTrimReplace
|
||
|
} = require_re();
|
||
|
var isNullSet = (c) => c.value === "<0.0.0-0";
|
||
|
var isAny = (c) => c.value === "";
|
||
|
var isSatisfiable = (comparators, options) => {
|
||
|
let result = true;
|
||
|
const remainingComparators = comparators.slice();
|
||
|
let testComparator = remainingComparators.pop();
|
||
|
while (result && remainingComparators.length) {
|
||
|
result = remainingComparators.every((otherComparator) => {
|
||
|
return testComparator.intersects(otherComparator, options);
|
||
|
});
|
||
|
testComparator = remainingComparators.pop();
|
||
|
}
|
||
|
return result;
|
||
|
};
|
||
|
var parseComparator = (comp, options) => {
|
||
|
debug2("comp", comp, options);
|
||
|
comp = replaceCarets(comp, options);
|
||
|
debug2("caret", comp);
|
||
|
comp = replaceTildes(comp, options);
|
||
|
debug2("tildes", comp);
|
||
|
comp = replaceXRanges(comp, options);
|
||
|
debug2("xrange", comp);
|
||
|
comp = replaceStars(comp, options);
|
||
|
debug2("stars", comp);
|
||
|
return comp;
|
||
|
};
|
||
|
var isX = (id) => !id || id.toLowerCase() === "x" || id === "*";
|
||
|
var replaceTildes = (comp, options) => comp.trim().split(/\s+/).map((c) => {
|
||
|
return replaceTilde(c, options);
|
||
|
}).join(" ");
|
||
|
var replaceTilde = (comp, options) => {
|
||
|
const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE];
|
||
|
return comp.replace(r, (_, M, m, p, pr) => {
|
||
|
debug2("tilde", comp, _, M, m, p, pr);
|
||
|
let ret;
|
||
|
if (isX(M)) {
|
||
|
ret = "";
|
||
|
} else if (isX(m)) {
|
||
|
ret = `>=${M}.0.0 <${+M + 1}.0.0-0`;
|
||
|
} else if (isX(p)) {
|
||
|
ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`;
|
||
|
} else if (pr) {
|
||
|
debug2("replaceTilde pr", pr);
|
||
|
ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`;
|
||
|
} else {
|
||
|
ret = `>=${M}.${m}.${p} <${M}.${+m + 1}.0-0`;
|
||
|
}
|
||
|
debug2("tilde return", ret);
|
||
|
return ret;
|
||
|
});
|
||
|
};
|
||
|
var replaceCarets = (comp, options) => comp.trim().split(/\s+/).map((c) => {
|
||
|
return replaceCaret(c, options);
|
||
|
}).join(" ");
|
||
|
var replaceCaret = (comp, options) => {
|
||
|
debug2("caret", comp, options);
|
||
|
const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET];
|
||
|
const z = options.includePrerelease ? "-0" : "";
|
||
|
return comp.replace(r, (_, M, m, p, pr) => {
|
||
|
debug2("caret", comp, _, M, m, p, pr);
|
||
|
let ret;
|
||
|
if (isX(M)) {
|
||
|
ret = "";
|
||
|
} else if (isX(m)) {
|
||
|
ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`;
|
||
|
} else if (isX(p)) {
|
||
|
if (M === "0") {
|
||
|
ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`;
|
||
|
} else {
|
||
|
ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`;
|
||
|
}
|
||
|
} else if (pr) {
|
||
|
debug2("replaceCaret pr", pr);
|
||
|
if (M === "0") {
|
||
|
if (m === "0") {
|
||
|
ret = `>=${M}.${m}.${p}-${pr} <${M}.${m}.${+p + 1}-0`;
|
||
|
} else {
|
||
|
ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`;
|
||
|
}
|
||
|
} else {
|
||
|
ret = `>=${M}.${m}.${p}-${pr} <${+M + 1}.0.0-0`;
|
||
|
}
|
||
|
} else {
|
||
|
debug2("no pr");
|
||
|
if (M === "0") {
|
||
|
if (m === "0") {
|
||
|
ret = `>=${M}.${m}.${p}${z} <${M}.${m}.${+p + 1}-0`;
|
||
|
} else {
|
||
|
ret = `>=${M}.${m}.${p}${z} <${M}.${+m + 1}.0-0`;
|
||
|
}
|
||
|
} else {
|
||
|
ret = `>=${M}.${m}.${p} <${+M + 1}.0.0-0`;
|
||
|
}
|
||
|
}
|
||
|
debug2("caret return", ret);
|
||
|
return ret;
|
||
|
});
|
||
|
};
|
||
|
var replaceXRanges = (comp, options) => {
|
||
|
debug2("replaceXRanges", comp, options);
|
||
|
return comp.split(/\s+/).map((c) => {
|
||
|
return replaceXRange(c, options);
|
||
|
}).join(" ");
|
||
|
};
|
||
|
var replaceXRange = (comp, options) => {
|
||
|
comp = comp.trim();
|
||
|
const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE];
|
||
|
return comp.replace(r, (ret, gtlt, M, m, p, pr) => {
|
||
|
debug2("xRange", comp, ret, gtlt, M, m, p, pr);
|
||
|
const xM = isX(M);
|
||
|
const xm = xM || isX(m);
|
||
|
const xp = xm || isX(p);
|
||
|
const anyX = xp;
|
||
|
if (gtlt === "=" && anyX) {
|
||
|
gtlt = "";
|
||
|
}
|
||
|
pr = options.includePrerelease ? "-0" : "";
|
||
|
if (xM) {
|
||
|
if (gtlt === ">" || gtlt === "<") {
|
||
|
ret = "<0.0.0-0";
|
||
|
} else {
|
||
|
ret = "*";
|
||
|
}
|
||
|
} else if (gtlt && anyX) {
|
||
|
if (xm) {
|
||
|
m = 0;
|
||
|
}
|
||
|
p = 0;
|
||
|
if (gtlt === ">") {
|
||
|
gtlt = ">=";
|
||
|
if (xm) {
|
||
|
M = +M + 1;
|
||
|
m = 0;
|
||
|
p = 0;
|
||
|
} else {
|
||
|
m = +m + 1;
|
||
|
p = 0;
|
||
|
}
|
||
|
} else if (gtlt === "<=") {
|
||
|
gtlt = "<";
|
||
|
if (xm) {
|
||
|
M = +M + 1;
|
||
|
} else {
|
||
|
m = +m + 1;
|
||
|
}
|
||
|
}
|
||
|
if (gtlt === "<") {
|
||
|
pr = "-0";
|
||
|
}
|
||
|
ret = `${gtlt + M}.${m}.${p}${pr}`;
|
||
|
} else if (xm) {
|
||
|
ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`;
|
||
|
} else if (xp) {
|
||
|
ret = `>=${M}.${m}.0${pr} <${M}.${+m + 1}.0-0`;
|
||
|
}
|
||
|
debug2("xRange return", ret);
|
||
|
return ret;
|
||
|
});
|
||
|
};
|
||
|
var replaceStars = (comp, options) => {
|
||
|
debug2("replaceStars", comp, options);
|
||
|
return comp.trim().replace(re[t.STAR], "");
|
||
|
};
|
||
|
var replaceGTE0 = (comp, options) => {
|
||
|
debug2("replaceGTE0", comp, options);
|
||
|
return comp.trim().replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], "");
|
||
|
};
|
||
|
var hyphenReplace = (incPr) => ($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb) => {
|
||
|
if (isX(fM)) {
|
||
|
from = "";
|
||
|
} else if (isX(fm)) {
|
||
|
from = `>=${fM}.0.0${incPr ? "-0" : ""}`;
|
||
|
} else if (isX(fp)) {
|
||
|
from = `>=${fM}.${fm}.0${incPr ? "-0" : ""}`;
|
||
|
} else if (fpr) {
|
||
|
from = `>=${from}`;
|
||
|
} else {
|
||
|
from = `>=${from}${incPr ? "-0" : ""}`;
|
||
|
}
|
||
|
if (isX(tM)) {
|
||
|
to = "";
|
||
|
} else if (isX(tm)) {
|
||
|
to = `<${+tM + 1}.0.0-0`;
|
||
|
} else if (isX(tp)) {
|
||
|
to = `<${tM}.${+tm + 1}.0-0`;
|
||
|
} else if (tpr) {
|
||
|
to = `<=${tM}.${tm}.${tp}-${tpr}`;
|
||
|
} else if (incPr) {
|
||
|
to = `<${tM}.${tm}.${+tp + 1}-0`;
|
||
|
} else {
|
||
|
to = `<=${to}`;
|
||
|
}
|
||
|
return `${from} ${to}`.trim();
|
||
|
};
|
||
|
var testSet = (set, version, options) => {
|
||
|
for (let i = 0; i < set.length; i++) {
|
||
|
if (!set[i].test(version)) {
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
if (version.prerelease.length && !options.includePrerelease) {
|
||
|
for (let i = 0; i < set.length; i++) {
|
||
|
debug2(set[i].semver);
|
||
|
if (set[i].semver === Comparator.ANY) {
|
||
|
continue;
|
||
|
}
|
||
|
if (set[i].semver.prerelease.length > 0) {
|
||
|
const allowed = set[i].semver;
|
||
|
if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) {
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
return false;
|
||
|
}
|
||
|
return true;
|
||
|
};
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/classes/comparator.js
|
||
|
var require_comparator = __commonJS({
|
||
|
"node_modules/semver/classes/comparator.js"(exports, module2) {
|
||
|
var ANY = Symbol("SemVer ANY");
|
||
|
var Comparator = class {
|
||
|
static get ANY() {
|
||
|
return ANY;
|
||
|
}
|
||
|
constructor(comp, options) {
|
||
|
options = parseOptions(options);
|
||
|
if (comp instanceof Comparator) {
|
||
|
if (comp.loose === !!options.loose) {
|
||
|
return comp;
|
||
|
} else {
|
||
|
comp = comp.value;
|
||
|
}
|
||
|
}
|
||
|
debug2("comparator", comp, options);
|
||
|
this.options = options;
|
||
|
this.loose = !!options.loose;
|
||
|
this.parse(comp);
|
||
|
if (this.semver === ANY) {
|
||
|
this.value = "";
|
||
|
} else {
|
||
|
this.value = this.operator + this.semver.version;
|
||
|
}
|
||
|
debug2("comp", this);
|
||
|
}
|
||
|
parse(comp) {
|
||
|
const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR];
|
||
|
const m = comp.match(r);
|
||
|
if (!m) {
|
||
|
throw new TypeError(`Invalid comparator: ${comp}`);
|
||
|
}
|
||
|
this.operator = m[1] !== void 0 ? m[1] : "";
|
||
|
if (this.operator === "=") {
|
||
|
this.operator = "";
|
||
|
}
|
||
|
if (!m[2]) {
|
||
|
this.semver = ANY;
|
||
|
} else {
|
||
|
this.semver = new SemVer(m[2], this.options.loose);
|
||
|
}
|
||
|
}
|
||
|
toString() {
|
||
|
return this.value;
|
||
|
}
|
||
|
test(version) {
|
||
|
debug2("Comparator.test", version, this.options.loose);
|
||
|
if (this.semver === ANY || version === ANY) {
|
||
|
return true;
|
||
|
}
|
||
|
if (typeof version === "string") {
|
||
|
try {
|
||
|
version = new SemVer(version, this.options);
|
||
|
} catch (er) {
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
return cmp(version, this.operator, this.semver, this.options);
|
||
|
}
|
||
|
intersects(comp, options) {
|
||
|
if (!(comp instanceof Comparator)) {
|
||
|
throw new TypeError("a Comparator is required");
|
||
|
}
|
||
|
if (!options || typeof options !== "object") {
|
||
|
options = {
|
||
|
loose: !!options,
|
||
|
includePrerelease: false
|
||
|
};
|
||
|
}
|
||
|
if (this.operator === "") {
|
||
|
if (this.value === "") {
|
||
|
return true;
|
||
|
}
|
||
|
return new Range(comp.value, options).test(this.value);
|
||
|
} else if (comp.operator === "") {
|
||
|
if (comp.value === "") {
|
||
|
return true;
|
||
|
}
|
||
|
return new Range(this.value, options).test(comp.semver);
|
||
|
}
|
||
|
const sameDirectionIncreasing = (this.operator === ">=" || this.operator === ">") && (comp.operator === ">=" || comp.operator === ">");
|
||
|
const sameDirectionDecreasing = (this.operator === "<=" || this.operator === "<") && (comp.operator === "<=" || comp.operator === "<");
|
||
|
const sameSemVer = this.semver.version === comp.semver.version;
|
||
|
const differentDirectionsInclusive = (this.operator === ">=" || this.operator === "<=") && (comp.operator === ">=" || comp.operator === "<=");
|
||
|
const oppositeDirectionsLessThan = cmp(this.semver, "<", comp.semver, options) && (this.operator === ">=" || this.operator === ">") && (comp.operator === "<=" || comp.operator === "<");
|
||
|
const oppositeDirectionsGreaterThan = cmp(this.semver, ">", comp.semver, options) && (this.operator === "<=" || this.operator === "<") && (comp.operator === ">=" || comp.operator === ">");
|
||
|
return sameDirectionIncreasing || sameDirectionDecreasing || sameSemVer && differentDirectionsInclusive || oppositeDirectionsLessThan || oppositeDirectionsGreaterThan;
|
||
|
}
|
||
|
};
|
||
|
module2.exports = Comparator;
|
||
|
var parseOptions = require_parse_options();
|
||
|
var { re, t } = require_re();
|
||
|
var cmp = require_cmp();
|
||
|
var debug2 = require_debug();
|
||
|
var SemVer = require_semver();
|
||
|
var Range = require_range();
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/functions/satisfies.js
|
||
|
var require_satisfies = __commonJS({
|
||
|
"node_modules/semver/functions/satisfies.js"(exports, module2) {
|
||
|
var Range = require_range();
|
||
|
var satisfies = (version, range, options) => {
|
||
|
try {
|
||
|
range = new Range(range, options);
|
||
|
} catch (er) {
|
||
|
return false;
|
||
|
}
|
||
|
return range.test(version);
|
||
|
};
|
||
|
module2.exports = satisfies;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/ranges/to-comparators.js
|
||
|
var require_to_comparators = __commonJS({
|
||
|
"node_modules/semver/ranges/to-comparators.js"(exports, module2) {
|
||
|
var Range = require_range();
|
||
|
var toComparators = (range, options) => new Range(range, options).set.map((comp) => comp.map((c) => c.value).join(" ").trim().split(" "));
|
||
|
module2.exports = toComparators;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/ranges/max-satisfying.js
|
||
|
var require_max_satisfying = __commonJS({
|
||
|
"node_modules/semver/ranges/max-satisfying.js"(exports, module2) {
|
||
|
var SemVer = require_semver();
|
||
|
var Range = require_range();
|
||
|
var maxSatisfying = (versions, range, options) => {
|
||
|
let max = null;
|
||
|
let maxSV = null;
|
||
|
let rangeObj = null;
|
||
|
try {
|
||
|
rangeObj = new Range(range, options);
|
||
|
} catch (er) {
|
||
|
return null;
|
||
|
}
|
||
|
versions.forEach((v) => {
|
||
|
if (rangeObj.test(v)) {
|
||
|
if (!max || maxSV.compare(v) === -1) {
|
||
|
max = v;
|
||
|
maxSV = new SemVer(max, options);
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
return max;
|
||
|
};
|
||
|
module2.exports = maxSatisfying;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/ranges/min-satisfying.js
|
||
|
var require_min_satisfying = __commonJS({
|
||
|
"node_modules/semver/ranges/min-satisfying.js"(exports, module2) {
|
||
|
var SemVer = require_semver();
|
||
|
var Range = require_range();
|
||
|
var minSatisfying = (versions, range, options) => {
|
||
|
let min = null;
|
||
|
let minSV = null;
|
||
|
let rangeObj = null;
|
||
|
try {
|
||
|
rangeObj = new Range(range, options);
|
||
|
} catch (er) {
|
||
|
return null;
|
||
|
}
|
||
|
versions.forEach((v) => {
|
||
|
if (rangeObj.test(v)) {
|
||
|
if (!min || minSV.compare(v) === 1) {
|
||
|
min = v;
|
||
|
minSV = new SemVer(min, options);
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
return min;
|
||
|
};
|
||
|
module2.exports = minSatisfying;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/ranges/min-version.js
|
||
|
var require_min_version = __commonJS({
|
||
|
"node_modules/semver/ranges/min-version.js"(exports, module2) {
|
||
|
var SemVer = require_semver();
|
||
|
var Range = require_range();
|
||
|
var gt = require_gt();
|
||
|
var minVersion = (range, loose) => {
|
||
|
range = new Range(range, loose);
|
||
|
let minver = new SemVer("0.0.0");
|
||
|
if (range.test(minver)) {
|
||
|
return minver;
|
||
|
}
|
||
|
minver = new SemVer("0.0.0-0");
|
||
|
if (range.test(minver)) {
|
||
|
return minver;
|
||
|
}
|
||
|
minver = null;
|
||
|
for (let i = 0; i < range.set.length; ++i) {
|
||
|
const comparators = range.set[i];
|
||
|
let setMin = null;
|
||
|
comparators.forEach((comparator) => {
|
||
|
const compver = new SemVer(comparator.semver.version);
|
||
|
switch (comparator.operator) {
|
||
|
case ">":
|
||
|
if (compver.prerelease.length === 0) {
|
||
|
compver.patch++;
|
||
|
} else {
|
||
|
compver.prerelease.push(0);
|
||
|
}
|
||
|
compver.raw = compver.format();
|
||
|
case "":
|
||
|
case ">=":
|
||
|
if (!setMin || gt(compver, setMin)) {
|
||
|
setMin = compver;
|
||
|
}
|
||
|
break;
|
||
|
case "<":
|
||
|
case "<=":
|
||
|
break;
|
||
|
default:
|
||
|
throw new Error(`Unexpected operation: ${comparator.operator}`);
|
||
|
}
|
||
|
});
|
||
|
if (setMin && (!minver || gt(minver, setMin))) {
|
||
|
minver = setMin;
|
||
|
}
|
||
|
}
|
||
|
if (minver && range.test(minver)) {
|
||
|
return minver;
|
||
|
}
|
||
|
return null;
|
||
|
};
|
||
|
module2.exports = minVersion;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/ranges/valid.js
|
||
|
var require_valid2 = __commonJS({
|
||
|
"node_modules/semver/ranges/valid.js"(exports, module2) {
|
||
|
var Range = require_range();
|
||
|
var validRange = (range, options) => {
|
||
|
try {
|
||
|
return new Range(range, options).range || "*";
|
||
|
} catch (er) {
|
||
|
return null;
|
||
|
}
|
||
|
};
|
||
|
module2.exports = validRange;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/ranges/outside.js
|
||
|
var require_outside = __commonJS({
|
||
|
"node_modules/semver/ranges/outside.js"(exports, module2) {
|
||
|
var SemVer = require_semver();
|
||
|
var Comparator = require_comparator();
|
||
|
var { ANY } = Comparator;
|
||
|
var Range = require_range();
|
||
|
var satisfies = require_satisfies();
|
||
|
var gt = require_gt();
|
||
|
var lt = require_lt();
|
||
|
var lte = require_lte();
|
||
|
var gte = require_gte();
|
||
|
var outside = (version, range, hilo, options) => {
|
||
|
version = new SemVer(version, options);
|
||
|
range = new Range(range, options);
|
||
|
let gtfn, ltefn, ltfn, comp, ecomp;
|
||
|
switch (hilo) {
|
||
|
case ">":
|
||
|
gtfn = gt;
|
||
|
ltefn = lte;
|
||
|
ltfn = lt;
|
||
|
comp = ">";
|
||
|
ecomp = ">=";
|
||
|
break;
|
||
|
case "<":
|
||
|
gtfn = lt;
|
||
|
ltefn = gte;
|
||
|
ltfn = gt;
|
||
|
comp = "<";
|
||
|
ecomp = "<=";
|
||
|
break;
|
||
|
default:
|
||
|
throw new TypeError('Must provide a hilo val of "<" or ">"');
|
||
|
}
|
||
|
if (satisfies(version, range, options)) {
|
||
|
return false;
|
||
|
}
|
||
|
for (let i = 0; i < range.set.length; ++i) {
|
||
|
const comparators = range.set[i];
|
||
|
let high = null;
|
||
|
let low = null;
|
||
|
comparators.forEach((comparator) => {
|
||
|
if (comparator.semver === ANY) {
|
||
|
comparator = new Comparator(">=0.0.0");
|
||
|
}
|
||
|
high = high || comparator;
|
||
|
low = low || comparator;
|
||
|
if (gtfn(comparator.semver, high.semver, options)) {
|
||
|
high = comparator;
|
||
|
} else if (ltfn(comparator.semver, low.semver, options)) {
|
||
|
low = comparator;
|
||
|
}
|
||
|
});
|
||
|
if (high.operator === comp || high.operator === ecomp) {
|
||
|
return false;
|
||
|
}
|
||
|
if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) {
|
||
|
return false;
|
||
|
} else if (low.operator === ecomp && ltfn(version, low.semver)) {
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
return true;
|
||
|
};
|
||
|
module2.exports = outside;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/ranges/gtr.js
|
||
|
var require_gtr = __commonJS({
|
||
|
"node_modules/semver/ranges/gtr.js"(exports, module2) {
|
||
|
var outside = require_outside();
|
||
|
var gtr = (version, range, options) => outside(version, range, ">", options);
|
||
|
module2.exports = gtr;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/ranges/ltr.js
|
||
|
var require_ltr = __commonJS({
|
||
|
"node_modules/semver/ranges/ltr.js"(exports, module2) {
|
||
|
var outside = require_outside();
|
||
|
var ltr = (version, range, options) => outside(version, range, "<", options);
|
||
|
module2.exports = ltr;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/ranges/intersects.js
|
||
|
var require_intersects = __commonJS({
|
||
|
"node_modules/semver/ranges/intersects.js"(exports, module2) {
|
||
|
var Range = require_range();
|
||
|
var intersects = (r1, r2, options) => {
|
||
|
r1 = new Range(r1, options);
|
||
|
r2 = new Range(r2, options);
|
||
|
return r1.intersects(r2);
|
||
|
};
|
||
|
module2.exports = intersects;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/ranges/simplify.js
|
||
|
var require_simplify = __commonJS({
|
||
|
"node_modules/semver/ranges/simplify.js"(exports, module2) {
|
||
|
var satisfies = require_satisfies();
|
||
|
var compare = require_compare();
|
||
|
module2.exports = (versions, range, options) => {
|
||
|
const set = [];
|
||
|
let first = null;
|
||
|
let prev = null;
|
||
|
const v = versions.sort((a, b) => compare(a, b, options));
|
||
|
for (const version of v) {
|
||
|
const included = satisfies(version, range, options);
|
||
|
if (included) {
|
||
|
prev = version;
|
||
|
if (!first) {
|
||
|
first = version;
|
||
|
}
|
||
|
} else {
|
||
|
if (prev) {
|
||
|
set.push([first, prev]);
|
||
|
}
|
||
|
prev = null;
|
||
|
first = null;
|
||
|
}
|
||
|
}
|
||
|
if (first) {
|
||
|
set.push([first, null]);
|
||
|
}
|
||
|
const ranges = [];
|
||
|
for (const [min, max] of set) {
|
||
|
if (min === max) {
|
||
|
ranges.push(min);
|
||
|
} else if (!max && min === v[0]) {
|
||
|
ranges.push("*");
|
||
|
} else if (!max) {
|
||
|
ranges.push(`>=${min}`);
|
||
|
} else if (min === v[0]) {
|
||
|
ranges.push(`<=${max}`);
|
||
|
} else {
|
||
|
ranges.push(`${min} - ${max}`);
|
||
|
}
|
||
|
}
|
||
|
const simplified = ranges.join(" || ");
|
||
|
const original = typeof range.raw === "string" ? range.raw : String(range);
|
||
|
return simplified.length < original.length ? simplified : range;
|
||
|
};
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/ranges/subset.js
|
||
|
var require_subset = __commonJS({
|
||
|
"node_modules/semver/ranges/subset.js"(exports, module2) {
|
||
|
var Range = require_range();
|
||
|
var Comparator = require_comparator();
|
||
|
var { ANY } = Comparator;
|
||
|
var satisfies = require_satisfies();
|
||
|
var compare = require_compare();
|
||
|
var subset = (sub, dom, options = {}) => {
|
||
|
if (sub === dom) {
|
||
|
return true;
|
||
|
}
|
||
|
sub = new Range(sub, options);
|
||
|
dom = new Range(dom, options);
|
||
|
let sawNonNull = false;
|
||
|
OUTER:
|
||
|
for (const simpleSub of sub.set) {
|
||
|
for (const simpleDom of dom.set) {
|
||
|
const isSub = simpleSubset(simpleSub, simpleDom, options);
|
||
|
sawNonNull = sawNonNull || isSub !== null;
|
||
|
if (isSub) {
|
||
|
continue OUTER;
|
||
|
}
|
||
|
}
|
||
|
if (sawNonNull) {
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
return true;
|
||
|
};
|
||
|
var simpleSubset = (sub, dom, options) => {
|
||
|
if (sub === dom) {
|
||
|
return true;
|
||
|
}
|
||
|
if (sub.length === 1 && sub[0].semver === ANY) {
|
||
|
if (dom.length === 1 && dom[0].semver === ANY) {
|
||
|
return true;
|
||
|
} else if (options.includePrerelease) {
|
||
|
sub = [new Comparator(">=0.0.0-0")];
|
||
|
} else {
|
||
|
sub = [new Comparator(">=0.0.0")];
|
||
|
}
|
||
|
}
|
||
|
if (dom.length === 1 && dom[0].semver === ANY) {
|
||
|
if (options.includePrerelease) {
|
||
|
return true;
|
||
|
} else {
|
||
|
dom = [new Comparator(">=0.0.0")];
|
||
|
}
|
||
|
}
|
||
|
const eqSet = /* @__PURE__ */ new Set();
|
||
|
let gt, lt;
|
||
|
for (const c of sub) {
|
||
|
if (c.operator === ">" || c.operator === ">=") {
|
||
|
gt = higherGT(gt, c, options);
|
||
|
} else if (c.operator === "<" || c.operator === "<=") {
|
||
|
lt = lowerLT(lt, c, options);
|
||
|
} else {
|
||
|
eqSet.add(c.semver);
|
||
|
}
|
||
|
}
|
||
|
if (eqSet.size > 1) {
|
||
|
return null;
|
||
|
}
|
||
|
let gtltComp;
|
||
|
if (gt && lt) {
|
||
|
gtltComp = compare(gt.semver, lt.semver, options);
|
||
|
if (gtltComp > 0) {
|
||
|
return null;
|
||
|
} else if (gtltComp === 0 && (gt.operator !== ">=" || lt.operator !== "<=")) {
|
||
|
return null;
|
||
|
}
|
||
|
}
|
||
|
for (const eq of eqSet) {
|
||
|
if (gt && !satisfies(eq, String(gt), options)) {
|
||
|
return null;
|
||
|
}
|
||
|
if (lt && !satisfies(eq, String(lt), options)) {
|
||
|
return null;
|
||
|
}
|
||
|
for (const c of dom) {
|
||
|
if (!satisfies(eq, String(c), options)) {
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
|
let higher, lower;
|
||
|
let hasDomLT, hasDomGT;
|
||
|
let needDomLTPre = lt && !options.includePrerelease && lt.semver.prerelease.length ? lt.semver : false;
|
||
|
let needDomGTPre = gt && !options.includePrerelease && gt.semver.prerelease.length ? gt.semver : false;
|
||
|
if (needDomLTPre && needDomLTPre.prerelease.length === 1 && lt.operator === "<" && needDomLTPre.prerelease[0] === 0) {
|
||
|
needDomLTPre = false;
|
||
|
}
|
||
|
for (const c of dom) {
|
||
|
hasDomGT = hasDomGT || c.operator === ">" || c.operator === ">=";
|
||
|
hasDomLT = hasDomLT || c.operator === "<" || c.operator === "<=";
|
||
|
if (gt) {
|
||
|
if (needDomGTPre) {
|
||
|
if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomGTPre.major && c.semver.minor === needDomGTPre.minor && c.semver.patch === needDomGTPre.patch) {
|
||
|
needDomGTPre = false;
|
||
|
}
|
||
|
}
|
||
|
if (c.operator === ">" || c.operator === ">=") {
|
||
|
higher = higherGT(gt, c, options);
|
||
|
if (higher === c && higher !== gt) {
|
||
|
return false;
|
||
|
}
|
||
|
} else if (gt.operator === ">=" && !satisfies(gt.semver, String(c), options)) {
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
if (lt) {
|
||
|
if (needDomLTPre) {
|
||
|
if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomLTPre.major && c.semver.minor === needDomLTPre.minor && c.semver.patch === needDomLTPre.patch) {
|
||
|
needDomLTPre = false;
|
||
|
}
|
||
|
}
|
||
|
if (c.operator === "<" || c.operator === "<=") {
|
||
|
lower = lowerLT(lt, c, options);
|
||
|
if (lower === c && lower !== lt) {
|
||
|
return false;
|
||
|
}
|
||
|
} else if (lt.operator === "<=" && !satisfies(lt.semver, String(c), options)) {
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
if (!c.operator && (lt || gt) && gtltComp !== 0) {
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
if (gt && hasDomLT && !lt && gtltComp !== 0) {
|
||
|
return false;
|
||
|
}
|
||
|
if (lt && hasDomGT && !gt && gtltComp !== 0) {
|
||
|
return false;
|
||
|
}
|
||
|
if (needDomGTPre || needDomLTPre) {
|
||
|
return false;
|
||
|
}
|
||
|
return true;
|
||
|
};
|
||
|
var higherGT = (a, b, options) => {
|
||
|
if (!a) {
|
||
|
return b;
|
||
|
}
|
||
|
const comp = compare(a.semver, b.semver, options);
|
||
|
return comp > 0 ? a : comp < 0 ? b : b.operator === ">" && a.operator === ">=" ? b : a;
|
||
|
};
|
||
|
var lowerLT = (a, b, options) => {
|
||
|
if (!a) {
|
||
|
return b;
|
||
|
}
|
||
|
const comp = compare(a.semver, b.semver, options);
|
||
|
return comp < 0 ? a : comp > 0 ? b : b.operator === "<" && a.operator === "<=" ? b : a;
|
||
|
};
|
||
|
module2.exports = subset;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// node_modules/semver/index.js
|
||
|
var require_semver2 = __commonJS({
|
||
|
"node_modules/semver/index.js"(exports, module2) {
|
||
|
var internalRe = require_re();
|
||
|
var constants = require_constants();
|
||
|
var SemVer = require_semver();
|
||
|
var identifiers = require_identifiers();
|
||
|
var parse = require_parse2();
|
||
|
var valid = require_valid();
|
||
|
var clean = require_clean();
|
||
|
var inc = require_inc();
|
||
|
var diff = require_diff();
|
||
|
var major = require_major();
|
||
|
var minor = require_minor();
|
||
|
var patch = require_patch();
|
||
|
var prerelease = require_prerelease();
|
||
|
var compare = require_compare();
|
||
|
var rcompare = require_rcompare();
|
||
|
var compareLoose = require_compare_loose();
|
||
|
var compareBuild = require_compare_build();
|
||
|
var sort = require_sort();
|
||
|
var rsort = require_rsort();
|
||
|
var gt = require_gt();
|
||
|
var lt = require_lt();
|
||
|
var eq = require_eq();
|
||
|
var neq = require_neq();
|
||
|
var gte = require_gte();
|
||
|
var lte = require_lte();
|
||
|
var cmp = require_cmp();
|
||
|
var coerce = require_coerce();
|
||
|
var Comparator = require_comparator();
|
||
|
var Range = require_range();
|
||
|
var satisfies = require_satisfies();
|
||
|
var toComparators = require_to_comparators();
|
||
|
var maxSatisfying = require_max_satisfying();
|
||
|
var minSatisfying = require_min_satisfying();
|
||
|
var minVersion = require_min_version();
|
||
|
var validRange = require_valid2();
|
||
|
var outside = require_outside();
|
||
|
var gtr = require_gtr();
|
||
|
var ltr = require_ltr();
|
||
|
var intersects = require_intersects();
|
||
|
var simplifyRange = require_simplify();
|
||
|
var subset = require_subset();
|
||
|
module2.exports = {
|
||
|
parse,
|
||
|
valid,
|
||
|
clean,
|
||
|
inc,
|
||
|
diff,
|
||
|
major,
|
||
|
minor,
|
||
|
patch,
|
||
|
prerelease,
|
||
|
compare,
|
||
|
rcompare,
|
||
|
compareLoose,
|
||
|
compareBuild,
|
||
|
sort,
|
||
|
rsort,
|
||
|
gt,
|
||
|
lt,
|
||
|
eq,
|
||
|
neq,
|
||
|
gte,
|
||
|
lte,
|
||
|
cmp,
|
||
|
coerce,
|
||
|
Comparator,
|
||
|
Range,
|
||
|
satisfies,
|
||
|
toComparators,
|
||
|
maxSatisfying,
|
||
|
minSatisfying,
|
||
|
minVersion,
|
||
|
validRange,
|
||
|
outside,
|
||
|
gtr,
|
||
|
ltr,
|
||
|
intersects,
|
||
|
simplifyRange,
|
||
|
subset,
|
||
|
SemVer,
|
||
|
re: internalRe.re,
|
||
|
src: internalRe.src,
|
||
|
tokens: internalRe.t,
|
||
|
SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION,
|
||
|
compareIdentifiers: identifiers.compareIdentifiers,
|
||
|
rcompareIdentifiers: identifiers.rcompareIdentifiers
|
||
|
};
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// src/main.js
|
||
|
var core3 = __toESM(require_core(), 1);
|
||
|
var import_os2 = __toESM(require("os"), 1);
|
||
|
var import_semver = __toESM(require_semver2(), 1);
|
||
|
|
||
|
// src/lib/setup.js
|
||
|
var import_core = __toESM(require_core(), 1);
|
||
|
var import_fs = require("fs");
|
||
|
var import_path = __toESM(require("path"), 1);
|
||
|
var Setup = class {
|
||
|
static debug() {
|
||
|
const dir = (0, import_fs.readdirSync)(import_path.default.resolve(process.env.GITHUB_WORKSPACE), { withFileTypes: true }).map((entry) => {
|
||
|
return `${entry.isDirectory() ? "> " : " - "}${entry.name}`;
|
||
|
}).join("\n");
|
||
|
console.log({ dir });
|
||
|
import_core.default.debug(` Working Directory: ${process.env.GITHUB_WORKSPACE}:
|
||
|
${dir}`);
|
||
|
}
|
||
|
static requireAnyEnv() {
|
||
|
for (const arg of arguments) {
|
||
|
if (!process.env.hasOwnProperty(arg)) {
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
throw new Error("At least one of the following environment variables is required: " + Array.slice(arguments).join(", "));
|
||
|
}
|
||
|
};
|
||
|
|
||
|
// src/lib/package.js
|
||
|
var import_fs2 = __toESM(require("fs"), 1);
|
||
|
var import_path2 = __toESM(require("path"), 1);
|
||
|
var Package = class {
|
||
|
constructor(root = "./") {
|
||
|
root = import_path2.default.join(process.env.GITHUB_WORKSPACE, root);
|
||
|
if (import_fs2.default.statSync(root).isDirectory()) {
|
||
|
root = import_path2.default.join(root, "package.json");
|
||
|
}
|
||
|
if (!import_fs2.default.existsSync(root)) {
|
||
|
throw new Error(`package.json does not exist at ${root}.`);
|
||
|
}
|
||
|
this.root = root;
|
||
|
this.data = JSON.parse(import_fs2.default.readFileSync(root));
|
||
|
}
|
||
|
get version() {
|
||
|
return this.data.version;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
// src/lib/tag.js
|
||
|
var import_core2 = __toESM(require_core(), 1);
|
||
|
var import_os = __toESM(require("os"), 1);
|
||
|
var import_octokit = require("octokit");
|
||
|
var github = new import_octokit.Octokit({ auth: process.env.GITHUB_TOKEN || process.env.INPUT_GITHUB_TOKEN }).rest;
|
||
|
var [owner, repo] = process.env.GITHUB_ACTION_REPOSITORY.split("/");
|
||
|
var Tag = class {
|
||
|
constructor(prefix, version, postfix) {
|
||
|
this.prefix = prefix;
|
||
|
this.version = version;
|
||
|
this.postfix = postfix;
|
||
|
this._tags = null;
|
||
|
this._message = null;
|
||
|
this._exists = null;
|
||
|
this._sha = "";
|
||
|
this._uri = "";
|
||
|
this._ref = "";
|
||
|
}
|
||
|
get name() {
|
||
|
return `${this.prefix.trim()}${this.version.trim()}${this.postfix.trim()}`;
|
||
|
}
|
||
|
set message(value) {
|
||
|
if (value && value.length > 0) {
|
||
|
this._message = value;
|
||
|
}
|
||
|
}
|
||
|
get message() {
|
||
|
return this._message || "";
|
||
|
}
|
||
|
get sha() {
|
||
|
return this._sha || "";
|
||
|
}
|
||
|
get uri() {
|
||
|
return this._uri || "";
|
||
|
}
|
||
|
get ref() {
|
||
|
return this._ref || "";
|
||
|
}
|
||
|
get prerelease() {
|
||
|
return /([0-9\.]{5}(-[\w\.0-9]+)?)/i.test(this.version);
|
||
|
}
|
||
|
get build() {
|
||
|
return /([0-9\.]{5}(\+[\w\.0-9]+)?)/i.test(this.version);
|
||
|
}
|
||
|
async getMessage() {
|
||
|
if (this._message !== null) {
|
||
|
return this._message;
|
||
|
}
|
||
|
try {
|
||
|
let tags = await this.getTags();
|
||
|
if (tags.length === 0) {
|
||
|
return `Version ${this.version}`;
|
||
|
}
|
||
|
const changelog = await github.repos.compareCommits({ owner, repo, base: tags.shift().name, head: process.env.GITHUB_HEAD_REF ?? "main" });
|
||
|
const tpl = (import_core2.default.getInput("commit_message_template", { required: false }) || "").trim();
|
||
|
return changelog.data.commits.map(
|
||
|
(commit, i) => {
|
||
|
if (tpl.length > 0) {
|
||
|
return tpl.replace(/\{\{\s?(number)\s?\}\}/gi, i + 1).replace(/\{\{\s?(message)\s?\}\}/gi, commit.commit.message).replace(/\{\{\s?(author)\s?\}\}/gi, commit.hasOwnProperty("author") ? commit.author.hasOwnProperty("login") ? commit.author.login : "" : "").replace(/\{\{\s?(sha)\s?\}\}/gi, commit.sha).trim() + "\n";
|
||
|
} else {
|
||
|
return `${i === 0 ? "\n" : ""}${i + 1}) ${commit.commit.message}${commit.hasOwnProperty("author") ? commit.author.hasOwnProperty("login") ? " (" + commit.author.login + ")" : "" : ""}
|
||
|
(SHA: ${commit.sha})
|
||
|
`;
|
||
|
}
|
||
|
}
|
||
|
).join("\n");
|
||
|
} catch (e) {
|
||
|
import_core2.default.warning("Failed to generate changelog from commits: " + e.message + import_os.default.EOL);
|
||
|
return `Version ${this.version}`;
|
||
|
}
|
||
|
}
|
||
|
async getTags() {
|
||
|
if (this._tags !== null) {
|
||
|
return this._tags.data;
|
||
|
}
|
||
|
this._tags = await github.repos.listTags({ owner, repo, per_page: 100 });
|
||
|
return this._tags.data;
|
||
|
}
|
||
|
async exists() {
|
||
|
if (this._exists !== null) {
|
||
|
return this._exists;
|
||
|
}
|
||
|
const currentTag = this.name;
|
||
|
const tags = await this.getTags();
|
||
|
for (const tag of tags) {
|
||
|
if (tag.name === currentTag) {
|
||
|
this._exists = true;
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
this._exists = false;
|
||
|
return false;
|
||
|
}
|
||
|
async push() {
|
||
|
let tagexists = await this.exists();
|
||
|
if (!tagexists) {
|
||
|
const message = await this.getMessage();
|
||
|
const newTag = await github.git.createTag({
|
||
|
owner,
|
||
|
repo,
|
||
|
tag: this.name,
|
||
|
message,
|
||
|
object: process.env.GITHUB_SHA,
|
||
|
type: "commit"
|
||
|
});
|
||
|
this._sha = newTag.data.sha;
|
||
|
import_core2.default.warning(`Created new tag: ${newTag.data.tag}`);
|
||
|
let newReference;
|
||
|
try {
|
||
|
newReference = await github.git.createRef({
|
||
|
owner,
|
||
|
repo,
|
||
|
ref: `refs/tags/${newTag.data.tag}`,
|
||
|
sha: newTag.data.sha
|
||
|
});
|
||
|
} catch (e) {
|
||
|
import_core2.default.warning({
|
||
|
owner,
|
||
|
repo,
|
||
|
ref: `refs/tags/${newTag.data.tag}`,
|
||
|
sha: newTag.data.sha
|
||
|
});
|
||
|
throw e;
|
||
|
}
|
||
|
this._uri = newReference.data.url;
|
||
|
this._ref = newReference.data.ref;
|
||
|
this._message = message;
|
||
|
import_core2.default.warning(`Reference ${newReference.data.ref} available at ${newReference.data.url}` + import_os.default.EOL);
|
||
|
} else {
|
||
|
import_core2.default.warning("Cannot push tag (it already exists).");
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
|
||
|
// src/lib/regex.js
|
||
|
var import_fs3 = require("fs");
|
||
|
var import_path3 = require("path");
|
||
|
var Regex = class {
|
||
|
constructor(root = "./", pattern) {
|
||
|
root = (0, import_path3.resolve)(root);
|
||
|
if ((0, import_fs3.statSync)(root).isDirectory()) {
|
||
|
throw new Error(`${root} is a directory. The Regex tag identification strategy requires a file.`);
|
||
|
}
|
||
|
if (!existsSync(root)) {
|
||
|
throw new Error(`"${root}" does not exist.`);
|
||
|
}
|
||
|
this.content = (0, import_fs3.readFileSync)(root).toString();
|
||
|
let content = pattern.exec(this.content);
|
||
|
if (!content) {
|
||
|
this._version = null;
|
||
|
} else if (content.groups && content.groups.version) {
|
||
|
this._version = content.groups.version;
|
||
|
} else {
|
||
|
this._version = content[1];
|
||
|
}
|
||
|
}
|
||
|
get version() {
|
||
|
return this._version;
|
||
|
}
|
||
|
get versionFound() {
|
||
|
return this._version !== null;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
// src/lib/docker.js
|
||
|
var import_path4 = require("path");
|
||
|
var import_fs4 = require("fs");
|
||
|
var Dockerfile = class extends Regex {
|
||
|
constructor(root = null) {
|
||
|
root = (0, import_path4.join)(process.env.GITHUB_WORKSPACE, root);
|
||
|
if ((0, import_fs4.statSync)(root).isDirectory()) {
|
||
|
root = (0, import_path4.join)(root, "Dockerfile");
|
||
|
}
|
||
|
super(root, /LABEL[\s\t]+version=[\t\s+]?[\"\']?([0-9\.]+)[\"\']?/i);
|
||
|
}
|
||
|
};
|
||
|
|
||
|
// src/main.js
|
||
|
async function run() {
|
||
|
try {
|
||
|
Setup.debug();
|
||
|
Setup.requireAnyEnv("GITHUB_TOKEN", "INPUT_GITHUB_TOKEN");
|
||
|
core3.setOutput("tagcreated", "no");
|
||
|
const versionSupplied = core3.getInput("root", { required: false }) !== null && core3.getInput("root", { required: false }) !== void 0 && core3.getInput("root", { required: false }).trim().length > 0;
|
||
|
const strategy = versionSupplied ? "manual" : (core3.getInput("regex_pattern", { required: false }) || "").trim().length > 0 ? "regex" : (core3.getInput("strategy", { required: false }) || "package").trim().toLowerCase();
|
||
|
const root = core3.getInput("root", { required: false }) || core3.getInput("package_root", { required: false }) || (strategy === "composer" ? "./composer.json" : "./");
|
||
|
const isDryRun = (core3.getInput("dry_run", { required: false }) || "").trim().toLowerCase() === "true";
|
||
|
let version = core3.getInput("root", { required: false });
|
||
|
version = version === null || version.trim().length === v0 ? null : version;
|
||
|
const pattern = core3.getInput("regex_pattern", { required: false });
|
||
|
switch (strategy) {
|
||
|
case "docker":
|
||
|
version = new Dockerfile(root).version;
|
||
|
break;
|
||
|
case "composer":
|
||
|
case "package":
|
||
|
version = new Package(root).version;
|
||
|
break;
|
||
|
case "regex":
|
||
|
version = new Regex(root, new RegExp(pattern, "gim")).version;
|
||
|
break;
|
||
|
case "manual":
|
||
|
core3.notice(`"${version}" version was manually specified in the action configuration`);
|
||
|
break;
|
||
|
default:
|
||
|
core3.setFailed(`"${strategy}" is not a recognized tagging strategy. Choose from: 'package' (package.json), 'composer' (composer.json), 'docker' (uses Dockerfile), or 'regex' (JS-based RegExp). Specify a version to use the "manual" strategy.`);
|
||
|
return;
|
||
|
}
|
||
|
const msg = ` using the ${strategy} extraction${strategy === "regex" ? " with the /" + pattern + "/gim pattern." : ""}.`;
|
||
|
if (!version) {
|
||
|
throw new Error(`No version identified${msg}`);
|
||
|
}
|
||
|
const minVersion = core3.getInput("min_version", { required: false });
|
||
|
const versionSemVer = import_semver.default.coerce(version);
|
||
|
const minVersionSemVer = import_semver.default.coerce(minVersion);
|
||
|
if (!minVersionSemVer) {
|
||
|
core3.info(`Skipping min version check. ${minVersion} is not valid SemVer`);
|
||
|
}
|
||
|
if (!versionSemVer) {
|
||
|
core3.info(`Skipping min version check. ${version} is not valid SemVer`);
|
||
|
}
|
||
|
if (minVersionSemVer && versionSemVer && import_semver.default.lt(versionSemVer, minVersionSemVer)) {
|
||
|
core3.info(`Version "${version}" is lower than minimum "${minVersion}"`);
|
||
|
return;
|
||
|
}
|
||
|
core3.notice(`Recognized "${version}"${msg}`);
|
||
|
core3.setOutput("version", version);
|
||
|
core3.debug(` Detected version ${version}`);
|
||
|
const tag = new Tag(
|
||
|
core3.getInput("tag_prefix", { required: false }),
|
||
|
version,
|
||
|
core3.getInput("tag_suffix", { required: false })
|
||
|
);
|
||
|
if (isDryRun) {
|
||
|
core3.notice(`"${tag.name}" tag was not pushed because the dry_run option was set.`);
|
||
|
} else {
|
||
|
core3.info(`Attempting to create ${tag.name} tag.`);
|
||
|
}
|
||
|
core3.setOutput("tagrequested", tag.name);
|
||
|
core3.setOutput("prerelease", tag.prerelease ? "yes" : "no");
|
||
|
core3.setOutput("build", tag.build ? "yes" : "no");
|
||
|
if (await tag.exists()) {
|
||
|
core3.setFailed(`"${tag.name}" tag already exists.` + import_os2.default.EOL);
|
||
|
core3.setOutput("tagname", "");
|
||
|
return;
|
||
|
}
|
||
|
tag.message = core3.getInput("tag_message", { required: false }).trim();
|
||
|
if (!isDryRun) {
|
||
|
await tag.push();
|
||
|
core3.setOutput("tagcreated", "yes");
|
||
|
}
|
||
|
core3.setOutput("tagname", tag.name);
|
||
|
core3.setOutput("tagsha", tag.sha);
|
||
|
core3.setOutput("taguri", tag.uri);
|
||
|
core3.setOutput("tagmessage", tag.message);
|
||
|
core3.setOutput("tagref", tag.ref);
|
||
|
} catch (error) {
|
||
|
core3.warning(error.message + "\n" + error.stack);
|
||
|
core3.setOutput("tagname", "");
|
||
|
core3.setOutput("tagsha", "");
|
||
|
core3.setOutput("taguri", "");
|
||
|
core3.setOutput("tagmessage", "");
|
||
|
core3.setOutput("tagref", "");
|
||
|
core3.setOutput("tagcreated", "no");
|
||
|
}
|
||
|
}
|
||
|
run();
|