updated deps
This commit is contained in:
parent
e8555572fb
commit
08424c22d8
6 changed files with 1737 additions and 467 deletions
357
dist/cache-save/index.js
generated
vendored
357
dist/cache-save/index.js
generated
vendored
|
@ -442,10 +442,7 @@ function getCacheVersion(paths, compressionMethod, enableCrossOsArchive = false)
|
||||||
}
|
}
|
||||||
// Add salt to cache version to support breaking changes in cache entry
|
// Add salt to cache version to support breaking changes in cache entry
|
||||||
components.push(versionSalt);
|
components.push(versionSalt);
|
||||||
return crypto
|
return crypto.createHash('sha256').update(components.join('|')).digest('hex');
|
||||||
.createHash('sha256')
|
|
||||||
.update(components.join('|'))
|
|
||||||
.digest('hex');
|
|
||||||
}
|
}
|
||||||
exports.getCacheVersion = getCacheVersion;
|
exports.getCacheVersion = getCacheVersion;
|
||||||
function getCacheEntry(keys, paths, options) {
|
function getCacheEntry(keys, paths, options) {
|
||||||
|
@ -498,13 +495,21 @@ function downloadCache(archiveLocation, archivePath, options) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
const archiveUrl = new url_1.URL(archiveLocation);
|
const archiveUrl = new url_1.URL(archiveLocation);
|
||||||
const downloadOptions = (0, options_1.getDownloadOptions)(options);
|
const downloadOptions = (0, options_1.getDownloadOptions)(options);
|
||||||
if (downloadOptions.useAzureSdk &&
|
if (archiveUrl.hostname.endsWith('.blob.core.windows.net')) {
|
||||||
archiveUrl.hostname.endsWith('.blob.core.windows.net')) {
|
if (downloadOptions.useAzureSdk) {
|
||||||
// Use Azure storage SDK to download caches hosted on Azure to improve speed and reliability.
|
// Use Azure storage SDK to download caches hosted on Azure to improve speed and reliability.
|
||||||
yield (0, downloadUtils_1.downloadCacheStorageSDK)(archiveLocation, archivePath, downloadOptions);
|
yield (0, downloadUtils_1.downloadCacheStorageSDK)(archiveLocation, archivePath, downloadOptions);
|
||||||
|
}
|
||||||
|
else if (downloadOptions.concurrentBlobDownloads) {
|
||||||
|
// Use concurrent implementation with HttpClient to work around blob SDK issue
|
||||||
|
yield (0, downloadUtils_1.downloadCacheHttpClientConcurrent)(archiveLocation, archivePath, downloadOptions);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Otherwise, download using the Actions http-client.
|
||||||
|
yield (0, downloadUtils_1.downloadCacheHttpClient)(archiveLocation, archivePath);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Otherwise, download using the Actions http-client.
|
|
||||||
yield (0, downloadUtils_1.downloadCacheHttpClient)(archiveLocation, archivePath);
|
yield (0, downloadUtils_1.downloadCacheHttpClient)(archiveLocation, archivePath);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -537,9 +542,7 @@ function getContentRange(start, end) {
|
||||||
}
|
}
|
||||||
function uploadChunk(httpClient, resourceUrl, openStream, start, end) {
|
function uploadChunk(httpClient, resourceUrl, openStream, start, end) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
core.debug(`Uploading chunk of size ${end -
|
core.debug(`Uploading chunk of size ${end - start + 1} bytes at offset ${start} with content range: ${getContentRange(start, end)}`);
|
||||||
start +
|
|
||||||
1} bytes at offset ${start} with content range: ${getContentRange(start, end)}`);
|
|
||||||
const additionalHeaders = {
|
const additionalHeaders = {
|
||||||
'Content-Type': 'application/octet-stream',
|
'Content-Type': 'application/octet-stream',
|
||||||
'Content-Range': getContentRange(start, end)
|
'Content-Range': getContentRange(start, end)
|
||||||
|
@ -707,35 +710,42 @@ function getArchiveFileSizeInBytes(filePath) {
|
||||||
}
|
}
|
||||||
exports.getArchiveFileSizeInBytes = getArchiveFileSizeInBytes;
|
exports.getArchiveFileSizeInBytes = getArchiveFileSizeInBytes;
|
||||||
function resolvePaths(patterns) {
|
function resolvePaths(patterns) {
|
||||||
var e_1, _a;
|
var _a, e_1, _b, _c;
|
||||||
var _b;
|
var _d;
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
const paths = [];
|
const paths = [];
|
||||||
const workspace = (_b = process.env['GITHUB_WORKSPACE']) !== null && _b !== void 0 ? _b : process.cwd();
|
const workspace = (_d = process.env['GITHUB_WORKSPACE']) !== null && _d !== void 0 ? _d : process.cwd();
|
||||||
const globber = yield glob.create(patterns.join('\n'), {
|
const globber = yield glob.create(patterns.join('\n'), {
|
||||||
implicitDescendants: false
|
implicitDescendants: false
|
||||||
});
|
});
|
||||||
try {
|
try {
|
||||||
for (var _c = __asyncValues(globber.globGenerator()), _d; _d = yield _c.next(), !_d.done;) {
|
for (var _e = true, _f = __asyncValues(globber.globGenerator()), _g; _g = yield _f.next(), _a = _g.done, !_a;) {
|
||||||
const file = _d.value;
|
_c = _g.value;
|
||||||
const relativeFile = path
|
_e = false;
|
||||||
.relative(workspace, file)
|
try {
|
||||||
.replace(new RegExp(`\\${path.sep}`, 'g'), '/');
|
const file = _c;
|
||||||
core.debug(`Matched: ${relativeFile}`);
|
const relativeFile = path
|
||||||
// Paths are made relative so the tar entries are all relative to the root of the workspace.
|
.relative(workspace, file)
|
||||||
if (relativeFile === '') {
|
.replace(new RegExp(`\\${path.sep}`, 'g'), '/');
|
||||||
// path.relative returns empty string if workspace and file are equal
|
core.debug(`Matched: ${relativeFile}`);
|
||||||
paths.push('.');
|
// Paths are made relative so the tar entries are all relative to the root of the workspace.
|
||||||
|
if (relativeFile === '') {
|
||||||
|
// path.relative returns empty string if workspace and file are equal
|
||||||
|
paths.push('.');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
paths.push(`${relativeFile}`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
finally {
|
||||||
paths.push(`${relativeFile}`);
|
_e = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
||||||
finally {
|
finally {
|
||||||
try {
|
try {
|
||||||
if (_d && !_d.done && (_a = _c.return)) yield _a.call(_c);
|
if (!_e && !_a && (_b = _f.return)) yield _b.call(_f);
|
||||||
}
|
}
|
||||||
finally { if (e_1) throw e_1.error; }
|
finally { if (e_1) throw e_1.error; }
|
||||||
}
|
}
|
||||||
|
@ -900,7 +910,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.downloadCacheStorageSDK = exports.downloadCacheHttpClient = exports.DownloadProgress = void 0;
|
exports.downloadCacheStorageSDK = exports.downloadCacheHttpClientConcurrent = exports.downloadCacheHttpClient = exports.DownloadProgress = void 0;
|
||||||
const core = __importStar(__nccwpck_require__(2186));
|
const core = __importStar(__nccwpck_require__(2186));
|
||||||
const http_client_1 = __nccwpck_require__(6255);
|
const http_client_1 = __nccwpck_require__(6255);
|
||||||
const storage_blob_1 = __nccwpck_require__(4100);
|
const storage_blob_1 = __nccwpck_require__(4100);
|
||||||
|
@ -1057,6 +1067,115 @@ function downloadCacheHttpClient(archiveLocation, archivePath) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
exports.downloadCacheHttpClient = downloadCacheHttpClient;
|
exports.downloadCacheHttpClient = downloadCacheHttpClient;
|
||||||
|
/**
|
||||||
|
* Download the cache using the Actions toolkit http-client concurrently
|
||||||
|
*
|
||||||
|
* @param archiveLocation the URL for the cache
|
||||||
|
* @param archivePath the local path where the cache is saved
|
||||||
|
*/
|
||||||
|
function downloadCacheHttpClientConcurrent(archiveLocation, archivePath, options) {
|
||||||
|
var _a;
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
const archiveDescriptor = yield fs.promises.open(archivePath, 'w');
|
||||||
|
const httpClient = new http_client_1.HttpClient('actions/cache', undefined, {
|
||||||
|
socketTimeout: options.timeoutInMs,
|
||||||
|
keepAlive: true
|
||||||
|
});
|
||||||
|
try {
|
||||||
|
const res = yield (0, requestUtils_1.retryHttpClientResponse)('downloadCacheMetadata', () => __awaiter(this, void 0, void 0, function* () { return yield httpClient.request('HEAD', archiveLocation, null, {}); }));
|
||||||
|
const lengthHeader = res.message.headers['content-length'];
|
||||||
|
if (lengthHeader === undefined || lengthHeader === null) {
|
||||||
|
throw new Error('Content-Length not found on blob response');
|
||||||
|
}
|
||||||
|
const length = parseInt(lengthHeader);
|
||||||
|
if (Number.isNaN(length)) {
|
||||||
|
throw new Error(`Could not interpret Content-Length: ${length}`);
|
||||||
|
}
|
||||||
|
const downloads = [];
|
||||||
|
const blockSize = 4 * 1024 * 1024;
|
||||||
|
for (let offset = 0; offset < length; offset += blockSize) {
|
||||||
|
const count = Math.min(blockSize, length - offset);
|
||||||
|
downloads.push({
|
||||||
|
offset,
|
||||||
|
promiseGetter: () => __awaiter(this, void 0, void 0, function* () {
|
||||||
|
return yield downloadSegmentRetry(httpClient, archiveLocation, offset, count);
|
||||||
|
})
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// reverse to use .pop instead of .shift
|
||||||
|
downloads.reverse();
|
||||||
|
let actives = 0;
|
||||||
|
let bytesDownloaded = 0;
|
||||||
|
const progress = new DownloadProgress(length);
|
||||||
|
progress.startDisplayTimer();
|
||||||
|
const progressFn = progress.onProgress();
|
||||||
|
const activeDownloads = [];
|
||||||
|
let nextDownload;
|
||||||
|
const waitAndWrite = () => __awaiter(this, void 0, void 0, function* () {
|
||||||
|
const segment = yield Promise.race(Object.values(activeDownloads));
|
||||||
|
yield archiveDescriptor.write(segment.buffer, 0, segment.count, segment.offset);
|
||||||
|
actives--;
|
||||||
|
delete activeDownloads[segment.offset];
|
||||||
|
bytesDownloaded += segment.count;
|
||||||
|
progressFn({ loadedBytes: bytesDownloaded });
|
||||||
|
});
|
||||||
|
while ((nextDownload = downloads.pop())) {
|
||||||
|
activeDownloads[nextDownload.offset] = nextDownload.promiseGetter();
|
||||||
|
actives++;
|
||||||
|
if (actives >= ((_a = options.downloadConcurrency) !== null && _a !== void 0 ? _a : 10)) {
|
||||||
|
yield waitAndWrite();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while (actives > 0) {
|
||||||
|
yield waitAndWrite();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
httpClient.dispose();
|
||||||
|
yield archiveDescriptor.close();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
exports.downloadCacheHttpClientConcurrent = downloadCacheHttpClientConcurrent;
|
||||||
|
function downloadSegmentRetry(httpClient, archiveLocation, offset, count) {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
const retries = 5;
|
||||||
|
let failures = 0;
|
||||||
|
while (true) {
|
||||||
|
try {
|
||||||
|
const timeout = 30000;
|
||||||
|
const result = yield promiseWithTimeout(timeout, downloadSegment(httpClient, archiveLocation, offset, count));
|
||||||
|
if (typeof result === 'string') {
|
||||||
|
throw new Error('downloadSegmentRetry failed due to timeout');
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
catch (err) {
|
||||||
|
if (failures >= retries) {
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
failures++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function downloadSegment(httpClient, archiveLocation, offset, count) {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
const partRes = yield (0, requestUtils_1.retryHttpClientResponse)('downloadCachePart', () => __awaiter(this, void 0, void 0, function* () {
|
||||||
|
return yield httpClient.get(archiveLocation, {
|
||||||
|
Range: `bytes=${offset}-${offset + count - 1}`
|
||||||
|
});
|
||||||
|
}));
|
||||||
|
if (!partRes.readBodyBuffer) {
|
||||||
|
throw new Error('Expected HttpClientResponse to implement readBodyBuffer');
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
offset,
|
||||||
|
count,
|
||||||
|
buffer: yield partRes.readBodyBuffer()
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Download the cache using the Azure Storage SDK. Only call this method if the
|
* Download the cache using the Azure Storage SDK. Only call this method if the
|
||||||
* URL points to an Azure Storage endpoint.
|
* URL points to an Azure Storage endpoint.
|
||||||
|
@ -1622,7 +1741,8 @@ exports.getUploadOptions = getUploadOptions;
|
||||||
*/
|
*/
|
||||||
function getDownloadOptions(copy) {
|
function getDownloadOptions(copy) {
|
||||||
const result = {
|
const result = {
|
||||||
useAzureSdk: true,
|
useAzureSdk: false,
|
||||||
|
concurrentBlobDownloads: true,
|
||||||
downloadConcurrency: 8,
|
downloadConcurrency: 8,
|
||||||
timeoutInMs: 30000,
|
timeoutInMs: 30000,
|
||||||
segmentTimeoutInMs: 600000,
|
segmentTimeoutInMs: 600000,
|
||||||
|
@ -1632,6 +1752,9 @@ function getDownloadOptions(copy) {
|
||||||
if (typeof copy.useAzureSdk === 'boolean') {
|
if (typeof copy.useAzureSdk === 'boolean') {
|
||||||
result.useAzureSdk = copy.useAzureSdk;
|
result.useAzureSdk = copy.useAzureSdk;
|
||||||
}
|
}
|
||||||
|
if (typeof copy.concurrentBlobDownloads === 'boolean') {
|
||||||
|
result.concurrentBlobDownloads = copy.concurrentBlobDownloads;
|
||||||
|
}
|
||||||
if (typeof copy.downloadConcurrency === 'number') {
|
if (typeof copy.downloadConcurrency === 'number') {
|
||||||
result.downloadConcurrency = copy.downloadConcurrency;
|
result.downloadConcurrency = copy.downloadConcurrency;
|
||||||
}
|
}
|
||||||
|
@ -2758,8 +2881,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
|
||||||
|
@ -2768,6 +2894,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.
|
||||||
|
|
||||||
|
@ -2777,14 +2928,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.
|
||||||
|
@ -2826,7 +2977,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
|
||||||
|
@ -2906,6 +3057,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"
|
||||||
|
@ -2915,6 +3067,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')
|
||||||
|
@ -2930,6 +3083,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')
|
||||||
|
@ -2951,6 +3105,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`
|
||||||
|
@ -2979,6 +3134,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]))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3003,7 +3166,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
|
||||||
}
|
}
|
||||||
|
@ -3058,7 +3221,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)
|
||||||
|
@ -3503,6 +3666,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
|
||||||
|
@ -3519,7 +3683,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) {
|
||||||
|
@ -3643,9 +3807,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
|
||||||
|
@ -3653,7 +3824,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()
|
||||||
|
@ -3672,20 +3843,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(' ')
|
||||||
|
@ -3693,7 +3863,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+/)
|
||||||
|
@ -3793,7 +3963,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
|
||||||
|
@ -3834,7 +4004,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
|
||||||
|
@ -3893,7 +4063,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)
|
||||||
|
@ -3968,7 +4138,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])
|
||||||
|
@ -4294,7 +4464,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.
|
||||||
|
@ -4305,17 +4475,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) {
|
||||||
|
@ -6490,6 +6660,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) {
|
||||||
|
@ -6994,7 +7177,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;
|
||||||
|
@ -7005,6 +7194,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;
|
||||||
|
@ -7030,13 +7223,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
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
@ -8283,7 +8487,7 @@ const Constants = {
|
||||||
/**
|
/**
|
||||||
* The core-http version
|
* The core-http version
|
||||||
*/
|
*/
|
||||||
coreHttpVersion: "3.0.0",
|
coreHttpVersion: "3.0.2",
|
||||||
/**
|
/**
|
||||||
* Specifies HTTP.
|
* Specifies HTTP.
|
||||||
*/
|
*/
|
||||||
|
@ -8361,13 +8565,6 @@ const XML_CHARKEY = "_";
|
||||||
|
|
||||||
// Copyright (c) Microsoft Corporation.
|
// Copyright (c) Microsoft Corporation.
|
||||||
const validUuidRegex = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/i;
|
const validUuidRegex = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/i;
|
||||||
/**
|
|
||||||
* A constant that indicates whether the environment is node.js or browser based.
|
|
||||||
*/
|
|
||||||
const isNode = typeof process !== "undefined" &&
|
|
||||||
!!process.version &&
|
|
||||||
!!process.versions &&
|
|
||||||
!!process.versions.node;
|
|
||||||
/**
|
/**
|
||||||
* Encodes an URI.
|
* Encodes an URI.
|
||||||
*
|
*
|
||||||
|
@ -13048,7 +13245,7 @@ function createDefaultRequestPolicyFactories(authPolicyFactory, options) {
|
||||||
factories.push(throttlingRetryPolicy());
|
factories.push(throttlingRetryPolicy());
|
||||||
}
|
}
|
||||||
factories.push(deserializationPolicy(options.deserializationContentTypes));
|
factories.push(deserializationPolicy(options.deserializationContentTypes));
|
||||||
if (isNode) {
|
if (coreUtil.isNode) {
|
||||||
factories.push(proxyPolicy(options.proxySettings));
|
factories.push(proxyPolicy(options.proxySettings));
|
||||||
}
|
}
|
||||||
factories.push(logPolicy({ logger: logger.info }));
|
factories.push(logPolicy({ logger: logger.info }));
|
||||||
|
@ -13080,7 +13277,7 @@ function createPipelineFromOptions(pipelineOptions, authPolicyFactory) {
|
||||||
const keepAliveOptions = Object.assign(Object.assign({}, DefaultKeepAliveOptions), pipelineOptions.keepAliveOptions);
|
const keepAliveOptions = Object.assign(Object.assign({}, DefaultKeepAliveOptions), pipelineOptions.keepAliveOptions);
|
||||||
const retryOptions = Object.assign(Object.assign({}, DefaultRetryOptions), pipelineOptions.retryOptions);
|
const retryOptions = Object.assign(Object.assign({}, DefaultRetryOptions), pipelineOptions.retryOptions);
|
||||||
const redirectOptions = Object.assign(Object.assign({}, DefaultRedirectOptions), pipelineOptions.redirectOptions);
|
const redirectOptions = Object.assign(Object.assign({}, DefaultRedirectOptions), pipelineOptions.redirectOptions);
|
||||||
if (isNode) {
|
if (coreUtil.isNode) {
|
||||||
requestPolicyFactories.push(proxyPolicy(pipelineOptions.proxyOptions));
|
requestPolicyFactories.push(proxyPolicy(pipelineOptions.proxyOptions));
|
||||||
}
|
}
|
||||||
const deserializationOptions = Object.assign(Object.assign({}, DefaultDeserializationOptions), pipelineOptions.deserializationOptions);
|
const deserializationOptions = Object.assign(Object.assign({}, DefaultDeserializationOptions), pipelineOptions.deserializationOptions);
|
||||||
|
@ -13093,7 +13290,7 @@ function createPipelineFromOptions(pipelineOptions, authPolicyFactory) {
|
||||||
requestPolicyFactories.push(authPolicyFactory);
|
requestPolicyFactories.push(authPolicyFactory);
|
||||||
}
|
}
|
||||||
requestPolicyFactories.push(logPolicy(loggingOptions));
|
requestPolicyFactories.push(logPolicy(loggingOptions));
|
||||||
if (isNode && pipelineOptions.decompressResponse === false) {
|
if (coreUtil.isNode && pipelineOptions.decompressResponse === false) {
|
||||||
requestPolicyFactories.push(disableResponseDecompressionPolicy());
|
requestPolicyFactories.push(disableResponseDecompressionPolicy());
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
|
@ -13224,10 +13421,7 @@ function flattenResponse(_response, responseSpec) {
|
||||||
}
|
}
|
||||||
function getCredentialScopes(options, baseUri) {
|
function getCredentialScopes(options, baseUri) {
|
||||||
if (options === null || options === void 0 ? void 0 : options.credentialScopes) {
|
if (options === null || options === void 0 ? void 0 : options.credentialScopes) {
|
||||||
const scopes = options.credentialScopes;
|
return options.credentialScopes;
|
||||||
return Array.isArray(scopes)
|
|
||||||
? scopes.map((scope) => new URL(scope).toString())
|
|
||||||
: new URL(scopes).toString();
|
|
||||||
}
|
}
|
||||||
if (baseUri) {
|
if (baseUri) {
|
||||||
return `${baseUri}/.default`;
|
return `${baseUri}/.default`;
|
||||||
|
@ -13460,6 +13654,10 @@ Object.defineProperty(exports, "delay", ({
|
||||||
enumerable: true,
|
enumerable: true,
|
||||||
get: function () { return coreUtil.delay; }
|
get: function () { return coreUtil.delay; }
|
||||||
}));
|
}));
|
||||||
|
Object.defineProperty(exports, "isNode", ({
|
||||||
|
enumerable: true,
|
||||||
|
get: function () { return coreUtil.isNode; }
|
||||||
|
}));
|
||||||
Object.defineProperty(exports, "isTokenCredential", ({
|
Object.defineProperty(exports, "isTokenCredential", ({
|
||||||
enumerable: true,
|
enumerable: true,
|
||||||
get: function () { return coreAuth.isTokenCredential; }
|
get: function () { return coreAuth.isTokenCredential; }
|
||||||
|
@ -13499,7 +13697,6 @@ exports.generateUuid = generateUuid;
|
||||||
exports.getDefaultProxySettings = getDefaultProxySettings;
|
exports.getDefaultProxySettings = getDefaultProxySettings;
|
||||||
exports.getDefaultUserAgentValue = getDefaultUserAgentValue;
|
exports.getDefaultUserAgentValue = getDefaultUserAgentValue;
|
||||||
exports.isDuration = isDuration;
|
exports.isDuration = isDuration;
|
||||||
exports.isNode = isNode;
|
|
||||||
exports.isValidUuid = isValidUuid;
|
exports.isValidUuid = isValidUuid;
|
||||||
exports.keepAlivePolicy = keepAlivePolicy;
|
exports.keepAlivePolicy = keepAlivePolicy;
|
||||||
exports.logPolicy = logPolicy;
|
exports.logPolicy = logPolicy;
|
||||||
|
@ -53999,14 +54196,14 @@ module.exports.implForWrapper = function (wrapper) {
|
||||||
this.saxParser.onopentag = (function(_this) {
|
this.saxParser.onopentag = (function(_this) {
|
||||||
return function(node) {
|
return function(node) {
|
||||||
var key, newValue, obj, processedKey, ref;
|
var key, newValue, obj, processedKey, ref;
|
||||||
obj = {};
|
obj = Object.create(null);
|
||||||
obj[charkey] = "";
|
obj[charkey] = "";
|
||||||
if (!_this.options.ignoreAttrs) {
|
if (!_this.options.ignoreAttrs) {
|
||||||
ref = node.attributes;
|
ref = node.attributes;
|
||||||
for (key in ref) {
|
for (key in ref) {
|
||||||
if (!hasProp.call(ref, key)) continue;
|
if (!hasProp.call(ref, key)) continue;
|
||||||
if (!(attrkey in obj) && !_this.options.mergeAttrs) {
|
if (!(attrkey in obj) && !_this.options.mergeAttrs) {
|
||||||
obj[attrkey] = {};
|
obj[attrkey] = Object.create(null);
|
||||||
}
|
}
|
||||||
newValue = _this.options.attrValueProcessors ? processItem(_this.options.attrValueProcessors, node.attributes[key], key) : node.attributes[key];
|
newValue = _this.options.attrValueProcessors ? processItem(_this.options.attrValueProcessors, node.attributes[key], key) : node.attributes[key];
|
||||||
processedKey = _this.options.attrNameProcessors ? processItem(_this.options.attrNameProcessors, key) : key;
|
processedKey = _this.options.attrNameProcessors ? processItem(_this.options.attrNameProcessors, key) : key;
|
||||||
|
@ -54056,7 +54253,11 @@ module.exports.implForWrapper = function (wrapper) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (isEmpty(obj)) {
|
if (isEmpty(obj)) {
|
||||||
obj = _this.options.emptyTag !== '' ? _this.options.emptyTag : emptyStr;
|
if (typeof _this.options.emptyTag === 'function') {
|
||||||
|
obj = _this.options.emptyTag();
|
||||||
|
} else {
|
||||||
|
obj = _this.options.emptyTag !== '' ? _this.options.emptyTag : emptyStr;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (_this.options.validator != null) {
|
if (_this.options.validator != null) {
|
||||||
xpath = "/" + ((function() {
|
xpath = "/" + ((function() {
|
||||||
|
@ -54080,7 +54281,7 @@ module.exports.implForWrapper = function (wrapper) {
|
||||||
}
|
}
|
||||||
if (_this.options.explicitChildren && !_this.options.mergeAttrs && typeof obj === 'object') {
|
if (_this.options.explicitChildren && !_this.options.mergeAttrs && typeof obj === 'object') {
|
||||||
if (!_this.options.preserveChildrenOrder) {
|
if (!_this.options.preserveChildrenOrder) {
|
||||||
node = {};
|
node = Object.create(null);
|
||||||
if (_this.options.attrkey in obj) {
|
if (_this.options.attrkey in obj) {
|
||||||
node[_this.options.attrkey] = obj[_this.options.attrkey];
|
node[_this.options.attrkey] = obj[_this.options.attrkey];
|
||||||
delete obj[_this.options.attrkey];
|
delete obj[_this.options.attrkey];
|
||||||
|
@ -54095,7 +54296,7 @@ module.exports.implForWrapper = function (wrapper) {
|
||||||
obj = node;
|
obj = node;
|
||||||
} else if (s) {
|
} else if (s) {
|
||||||
s[_this.options.childkey] = s[_this.options.childkey] || [];
|
s[_this.options.childkey] = s[_this.options.childkey] || [];
|
||||||
objClone = {};
|
objClone = Object.create(null);
|
||||||
for (key in obj) {
|
for (key in obj) {
|
||||||
if (!hasProp.call(obj, key)) continue;
|
if (!hasProp.call(obj, key)) continue;
|
||||||
objClone[key] = obj[key];
|
objClone[key] = obj[key];
|
||||||
|
@ -54112,7 +54313,7 @@ module.exports.implForWrapper = function (wrapper) {
|
||||||
} else {
|
} else {
|
||||||
if (_this.options.explicitRoot) {
|
if (_this.options.explicitRoot) {
|
||||||
old = obj;
|
old = obj;
|
||||||
obj = {};
|
obj = Object.create(null);
|
||||||
obj[nodeName] = old;
|
obj[nodeName] = old;
|
||||||
}
|
}
|
||||||
_this.resultObject = obj;
|
_this.resultObject = obj;
|
||||||
|
|
2
dist/cache-save/index.js.map
generated
vendored
2
dist/cache-save/index.js.map
generated
vendored
File diff suppressed because one or more lines are too long
357
dist/index.js
generated
vendored
357
dist/index.js
generated
vendored
|
@ -490,10 +490,7 @@ function getCacheVersion(paths, compressionMethod, enableCrossOsArchive = false)
|
||||||
}
|
}
|
||||||
// Add salt to cache version to support breaking changes in cache entry
|
// Add salt to cache version to support breaking changes in cache entry
|
||||||
components.push(versionSalt);
|
components.push(versionSalt);
|
||||||
return crypto
|
return crypto.createHash('sha256').update(components.join('|')).digest('hex');
|
||||||
.createHash('sha256')
|
|
||||||
.update(components.join('|'))
|
|
||||||
.digest('hex');
|
|
||||||
}
|
}
|
||||||
exports.getCacheVersion = getCacheVersion;
|
exports.getCacheVersion = getCacheVersion;
|
||||||
function getCacheEntry(keys, paths, options) {
|
function getCacheEntry(keys, paths, options) {
|
||||||
|
@ -546,13 +543,21 @@ function downloadCache(archiveLocation, archivePath, options) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
const archiveUrl = new url_1.URL(archiveLocation);
|
const archiveUrl = new url_1.URL(archiveLocation);
|
||||||
const downloadOptions = (0, options_1.getDownloadOptions)(options);
|
const downloadOptions = (0, options_1.getDownloadOptions)(options);
|
||||||
if (downloadOptions.useAzureSdk &&
|
if (archiveUrl.hostname.endsWith('.blob.core.windows.net')) {
|
||||||
archiveUrl.hostname.endsWith('.blob.core.windows.net')) {
|
if (downloadOptions.useAzureSdk) {
|
||||||
// Use Azure storage SDK to download caches hosted on Azure to improve speed and reliability.
|
// Use Azure storage SDK to download caches hosted on Azure to improve speed and reliability.
|
||||||
yield (0, downloadUtils_1.downloadCacheStorageSDK)(archiveLocation, archivePath, downloadOptions);
|
yield (0, downloadUtils_1.downloadCacheStorageSDK)(archiveLocation, archivePath, downloadOptions);
|
||||||
|
}
|
||||||
|
else if (downloadOptions.concurrentBlobDownloads) {
|
||||||
|
// Use concurrent implementation with HttpClient to work around blob SDK issue
|
||||||
|
yield (0, downloadUtils_1.downloadCacheHttpClientConcurrent)(archiveLocation, archivePath, downloadOptions);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Otherwise, download using the Actions http-client.
|
||||||
|
yield (0, downloadUtils_1.downloadCacheHttpClient)(archiveLocation, archivePath);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Otherwise, download using the Actions http-client.
|
|
||||||
yield (0, downloadUtils_1.downloadCacheHttpClient)(archiveLocation, archivePath);
|
yield (0, downloadUtils_1.downloadCacheHttpClient)(archiveLocation, archivePath);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -585,9 +590,7 @@ function getContentRange(start, end) {
|
||||||
}
|
}
|
||||||
function uploadChunk(httpClient, resourceUrl, openStream, start, end) {
|
function uploadChunk(httpClient, resourceUrl, openStream, start, end) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
core.debug(`Uploading chunk of size ${end -
|
core.debug(`Uploading chunk of size ${end - start + 1} bytes at offset ${start} with content range: ${getContentRange(start, end)}`);
|
||||||
start +
|
|
||||||
1} bytes at offset ${start} with content range: ${getContentRange(start, end)}`);
|
|
||||||
const additionalHeaders = {
|
const additionalHeaders = {
|
||||||
'Content-Type': 'application/octet-stream',
|
'Content-Type': 'application/octet-stream',
|
||||||
'Content-Range': getContentRange(start, end)
|
'Content-Range': getContentRange(start, end)
|
||||||
|
@ -755,35 +758,42 @@ function getArchiveFileSizeInBytes(filePath) {
|
||||||
}
|
}
|
||||||
exports.getArchiveFileSizeInBytes = getArchiveFileSizeInBytes;
|
exports.getArchiveFileSizeInBytes = getArchiveFileSizeInBytes;
|
||||||
function resolvePaths(patterns) {
|
function resolvePaths(patterns) {
|
||||||
var e_1, _a;
|
var _a, e_1, _b, _c;
|
||||||
var _b;
|
var _d;
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
const paths = [];
|
const paths = [];
|
||||||
const workspace = (_b = process.env['GITHUB_WORKSPACE']) !== null && _b !== void 0 ? _b : process.cwd();
|
const workspace = (_d = process.env['GITHUB_WORKSPACE']) !== null && _d !== void 0 ? _d : process.cwd();
|
||||||
const globber = yield glob.create(patterns.join('\n'), {
|
const globber = yield glob.create(patterns.join('\n'), {
|
||||||
implicitDescendants: false
|
implicitDescendants: false
|
||||||
});
|
});
|
||||||
try {
|
try {
|
||||||
for (var _c = __asyncValues(globber.globGenerator()), _d; _d = yield _c.next(), !_d.done;) {
|
for (var _e = true, _f = __asyncValues(globber.globGenerator()), _g; _g = yield _f.next(), _a = _g.done, !_a;) {
|
||||||
const file = _d.value;
|
_c = _g.value;
|
||||||
const relativeFile = path
|
_e = false;
|
||||||
.relative(workspace, file)
|
try {
|
||||||
.replace(new RegExp(`\\${path.sep}`, 'g'), '/');
|
const file = _c;
|
||||||
core.debug(`Matched: ${relativeFile}`);
|
const relativeFile = path
|
||||||
// Paths are made relative so the tar entries are all relative to the root of the workspace.
|
.relative(workspace, file)
|
||||||
if (relativeFile === '') {
|
.replace(new RegExp(`\\${path.sep}`, 'g'), '/');
|
||||||
// path.relative returns empty string if workspace and file are equal
|
core.debug(`Matched: ${relativeFile}`);
|
||||||
paths.push('.');
|
// Paths are made relative so the tar entries are all relative to the root of the workspace.
|
||||||
|
if (relativeFile === '') {
|
||||||
|
// path.relative returns empty string if workspace and file are equal
|
||||||
|
paths.push('.');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
paths.push(`${relativeFile}`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
finally {
|
||||||
paths.push(`${relativeFile}`);
|
_e = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
||||||
finally {
|
finally {
|
||||||
try {
|
try {
|
||||||
if (_d && !_d.done && (_a = _c.return)) yield _a.call(_c);
|
if (!_e && !_a && (_b = _f.return)) yield _b.call(_f);
|
||||||
}
|
}
|
||||||
finally { if (e_1) throw e_1.error; }
|
finally { if (e_1) throw e_1.error; }
|
||||||
}
|
}
|
||||||
|
@ -948,7 +958,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.downloadCacheStorageSDK = exports.downloadCacheHttpClient = exports.DownloadProgress = void 0;
|
exports.downloadCacheStorageSDK = exports.downloadCacheHttpClientConcurrent = exports.downloadCacheHttpClient = exports.DownloadProgress = void 0;
|
||||||
const core = __importStar(__nccwpck_require__(2186));
|
const core = __importStar(__nccwpck_require__(2186));
|
||||||
const http_client_1 = __nccwpck_require__(6255);
|
const http_client_1 = __nccwpck_require__(6255);
|
||||||
const storage_blob_1 = __nccwpck_require__(4100);
|
const storage_blob_1 = __nccwpck_require__(4100);
|
||||||
|
@ -1105,6 +1115,115 @@ function downloadCacheHttpClient(archiveLocation, archivePath) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
exports.downloadCacheHttpClient = downloadCacheHttpClient;
|
exports.downloadCacheHttpClient = downloadCacheHttpClient;
|
||||||
|
/**
|
||||||
|
* Download the cache using the Actions toolkit http-client concurrently
|
||||||
|
*
|
||||||
|
* @param archiveLocation the URL for the cache
|
||||||
|
* @param archivePath the local path where the cache is saved
|
||||||
|
*/
|
||||||
|
function downloadCacheHttpClientConcurrent(archiveLocation, archivePath, options) {
|
||||||
|
var _a;
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
const archiveDescriptor = yield fs.promises.open(archivePath, 'w');
|
||||||
|
const httpClient = new http_client_1.HttpClient('actions/cache', undefined, {
|
||||||
|
socketTimeout: options.timeoutInMs,
|
||||||
|
keepAlive: true
|
||||||
|
});
|
||||||
|
try {
|
||||||
|
const res = yield (0, requestUtils_1.retryHttpClientResponse)('downloadCacheMetadata', () => __awaiter(this, void 0, void 0, function* () { return yield httpClient.request('HEAD', archiveLocation, null, {}); }));
|
||||||
|
const lengthHeader = res.message.headers['content-length'];
|
||||||
|
if (lengthHeader === undefined || lengthHeader === null) {
|
||||||
|
throw new Error('Content-Length not found on blob response');
|
||||||
|
}
|
||||||
|
const length = parseInt(lengthHeader);
|
||||||
|
if (Number.isNaN(length)) {
|
||||||
|
throw new Error(`Could not interpret Content-Length: ${length}`);
|
||||||
|
}
|
||||||
|
const downloads = [];
|
||||||
|
const blockSize = 4 * 1024 * 1024;
|
||||||
|
for (let offset = 0; offset < length; offset += blockSize) {
|
||||||
|
const count = Math.min(blockSize, length - offset);
|
||||||
|
downloads.push({
|
||||||
|
offset,
|
||||||
|
promiseGetter: () => __awaiter(this, void 0, void 0, function* () {
|
||||||
|
return yield downloadSegmentRetry(httpClient, archiveLocation, offset, count);
|
||||||
|
})
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// reverse to use .pop instead of .shift
|
||||||
|
downloads.reverse();
|
||||||
|
let actives = 0;
|
||||||
|
let bytesDownloaded = 0;
|
||||||
|
const progress = new DownloadProgress(length);
|
||||||
|
progress.startDisplayTimer();
|
||||||
|
const progressFn = progress.onProgress();
|
||||||
|
const activeDownloads = [];
|
||||||
|
let nextDownload;
|
||||||
|
const waitAndWrite = () => __awaiter(this, void 0, void 0, function* () {
|
||||||
|
const segment = yield Promise.race(Object.values(activeDownloads));
|
||||||
|
yield archiveDescriptor.write(segment.buffer, 0, segment.count, segment.offset);
|
||||||
|
actives--;
|
||||||
|
delete activeDownloads[segment.offset];
|
||||||
|
bytesDownloaded += segment.count;
|
||||||
|
progressFn({ loadedBytes: bytesDownloaded });
|
||||||
|
});
|
||||||
|
while ((nextDownload = downloads.pop())) {
|
||||||
|
activeDownloads[nextDownload.offset] = nextDownload.promiseGetter();
|
||||||
|
actives++;
|
||||||
|
if (actives >= ((_a = options.downloadConcurrency) !== null && _a !== void 0 ? _a : 10)) {
|
||||||
|
yield waitAndWrite();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while (actives > 0) {
|
||||||
|
yield waitAndWrite();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
httpClient.dispose();
|
||||||
|
yield archiveDescriptor.close();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
exports.downloadCacheHttpClientConcurrent = downloadCacheHttpClientConcurrent;
|
||||||
|
function downloadSegmentRetry(httpClient, archiveLocation, offset, count) {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
const retries = 5;
|
||||||
|
let failures = 0;
|
||||||
|
while (true) {
|
||||||
|
try {
|
||||||
|
const timeout = 30000;
|
||||||
|
const result = yield promiseWithTimeout(timeout, downloadSegment(httpClient, archiveLocation, offset, count));
|
||||||
|
if (typeof result === 'string') {
|
||||||
|
throw new Error('downloadSegmentRetry failed due to timeout');
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
catch (err) {
|
||||||
|
if (failures >= retries) {
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
failures++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function downloadSegment(httpClient, archiveLocation, offset, count) {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
const partRes = yield (0, requestUtils_1.retryHttpClientResponse)('downloadCachePart', () => __awaiter(this, void 0, void 0, function* () {
|
||||||
|
return yield httpClient.get(archiveLocation, {
|
||||||
|
Range: `bytes=${offset}-${offset + count - 1}`
|
||||||
|
});
|
||||||
|
}));
|
||||||
|
if (!partRes.readBodyBuffer) {
|
||||||
|
throw new Error('Expected HttpClientResponse to implement readBodyBuffer');
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
offset,
|
||||||
|
count,
|
||||||
|
buffer: yield partRes.readBodyBuffer()
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Download the cache using the Azure Storage SDK. Only call this method if the
|
* Download the cache using the Azure Storage SDK. Only call this method if the
|
||||||
* URL points to an Azure Storage endpoint.
|
* URL points to an Azure Storage endpoint.
|
||||||
|
@ -1670,7 +1789,8 @@ exports.getUploadOptions = getUploadOptions;
|
||||||
*/
|
*/
|
||||||
function getDownloadOptions(copy) {
|
function getDownloadOptions(copy) {
|
||||||
const result = {
|
const result = {
|
||||||
useAzureSdk: true,
|
useAzureSdk: false,
|
||||||
|
concurrentBlobDownloads: true,
|
||||||
downloadConcurrency: 8,
|
downloadConcurrency: 8,
|
||||||
timeoutInMs: 30000,
|
timeoutInMs: 30000,
|
||||||
segmentTimeoutInMs: 600000,
|
segmentTimeoutInMs: 600000,
|
||||||
|
@ -1680,6 +1800,9 @@ function getDownloadOptions(copy) {
|
||||||
if (typeof copy.useAzureSdk === 'boolean') {
|
if (typeof copy.useAzureSdk === 'boolean') {
|
||||||
result.useAzureSdk = copy.useAzureSdk;
|
result.useAzureSdk = copy.useAzureSdk;
|
||||||
}
|
}
|
||||||
|
if (typeof copy.concurrentBlobDownloads === 'boolean') {
|
||||||
|
result.concurrentBlobDownloads = copy.concurrentBlobDownloads;
|
||||||
|
}
|
||||||
if (typeof copy.downloadConcurrency === 'number') {
|
if (typeof copy.downloadConcurrency === 'number') {
|
||||||
result.downloadConcurrency = copy.downloadConcurrency;
|
result.downloadConcurrency = copy.downloadConcurrency;
|
||||||
}
|
}
|
||||||
|
@ -2806,8 +2929,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
|
||||||
|
@ -2816,6 +2942,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.
|
||||||
|
|
||||||
|
@ -2825,14 +2976,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.
|
||||||
|
@ -2874,7 +3025,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
|
||||||
|
@ -2954,6 +3105,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"
|
||||||
|
@ -2963,6 +3115,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')
|
||||||
|
@ -2978,6 +3131,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')
|
||||||
|
@ -2999,6 +3153,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`
|
||||||
|
@ -3027,6 +3182,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]))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3051,7 +3214,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
|
||||||
}
|
}
|
||||||
|
@ -3106,7 +3269,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)
|
||||||
|
@ -3551,6 +3714,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
|
||||||
|
@ -3567,7 +3731,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) {
|
||||||
|
@ -3691,9 +3855,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
|
||||||
|
@ -3701,7 +3872,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()
|
||||||
|
@ -3720,20 +3891,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(' ')
|
||||||
|
@ -3741,7 +3911,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+/)
|
||||||
|
@ -3841,7 +4011,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
|
||||||
|
@ -3882,7 +4052,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
|
||||||
|
@ -3941,7 +4111,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)
|
||||||
|
@ -4016,7 +4186,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])
|
||||||
|
@ -4342,7 +4512,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.
|
||||||
|
@ -4353,17 +4523,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) {
|
||||||
|
@ -7730,6 +7900,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) {
|
||||||
|
@ -8234,7 +8417,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;
|
||||||
|
@ -8245,6 +8434,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;
|
||||||
|
@ -8270,13 +8463,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
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
@ -9523,7 +9727,7 @@ const Constants = {
|
||||||
/**
|
/**
|
||||||
* The core-http version
|
* The core-http version
|
||||||
*/
|
*/
|
||||||
coreHttpVersion: "3.0.0",
|
coreHttpVersion: "3.0.2",
|
||||||
/**
|
/**
|
||||||
* Specifies HTTP.
|
* Specifies HTTP.
|
||||||
*/
|
*/
|
||||||
|
@ -9601,13 +9805,6 @@ const XML_CHARKEY = "_";
|
||||||
|
|
||||||
// Copyright (c) Microsoft Corporation.
|
// Copyright (c) Microsoft Corporation.
|
||||||
const validUuidRegex = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/i;
|
const validUuidRegex = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/i;
|
||||||
/**
|
|
||||||
* A constant that indicates whether the environment is node.js or browser based.
|
|
||||||
*/
|
|
||||||
const isNode = typeof process !== "undefined" &&
|
|
||||||
!!process.version &&
|
|
||||||
!!process.versions &&
|
|
||||||
!!process.versions.node;
|
|
||||||
/**
|
/**
|
||||||
* Encodes an URI.
|
* Encodes an URI.
|
||||||
*
|
*
|
||||||
|
@ -14288,7 +14485,7 @@ function createDefaultRequestPolicyFactories(authPolicyFactory, options) {
|
||||||
factories.push(throttlingRetryPolicy());
|
factories.push(throttlingRetryPolicy());
|
||||||
}
|
}
|
||||||
factories.push(deserializationPolicy(options.deserializationContentTypes));
|
factories.push(deserializationPolicy(options.deserializationContentTypes));
|
||||||
if (isNode) {
|
if (coreUtil.isNode) {
|
||||||
factories.push(proxyPolicy(options.proxySettings));
|
factories.push(proxyPolicy(options.proxySettings));
|
||||||
}
|
}
|
||||||
factories.push(logPolicy({ logger: logger.info }));
|
factories.push(logPolicy({ logger: logger.info }));
|
||||||
|
@ -14320,7 +14517,7 @@ function createPipelineFromOptions(pipelineOptions, authPolicyFactory) {
|
||||||
const keepAliveOptions = Object.assign(Object.assign({}, DefaultKeepAliveOptions), pipelineOptions.keepAliveOptions);
|
const keepAliveOptions = Object.assign(Object.assign({}, DefaultKeepAliveOptions), pipelineOptions.keepAliveOptions);
|
||||||
const retryOptions = Object.assign(Object.assign({}, DefaultRetryOptions), pipelineOptions.retryOptions);
|
const retryOptions = Object.assign(Object.assign({}, DefaultRetryOptions), pipelineOptions.retryOptions);
|
||||||
const redirectOptions = Object.assign(Object.assign({}, DefaultRedirectOptions), pipelineOptions.redirectOptions);
|
const redirectOptions = Object.assign(Object.assign({}, DefaultRedirectOptions), pipelineOptions.redirectOptions);
|
||||||
if (isNode) {
|
if (coreUtil.isNode) {
|
||||||
requestPolicyFactories.push(proxyPolicy(pipelineOptions.proxyOptions));
|
requestPolicyFactories.push(proxyPolicy(pipelineOptions.proxyOptions));
|
||||||
}
|
}
|
||||||
const deserializationOptions = Object.assign(Object.assign({}, DefaultDeserializationOptions), pipelineOptions.deserializationOptions);
|
const deserializationOptions = Object.assign(Object.assign({}, DefaultDeserializationOptions), pipelineOptions.deserializationOptions);
|
||||||
|
@ -14333,7 +14530,7 @@ function createPipelineFromOptions(pipelineOptions, authPolicyFactory) {
|
||||||
requestPolicyFactories.push(authPolicyFactory);
|
requestPolicyFactories.push(authPolicyFactory);
|
||||||
}
|
}
|
||||||
requestPolicyFactories.push(logPolicy(loggingOptions));
|
requestPolicyFactories.push(logPolicy(loggingOptions));
|
||||||
if (isNode && pipelineOptions.decompressResponse === false) {
|
if (coreUtil.isNode && pipelineOptions.decompressResponse === false) {
|
||||||
requestPolicyFactories.push(disableResponseDecompressionPolicy());
|
requestPolicyFactories.push(disableResponseDecompressionPolicy());
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
|
@ -14464,10 +14661,7 @@ function flattenResponse(_response, responseSpec) {
|
||||||
}
|
}
|
||||||
function getCredentialScopes(options, baseUri) {
|
function getCredentialScopes(options, baseUri) {
|
||||||
if (options === null || options === void 0 ? void 0 : options.credentialScopes) {
|
if (options === null || options === void 0 ? void 0 : options.credentialScopes) {
|
||||||
const scopes = options.credentialScopes;
|
return options.credentialScopes;
|
||||||
return Array.isArray(scopes)
|
|
||||||
? scopes.map((scope) => new URL(scope).toString())
|
|
||||||
: new URL(scopes).toString();
|
|
||||||
}
|
}
|
||||||
if (baseUri) {
|
if (baseUri) {
|
||||||
return `${baseUri}/.default`;
|
return `${baseUri}/.default`;
|
||||||
|
@ -14700,6 +14894,10 @@ Object.defineProperty(exports, "delay", ({
|
||||||
enumerable: true,
|
enumerable: true,
|
||||||
get: function () { return coreUtil.delay; }
|
get: function () { return coreUtil.delay; }
|
||||||
}));
|
}));
|
||||||
|
Object.defineProperty(exports, "isNode", ({
|
||||||
|
enumerable: true,
|
||||||
|
get: function () { return coreUtil.isNode; }
|
||||||
|
}));
|
||||||
Object.defineProperty(exports, "isTokenCredential", ({
|
Object.defineProperty(exports, "isTokenCredential", ({
|
||||||
enumerable: true,
|
enumerable: true,
|
||||||
get: function () { return coreAuth.isTokenCredential; }
|
get: function () { return coreAuth.isTokenCredential; }
|
||||||
|
@ -14739,7 +14937,6 @@ exports.generateUuid = generateUuid;
|
||||||
exports.getDefaultProxySettings = getDefaultProxySettings;
|
exports.getDefaultProxySettings = getDefaultProxySettings;
|
||||||
exports.getDefaultUserAgentValue = getDefaultUserAgentValue;
|
exports.getDefaultUserAgentValue = getDefaultUserAgentValue;
|
||||||
exports.isDuration = isDuration;
|
exports.isDuration = isDuration;
|
||||||
exports.isNode = isNode;
|
|
||||||
exports.isValidUuid = isValidUuid;
|
exports.isValidUuid = isValidUuid;
|
||||||
exports.keepAlivePolicy = keepAlivePolicy;
|
exports.keepAlivePolicy = keepAlivePolicy;
|
||||||
exports.logPolicy = logPolicy;
|
exports.logPolicy = logPolicy;
|
||||||
|
@ -55239,14 +55436,14 @@ module.exports.implForWrapper = function (wrapper) {
|
||||||
this.saxParser.onopentag = (function(_this) {
|
this.saxParser.onopentag = (function(_this) {
|
||||||
return function(node) {
|
return function(node) {
|
||||||
var key, newValue, obj, processedKey, ref;
|
var key, newValue, obj, processedKey, ref;
|
||||||
obj = {};
|
obj = Object.create(null);
|
||||||
obj[charkey] = "";
|
obj[charkey] = "";
|
||||||
if (!_this.options.ignoreAttrs) {
|
if (!_this.options.ignoreAttrs) {
|
||||||
ref = node.attributes;
|
ref = node.attributes;
|
||||||
for (key in ref) {
|
for (key in ref) {
|
||||||
if (!hasProp.call(ref, key)) continue;
|
if (!hasProp.call(ref, key)) continue;
|
||||||
if (!(attrkey in obj) && !_this.options.mergeAttrs) {
|
if (!(attrkey in obj) && !_this.options.mergeAttrs) {
|
||||||
obj[attrkey] = {};
|
obj[attrkey] = Object.create(null);
|
||||||
}
|
}
|
||||||
newValue = _this.options.attrValueProcessors ? processItem(_this.options.attrValueProcessors, node.attributes[key], key) : node.attributes[key];
|
newValue = _this.options.attrValueProcessors ? processItem(_this.options.attrValueProcessors, node.attributes[key], key) : node.attributes[key];
|
||||||
processedKey = _this.options.attrNameProcessors ? processItem(_this.options.attrNameProcessors, key) : key;
|
processedKey = _this.options.attrNameProcessors ? processItem(_this.options.attrNameProcessors, key) : key;
|
||||||
|
@ -55296,7 +55493,11 @@ module.exports.implForWrapper = function (wrapper) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (isEmpty(obj)) {
|
if (isEmpty(obj)) {
|
||||||
obj = _this.options.emptyTag !== '' ? _this.options.emptyTag : emptyStr;
|
if (typeof _this.options.emptyTag === 'function') {
|
||||||
|
obj = _this.options.emptyTag();
|
||||||
|
} else {
|
||||||
|
obj = _this.options.emptyTag !== '' ? _this.options.emptyTag : emptyStr;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (_this.options.validator != null) {
|
if (_this.options.validator != null) {
|
||||||
xpath = "/" + ((function() {
|
xpath = "/" + ((function() {
|
||||||
|
@ -55320,7 +55521,7 @@ module.exports.implForWrapper = function (wrapper) {
|
||||||
}
|
}
|
||||||
if (_this.options.explicitChildren && !_this.options.mergeAttrs && typeof obj === 'object') {
|
if (_this.options.explicitChildren && !_this.options.mergeAttrs && typeof obj === 'object') {
|
||||||
if (!_this.options.preserveChildrenOrder) {
|
if (!_this.options.preserveChildrenOrder) {
|
||||||
node = {};
|
node = Object.create(null);
|
||||||
if (_this.options.attrkey in obj) {
|
if (_this.options.attrkey in obj) {
|
||||||
node[_this.options.attrkey] = obj[_this.options.attrkey];
|
node[_this.options.attrkey] = obj[_this.options.attrkey];
|
||||||
delete obj[_this.options.attrkey];
|
delete obj[_this.options.attrkey];
|
||||||
|
@ -55335,7 +55536,7 @@ module.exports.implForWrapper = function (wrapper) {
|
||||||
obj = node;
|
obj = node;
|
||||||
} else if (s) {
|
} else if (s) {
|
||||||
s[_this.options.childkey] = s[_this.options.childkey] || [];
|
s[_this.options.childkey] = s[_this.options.childkey] || [];
|
||||||
objClone = {};
|
objClone = Object.create(null);
|
||||||
for (key in obj) {
|
for (key in obj) {
|
||||||
if (!hasProp.call(obj, key)) continue;
|
if (!hasProp.call(obj, key)) continue;
|
||||||
objClone[key] = obj[key];
|
objClone[key] = obj[key];
|
||||||
|
@ -55352,7 +55553,7 @@ module.exports.implForWrapper = function (wrapper) {
|
||||||
} else {
|
} else {
|
||||||
if (_this.options.explicitRoot) {
|
if (_this.options.explicitRoot) {
|
||||||
old = obj;
|
old = obj;
|
||||||
obj = {};
|
obj = Object.create(null);
|
||||||
obj[nodeName] = old;
|
obj[nodeName] = old;
|
||||||
}
|
}
|
||||||
_this.resultObject = obj;
|
_this.resultObject = obj;
|
||||||
|
|
2
dist/index.js.map
generated
vendored
2
dist/index.js.map
generated
vendored
File diff suppressed because one or more lines are too long
1474
package-lock.json
generated
1474
package-lock.json
generated
File diff suppressed because it is too large
Load diff
12
package.json
12
package.json
|
@ -26,23 +26,25 @@
|
||||||
"author": "",
|
"author": "",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/cache": "^3.2.1",
|
"@actions/cache": "^3.2.2",
|
||||||
"@actions/core": "^1.10.0",
|
"@actions/core": "^1.10.0",
|
||||||
"@actions/exec": "^1.1.1",
|
"@actions/exec": "^1.1.1",
|
||||||
"@actions/glob": "^0.4.0"
|
"@actions/glob": "^0.4.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@tsconfig/node16": "^16.1.0",
|
"@tsconfig/node16": "^16.1.0",
|
||||||
"@types/node": "^20.4.8",
|
"@types/node": "^20.4.9",
|
||||||
"@typescript-eslint/parser": "^5.62.0",
|
"@typescript-eslint/eslint-plugin": "^6.3.0",
|
||||||
|
"@typescript-eslint/parser": "^6.3.0",
|
||||||
"@vercel/ncc": "^0.36.1",
|
"@vercel/ncc": "^0.36.1",
|
||||||
"eslint": "^8.46.0",
|
"eslint": "^8.46.0",
|
||||||
"eslint-plugin-github": "^4.9.0",
|
"eslint-plugin-github": "^4.9.2",
|
||||||
"eslint-plugin-jest": "^27.2.3",
|
"eslint-plugin-jest": "^27.2.3",
|
||||||
|
"eslint-plugin-prettier": "^5.0.0",
|
||||||
"husky": "^8.0.3",
|
"husky": "^8.0.3",
|
||||||
"jest": "^29.6.2",
|
"jest": "^29.6.2",
|
||||||
"js-yaml": "^4.1.0",
|
"js-yaml": "^4.1.0",
|
||||||
"prettier": "2.8.8",
|
"prettier": "^3.0.1",
|
||||||
"ts-jest": "^29.1.1",
|
"ts-jest": "^29.1.1",
|
||||||
"typescript": "^5.1.6"
|
"typescript": "^5.1.6"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue