mirror of
https://github.com/android-actions/setup-android.git
synced 2024-11-23 18:12:03 +00:00
Update node dependencies & Rebuild
This commit is contained in:
parent
ccc0939481
commit
1cb03f027b
3 changed files with 4582 additions and 3059 deletions
637
dist/index.js
vendored
637
dist/index.js
vendored
|
@ -558,7 +558,7 @@ class OidcClient {
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
throw new Error(`Failed to get ID Token. \n
|
throw new Error(`Failed to get ID Token. \n
|
||||||
Error Code : ${error.statusCode}\n
|
Error Code : ${error.statusCode}\n
|
||||||
Error Message: ${error.result.message}`);
|
Error Message: ${error.message}`);
|
||||||
});
|
});
|
||||||
const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value;
|
const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value;
|
||||||
if (!id_token) {
|
if (!id_token) {
|
||||||
|
@ -2592,6 +2592,19 @@ class HttpClientResponse {
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
readBodyBuffer() {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
|
||||||
|
const chunks = [];
|
||||||
|
this.message.on('data', (chunk) => {
|
||||||
|
chunks.push(chunk);
|
||||||
|
});
|
||||||
|
this.message.on('end', () => {
|
||||||
|
resolve(Buffer.concat(chunks));
|
||||||
|
});
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
exports.HttpClientResponse = HttpClientResponse;
|
exports.HttpClientResponse = HttpClientResponse;
|
||||||
function isHttps(requestUrl) {
|
function isHttps(requestUrl) {
|
||||||
|
@ -3096,7 +3109,13 @@ function getProxyUrl(reqUrl) {
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
if (proxyVar) {
|
if (proxyVar) {
|
||||||
return new URL(proxyVar);
|
try {
|
||||||
|
return new URL(proxyVar);
|
||||||
|
}
|
||||||
|
catch (_a) {
|
||||||
|
if (!proxyVar.startsWith('http://') && !proxyVar.startsWith('https://'))
|
||||||
|
return new URL(`http://${proxyVar}`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return undefined;
|
return undefined;
|
||||||
|
@ -3107,6 +3126,10 @@ function checkBypass(reqUrl) {
|
||||||
if (!reqUrl.hostname) {
|
if (!reqUrl.hostname) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
const reqHost = reqUrl.hostname;
|
||||||
|
if (isLoopbackAddress(reqHost)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';
|
const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';
|
||||||
if (!noProxy) {
|
if (!noProxy) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -3132,13 +3155,24 @@ function checkBypass(reqUrl) {
|
||||||
.split(',')
|
.split(',')
|
||||||
.map(x => x.trim().toUpperCase())
|
.map(x => x.trim().toUpperCase())
|
||||||
.filter(x => x)) {
|
.filter(x => x)) {
|
||||||
if (upperReqHosts.some(x => x === upperNoProxyItem)) {
|
if (upperNoProxyItem === '*' ||
|
||||||
|
upperReqHosts.some(x => x === upperNoProxyItem ||
|
||||||
|
x.endsWith(`.${upperNoProxyItem}`) ||
|
||||||
|
(upperNoProxyItem.startsWith('.') &&
|
||||||
|
x.endsWith(`${upperNoProxyItem}`)))) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
exports.checkBypass = checkBypass;
|
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]'));
|
||||||
|
}
|
||||||
//# sourceMappingURL=proxy.js.map
|
//# sourceMappingURL=proxy.js.map
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
@ -3178,11 +3212,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
||||||
};
|
};
|
||||||
var _a;
|
var _a;
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.getCmdPath = exports.tryGetExecutablePath = exports.isRooted = exports.isDirectory = exports.exists = exports.IS_WINDOWS = exports.unlink = exports.symlink = exports.stat = exports.rmdir = exports.rename = exports.readlink = exports.readdir = exports.mkdir = exports.lstat = exports.copyFile = exports.chmod = void 0;
|
exports.getCmdPath = exports.tryGetExecutablePath = exports.isRooted = exports.isDirectory = exports.exists = exports.READONLY = exports.UV_FS_O_EXLOCK = exports.IS_WINDOWS = exports.unlink = exports.symlink = exports.stat = exports.rmdir = exports.rm = exports.rename = exports.readlink = exports.readdir = exports.open = exports.mkdir = exports.lstat = exports.copyFile = exports.chmod = void 0;
|
||||||
const fs = __importStar(__nccwpck_require__(7147));
|
const fs = __importStar(__nccwpck_require__(7147));
|
||||||
const path = __importStar(__nccwpck_require__(1017));
|
const path = __importStar(__nccwpck_require__(1017));
|
||||||
_a = fs.promises, exports.chmod = _a.chmod, exports.copyFile = _a.copyFile, exports.lstat = _a.lstat, exports.mkdir = _a.mkdir, exports.readdir = _a.readdir, exports.readlink = _a.readlink, exports.rename = _a.rename, exports.rmdir = _a.rmdir, exports.stat = _a.stat, exports.symlink = _a.symlink, exports.unlink = _a.unlink;
|
_a = fs.promises
|
||||||
|
// export const {open} = 'fs'
|
||||||
|
, exports.chmod = _a.chmod, exports.copyFile = _a.copyFile, exports.lstat = _a.lstat, exports.mkdir = _a.mkdir, exports.open = _a.open, exports.readdir = _a.readdir, exports.readlink = _a.readlink, exports.rename = _a.rename, exports.rm = _a.rm, exports.rmdir = _a.rmdir, exports.stat = _a.stat, exports.symlink = _a.symlink, exports.unlink = _a.unlink;
|
||||||
|
// export const {open} = 'fs'
|
||||||
exports.IS_WINDOWS = process.platform === 'win32';
|
exports.IS_WINDOWS = process.platform === 'win32';
|
||||||
|
// See https://github.com/nodejs/node/blob/d0153aee367422d0858105abec186da4dff0a0c5/deps/uv/include/uv/win.h#L691
|
||||||
|
exports.UV_FS_O_EXLOCK = 0x10000000;
|
||||||
|
exports.READONLY = fs.constants.O_RDONLY;
|
||||||
function exists(fsPath) {
|
function exists(fsPath) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
try {
|
try {
|
||||||
|
@ -3363,12 +3403,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.findInPath = exports.which = exports.mkdirP = exports.rmRF = exports.mv = exports.cp = void 0;
|
exports.findInPath = exports.which = exports.mkdirP = exports.rmRF = exports.mv = exports.cp = void 0;
|
||||||
const assert_1 = __nccwpck_require__(9491);
|
const assert_1 = __nccwpck_require__(9491);
|
||||||
const childProcess = __importStar(__nccwpck_require__(2081));
|
|
||||||
const path = __importStar(__nccwpck_require__(1017));
|
const path = __importStar(__nccwpck_require__(1017));
|
||||||
const util_1 = __nccwpck_require__(3837);
|
|
||||||
const ioUtil = __importStar(__nccwpck_require__(1962));
|
const ioUtil = __importStar(__nccwpck_require__(1962));
|
||||||
const exec = util_1.promisify(childProcess.exec);
|
|
||||||
const execFile = util_1.promisify(childProcess.execFile);
|
|
||||||
/**
|
/**
|
||||||
* Copies a file or folder.
|
* Copies a file or folder.
|
||||||
* Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js
|
* Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js
|
||||||
|
@ -3449,61 +3485,23 @@ exports.mv = mv;
|
||||||
function rmRF(inputPath) {
|
function rmRF(inputPath) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
if (ioUtil.IS_WINDOWS) {
|
if (ioUtil.IS_WINDOWS) {
|
||||||
// Node doesn't provide a delete operation, only an unlink function. This means that if the file is being used by another
|
|
||||||
// program (e.g. antivirus), it won't be deleted. To address this, we shell out the work to rd/del.
|
|
||||||
// Check for invalid characters
|
// Check for invalid characters
|
||||||
// https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file
|
// https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file
|
||||||
if (/[*"<>|]/.test(inputPath)) {
|
if (/[*"<>|]/.test(inputPath)) {
|
||||||
throw new Error('File path must not contain `*`, `"`, `<`, `>` or `|` on Windows');
|
throw new Error('File path must not contain `*`, `"`, `<`, `>` or `|` on Windows');
|
||||||
}
|
}
|
||||||
try {
|
|
||||||
const cmdPath = ioUtil.getCmdPath();
|
|
||||||
if (yield ioUtil.isDirectory(inputPath, true)) {
|
|
||||||
yield exec(`${cmdPath} /s /c "rd /s /q "%inputPath%""`, {
|
|
||||||
env: { inputPath }
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
yield exec(`${cmdPath} /s /c "del /f /a "%inputPath%""`, {
|
|
||||||
env: { inputPath }
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (err) {
|
|
||||||
// if you try to delete a file that doesn't exist, desired result is achieved
|
|
||||||
// other errors are valid
|
|
||||||
if (err.code !== 'ENOENT')
|
|
||||||
throw err;
|
|
||||||
}
|
|
||||||
// Shelling out fails to remove a symlink folder with missing source, this unlink catches that
|
|
||||||
try {
|
|
||||||
yield ioUtil.unlink(inputPath);
|
|
||||||
}
|
|
||||||
catch (err) {
|
|
||||||
// if you try to delete a file that doesn't exist, desired result is achieved
|
|
||||||
// other errors are valid
|
|
||||||
if (err.code !== 'ENOENT')
|
|
||||||
throw err;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else {
|
try {
|
||||||
let isDir = false;
|
// note if path does not exist, error is silent
|
||||||
try {
|
yield ioUtil.rm(inputPath, {
|
||||||
isDir = yield ioUtil.isDirectory(inputPath);
|
force: true,
|
||||||
}
|
maxRetries: 3,
|
||||||
catch (err) {
|
recursive: true,
|
||||||
// if you try to delete a file that doesn't exist, desired result is achieved
|
retryDelay: 300
|
||||||
// other errors are valid
|
});
|
||||||
if (err.code !== 'ENOENT')
|
}
|
||||||
throw err;
|
catch (err) {
|
||||||
return;
|
throw new Error(`File was unable to be removed ${err}`);
|
||||||
}
|
|
||||||
if (isDir) {
|
|
||||||
yield execFile(`rm`, [`-rf`, `${inputPath}`]);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
yield ioUtil.unlink(inputPath);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -4604,21 +4602,12 @@ function copySync (src, dest, opts) {
|
||||||
|
|
||||||
const { srcStat, destStat } = stat.checkPathsSync(src, dest, 'copy', opts)
|
const { srcStat, destStat } = stat.checkPathsSync(src, dest, 'copy', opts)
|
||||||
stat.checkParentPathsSync(src, srcStat, dest, 'copy')
|
stat.checkParentPathsSync(src, srcStat, dest, 'copy')
|
||||||
return handleFilterAndCopy(destStat, src, dest, opts)
|
|
||||||
}
|
|
||||||
|
|
||||||
function handleFilterAndCopy (destStat, src, dest, opts) {
|
|
||||||
if (opts.filter && !opts.filter(src, dest)) return
|
if (opts.filter && !opts.filter(src, dest)) return
|
||||||
const destParent = path.dirname(dest)
|
const destParent = path.dirname(dest)
|
||||||
if (!fs.existsSync(destParent)) mkdirsSync(destParent)
|
if (!fs.existsSync(destParent)) mkdirsSync(destParent)
|
||||||
return getStats(destStat, src, dest, opts)
|
return getStats(destStat, src, dest, opts)
|
||||||
}
|
}
|
||||||
|
|
||||||
function startCopy (destStat, src, dest, opts) {
|
|
||||||
if (opts.filter && !opts.filter(src, dest)) return
|
|
||||||
return getStats(destStat, src, dest, opts)
|
|
||||||
}
|
|
||||||
|
|
||||||
function getStats (destStat, src, dest, opts) {
|
function getStats (destStat, src, dest, opts) {
|
||||||
const statSync = opts.dereference ? fs.statSync : fs.lstatSync
|
const statSync = opts.dereference ? fs.statSync : fs.lstatSync
|
||||||
const srcStat = statSync(src)
|
const srcStat = statSync(src)
|
||||||
|
@ -4699,8 +4688,9 @@ function copyDir (src, dest, opts) {
|
||||||
function copyDirItem (item, src, dest, opts) {
|
function copyDirItem (item, src, dest, opts) {
|
||||||
const srcItem = path.join(src, item)
|
const srcItem = path.join(src, item)
|
||||||
const destItem = path.join(dest, item)
|
const destItem = path.join(dest, item)
|
||||||
|
if (opts.filter && !opts.filter(srcItem, destItem)) return
|
||||||
const { destStat } = stat.checkPathsSync(srcItem, destItem, 'copy', opts)
|
const { destStat } = stat.checkPathsSync(srcItem, destItem, 'copy', opts)
|
||||||
return startCopy(destStat, srcItem, destItem, opts)
|
return getStats(destStat, srcItem, destItem, opts)
|
||||||
}
|
}
|
||||||
|
|
||||||
function onLink (destStat, src, dest, opts) {
|
function onLink (destStat, src, dest, opts) {
|
||||||
|
@ -4732,7 +4722,7 @@ function onLink (destStat, src, dest, opts) {
|
||||||
// prevent copy if src is a subdir of dest since unlinking
|
// prevent copy if src is a subdir of dest since unlinking
|
||||||
// dest in this case would result in removing src contents
|
// dest in this case would result in removing src contents
|
||||||
// and therefore a broken symlink would be created.
|
// and therefore a broken symlink would be created.
|
||||||
if (fs.statSync(dest).isDirectory() && stat.isSrcSubdir(resolvedDest, resolvedSrc)) {
|
if (stat.isSrcSubdir(resolvedDest, resolvedSrc)) {
|
||||||
throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`)
|
throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`)
|
||||||
}
|
}
|
||||||
return copyLink(resolvedSrc, dest)
|
return copyLink(resolvedSrc, dest)
|
||||||
|
@ -4790,8 +4780,12 @@ function copy (src, dest, opts, cb) {
|
||||||
const { srcStat, destStat } = stats
|
const { srcStat, destStat } = stats
|
||||||
stat.checkParentPaths(src, srcStat, dest, 'copy', err => {
|
stat.checkParentPaths(src, srcStat, dest, 'copy', err => {
|
||||||
if (err) return cb(err)
|
if (err) return cb(err)
|
||||||
if (opts.filter) return handleFilter(checkParentDir, destStat, src, dest, opts, cb)
|
runFilter(src, dest, opts, (err, include) => {
|
||||||
return checkParentDir(destStat, src, dest, opts, cb)
|
if (err) return cb(err)
|
||||||
|
if (!include) return cb()
|
||||||
|
|
||||||
|
checkParentDir(destStat, src, dest, opts, cb)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -4808,16 +4802,10 @@ function checkParentDir (destStat, src, dest, opts, cb) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleFilter (onInclude, destStat, src, dest, opts, cb) {
|
function runFilter (src, dest, opts, cb) {
|
||||||
Promise.resolve(opts.filter(src, dest)).then(include => {
|
if (!opts.filter) return cb(null, true)
|
||||||
if (include) return onInclude(destStat, src, dest, opts, cb)
|
Promise.resolve(opts.filter(src, dest))
|
||||||
return cb()
|
.then(include => cb(null, include), error => cb(error))
|
||||||
}, error => cb(error))
|
|
||||||
}
|
|
||||||
|
|
||||||
function startCopy (destStat, src, dest, opts, cb) {
|
|
||||||
if (opts.filter) return handleFilter(getStats, destStat, src, dest, opts, cb)
|
|
||||||
return getStats(destStat, src, dest, opts, cb)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function getStats (destStat, src, dest, opts, cb) {
|
function getStats (destStat, src, dest, opts, cb) {
|
||||||
|
@ -4933,12 +4921,17 @@ function copyDirItems (items, src, dest, opts, cb) {
|
||||||
function copyDirItem (items, item, src, dest, opts, cb) {
|
function copyDirItem (items, item, src, dest, opts, cb) {
|
||||||
const srcItem = path.join(src, item)
|
const srcItem = path.join(src, item)
|
||||||
const destItem = path.join(dest, item)
|
const destItem = path.join(dest, item)
|
||||||
stat.checkPaths(srcItem, destItem, 'copy', opts, (err, stats) => {
|
runFilter(srcItem, destItem, opts, (err, include) => {
|
||||||
if (err) return cb(err)
|
if (err) return cb(err)
|
||||||
const { destStat } = stats
|
if (!include) return copyDirItems(items, src, dest, opts, cb)
|
||||||
startCopy(destStat, srcItem, destItem, opts, err => {
|
|
||||||
|
stat.checkPaths(srcItem, destItem, 'copy', opts, (err, stats) => {
|
||||||
if (err) return cb(err)
|
if (err) return cb(err)
|
||||||
return copyDirItems(items, src, dest, opts, cb)
|
const { destStat } = stats
|
||||||
|
getStats(destStat, srcItem, destItem, opts, err => {
|
||||||
|
if (err) return cb(err)
|
||||||
|
return copyDirItems(items, src, dest, opts, cb)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -4971,7 +4964,7 @@ function onLink (destStat, src, dest, opts, cb) {
|
||||||
// do not copy if src is a subdir of dest since unlinking
|
// do not copy if src is a subdir of dest since unlinking
|
||||||
// dest in this case would result in removing src contents
|
// dest in this case would result in removing src contents
|
||||||
// and therefore a broken symlink would be created.
|
// and therefore a broken symlink would be created.
|
||||||
if (destStat.isDirectory() && stat.isSrcSubdir(resolvedDest, resolvedSrc)) {
|
if (stat.isSrcSubdir(resolvedDest, resolvedSrc)) {
|
||||||
return cb(new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`))
|
return cb(new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`))
|
||||||
}
|
}
|
||||||
return copyLink(resolvedSrc, dest, cb)
|
return copyLink(resolvedSrc, dest, cb)
|
||||||
|
@ -5517,8 +5510,7 @@ const api = [
|
||||||
'writeFile'
|
'writeFile'
|
||||||
].filter(key => {
|
].filter(key => {
|
||||||
// Some commands are not available on some systems. Ex:
|
// Some commands are not available on some systems. Ex:
|
||||||
// fs.opendir was added in Node.js v12.12.0
|
// fs.cp was added in Node.js v16.7.0
|
||||||
// fs.rm was added in Node.js v14.14.0
|
|
||||||
// fs.lchown is not available on at least some Linux
|
// fs.lchown is not available on at least some Linux
|
||||||
return typeof fs[key] === 'function'
|
return typeof fs[key] === 'function'
|
||||||
})
|
})
|
||||||
|
@ -5542,7 +5534,7 @@ exports.exists = function (filename, callback) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// fs.read(), fs.write(), & fs.writev() need special treatment due to multiple callback args
|
// fs.read(), fs.write(), fs.readv(), & fs.writev() need special treatment due to multiple callback args
|
||||||
|
|
||||||
exports.read = function (fd, buffer, offset, length, position, callback) {
|
exports.read = function (fd, buffer, offset, length, position, callback) {
|
||||||
if (typeof callback === 'function') {
|
if (typeof callback === 'function') {
|
||||||
|
@ -5574,23 +5566,36 @@ exports.write = function (fd, buffer, ...args) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// fs.writev only available in Node v12.9.0+
|
// Function signature is
|
||||||
if (typeof fs.writev === 'function') {
|
// s.readv(fd, buffers[, position], callback)
|
||||||
// Function signature is
|
// We need to handle the optional arg, so we use ...args
|
||||||
// s.writev(fd, buffers[, position], callback)
|
exports.readv = function (fd, buffers, ...args) {
|
||||||
// We need to handle the optional arg, so we use ...args
|
if (typeof args[args.length - 1] === 'function') {
|
||||||
exports.writev = function (fd, buffers, ...args) {
|
return fs.readv(fd, buffers, ...args)
|
||||||
if (typeof args[args.length - 1] === 'function') {
|
|
||||||
return fs.writev(fd, buffers, ...args)
|
|
||||||
}
|
|
||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
fs.writev(fd, buffers, ...args, (err, bytesWritten, buffers) => {
|
|
||||||
if (err) return reject(err)
|
|
||||||
resolve({ bytesWritten, buffers })
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
fs.readv(fd, buffers, ...args, (err, bytesRead, buffers) => {
|
||||||
|
if (err) return reject(err)
|
||||||
|
resolve({ bytesRead, buffers })
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// Function signature is
|
||||||
|
// s.writev(fd, buffers[, position], callback)
|
||||||
|
// We need to handle the optional arg, so we use ...args
|
||||||
|
exports.writev = function (fd, buffers, ...args) {
|
||||||
|
if (typeof args[args.length - 1] === 'function') {
|
||||||
|
return fs.writev(fd, buffers, ...args)
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
fs.writev(fd, buffers, ...args, (err, bytesWritten, buffers) => {
|
||||||
|
if (err) return reject(err)
|
||||||
|
resolve({ bytesWritten, buffers })
|
||||||
|
})
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// fs.realpath.native sometimes not available if fs is monkey-patched
|
// fs.realpath.native sometimes not available if fs is monkey-patched
|
||||||
|
@ -5865,7 +5870,8 @@ function rename (src, dest, overwrite) {
|
||||||
function moveAcrossDevice (src, dest, overwrite) {
|
function moveAcrossDevice (src, dest, overwrite) {
|
||||||
const opts = {
|
const opts = {
|
||||||
overwrite,
|
overwrite,
|
||||||
errorOnExist: true
|
errorOnExist: true,
|
||||||
|
preserveTimestamps: true
|
||||||
}
|
}
|
||||||
copySync(src, dest, opts)
|
copySync(src, dest, opts)
|
||||||
return removeSync(src)
|
return removeSync(src)
|
||||||
|
@ -5946,7 +5952,8 @@ function rename (src, dest, overwrite, cb) {
|
||||||
function moveAcrossDevice (src, dest, overwrite, cb) {
|
function moveAcrossDevice (src, dest, overwrite, cb) {
|
||||||
const opts = {
|
const opts = {
|
||||||
overwrite,
|
overwrite,
|
||||||
errorOnExist: true
|
errorOnExist: true,
|
||||||
|
preserveTimestamps: true
|
||||||
}
|
}
|
||||||
copy(src, dest, opts, err => {
|
copy(src, dest, opts, err => {
|
||||||
if (err) return cb(err)
|
if (err) return cb(err)
|
||||||
|
@ -6035,18 +6042,13 @@ module.exports = {
|
||||||
|
|
||||||
const fs = __nccwpck_require__(7758)
|
const fs = __nccwpck_require__(7758)
|
||||||
const u = (__nccwpck_require__(9046).fromCallback)
|
const u = (__nccwpck_require__(9046).fromCallback)
|
||||||
const rimraf = __nccwpck_require__(8761)
|
|
||||||
|
|
||||||
function remove (path, callback) {
|
function remove (path, callback) {
|
||||||
// Node 14.14.0+
|
fs.rm(path, { recursive: true, force: true }, callback)
|
||||||
if (fs.rm) return fs.rm(path, { recursive: true, force: true }, callback)
|
|
||||||
rimraf(path, callback)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function removeSync (path) {
|
function removeSync (path) {
|
||||||
// Node 14.14.0+
|
fs.rmSync(path, { recursive: true, force: true })
|
||||||
if (fs.rmSync) return fs.rmSync(path, { recursive: true, force: true })
|
|
||||||
rimraf.sync(path)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
@ -6055,316 +6057,6 @@ module.exports = {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
|
||||||
|
|
||||||
/***/ 8761:
|
|
||||||
/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
|
|
||||||
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
|
|
||||||
const fs = __nccwpck_require__(7758)
|
|
||||||
const path = __nccwpck_require__(1017)
|
|
||||||
const assert = __nccwpck_require__(9491)
|
|
||||||
|
|
||||||
const isWindows = (process.platform === 'win32')
|
|
||||||
|
|
||||||
function defaults (options) {
|
|
||||||
const methods = [
|
|
||||||
'unlink',
|
|
||||||
'chmod',
|
|
||||||
'stat',
|
|
||||||
'lstat',
|
|
||||||
'rmdir',
|
|
||||||
'readdir'
|
|
||||||
]
|
|
||||||
methods.forEach(m => {
|
|
||||||
options[m] = options[m] || fs[m]
|
|
||||||
m = m + 'Sync'
|
|
||||||
options[m] = options[m] || fs[m]
|
|
||||||
})
|
|
||||||
|
|
||||||
options.maxBusyTries = options.maxBusyTries || 3
|
|
||||||
}
|
|
||||||
|
|
||||||
function rimraf (p, options, cb) {
|
|
||||||
let busyTries = 0
|
|
||||||
|
|
||||||
if (typeof options === 'function') {
|
|
||||||
cb = options
|
|
||||||
options = {}
|
|
||||||
}
|
|
||||||
|
|
||||||
assert(p, 'rimraf: missing path')
|
|
||||||
assert.strictEqual(typeof p, 'string', 'rimraf: path should be a string')
|
|
||||||
assert.strictEqual(typeof cb, 'function', 'rimraf: callback function required')
|
|
||||||
assert(options, 'rimraf: invalid options argument provided')
|
|
||||||
assert.strictEqual(typeof options, 'object', 'rimraf: options should be object')
|
|
||||||
|
|
||||||
defaults(options)
|
|
||||||
|
|
||||||
rimraf_(p, options, function CB (er) {
|
|
||||||
if (er) {
|
|
||||||
if ((er.code === 'EBUSY' || er.code === 'ENOTEMPTY' || er.code === 'EPERM') &&
|
|
||||||
busyTries < options.maxBusyTries) {
|
|
||||||
busyTries++
|
|
||||||
const time = busyTries * 100
|
|
||||||
// try again, with the same exact callback as this one.
|
|
||||||
return setTimeout(() => rimraf_(p, options, CB), time)
|
|
||||||
}
|
|
||||||
|
|
||||||
// already gone
|
|
||||||
if (er.code === 'ENOENT') er = null
|
|
||||||
}
|
|
||||||
|
|
||||||
cb(er)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// Two possible strategies.
|
|
||||||
// 1. Assume it's a file. unlink it, then do the dir stuff on EPERM or EISDIR
|
|
||||||
// 2. Assume it's a directory. readdir, then do the file stuff on ENOTDIR
|
|
||||||
//
|
|
||||||
// Both result in an extra syscall when you guess wrong. However, there
|
|
||||||
// are likely far more normal files in the world than directories. This
|
|
||||||
// is based on the assumption that a the average number of files per
|
|
||||||
// directory is >= 1.
|
|
||||||
//
|
|
||||||
// If anyone ever complains about this, then I guess the strategy could
|
|
||||||
// be made configurable somehow. But until then, YAGNI.
|
|
||||||
function rimraf_ (p, options, cb) {
|
|
||||||
assert(p)
|
|
||||||
assert(options)
|
|
||||||
assert(typeof cb === 'function')
|
|
||||||
|
|
||||||
// sunos lets the root user unlink directories, which is... weird.
|
|
||||||
// so we have to lstat here and make sure it's not a dir.
|
|
||||||
options.lstat(p, (er, st) => {
|
|
||||||
if (er && er.code === 'ENOENT') {
|
|
||||||
return cb(null)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Windows can EPERM on stat. Life is suffering.
|
|
||||||
if (er && er.code === 'EPERM' && isWindows) {
|
|
||||||
return fixWinEPERM(p, options, er, cb)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (st && st.isDirectory()) {
|
|
||||||
return rmdir(p, options, er, cb)
|
|
||||||
}
|
|
||||||
|
|
||||||
options.unlink(p, er => {
|
|
||||||
if (er) {
|
|
||||||
if (er.code === 'ENOENT') {
|
|
||||||
return cb(null)
|
|
||||||
}
|
|
||||||
if (er.code === 'EPERM') {
|
|
||||||
return (isWindows)
|
|
||||||
? fixWinEPERM(p, options, er, cb)
|
|
||||||
: rmdir(p, options, er, cb)
|
|
||||||
}
|
|
||||||
if (er.code === 'EISDIR') {
|
|
||||||
return rmdir(p, options, er, cb)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return cb(er)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function fixWinEPERM (p, options, er, cb) {
|
|
||||||
assert(p)
|
|
||||||
assert(options)
|
|
||||||
assert(typeof cb === 'function')
|
|
||||||
|
|
||||||
options.chmod(p, 0o666, er2 => {
|
|
||||||
if (er2) {
|
|
||||||
cb(er2.code === 'ENOENT' ? null : er)
|
|
||||||
} else {
|
|
||||||
options.stat(p, (er3, stats) => {
|
|
||||||
if (er3) {
|
|
||||||
cb(er3.code === 'ENOENT' ? null : er)
|
|
||||||
} else if (stats.isDirectory()) {
|
|
||||||
rmdir(p, options, er, cb)
|
|
||||||
} else {
|
|
||||||
options.unlink(p, cb)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function fixWinEPERMSync (p, options, er) {
|
|
||||||
let stats
|
|
||||||
|
|
||||||
assert(p)
|
|
||||||
assert(options)
|
|
||||||
|
|
||||||
try {
|
|
||||||
options.chmodSync(p, 0o666)
|
|
||||||
} catch (er2) {
|
|
||||||
if (er2.code === 'ENOENT') {
|
|
||||||
return
|
|
||||||
} else {
|
|
||||||
throw er
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
stats = options.statSync(p)
|
|
||||||
} catch (er3) {
|
|
||||||
if (er3.code === 'ENOENT') {
|
|
||||||
return
|
|
||||||
} else {
|
|
||||||
throw er
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (stats.isDirectory()) {
|
|
||||||
rmdirSync(p, options, er)
|
|
||||||
} else {
|
|
||||||
options.unlinkSync(p)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function rmdir (p, options, originalEr, cb) {
|
|
||||||
assert(p)
|
|
||||||
assert(options)
|
|
||||||
assert(typeof cb === 'function')
|
|
||||||
|
|
||||||
// try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS)
|
|
||||||
// if we guessed wrong, and it's not a directory, then
|
|
||||||
// raise the original error.
|
|
||||||
options.rmdir(p, er => {
|
|
||||||
if (er && (er.code === 'ENOTEMPTY' || er.code === 'EEXIST' || er.code === 'EPERM')) {
|
|
||||||
rmkids(p, options, cb)
|
|
||||||
} else if (er && er.code === 'ENOTDIR') {
|
|
||||||
cb(originalEr)
|
|
||||||
} else {
|
|
||||||
cb(er)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function rmkids (p, options, cb) {
|
|
||||||
assert(p)
|
|
||||||
assert(options)
|
|
||||||
assert(typeof cb === 'function')
|
|
||||||
|
|
||||||
options.readdir(p, (er, files) => {
|
|
||||||
if (er) return cb(er)
|
|
||||||
|
|
||||||
let n = files.length
|
|
||||||
let errState
|
|
||||||
|
|
||||||
if (n === 0) return options.rmdir(p, cb)
|
|
||||||
|
|
||||||
files.forEach(f => {
|
|
||||||
rimraf(path.join(p, f), options, er => {
|
|
||||||
if (errState) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (er) return cb(errState = er)
|
|
||||||
if (--n === 0) {
|
|
||||||
options.rmdir(p, cb)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// this looks simpler, and is strictly *faster*, but will
|
|
||||||
// tie up the JavaScript thread and fail on excessively
|
|
||||||
// deep directory trees.
|
|
||||||
function rimrafSync (p, options) {
|
|
||||||
let st
|
|
||||||
|
|
||||||
options = options || {}
|
|
||||||
defaults(options)
|
|
||||||
|
|
||||||
assert(p, 'rimraf: missing path')
|
|
||||||
assert.strictEqual(typeof p, 'string', 'rimraf: path should be a string')
|
|
||||||
assert(options, 'rimraf: missing options')
|
|
||||||
assert.strictEqual(typeof options, 'object', 'rimraf: options should be object')
|
|
||||||
|
|
||||||
try {
|
|
||||||
st = options.lstatSync(p)
|
|
||||||
} catch (er) {
|
|
||||||
if (er.code === 'ENOENT') {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Windows can EPERM on stat. Life is suffering.
|
|
||||||
if (er.code === 'EPERM' && isWindows) {
|
|
||||||
fixWinEPERMSync(p, options, er)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
// sunos lets the root user unlink directories, which is... weird.
|
|
||||||
if (st && st.isDirectory()) {
|
|
||||||
rmdirSync(p, options, null)
|
|
||||||
} else {
|
|
||||||
options.unlinkSync(p)
|
|
||||||
}
|
|
||||||
} catch (er) {
|
|
||||||
if (er.code === 'ENOENT') {
|
|
||||||
return
|
|
||||||
} else if (er.code === 'EPERM') {
|
|
||||||
return isWindows ? fixWinEPERMSync(p, options, er) : rmdirSync(p, options, er)
|
|
||||||
} else if (er.code !== 'EISDIR') {
|
|
||||||
throw er
|
|
||||||
}
|
|
||||||
rmdirSync(p, options, er)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function rmdirSync (p, options, originalEr) {
|
|
||||||
assert(p)
|
|
||||||
assert(options)
|
|
||||||
|
|
||||||
try {
|
|
||||||
options.rmdirSync(p)
|
|
||||||
} catch (er) {
|
|
||||||
if (er.code === 'ENOTDIR') {
|
|
||||||
throw originalEr
|
|
||||||
} else if (er.code === 'ENOTEMPTY' || er.code === 'EEXIST' || er.code === 'EPERM') {
|
|
||||||
rmkidsSync(p, options)
|
|
||||||
} else if (er.code !== 'ENOENT') {
|
|
||||||
throw er
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function rmkidsSync (p, options) {
|
|
||||||
assert(p)
|
|
||||||
assert(options)
|
|
||||||
options.readdirSync(p).forEach(f => rimrafSync(path.join(p, f), options))
|
|
||||||
|
|
||||||
if (isWindows) {
|
|
||||||
// We only end up here once we got ENOTEMPTY at least once, and
|
|
||||||
// at this point, we are guaranteed to have removed all the kids.
|
|
||||||
// So, we know that it won't be ENOENT or ENOTDIR or anything else.
|
|
||||||
// try really hard to delete stuff on windows, because it has a
|
|
||||||
// PROFOUNDLY annoying habit of not closing handles promptly when
|
|
||||||
// files are deleted, resulting in spurious ENOTEMPTY errors.
|
|
||||||
const startTime = Date.now()
|
|
||||||
do {
|
|
||||||
try {
|
|
||||||
const ret = options.rmdirSync(p, options)
|
|
||||||
return ret
|
|
||||||
} catch {}
|
|
||||||
} while (Date.now() - startTime < 500) // give up after 500ms
|
|
||||||
} else {
|
|
||||||
const ret = options.rmdirSync(p, options)
|
|
||||||
return ret
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = rimraf
|
|
||||||
rimraf.sync = rimrafSync
|
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
/***/ 3901:
|
/***/ 3901:
|
||||||
|
@ -7280,7 +6972,7 @@ function patch (fs) {
|
||||||
var backoff = 0;
|
var backoff = 0;
|
||||||
fs$rename(from, to, function CB (er) {
|
fs$rename(from, to, function CB (er) {
|
||||||
if (er
|
if (er
|
||||||
&& (er.code === "EACCES" || er.code === "EPERM")
|
&& (er.code === "EACCES" || er.code === "EPERM" || er.code === "EBUSY")
|
||||||
&& Date.now() - start < 60000) {
|
&& Date.now() - start < 60000) {
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
fs.stat(to, function (stater, st) {
|
fs.stat(to, function (stater, st) {
|
||||||
|
@ -7683,8 +7375,11 @@ var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||
|
||||||
// Max safe segment length for coercion.
|
// Max safe segment length for coercion.
|
||||||
var MAX_SAFE_COMPONENT_LENGTH = 16
|
var MAX_SAFE_COMPONENT_LENGTH = 16
|
||||||
|
|
||||||
|
var MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6
|
||||||
|
|
||||||
// The actual regexps go on exports.re
|
// The actual regexps go on exports.re
|
||||||
var re = exports.re = []
|
var re = exports.re = []
|
||||||
|
var safeRe = exports.safeRe = []
|
||||||
var src = exports.src = []
|
var src = exports.src = []
|
||||||
var t = exports.tokens = {}
|
var t = exports.tokens = {}
|
||||||
var R = 0
|
var R = 0
|
||||||
|
@ -7693,6 +7388,31 @@ function tok (n) {
|
||||||
t[n] = R++
|
t[n] = R++
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var LETTERDASHNUMBER = '[a-zA-Z0-9-]'
|
||||||
|
|
||||||
|
// Replace some greedy regex tokens to prevent regex dos issues. These regex are
|
||||||
|
// used internally via the safeRe object since all inputs in this library get
|
||||||
|
// normalized first to trim and collapse all extra whitespace. The original
|
||||||
|
// regexes are exported for userland consumption and lower level usage. A
|
||||||
|
// future breaking change could export the safer regex only with a note that
|
||||||
|
// all input should have extra whitespace removed.
|
||||||
|
var safeRegexReplacements = [
|
||||||
|
['\\s', 1],
|
||||||
|
['\\d', MAX_LENGTH],
|
||||||
|
[LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],
|
||||||
|
]
|
||||||
|
|
||||||
|
function makeSafeRe (value) {
|
||||||
|
for (var i = 0; i < safeRegexReplacements.length; i++) {
|
||||||
|
var token = safeRegexReplacements[i][0]
|
||||||
|
var max = safeRegexReplacements[i][1]
|
||||||
|
value = value
|
||||||
|
.split(token + '*').join(token + '{0,' + max + '}')
|
||||||
|
.split(token + '+').join(token + '{1,' + max + '}')
|
||||||
|
}
|
||||||
|
return value
|
||||||
|
}
|
||||||
|
|
||||||
// The following Regular Expressions can be used for tokenizing,
|
// The following Regular Expressions can be used for tokenizing,
|
||||||
// validating, and parsing SemVer version strings.
|
// validating, and parsing SemVer version strings.
|
||||||
|
|
||||||
|
@ -7702,14 +7422,14 @@ function tok (n) {
|
||||||
tok('NUMERICIDENTIFIER')
|
tok('NUMERICIDENTIFIER')
|
||||||
src[t.NUMERICIDENTIFIER] = '0|[1-9]\\d*'
|
src[t.NUMERICIDENTIFIER] = '0|[1-9]\\d*'
|
||||||
tok('NUMERICIDENTIFIERLOOSE')
|
tok('NUMERICIDENTIFIERLOOSE')
|
||||||
src[t.NUMERICIDENTIFIERLOOSE] = '[0-9]+'
|
src[t.NUMERICIDENTIFIERLOOSE] = '\\d+'
|
||||||
|
|
||||||
// ## Non-numeric Identifier
|
// ## Non-numeric Identifier
|
||||||
// Zero or more digits, followed by a letter or hyphen, and then zero or
|
// Zero or more digits, followed by a letter or hyphen, and then zero or
|
||||||
// more letters, digits, or hyphens.
|
// more letters, digits, or hyphens.
|
||||||
|
|
||||||
tok('NONNUMERICIDENTIFIER')
|
tok('NONNUMERICIDENTIFIER')
|
||||||
src[t.NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*'
|
src[t.NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-]' + LETTERDASHNUMBER + '*'
|
||||||
|
|
||||||
// ## Main Version
|
// ## Main Version
|
||||||
// Three dot-separated numeric identifiers.
|
// Three dot-separated numeric identifiers.
|
||||||
|
@ -7751,7 +7471,7 @@ src[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +
|
||||||
// Any combination of digits, letters, or hyphens.
|
// Any combination of digits, letters, or hyphens.
|
||||||
|
|
||||||
tok('BUILDIDENTIFIER')
|
tok('BUILDIDENTIFIER')
|
||||||
src[t.BUILDIDENTIFIER] = '[0-9A-Za-z-]+'
|
src[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + '+'
|
||||||
|
|
||||||
// ## Build Metadata
|
// ## Build Metadata
|
||||||
// Plus sign, followed by one or more period-separated build metadata
|
// Plus sign, followed by one or more period-separated build metadata
|
||||||
|
@ -7831,6 +7551,7 @@ src[t.COERCE] = '(^|[^\\d])' +
|
||||||
'(?:$|[^\\d])'
|
'(?:$|[^\\d])'
|
||||||
tok('COERCERTL')
|
tok('COERCERTL')
|
||||||
re[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')
|
re[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')
|
||||||
|
safeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), 'g')
|
||||||
|
|
||||||
// Tilde ranges.
|
// Tilde ranges.
|
||||||
// Meaning is "reasonably at or greater than"
|
// Meaning is "reasonably at or greater than"
|
||||||
|
@ -7840,6 +7561,7 @@ src[t.LONETILDE] = '(?:~>?)'
|
||||||
tok('TILDETRIM')
|
tok('TILDETRIM')
|
||||||
src[t.TILDETRIM] = '(\\s*)' + src[t.LONETILDE] + '\\s+'
|
src[t.TILDETRIM] = '(\\s*)' + src[t.LONETILDE] + '\\s+'
|
||||||
re[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')
|
re[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')
|
||||||
|
safeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), 'g')
|
||||||
var tildeTrimReplace = '$1~'
|
var tildeTrimReplace = '$1~'
|
||||||
|
|
||||||
tok('TILDE')
|
tok('TILDE')
|
||||||
|
@ -7855,6 +7577,7 @@ src[t.LONECARET] = '(?:\\^)'
|
||||||
tok('CARETTRIM')
|
tok('CARETTRIM')
|
||||||
src[t.CARETTRIM] = '(\\s*)' + src[t.LONECARET] + '\\s+'
|
src[t.CARETTRIM] = '(\\s*)' + src[t.LONECARET] + '\\s+'
|
||||||
re[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')
|
re[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')
|
||||||
|
safeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), 'g')
|
||||||
var caretTrimReplace = '$1^'
|
var caretTrimReplace = '$1^'
|
||||||
|
|
||||||
tok('CARET')
|
tok('CARET')
|
||||||
|
@ -7876,6 +7599,7 @@ src[t.COMPARATORTRIM] = '(\\s*)' + src[t.GTLT] +
|
||||||
|
|
||||||
// this one has to use the /g flag
|
// this one has to use the /g flag
|
||||||
re[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')
|
re[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')
|
||||||
|
safeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), 'g')
|
||||||
var comparatorTrimReplace = '$1$2$3'
|
var comparatorTrimReplace = '$1$2$3'
|
||||||
|
|
||||||
// Something like `1.2.3 - 1.2.4`
|
// Something like `1.2.3 - 1.2.4`
|
||||||
|
@ -7904,6 +7628,14 @@ for (var i = 0; i < R; i++) {
|
||||||
debug(i, src[i])
|
debug(i, src[i])
|
||||||
if (!re[i]) {
|
if (!re[i]) {
|
||||||
re[i] = new RegExp(src[i])
|
re[i] = new RegExp(src[i])
|
||||||
|
|
||||||
|
// Replace all greedy whitespace to prevent regex dos issues. These regex are
|
||||||
|
// used internally via the safeRe object since all inputs in this library get
|
||||||
|
// normalized first to trim and collapse all extra whitespace. The original
|
||||||
|
// regexes are exported for userland consumption and lower level usage. A
|
||||||
|
// future breaking change could export the safer regex only with a note that
|
||||||
|
// all input should have extra whitespace removed.
|
||||||
|
safeRe[i] = new RegExp(makeSafeRe(src[i]))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7928,7 +7660,7 @@ function parse (version, options) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
var r = options.loose ? re[t.LOOSE] : re[t.FULL]
|
var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]
|
||||||
if (!r.test(version)) {
|
if (!r.test(version)) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
@ -7983,7 +7715,7 @@ function SemVer (version, options) {
|
||||||
this.options = options
|
this.options = options
|
||||||
this.loose = !!options.loose
|
this.loose = !!options.loose
|
||||||
|
|
||||||
var m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])
|
var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL])
|
||||||
|
|
||||||
if (!m) {
|
if (!m) {
|
||||||
throw new TypeError('Invalid Version: ' + version)
|
throw new TypeError('Invalid Version: ' + version)
|
||||||
|
@ -8428,6 +8160,7 @@ function Comparator (comp, options) {
|
||||||
return new Comparator(comp, options)
|
return new Comparator(comp, options)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
comp = comp.trim().split(/\s+/).join(' ')
|
||||||
debug('comparator', comp, options)
|
debug('comparator', comp, options)
|
||||||
this.options = options
|
this.options = options
|
||||||
this.loose = !!options.loose
|
this.loose = !!options.loose
|
||||||
|
@ -8444,7 +8177,7 @@ function Comparator (comp, options) {
|
||||||
|
|
||||||
var ANY = {}
|
var ANY = {}
|
||||||
Comparator.prototype.parse = function (comp) {
|
Comparator.prototype.parse = function (comp) {
|
||||||
var r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]
|
var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]
|
||||||
var m = comp.match(r)
|
var m = comp.match(r)
|
||||||
|
|
||||||
if (!m) {
|
if (!m) {
|
||||||
|
@ -8568,9 +8301,16 @@ function Range (range, options) {
|
||||||
this.loose = !!options.loose
|
this.loose = !!options.loose
|
||||||
this.includePrerelease = !!options.includePrerelease
|
this.includePrerelease = !!options.includePrerelease
|
||||||
|
|
||||||
// First, split based on boolean or ||
|
// First reduce all whitespace as much as possible so we do not have to rely
|
||||||
|
// on potentially slow regexes like \s*. This is then stored and used for
|
||||||
|
// future error messages as well.
|
||||||
this.raw = range
|
this.raw = range
|
||||||
this.set = range.split(/\s*\|\|\s*/).map(function (range) {
|
.trim()
|
||||||
|
.split(/\s+/)
|
||||||
|
.join(' ')
|
||||||
|
|
||||||
|
// First, split based on boolean or ||
|
||||||
|
this.set = this.raw.split('||').map(function (range) {
|
||||||
return this.parseRange(range.trim())
|
return this.parseRange(range.trim())
|
||||||
}, this).filter(function (c) {
|
}, this).filter(function (c) {
|
||||||
// throw out any that are not relevant for whatever reason
|
// throw out any that are not relevant for whatever reason
|
||||||
|
@ -8578,7 +8318,7 @@ function Range (range, options) {
|
||||||
})
|
})
|
||||||
|
|
||||||
if (!this.set.length) {
|
if (!this.set.length) {
|
||||||
throw new TypeError('Invalid SemVer Range: ' + range)
|
throw new TypeError('Invalid SemVer Range: ' + this.raw)
|
||||||
}
|
}
|
||||||
|
|
||||||
this.format()
|
this.format()
|
||||||
|
@ -8597,20 +8337,19 @@ Range.prototype.toString = function () {
|
||||||
|
|
||||||
Range.prototype.parseRange = function (range) {
|
Range.prototype.parseRange = function (range) {
|
||||||
var loose = this.options.loose
|
var loose = this.options.loose
|
||||||
range = range.trim()
|
|
||||||
// `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`
|
// `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`
|
||||||
var hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]
|
var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE]
|
||||||
range = range.replace(hr, hyphenReplace)
|
range = range.replace(hr, hyphenReplace)
|
||||||
debug('hyphen replace', range)
|
debug('hyphen replace', range)
|
||||||
// `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`
|
// `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`
|
||||||
range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)
|
range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace)
|
||||||
debug('comparator trim', range, re[t.COMPARATORTRIM])
|
debug('comparator trim', range, safeRe[t.COMPARATORTRIM])
|
||||||
|
|
||||||
// `~ 1.2.3` => `~1.2.3`
|
// `~ 1.2.3` => `~1.2.3`
|
||||||
range = range.replace(re[t.TILDETRIM], tildeTrimReplace)
|
range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace)
|
||||||
|
|
||||||
// `^ 1.2.3` => `^1.2.3`
|
// `^ 1.2.3` => `^1.2.3`
|
||||||
range = range.replace(re[t.CARETTRIM], caretTrimReplace)
|
range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace)
|
||||||
|
|
||||||
// normalize spaces
|
// normalize spaces
|
||||||
range = range.split(/\s+/).join(' ')
|
range = range.split(/\s+/).join(' ')
|
||||||
|
@ -8618,7 +8357,7 @@ Range.prototype.parseRange = function (range) {
|
||||||
// At this point, the range is completely trimmed and
|
// At this point, the range is completely trimmed and
|
||||||
// ready to be split into comparators.
|
// ready to be split into comparators.
|
||||||
|
|
||||||
var compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]
|
var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]
|
||||||
var set = range.split(' ').map(function (comp) {
|
var set = range.split(' ').map(function (comp) {
|
||||||
return parseComparator(comp, this.options)
|
return parseComparator(comp, this.options)
|
||||||
}, this).join(' ').split(/\s+/)
|
}, this).join(' ').split(/\s+/)
|
||||||
|
@ -8718,7 +8457,7 @@ function replaceTildes (comp, options) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function replaceTilde (comp, options) {
|
function replaceTilde (comp, options) {
|
||||||
var r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]
|
var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE]
|
||||||
return comp.replace(r, function (_, M, m, p, pr) {
|
return comp.replace(r, function (_, M, m, p, pr) {
|
||||||
debug('tilde', comp, _, M, m, p, pr)
|
debug('tilde', comp, _, M, m, p, pr)
|
||||||
var ret
|
var ret
|
||||||
|
@ -8759,7 +8498,7 @@ function replaceCarets (comp, options) {
|
||||||
|
|
||||||
function replaceCaret (comp, options) {
|
function replaceCaret (comp, options) {
|
||||||
debug('caret', comp, options)
|
debug('caret', comp, options)
|
||||||
var r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]
|
var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET]
|
||||||
return comp.replace(r, function (_, M, m, p, pr) {
|
return comp.replace(r, function (_, M, m, p, pr) {
|
||||||
debug('caret', comp, _, M, m, p, pr)
|
debug('caret', comp, _, M, m, p, pr)
|
||||||
var ret
|
var ret
|
||||||
|
@ -8818,7 +8557,7 @@ function replaceXRanges (comp, options) {
|
||||||
|
|
||||||
function replaceXRange (comp, options) {
|
function replaceXRange (comp, options) {
|
||||||
comp = comp.trim()
|
comp = comp.trim()
|
||||||
var r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]
|
var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE]
|
||||||
return comp.replace(r, function (ret, gtlt, M, m, p, pr) {
|
return comp.replace(r, function (ret, gtlt, M, m, p, pr) {
|
||||||
debug('xRange', comp, ret, gtlt, M, m, p, pr)
|
debug('xRange', comp, ret, gtlt, M, m, p, pr)
|
||||||
var xM = isX(M)
|
var xM = isX(M)
|
||||||
|
@ -8893,7 +8632,7 @@ function replaceXRange (comp, options) {
|
||||||
function replaceStars (comp, options) {
|
function replaceStars (comp, options) {
|
||||||
debug('replaceStars', comp, options)
|
debug('replaceStars', comp, options)
|
||||||
// Looseness is ignored here. star is always as loose as it gets!
|
// Looseness is ignored here. star is always as loose as it gets!
|
||||||
return comp.trim().replace(re[t.STAR], '')
|
return comp.trim().replace(safeRe[t.STAR], '')
|
||||||
}
|
}
|
||||||
|
|
||||||
// This function is passed to string.replace(re[t.HYPHENRANGE])
|
// This function is passed to string.replace(re[t.HYPHENRANGE])
|
||||||
|
@ -9219,7 +8958,7 @@ function coerce (version, options) {
|
||||||
|
|
||||||
var match = null
|
var match = null
|
||||||
if (!options.rtl) {
|
if (!options.rtl) {
|
||||||
match = version.match(re[t.COERCE])
|
match = version.match(safeRe[t.COERCE])
|
||||||
} else {
|
} else {
|
||||||
// Find the right-most coercible string that does not share
|
// Find the right-most coercible string that does not share
|
||||||
// a terminus with a more left-ward coercible string.
|
// a terminus with a more left-ward coercible string.
|
||||||
|
@ -9230,17 +8969,17 @@ function coerce (version, options) {
|
||||||
// Stop when we get a match that ends at the string end, since no
|
// Stop when we get a match that ends at the string end, since no
|
||||||
// coercible string can be more right-ward without the same terminus.
|
// coercible string can be more right-ward without the same terminus.
|
||||||
var next
|
var next
|
||||||
while ((next = re[t.COERCERTL].exec(version)) &&
|
while ((next = safeRe[t.COERCERTL].exec(version)) &&
|
||||||
(!match || match.index + match[0].length !== version.length)
|
(!match || match.index + match[0].length !== version.length)
|
||||||
) {
|
) {
|
||||||
if (!match ||
|
if (!match ||
|
||||||
next.index + next[0].length !== match.index + match[0].length) {
|
next.index + next[0].length !== match.index + match[0].length) {
|
||||||
match = next
|
match = next
|
||||||
}
|
}
|
||||||
re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length
|
safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length
|
||||||
}
|
}
|
||||||
// leave it in a clean state
|
// leave it in a clean state
|
||||||
re[t.COERCERTL].lastIndex = -1
|
safeRe[t.COERCERTL].lastIndex = -1
|
||||||
}
|
}
|
||||||
|
|
||||||
if (match === null) {
|
if (match === null) {
|
||||||
|
|
6970
package-lock.json
generated
6970
package-lock.json
generated
File diff suppressed because it is too large
Load diff
34
package.json
34
package.json
|
@ -25,26 +25,26 @@
|
||||||
"author": "daveol",
|
"author": "daveol",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/cache": "^3.0.5",
|
"@actions/cache": "^3.2.2",
|
||||||
"@actions/core": "^1.10.0",
|
"@actions/core": "^1.10.1",
|
||||||
"@actions/tool-cache": "^2.0.1",
|
"@actions/tool-cache": "^2.0.1",
|
||||||
"fs-extra": "^10.1.0"
|
"fs-extra": "^11.1.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/fs-extra": "^9.0.13",
|
"@types/fs-extra": "^11.0.2",
|
||||||
"@types/jest": "^29.2.0",
|
"@types/jest": "^29.5.5",
|
||||||
"@types/node": "^16.11.66",
|
"@types/node": "^20.6.5",
|
||||||
"@typescript-eslint/eslint-plugin": "^5.40.1",
|
"@typescript-eslint/eslint-plugin": "^6.7.2",
|
||||||
"@typescript-eslint/parser": "^5.40.1",
|
"@typescript-eslint/parser": "^6.7.2",
|
||||||
"@vercel/ncc": "^0.34.0",
|
"@vercel/ncc": "^0.38.0",
|
||||||
"eslint": "^8.25.0",
|
"eslint": "^8.50.0",
|
||||||
"eslint-plugin-github": "^4.4.0",
|
"eslint-plugin-github": "^4.10.0",
|
||||||
"eslint-plugin-jest": "^27.1.3",
|
"eslint-plugin-jest": "^27.4.0",
|
||||||
"jest": "^29.2.1",
|
"jest": "^29.7.0",
|
||||||
"jest-circus": "^29.2.1",
|
"jest-circus": "^29.7.0",
|
||||||
"js-yaml": "^4.1.0",
|
"js-yaml": "^4.1.0",
|
||||||
"prettier": "^2.7.1",
|
"prettier": "^3.0.3",
|
||||||
"ts-jest": "^29.0.3",
|
"ts-jest": "^29.1.1",
|
||||||
"typescript": "^4.8.4"
|
"typescript": "^5.2.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue