mirror of
				https://gitea.com/actions/cache.git
				synced 2025-11-04 07:47:08 +00:00 
			
		
		
		
	Compare commits
	
		
			4 Commits
		
	
	
		
			bishal-pdM
			...
			v3.1.0-bet
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					f33ca902b8 | ||
| 
						 | 
					d48d03435b | ||
| 
						 | 
					593e91a38b | ||
| 
						 | 
					e4c2242eff | 
@@ -40,3 +40,9 @@
 | 
				
			|||||||
### 3.0.11
 | 
					### 3.0.11
 | 
				
			||||||
- Update toolkit version to 3.0.5 to include `@actions/core@^1.10.0`
 | 
					- Update toolkit version to 3.0.5 to include `@actions/core@^1.10.0`
 | 
				
			||||||
- Update `@actions/cache` to use updated `saveState` and `setOutput` functions from `@actions/core@^1.10.0`
 | 
					- Update `@actions/cache` to use updated `saveState` and `setOutput` functions from `@actions/core@^1.10.0`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 3.1.0-beta.1
 | 
				
			||||||
 | 
					- Update `@actions/cache` on windows to use gnu tar and zstd by default and fallback to bsdtar and zstd if gnu tar is not available. ([issue](https://github.com/actions/cache/issues/984))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 3.1.0-beta.2
 | 
				
			||||||
 | 
					- Added support for fallback to gzip to restore old caches on windows.
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										694
									
								
								dist/restore/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										694
									
								
								dist/restore/index.js
									
									
									
									
										vendored
									
									
								
							@@ -1177,10 +1177,6 @@ function getVersion(app) {
 | 
				
			|||||||
// Use zstandard if possible to maximize cache performance
 | 
					// Use zstandard if possible to maximize cache performance
 | 
				
			||||||
function getCompressionMethod() {
 | 
					function getCompressionMethod() {
 | 
				
			||||||
    return __awaiter(this, void 0, void 0, function* () {
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
        if (process.platform === 'win32' && !(yield isGnuTarInstalled())) {
 | 
					 | 
				
			||||||
            // Disable zstd due to bug https://github.com/actions/cache/issues/301
 | 
					 | 
				
			||||||
            return constants_1.CompressionMethod.Gzip;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        const versionOutput = yield getVersion('zstd');
 | 
					        const versionOutput = yield getVersion('zstd');
 | 
				
			||||||
        const version = semver.clean(versionOutput);
 | 
					        const version = semver.clean(versionOutput);
 | 
				
			||||||
        if (!versionOutput.toLowerCase().includes('zstd command line interface')) {
 | 
					        if (!versionOutput.toLowerCase().includes('zstd command line interface')) {
 | 
				
			||||||
@@ -1204,13 +1200,16 @@ function getCacheFileName(compressionMethod) {
 | 
				
			|||||||
        : constants_1.CacheFilename.Zstd;
 | 
					        : constants_1.CacheFilename.Zstd;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
exports.getCacheFileName = getCacheFileName;
 | 
					exports.getCacheFileName = getCacheFileName;
 | 
				
			||||||
function isGnuTarInstalled() {
 | 
					function getGnuTarPathOnWindows() {
 | 
				
			||||||
    return __awaiter(this, void 0, void 0, function* () {
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
 | 
					        if (fs.existsSync(constants_1.GnuTarPathOnWindows)) {
 | 
				
			||||||
 | 
					            return constants_1.GnuTarPathOnWindows;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        const versionOutput = yield getVersion('tar');
 | 
					        const versionOutput = yield getVersion('tar');
 | 
				
			||||||
        return versionOutput.toLowerCase().includes('gnu tar');
 | 
					        return versionOutput.toLowerCase().includes('gnu tar') ? io.which('tar') : '';
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
exports.isGnuTarInstalled = isGnuTarInstalled;
 | 
					exports.getGnuTarPathOnWindows = getGnuTarPathOnWindows;
 | 
				
			||||||
function assertDefined(name, value) {
 | 
					function assertDefined(name, value) {
 | 
				
			||||||
    if (value === undefined) {
 | 
					    if (value === undefined) {
 | 
				
			||||||
        throw Error(`Expected ${name} but value was undefiend`);
 | 
					        throw Error(`Expected ${name} but value was undefiend`);
 | 
				
			||||||
@@ -3046,19 +3045,18 @@ exports.default = _default;
 | 
				
			|||||||
/***/ }),
 | 
					/***/ }),
 | 
				
			||||||
/* 105 */,
 | 
					/* 105 */,
 | 
				
			||||||
/* 106 */
 | 
					/* 106 */
 | 
				
			||||||
/***/ (function(__unusedmodule, exports, __webpack_require__) {
 | 
					/***/ (function(__unusedmodule, exports) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
"use strict";
 | 
					"use strict";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Object.defineProperty(exports, '__esModule', { value: true });
 | 
					Object.defineProperty(exports, '__esModule', { value: true });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var tslib = __webpack_require__(640);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Copyright (c) Microsoft Corporation.
 | 
					// Copyright (c) Microsoft Corporation.
 | 
				
			||||||
// Licensed under the MIT license.
 | 
					// Licensed under the MIT license.
 | 
				
			||||||
var listenersMap = new WeakMap();
 | 
					/// <reference path="../shims-public.d.ts" />
 | 
				
			||||||
var abortedMap = new WeakMap();
 | 
					const listenersMap = new WeakMap();
 | 
				
			||||||
 | 
					const abortedMap = new WeakMap();
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * An aborter instance implements AbortSignal interface, can abort HTTP requests.
 | 
					 * An aborter instance implements AbortSignal interface, can abort HTTP requests.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
@@ -3072,8 +3070,8 @@ var abortedMap = new WeakMap();
 | 
				
			|||||||
 * await doAsyncWork(AbortSignal.none);
 | 
					 * await doAsyncWork(AbortSignal.none);
 | 
				
			||||||
 * ```
 | 
					 * ```
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
var AbortSignal = /** @class */ (function () {
 | 
					class AbortSignal {
 | 
				
			||||||
    function AbortSignal() {
 | 
					    constructor() {
 | 
				
			||||||
        /**
 | 
					        /**
 | 
				
			||||||
         * onabort event listener.
 | 
					         * onabort event listener.
 | 
				
			||||||
         */
 | 
					         */
 | 
				
			||||||
@@ -3081,74 +3079,65 @@ var AbortSignal = /** @class */ (function () {
 | 
				
			|||||||
        listenersMap.set(this, []);
 | 
					        listenersMap.set(this, []);
 | 
				
			||||||
        abortedMap.set(this, false);
 | 
					        abortedMap.set(this, false);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    Object.defineProperty(AbortSignal.prototype, "aborted", {
 | 
					 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Status of whether aborted or not.
 | 
					     * Status of whether aborted or not.
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @readonly
 | 
					     * @readonly
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
        get: function () {
 | 
					    get aborted() {
 | 
				
			||||||
        if (!abortedMap.has(this)) {
 | 
					        if (!abortedMap.has(this)) {
 | 
				
			||||||
            throw new TypeError("Expected `this` to be an instance of AbortSignal.");
 | 
					            throw new TypeError("Expected `this` to be an instance of AbortSignal.");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return abortedMap.get(this);
 | 
					        return abortedMap.get(this);
 | 
				
			||||||
        },
 | 
					    }
 | 
				
			||||||
        enumerable: false,
 | 
					 | 
				
			||||||
        configurable: true
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
    Object.defineProperty(AbortSignal, "none", {
 | 
					 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Creates a new AbortSignal instance that will never be aborted.
 | 
					     * Creates a new AbortSignal instance that will never be aborted.
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @readonly
 | 
					     * @readonly
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
        get: function () {
 | 
					    static get none() {
 | 
				
			||||||
        return new AbortSignal();
 | 
					        return new AbortSignal();
 | 
				
			||||||
        },
 | 
					    }
 | 
				
			||||||
        enumerable: false,
 | 
					 | 
				
			||||||
        configurable: true
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Added new "abort" event listener, only support "abort" event.
 | 
					     * Added new "abort" event listener, only support "abort" event.
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @param _type - Only support "abort" event
 | 
					     * @param _type - Only support "abort" event
 | 
				
			||||||
     * @param listener - The listener to be added
 | 
					     * @param listener - The listener to be added
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    AbortSignal.prototype.addEventListener = function (
 | 
					    addEventListener(
 | 
				
			||||||
    // tslint:disable-next-line:variable-name
 | 
					    // tslint:disable-next-line:variable-name
 | 
				
			||||||
    _type, listener) {
 | 
					    _type, listener) {
 | 
				
			||||||
        if (!listenersMap.has(this)) {
 | 
					        if (!listenersMap.has(this)) {
 | 
				
			||||||
            throw new TypeError("Expected `this` to be an instance of AbortSignal.");
 | 
					            throw new TypeError("Expected `this` to be an instance of AbortSignal.");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        var listeners = listenersMap.get(this);
 | 
					        const listeners = listenersMap.get(this);
 | 
				
			||||||
        listeners.push(listener);
 | 
					        listeners.push(listener);
 | 
				
			||||||
    };
 | 
					    }
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Remove "abort" event listener, only support "abort" event.
 | 
					     * Remove "abort" event listener, only support "abort" event.
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @param _type - Only support "abort" event
 | 
					     * @param _type - Only support "abort" event
 | 
				
			||||||
     * @param listener - The listener to be removed
 | 
					     * @param listener - The listener to be removed
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    AbortSignal.prototype.removeEventListener = function (
 | 
					    removeEventListener(
 | 
				
			||||||
    // tslint:disable-next-line:variable-name
 | 
					    // tslint:disable-next-line:variable-name
 | 
				
			||||||
    _type, listener) {
 | 
					    _type, listener) {
 | 
				
			||||||
        if (!listenersMap.has(this)) {
 | 
					        if (!listenersMap.has(this)) {
 | 
				
			||||||
            throw new TypeError("Expected `this` to be an instance of AbortSignal.");
 | 
					            throw new TypeError("Expected `this` to be an instance of AbortSignal.");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        var listeners = listenersMap.get(this);
 | 
					        const listeners = listenersMap.get(this);
 | 
				
			||||||
        var index = listeners.indexOf(listener);
 | 
					        const index = listeners.indexOf(listener);
 | 
				
			||||||
        if (index > -1) {
 | 
					        if (index > -1) {
 | 
				
			||||||
            listeners.splice(index, 1);
 | 
					            listeners.splice(index, 1);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    };
 | 
					    }
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Dispatches a synthetic event to the AbortSignal.
 | 
					     * Dispatches a synthetic event to the AbortSignal.
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    AbortSignal.prototype.dispatchEvent = function (_event) {
 | 
					    dispatchEvent(_event) {
 | 
				
			||||||
        throw new Error("This is a stub dispatchEvent implementation that should not be used.  It only exists for type-checking purposes.");
 | 
					        throw new Error("This is a stub dispatchEvent implementation that should not be used.  It only exists for type-checking purposes.");
 | 
				
			||||||
    };
 | 
					    }
 | 
				
			||||||
    return AbortSignal;
 | 
					}
 | 
				
			||||||
}());
 | 
					 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Helper to trigger an abort event immediately, the onabort and all abort event listeners will be triggered.
 | 
					 * Helper to trigger an abort event immediately, the onabort and all abort event listeners will be triggered.
 | 
				
			||||||
 * Will try to trigger abort event for all linked AbortSignal nodes.
 | 
					 * Will try to trigger abort event for all linked AbortSignal nodes.
 | 
				
			||||||
@@ -3166,12 +3155,12 @@ function abortSignal(signal) {
 | 
				
			|||||||
    if (signal.onabort) {
 | 
					    if (signal.onabort) {
 | 
				
			||||||
        signal.onabort.call(signal);
 | 
					        signal.onabort.call(signal);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    var listeners = listenersMap.get(signal);
 | 
					    const listeners = listenersMap.get(signal);
 | 
				
			||||||
    if (listeners) {
 | 
					    if (listeners) {
 | 
				
			||||||
        // Create a copy of listeners so mutations to the array
 | 
					        // Create a copy of listeners so mutations to the array
 | 
				
			||||||
        // (e.g. via removeListener calls) don't affect the listeners
 | 
					        // (e.g. via removeListener calls) don't affect the listeners
 | 
				
			||||||
        // we invoke.
 | 
					        // we invoke.
 | 
				
			||||||
        listeners.slice().forEach(function (listener) {
 | 
					        listeners.slice().forEach((listener) => {
 | 
				
			||||||
            listener.call(signal, { type: "abort" });
 | 
					            listener.call(signal, { type: "abort" });
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -3197,15 +3186,12 @@ function abortSignal(signal) {
 | 
				
			|||||||
 * }
 | 
					 * }
 | 
				
			||||||
 * ```
 | 
					 * ```
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
var AbortError = /** @class */ (function (_super) {
 | 
					class AbortError extends Error {
 | 
				
			||||||
    tslib.__extends(AbortError, _super);
 | 
					    constructor(message) {
 | 
				
			||||||
    function AbortError(message) {
 | 
					        super(message);
 | 
				
			||||||
        var _this = _super.call(this, message) || this;
 | 
					        this.name = "AbortError";
 | 
				
			||||||
        _this.name = "AbortError";
 | 
					 | 
				
			||||||
        return _this;
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    return AbortError;
 | 
					}
 | 
				
			||||||
}(Error));
 | 
					 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * An AbortController provides an AbortSignal and the associated controls to signal
 | 
					 * An AbortController provides an AbortSignal and the associated controls to signal
 | 
				
			||||||
 * that an asynchronous operation should be aborted.
 | 
					 * that an asynchronous operation should be aborted.
 | 
				
			||||||
@@ -3240,10 +3226,9 @@ var AbortError = /** @class */ (function (_super) {
 | 
				
			|||||||
 * await doAsyncWork(aborter.withTimeout(25 * 1000));
 | 
					 * await doAsyncWork(aborter.withTimeout(25 * 1000));
 | 
				
			||||||
 * ```
 | 
					 * ```
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
var AbortController = /** @class */ (function () {
 | 
					class AbortController {
 | 
				
			||||||
    // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
 | 
					    // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
 | 
				
			||||||
    function AbortController(parentSignals) {
 | 
					    constructor(parentSignals) {
 | 
				
			||||||
        var _this = this;
 | 
					 | 
				
			||||||
        this._signal = new AbortSignal();
 | 
					        this._signal = new AbortSignal();
 | 
				
			||||||
        if (!parentSignals) {
 | 
					        if (!parentSignals) {
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
@@ -3253,8 +3238,7 @@ var AbortController = /** @class */ (function () {
 | 
				
			|||||||
            // eslint-disable-next-line prefer-rest-params
 | 
					            // eslint-disable-next-line prefer-rest-params
 | 
				
			||||||
            parentSignals = arguments;
 | 
					            parentSignals = arguments;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        for (var _i = 0, parentSignals_1 = parentSignals; _i < parentSignals_1.length; _i++) {
 | 
					        for (const parentSignal of parentSignals) {
 | 
				
			||||||
            var parentSignal = parentSignals_1[_i];
 | 
					 | 
				
			||||||
            // if the parent signal has already had abort() called,
 | 
					            // if the parent signal has already had abort() called,
 | 
				
			||||||
            // then call abort on this signal as well.
 | 
					            // then call abort on this signal as well.
 | 
				
			||||||
            if (parentSignal.aborted) {
 | 
					            if (parentSignal.aborted) {
 | 
				
			||||||
@@ -3262,47 +3246,42 @@ var AbortController = /** @class */ (function () {
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
            else {
 | 
					            else {
 | 
				
			||||||
                // when the parent signal aborts, this signal should as well.
 | 
					                // when the parent signal aborts, this signal should as well.
 | 
				
			||||||
                parentSignal.addEventListener("abort", function () {
 | 
					                parentSignal.addEventListener("abort", () => {
 | 
				
			||||||
                    _this.abort();
 | 
					                    this.abort();
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    Object.defineProperty(AbortController.prototype, "signal", {
 | 
					 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * The AbortSignal associated with this controller that will signal aborted
 | 
					     * The AbortSignal associated with this controller that will signal aborted
 | 
				
			||||||
     * when the abort method is called on this controller.
 | 
					     * when the abort method is called on this controller.
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @readonly
 | 
					     * @readonly
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
        get: function () {
 | 
					    get signal() {
 | 
				
			||||||
        return this._signal;
 | 
					        return this._signal;
 | 
				
			||||||
        },
 | 
					    }
 | 
				
			||||||
        enumerable: false,
 | 
					 | 
				
			||||||
        configurable: true
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Signal that any operations passed this controller's associated abort signal
 | 
					     * Signal that any operations passed this controller's associated abort signal
 | 
				
			||||||
     * to cancel any remaining work and throw an `AbortError`.
 | 
					     * to cancel any remaining work and throw an `AbortError`.
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    AbortController.prototype.abort = function () {
 | 
					    abort() {
 | 
				
			||||||
        abortSignal(this._signal);
 | 
					        abortSignal(this._signal);
 | 
				
			||||||
    };
 | 
					    }
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Creates a new AbortSignal instance that will abort after the provided ms.
 | 
					     * Creates a new AbortSignal instance that will abort after the provided ms.
 | 
				
			||||||
     * @param ms - Elapsed time in milliseconds to trigger an abort.
 | 
					     * @param ms - Elapsed time in milliseconds to trigger an abort.
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    AbortController.timeout = function (ms) {
 | 
					    static timeout(ms) {
 | 
				
			||||||
        var signal = new AbortSignal();
 | 
					        const signal = new AbortSignal();
 | 
				
			||||||
        var timer = setTimeout(abortSignal, ms, signal);
 | 
					        const timer = setTimeout(abortSignal, ms, signal);
 | 
				
			||||||
        // Prevent the active Timer from keeping the Node.js event loop active.
 | 
					        // Prevent the active Timer from keeping the Node.js event loop active.
 | 
				
			||||||
        if (typeof timer.unref === "function") {
 | 
					        if (typeof timer.unref === "function") {
 | 
				
			||||||
            timer.unref();
 | 
					            timer.unref();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return signal;
 | 
					        return signal;
 | 
				
			||||||
    };
 | 
					    }
 | 
				
			||||||
    return AbortController;
 | 
					}
 | 
				
			||||||
}());
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
exports.AbortController = AbortController;
 | 
					exports.AbortController = AbortController;
 | 
				
			||||||
exports.AbortError = AbortError;
 | 
					exports.AbortError = AbortError;
 | 
				
			||||||
@@ -38055,21 +38034,19 @@ const path = __importStar(__webpack_require__(622));
 | 
				
			|||||||
const utils = __importStar(__webpack_require__(15));
 | 
					const utils = __importStar(__webpack_require__(15));
 | 
				
			||||||
const constants_1 = __webpack_require__(931);
 | 
					const constants_1 = __webpack_require__(931);
 | 
				
			||||||
const IS_WINDOWS = process.platform === 'win32';
 | 
					const IS_WINDOWS = process.platform === 'win32';
 | 
				
			||||||
function getTarPath(args, compressionMethod) {
 | 
					// Function also mutates the args array. For non-mutation call with passing an empty array.
 | 
				
			||||||
 | 
					function getTarPath() {
 | 
				
			||||||
    return __awaiter(this, void 0, void 0, function* () {
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
        switch (process.platform) {
 | 
					        switch (process.platform) {
 | 
				
			||||||
            case 'win32': {
 | 
					            case 'win32': {
 | 
				
			||||||
                const systemTar = `${process.env['windir']}\\System32\\tar.exe`;
 | 
					                const gnuTar = yield utils.getGnuTarPathOnWindows();
 | 
				
			||||||
                if (compressionMethod !== constants_1.CompressionMethod.Gzip) {
 | 
					                const systemTar = constants_1.SystemTarPathOnWindows;
 | 
				
			||||||
                    // We only use zstandard compression on windows when gnu tar is installed due to
 | 
					                if (gnuTar) {
 | 
				
			||||||
                    // a bug with compressing large files with bsdtar + zstd
 | 
					                    // Use GNUtar as default on windows
 | 
				
			||||||
                    args.push('--force-local');
 | 
					                    return { path: gnuTar, type: constants_1.ArchiveToolType.GNU };
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else if (fs_1.existsSync(systemTar)) {
 | 
					                else if (fs_1.existsSync(systemTar)) {
 | 
				
			||||||
                    return systemTar;
 | 
					                    return { path: systemTar, type: constants_1.ArchiveToolType.BSD };
 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                else if (yield utils.isGnuTarInstalled()) {
 | 
					 | 
				
			||||||
                    args.push('--force-local');
 | 
					 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@@ -38077,24 +38054,83 @@ function getTarPath(args, compressionMethod) {
 | 
				
			|||||||
                const gnuTar = yield io.which('gtar', false);
 | 
					                const gnuTar = yield io.which('gtar', false);
 | 
				
			||||||
                if (gnuTar) {
 | 
					                if (gnuTar) {
 | 
				
			||||||
                    // fix permission denied errors when extracting BSD tar archive with GNU tar - https://github.com/actions/cache/issues/527
 | 
					                    // fix permission denied errors when extracting BSD tar archive with GNU tar - https://github.com/actions/cache/issues/527
 | 
				
			||||||
                    args.push('--delay-directory-restore');
 | 
					                    return { path: gnuTar, type: constants_1.ArchiveToolType.GNU };
 | 
				
			||||||
                    return gnuTar;
 | 
					                }
 | 
				
			||||||
 | 
					                else {
 | 
				
			||||||
 | 
					                    return {
 | 
				
			||||||
 | 
					                        path: yield io.which('tar', true),
 | 
				
			||||||
 | 
					                        type: constants_1.ArchiveToolType.BSD
 | 
				
			||||||
 | 
					                    };
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                break;
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            default:
 | 
					            default:
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return yield io.which('tar', true);
 | 
					        return {
 | 
				
			||||||
 | 
					            path: yield io.which('tar', true),
 | 
				
			||||||
 | 
					            type: constants_1.ArchiveToolType.GNU
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
function execTar(args, compressionMethod, cwd) {
 | 
					// Return arguments for tar as per tarPath, compressionMethod, method type and os
 | 
				
			||||||
 | 
					function getTarArgs(tarPath, compressionMethod, type, archivePath = '') {
 | 
				
			||||||
    return __awaiter(this, void 0, void 0, function* () {
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
        try {
 | 
					        const args = [`"${tarPath.path}"`];
 | 
				
			||||||
            yield exec_1.exec(`"${yield getTarPath(args, compressionMethod)}"`, args, { cwd });
 | 
					        const cacheFileName = utils.getCacheFileName(compressionMethod);
 | 
				
			||||||
 | 
					        const tarFile = 'cache.tar';
 | 
				
			||||||
 | 
					        const workingDirectory = getWorkingDirectory();
 | 
				
			||||||
 | 
					        const BSD_TAR_ZSTD = tarPath.type === constants_1.ArchiveToolType.BSD &&
 | 
				
			||||||
 | 
					            compressionMethod !== constants_1.CompressionMethod.Gzip &&
 | 
				
			||||||
 | 
					            IS_WINDOWS;
 | 
				
			||||||
 | 
					        // Method specific args
 | 
				
			||||||
 | 
					        switch (type) {
 | 
				
			||||||
 | 
					            case 'create':
 | 
				
			||||||
 | 
					                args.push('--posix', '-cf', BSD_TAR_ZSTD
 | 
				
			||||||
 | 
					                    ? tarFile
 | 
				
			||||||
 | 
					                    : cacheFileName.replace(new RegExp(`\\${path.sep}`, 'g'), '/'), '--exclude', BSD_TAR_ZSTD
 | 
				
			||||||
 | 
					                    ? tarFile
 | 
				
			||||||
 | 
					                    : cacheFileName.replace(new RegExp(`\\${path.sep}`, 'g'), '/'), '-P', '-C', workingDirectory.replace(new RegExp(`\\${path.sep}`, 'g'), '/'), '--files-from', constants_1.ManifestFilename);
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            case 'extract':
 | 
				
			||||||
 | 
					                args.push('-xf', BSD_TAR_ZSTD
 | 
				
			||||||
 | 
					                    ? tarFile
 | 
				
			||||||
 | 
					                    : archivePath.replace(new RegExp(`\\${path.sep}`, 'g'), '/'), '-P', '-C', workingDirectory.replace(new RegExp(`\\${path.sep}`, 'g'), '/'));
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            case 'list':
 | 
				
			||||||
 | 
					                args.push('-tf', BSD_TAR_ZSTD
 | 
				
			||||||
 | 
					                    ? tarFile
 | 
				
			||||||
 | 
					                    : archivePath.replace(new RegExp(`\\${path.sep}`, 'g'), '/'), '-P');
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        catch (error) {
 | 
					        // Platform specific args
 | 
				
			||||||
            throw new Error(`Tar failed with error: ${error === null || error === void 0 ? void 0 : error.message}`);
 | 
					        if (tarPath.type === constants_1.ArchiveToolType.GNU) {
 | 
				
			||||||
 | 
					            switch (process.platform) {
 | 
				
			||||||
 | 
					                case 'win32':
 | 
				
			||||||
 | 
					                    args.push('--force-local');
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					                case 'darwin':
 | 
				
			||||||
 | 
					                    args.push('--delay-directory-restore');
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return args;
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					function getArgs(compressionMethod, type, archivePath = '') {
 | 
				
			||||||
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
 | 
					        const tarPath = yield getTarPath();
 | 
				
			||||||
 | 
					        const tarArgs = yield getTarArgs(tarPath, compressionMethod, type, archivePath);
 | 
				
			||||||
 | 
					        const compressionArgs = type !== 'create'
 | 
				
			||||||
 | 
					            ? yield getDecompressionProgram(tarPath, compressionMethod, archivePath)
 | 
				
			||||||
 | 
					            : yield getCompressionProgram(tarPath, compressionMethod);
 | 
				
			||||||
 | 
					        const BSD_TAR_ZSTD = tarPath.type === constants_1.ArchiveToolType.BSD &&
 | 
				
			||||||
 | 
					            compressionMethod !== constants_1.CompressionMethod.Gzip &&
 | 
				
			||||||
 | 
					            IS_WINDOWS;
 | 
				
			||||||
 | 
					        if (BSD_TAR_ZSTD && type !== 'create') {
 | 
				
			||||||
 | 
					            return [...compressionArgs, ...tarArgs].join(' ');
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else {
 | 
				
			||||||
 | 
					            return [...tarArgs, ...compressionArgs].join(' ');
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -38103,32 +38139,89 @@ function getWorkingDirectory() {
 | 
				
			|||||||
    return (_a = process.env['GITHUB_WORKSPACE']) !== null && _a !== void 0 ? _a : process.cwd();
 | 
					    return (_a = process.env['GITHUB_WORKSPACE']) !== null && _a !== void 0 ? _a : process.cwd();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
// Common function for extractTar and listTar to get the compression method
 | 
					// Common function for extractTar and listTar to get the compression method
 | 
				
			||||||
function getCompressionProgram(compressionMethod) {
 | 
					function getDecompressionProgram(tarPath, compressionMethod, archivePath) {
 | 
				
			||||||
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
        // -d: Decompress.
 | 
					        // -d: Decompress.
 | 
				
			||||||
        // unzstd is equivalent to 'zstd -d'
 | 
					        // unzstd is equivalent to 'zstd -d'
 | 
				
			||||||
        // --long=#: Enables long distance matching with # bits. Maximum is 30 (1GB) on 32-bit OS and 31 (2GB) on 64-bit.
 | 
					        // --long=#: Enables long distance matching with # bits. Maximum is 30 (1GB) on 32-bit OS and 31 (2GB) on 64-bit.
 | 
				
			||||||
        // Using 30 here because we also support 32-bit self-hosted runners.
 | 
					        // Using 30 here because we also support 32-bit self-hosted runners.
 | 
				
			||||||
 | 
					        const BSD_TAR_ZSTD = tarPath.type === constants_1.ArchiveToolType.BSD &&
 | 
				
			||||||
 | 
					            compressionMethod !== constants_1.CompressionMethod.Gzip &&
 | 
				
			||||||
 | 
					            IS_WINDOWS;
 | 
				
			||||||
        switch (compressionMethod) {
 | 
					        switch (compressionMethod) {
 | 
				
			||||||
            case constants_1.CompressionMethod.Zstd:
 | 
					            case constants_1.CompressionMethod.Zstd:
 | 
				
			||||||
            return [
 | 
					                return BSD_TAR_ZSTD
 | 
				
			||||||
 | 
					                    ? [
 | 
				
			||||||
 | 
					                        'zstd -d --long=30 -o',
 | 
				
			||||||
 | 
					                        constants_1.TarFilename,
 | 
				
			||||||
 | 
					                        archivePath.replace(new RegExp(`\\${path.sep}`, 'g'), '/'),
 | 
				
			||||||
 | 
					                        '&&'
 | 
				
			||||||
 | 
					                    ]
 | 
				
			||||||
 | 
					                    : [
 | 
				
			||||||
                        '--use-compress-program',
 | 
					                        '--use-compress-program',
 | 
				
			||||||
                IS_WINDOWS ? 'zstd -d --long=30' : 'unzstd --long=30'
 | 
					                        IS_WINDOWS ? '"zstd -d --long=30"' : 'unzstd --long=30'
 | 
				
			||||||
                    ];
 | 
					                    ];
 | 
				
			||||||
            case constants_1.CompressionMethod.ZstdWithoutLong:
 | 
					            case constants_1.CompressionMethod.ZstdWithoutLong:
 | 
				
			||||||
            return ['--use-compress-program', IS_WINDOWS ? 'zstd -d' : 'unzstd'];
 | 
					                return BSD_TAR_ZSTD
 | 
				
			||||||
 | 
					                    ? [
 | 
				
			||||||
 | 
					                        'zstd -d -o',
 | 
				
			||||||
 | 
					                        constants_1.TarFilename,
 | 
				
			||||||
 | 
					                        archivePath.replace(new RegExp(`\\${path.sep}`, 'g'), '/'),
 | 
				
			||||||
 | 
					                        '&&'
 | 
				
			||||||
 | 
					                    ]
 | 
				
			||||||
 | 
					                    : ['--use-compress-program', IS_WINDOWS ? '"zstd -d"' : 'unzstd'];
 | 
				
			||||||
            default:
 | 
					            default:
 | 
				
			||||||
                return ['-z'];
 | 
					                return ['-z'];
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					// -T#: Compress using # working thread. If # is 0, attempt to detect and use the number of physical CPU cores.
 | 
				
			||||||
 | 
					// zstdmt is equivalent to 'zstd -T0'
 | 
				
			||||||
 | 
					// --long=#: Enables long distance matching with # bits. Maximum is 30 (1GB) on 32-bit OS and 31 (2GB) on 64-bit.
 | 
				
			||||||
 | 
					// Using 30 here because we also support 32-bit self-hosted runners.
 | 
				
			||||||
 | 
					// Long range mode is added to zstd in v1.3.2 release, so we will not use --long in older version of zstd.
 | 
				
			||||||
 | 
					function getCompressionProgram(tarPath, compressionMethod) {
 | 
				
			||||||
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
 | 
					        const cacheFileName = utils.getCacheFileName(compressionMethod);
 | 
				
			||||||
 | 
					        const BSD_TAR_ZSTD = tarPath.type === constants_1.ArchiveToolType.BSD &&
 | 
				
			||||||
 | 
					            compressionMethod !== constants_1.CompressionMethod.Gzip &&
 | 
				
			||||||
 | 
					            IS_WINDOWS;
 | 
				
			||||||
 | 
					        switch (compressionMethod) {
 | 
				
			||||||
 | 
					            case constants_1.CompressionMethod.Zstd:
 | 
				
			||||||
 | 
					                return BSD_TAR_ZSTD
 | 
				
			||||||
 | 
					                    ? [
 | 
				
			||||||
 | 
					                        '&&',
 | 
				
			||||||
 | 
					                        'zstd -T0 --long=30 -o',
 | 
				
			||||||
 | 
					                        cacheFileName.replace(new RegExp(`\\${path.sep}`, 'g'), '/'),
 | 
				
			||||||
 | 
					                        constants_1.TarFilename
 | 
				
			||||||
 | 
					                    ]
 | 
				
			||||||
 | 
					                    : [
 | 
				
			||||||
 | 
					                        '--use-compress-program',
 | 
				
			||||||
 | 
					                        IS_WINDOWS ? '"zstd -T0 --long=30"' : 'zstdmt --long=30'
 | 
				
			||||||
 | 
					                    ];
 | 
				
			||||||
 | 
					            case constants_1.CompressionMethod.ZstdWithoutLong:
 | 
				
			||||||
 | 
					                return BSD_TAR_ZSTD
 | 
				
			||||||
 | 
					                    ? [
 | 
				
			||||||
 | 
					                        '&&',
 | 
				
			||||||
 | 
					                        'zstd -T0 -o',
 | 
				
			||||||
 | 
					                        cacheFileName.replace(new RegExp(`\\${path.sep}`, 'g'), '/'),
 | 
				
			||||||
 | 
					                        constants_1.TarFilename
 | 
				
			||||||
 | 
					                    ]
 | 
				
			||||||
 | 
					                    : ['--use-compress-program', IS_WINDOWS ? '"zstd -T0"' : 'zstdmt'];
 | 
				
			||||||
 | 
					            default:
 | 
				
			||||||
 | 
					                return ['-z'];
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
function listTar(archivePath, compressionMethod) {
 | 
					function listTar(archivePath, compressionMethod) {
 | 
				
			||||||
    return __awaiter(this, void 0, void 0, function* () {
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
        const args = [
 | 
					        const args = yield getArgs(compressionMethod, 'list', archivePath);
 | 
				
			||||||
            ...getCompressionProgram(compressionMethod),
 | 
					        try {
 | 
				
			||||||
            '-tf',
 | 
					            yield exec_1.exec(args);
 | 
				
			||||||
            archivePath.replace(new RegExp(`\\${path.sep}`, 'g'), '/'),
 | 
					        }
 | 
				
			||||||
            '-P'
 | 
					        catch (error) {
 | 
				
			||||||
        ];
 | 
					            throw new Error(`Tar failed with error: ${error === null || error === void 0 ? void 0 : error.message}`);
 | 
				
			||||||
        yield execTar(args, compressionMethod);
 | 
					        }
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
exports.listTar = listTar;
 | 
					exports.listTar = listTar;
 | 
				
			||||||
@@ -38137,57 +38230,27 @@ function extractTar(archivePath, compressionMethod) {
 | 
				
			|||||||
        // Create directory to extract tar into
 | 
					        // Create directory to extract tar into
 | 
				
			||||||
        const workingDirectory = getWorkingDirectory();
 | 
					        const workingDirectory = getWorkingDirectory();
 | 
				
			||||||
        yield io.mkdirP(workingDirectory);
 | 
					        yield io.mkdirP(workingDirectory);
 | 
				
			||||||
        const args = [
 | 
					        const args = yield getArgs(compressionMethod, 'extract', archivePath);
 | 
				
			||||||
            ...getCompressionProgram(compressionMethod),
 | 
					        try {
 | 
				
			||||||
            '-xf',
 | 
					            yield exec_1.exec(args);
 | 
				
			||||||
            archivePath.replace(new RegExp(`\\${path.sep}`, 'g'), '/'),
 | 
					        }
 | 
				
			||||||
            '-P',
 | 
					        catch (error) {
 | 
				
			||||||
            '-C',
 | 
					            throw new Error(`Tar failed with error: ${error === null || error === void 0 ? void 0 : error.message}`);
 | 
				
			||||||
            workingDirectory.replace(new RegExp(`\\${path.sep}`, 'g'), '/')
 | 
					        }
 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
        yield execTar(args, compressionMethod);
 | 
					 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
exports.extractTar = extractTar;
 | 
					exports.extractTar = extractTar;
 | 
				
			||||||
function createTar(archiveFolder, sourceDirectories, compressionMethod) {
 | 
					function createTar(archiveFolder, sourceDirectories, compressionMethod) {
 | 
				
			||||||
    return __awaiter(this, void 0, void 0, function* () {
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
        // Write source directories to manifest.txt to avoid command length limits
 | 
					        // Write source directories to manifest.txt to avoid command length limits
 | 
				
			||||||
        const manifestFilename = 'manifest.txt';
 | 
					        fs_1.writeFileSync(path.join(archiveFolder, constants_1.ManifestFilename), sourceDirectories.join('\n'));
 | 
				
			||||||
        const cacheFileName = utils.getCacheFileName(compressionMethod);
 | 
					        const args = yield getArgs(compressionMethod, 'create');
 | 
				
			||||||
        fs_1.writeFileSync(path.join(archiveFolder, manifestFilename), sourceDirectories.join('\n'));
 | 
					        try {
 | 
				
			||||||
        const workingDirectory = getWorkingDirectory();
 | 
					            yield exec_1.exec(args, undefined, { cwd: archiveFolder });
 | 
				
			||||||
        // -T#: Compress using # working thread. If # is 0, attempt to detect and use the number of physical CPU cores.
 | 
					 | 
				
			||||||
        // zstdmt is equivalent to 'zstd -T0'
 | 
					 | 
				
			||||||
        // --long=#: Enables long distance matching with # bits. Maximum is 30 (1GB) on 32-bit OS and 31 (2GB) on 64-bit.
 | 
					 | 
				
			||||||
        // Using 30 here because we also support 32-bit self-hosted runners.
 | 
					 | 
				
			||||||
        // Long range mode is added to zstd in v1.3.2 release, so we will not use --long in older version of zstd.
 | 
					 | 
				
			||||||
        function getCompressionProgram() {
 | 
					 | 
				
			||||||
            switch (compressionMethod) {
 | 
					 | 
				
			||||||
                case constants_1.CompressionMethod.Zstd:
 | 
					 | 
				
			||||||
                    return [
 | 
					 | 
				
			||||||
                        '--use-compress-program',
 | 
					 | 
				
			||||||
                        IS_WINDOWS ? 'zstd -T0 --long=30' : 'zstdmt --long=30'
 | 
					 | 
				
			||||||
                    ];
 | 
					 | 
				
			||||||
                case constants_1.CompressionMethod.ZstdWithoutLong:
 | 
					 | 
				
			||||||
                    return ['--use-compress-program', IS_WINDOWS ? 'zstd -T0' : 'zstdmt'];
 | 
					 | 
				
			||||||
                default:
 | 
					 | 
				
			||||||
                    return ['-z'];
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        catch (error) {
 | 
				
			||||||
 | 
					            throw new Error(`Tar failed with error: ${error === null || error === void 0 ? void 0 : error.message}`);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        const args = [
 | 
					 | 
				
			||||||
            '--posix',
 | 
					 | 
				
			||||||
            ...getCompressionProgram(),
 | 
					 | 
				
			||||||
            '-cf',
 | 
					 | 
				
			||||||
            cacheFileName.replace(new RegExp(`\\${path.sep}`, 'g'), '/'),
 | 
					 | 
				
			||||||
            '--exclude',
 | 
					 | 
				
			||||||
            cacheFileName.replace(new RegExp(`\\${path.sep}`, 'g'), '/'),
 | 
					 | 
				
			||||||
            '-P',
 | 
					 | 
				
			||||||
            '-C',
 | 
					 | 
				
			||||||
            workingDirectory.replace(new RegExp(`\\${path.sep}`, 'g'), '/'),
 | 
					 | 
				
			||||||
            '--files-from',
 | 
					 | 
				
			||||||
            manifestFilename
 | 
					 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
        yield execTar(args, compressionMethod, archiveFolder);
 | 
					 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
exports.createTar = createTar;
 | 
					exports.createTar = createTar;
 | 
				
			||||||
@@ -44126,318 +44189,7 @@ exports.default = _default;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/***/ }),
 | 
					/***/ }),
 | 
				
			||||||
/* 640 */
 | 
					/* 640 */,
 | 
				
			||||||
/***/ (function(module) {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*! *****************************************************************************
 | 
					 | 
				
			||||||
Copyright (c) Microsoft Corporation.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Permission to use, copy, modify, and/or distribute this software for any
 | 
					 | 
				
			||||||
purpose with or without fee is hereby granted.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
 | 
					 | 
				
			||||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
 | 
					 | 
				
			||||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
 | 
					 | 
				
			||||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
 | 
					 | 
				
			||||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
 | 
					 | 
				
			||||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 | 
					 | 
				
			||||||
PERFORMANCE OF THIS SOFTWARE.
 | 
					 | 
				
			||||||
***************************************************************************** */
 | 
					 | 
				
			||||||
/* global global, define, System, Reflect, Promise */
 | 
					 | 
				
			||||||
var __extends;
 | 
					 | 
				
			||||||
var __assign;
 | 
					 | 
				
			||||||
var __rest;
 | 
					 | 
				
			||||||
var __decorate;
 | 
					 | 
				
			||||||
var __param;
 | 
					 | 
				
			||||||
var __metadata;
 | 
					 | 
				
			||||||
var __awaiter;
 | 
					 | 
				
			||||||
var __generator;
 | 
					 | 
				
			||||||
var __exportStar;
 | 
					 | 
				
			||||||
var __values;
 | 
					 | 
				
			||||||
var __read;
 | 
					 | 
				
			||||||
var __spread;
 | 
					 | 
				
			||||||
var __spreadArrays;
 | 
					 | 
				
			||||||
var __spreadArray;
 | 
					 | 
				
			||||||
var __await;
 | 
					 | 
				
			||||||
var __asyncGenerator;
 | 
					 | 
				
			||||||
var __asyncDelegator;
 | 
					 | 
				
			||||||
var __asyncValues;
 | 
					 | 
				
			||||||
var __makeTemplateObject;
 | 
					 | 
				
			||||||
var __importStar;
 | 
					 | 
				
			||||||
var __importDefault;
 | 
					 | 
				
			||||||
var __classPrivateFieldGet;
 | 
					 | 
				
			||||||
var __classPrivateFieldSet;
 | 
					 | 
				
			||||||
var __createBinding;
 | 
					 | 
				
			||||||
(function (factory) {
 | 
					 | 
				
			||||||
    var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {};
 | 
					 | 
				
			||||||
    if (typeof define === "function" && define.amd) {
 | 
					 | 
				
			||||||
        define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); });
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    else if ( true && typeof module.exports === "object") {
 | 
					 | 
				
			||||||
        factory(createExporter(root, createExporter(module.exports)));
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    else {
 | 
					 | 
				
			||||||
        factory(createExporter(root));
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    function createExporter(exports, previous) {
 | 
					 | 
				
			||||||
        if (exports !== root) {
 | 
					 | 
				
			||||||
            if (typeof Object.create === "function") {
 | 
					 | 
				
			||||||
                Object.defineProperty(exports, "__esModule", { value: true });
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            else {
 | 
					 | 
				
			||||||
                exports.__esModule = true;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
})
 | 
					 | 
				
			||||||
(function (exporter) {
 | 
					 | 
				
			||||||
    var extendStatics = Object.setPrototypeOf ||
 | 
					 | 
				
			||||||
        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
 | 
					 | 
				
			||||||
        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __extends = function (d, b) {
 | 
					 | 
				
			||||||
        if (typeof b !== "function" && b !== null)
 | 
					 | 
				
			||||||
            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
 | 
					 | 
				
			||||||
        extendStatics(d, b);
 | 
					 | 
				
			||||||
        function __() { this.constructor = d; }
 | 
					 | 
				
			||||||
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __assign = Object.assign || function (t) {
 | 
					 | 
				
			||||||
        for (var s, i = 1, n = arguments.length; i < n; i++) {
 | 
					 | 
				
			||||||
            s = arguments[i];
 | 
					 | 
				
			||||||
            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        return t;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __rest = function (s, e) {
 | 
					 | 
				
			||||||
        var t = {};
 | 
					 | 
				
			||||||
        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
 | 
					 | 
				
			||||||
            t[p] = s[p];
 | 
					 | 
				
			||||||
        if (s != null && typeof Object.getOwnPropertySymbols === "function")
 | 
					 | 
				
			||||||
            for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
 | 
					 | 
				
			||||||
                if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
 | 
					 | 
				
			||||||
                    t[p[i]] = s[p[i]];
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        return t;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __decorate = function (decorators, target, key, desc) {
 | 
					 | 
				
			||||||
        var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
 | 
					 | 
				
			||||||
        if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
 | 
					 | 
				
			||||||
        else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
 | 
					 | 
				
			||||||
        return c > 3 && r && Object.defineProperty(target, key, r), r;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __param = function (paramIndex, decorator) {
 | 
					 | 
				
			||||||
        return function (target, key) { decorator(target, key, paramIndex); }
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __metadata = function (metadataKey, metadataValue) {
 | 
					 | 
				
			||||||
        if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __awaiter = function (thisArg, _arguments, P, generator) {
 | 
					 | 
				
			||||||
        function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
 | 
					 | 
				
			||||||
        return new (P || (P = Promise))(function (resolve, reject) {
 | 
					 | 
				
			||||||
            function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
 | 
					 | 
				
			||||||
            function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
 | 
					 | 
				
			||||||
            function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
 | 
					 | 
				
			||||||
            step((generator = generator.apply(thisArg, _arguments || [])).next());
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __generator = function (thisArg, body) {
 | 
					 | 
				
			||||||
        var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
 | 
					 | 
				
			||||||
        return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
 | 
					 | 
				
			||||||
        function verb(n) { return function (v) { return step([n, v]); }; }
 | 
					 | 
				
			||||||
        function step(op) {
 | 
					 | 
				
			||||||
            if (f) throw new TypeError("Generator is already executing.");
 | 
					 | 
				
			||||||
            while (_) try {
 | 
					 | 
				
			||||||
                if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
 | 
					 | 
				
			||||||
                if (y = 0, t) op = [op[0] & 2, t.value];
 | 
					 | 
				
			||||||
                switch (op[0]) {
 | 
					 | 
				
			||||||
                    case 0: case 1: t = op; break;
 | 
					 | 
				
			||||||
                    case 4: _.label++; return { value: op[1], done: false };
 | 
					 | 
				
			||||||
                    case 5: _.label++; y = op[1]; op = [0]; continue;
 | 
					 | 
				
			||||||
                    case 7: op = _.ops.pop(); _.trys.pop(); continue;
 | 
					 | 
				
			||||||
                    default:
 | 
					 | 
				
			||||||
                        if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
 | 
					 | 
				
			||||||
                        if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
 | 
					 | 
				
			||||||
                        if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
 | 
					 | 
				
			||||||
                        if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
 | 
					 | 
				
			||||||
                        if (t[2]) _.ops.pop();
 | 
					 | 
				
			||||||
                        _.trys.pop(); continue;
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                op = body.call(thisArg, _);
 | 
					 | 
				
			||||||
            } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
 | 
					 | 
				
			||||||
            if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __exportStar = function(m, o) {
 | 
					 | 
				
			||||||
        for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __createBinding = Object.create ? (function(o, m, k, k2) {
 | 
					 | 
				
			||||||
        if (k2 === undefined) k2 = k;
 | 
					 | 
				
			||||||
        Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
 | 
					 | 
				
			||||||
    }) : (function(o, m, k, k2) {
 | 
					 | 
				
			||||||
        if (k2 === undefined) k2 = k;
 | 
					 | 
				
			||||||
        o[k2] = m[k];
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __values = function (o) {
 | 
					 | 
				
			||||||
        var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
 | 
					 | 
				
			||||||
        if (m) return m.call(o);
 | 
					 | 
				
			||||||
        if (o && typeof o.length === "number") return {
 | 
					 | 
				
			||||||
            next: function () {
 | 
					 | 
				
			||||||
                if (o && i >= o.length) o = void 0;
 | 
					 | 
				
			||||||
                return { value: o && o[i++], done: !o };
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
        throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __read = function (o, n) {
 | 
					 | 
				
			||||||
        var m = typeof Symbol === "function" && o[Symbol.iterator];
 | 
					 | 
				
			||||||
        if (!m) return o;
 | 
					 | 
				
			||||||
        var i = m.call(o), r, ar = [], e;
 | 
					 | 
				
			||||||
        try {
 | 
					 | 
				
			||||||
            while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        catch (error) { e = { error: error }; }
 | 
					 | 
				
			||||||
        finally {
 | 
					 | 
				
			||||||
            try {
 | 
					 | 
				
			||||||
                if (r && !r.done && (m = i["return"])) m.call(i);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            finally { if (e) throw e.error; }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        return ar;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /** @deprecated */
 | 
					 | 
				
			||||||
    __spread = function () {
 | 
					 | 
				
			||||||
        for (var ar = [], i = 0; i < arguments.length; i++)
 | 
					 | 
				
			||||||
            ar = ar.concat(__read(arguments[i]));
 | 
					 | 
				
			||||||
        return ar;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /** @deprecated */
 | 
					 | 
				
			||||||
    __spreadArrays = function () {
 | 
					 | 
				
			||||||
        for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
 | 
					 | 
				
			||||||
        for (var r = Array(s), k = 0, i = 0; i < il; i++)
 | 
					 | 
				
			||||||
            for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
 | 
					 | 
				
			||||||
                r[k] = a[j];
 | 
					 | 
				
			||||||
        return r;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __spreadArray = function (to, from, pack) {
 | 
					 | 
				
			||||||
        if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
 | 
					 | 
				
			||||||
            if (ar || !(i in from)) {
 | 
					 | 
				
			||||||
                if (!ar) ar = Array.prototype.slice.call(from, 0, i);
 | 
					 | 
				
			||||||
                ar[i] = from[i];
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        return to.concat(ar || Array.prototype.slice.call(from));
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __await = function (v) {
 | 
					 | 
				
			||||||
        return this instanceof __await ? (this.v = v, this) : new __await(v);
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __asyncGenerator = function (thisArg, _arguments, generator) {
 | 
					 | 
				
			||||||
        if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
 | 
					 | 
				
			||||||
        var g = generator.apply(thisArg, _arguments || []), i, q = [];
 | 
					 | 
				
			||||||
        return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
 | 
					 | 
				
			||||||
        function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
 | 
					 | 
				
			||||||
        function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
 | 
					 | 
				
			||||||
        function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);  }
 | 
					 | 
				
			||||||
        function fulfill(value) { resume("next", value); }
 | 
					 | 
				
			||||||
        function reject(value) { resume("throw", value); }
 | 
					 | 
				
			||||||
        function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __asyncDelegator = function (o) {
 | 
					 | 
				
			||||||
        var i, p;
 | 
					 | 
				
			||||||
        return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
 | 
					 | 
				
			||||||
        function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __asyncValues = function (o) {
 | 
					 | 
				
			||||||
        if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
 | 
					 | 
				
			||||||
        var m = o[Symbol.asyncIterator], i;
 | 
					 | 
				
			||||||
        return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
 | 
					 | 
				
			||||||
        function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
 | 
					 | 
				
			||||||
        function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __makeTemplateObject = function (cooked, raw) {
 | 
					 | 
				
			||||||
        if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
 | 
					 | 
				
			||||||
        return cooked;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    var __setModuleDefault = Object.create ? (function(o, v) {
 | 
					 | 
				
			||||||
        Object.defineProperty(o, "default", { enumerable: true, value: v });
 | 
					 | 
				
			||||||
    }) : function(o, v) {
 | 
					 | 
				
			||||||
        o["default"] = v;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __importStar = function (mod) {
 | 
					 | 
				
			||||||
        if (mod && mod.__esModule) return mod;
 | 
					 | 
				
			||||||
        var result = {};
 | 
					 | 
				
			||||||
        if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
 | 
					 | 
				
			||||||
        __setModuleDefault(result, mod);
 | 
					 | 
				
			||||||
        return result;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __importDefault = function (mod) {
 | 
					 | 
				
			||||||
        return (mod && mod.__esModule) ? mod : { "default": mod };
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __classPrivateFieldGet = function (receiver, state, kind, f) {
 | 
					 | 
				
			||||||
        if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
 | 
					 | 
				
			||||||
        if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
 | 
					 | 
				
			||||||
        return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __classPrivateFieldSet = function (receiver, state, value, kind, f) {
 | 
					 | 
				
			||||||
        if (kind === "m") throw new TypeError("Private method is not writable");
 | 
					 | 
				
			||||||
        if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
 | 
					 | 
				
			||||||
        if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
 | 
					 | 
				
			||||||
        return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    exporter("__extends", __extends);
 | 
					 | 
				
			||||||
    exporter("__assign", __assign);
 | 
					 | 
				
			||||||
    exporter("__rest", __rest);
 | 
					 | 
				
			||||||
    exporter("__decorate", __decorate);
 | 
					 | 
				
			||||||
    exporter("__param", __param);
 | 
					 | 
				
			||||||
    exporter("__metadata", __metadata);
 | 
					 | 
				
			||||||
    exporter("__awaiter", __awaiter);
 | 
					 | 
				
			||||||
    exporter("__generator", __generator);
 | 
					 | 
				
			||||||
    exporter("__exportStar", __exportStar);
 | 
					 | 
				
			||||||
    exporter("__createBinding", __createBinding);
 | 
					 | 
				
			||||||
    exporter("__values", __values);
 | 
					 | 
				
			||||||
    exporter("__read", __read);
 | 
					 | 
				
			||||||
    exporter("__spread", __spread);
 | 
					 | 
				
			||||||
    exporter("__spreadArrays", __spreadArrays);
 | 
					 | 
				
			||||||
    exporter("__spreadArray", __spreadArray);
 | 
					 | 
				
			||||||
    exporter("__await", __await);
 | 
					 | 
				
			||||||
    exporter("__asyncGenerator", __asyncGenerator);
 | 
					 | 
				
			||||||
    exporter("__asyncDelegator", __asyncDelegator);
 | 
					 | 
				
			||||||
    exporter("__asyncValues", __asyncValues);
 | 
					 | 
				
			||||||
    exporter("__makeTemplateObject", __makeTemplateObject);
 | 
					 | 
				
			||||||
    exporter("__importStar", __importStar);
 | 
					 | 
				
			||||||
    exporter("__importDefault", __importDefault);
 | 
					 | 
				
			||||||
    exporter("__classPrivateFieldGet", __classPrivateFieldGet);
 | 
					 | 
				
			||||||
    exporter("__classPrivateFieldSet", __classPrivateFieldSet);
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/***/ }),
 | 
					 | 
				
			||||||
/* 641 */,
 | 
					/* 641 */,
 | 
				
			||||||
/* 642 */,
 | 
					/* 642 */,
 | 
				
			||||||
/* 643 */,
 | 
					/* 643 */,
 | 
				
			||||||
@@ -47329,6 +47081,7 @@ const path = __importStar(__webpack_require__(622));
 | 
				
			|||||||
const utils = __importStar(__webpack_require__(15));
 | 
					const utils = __importStar(__webpack_require__(15));
 | 
				
			||||||
const cacheHttpClient = __importStar(__webpack_require__(114));
 | 
					const cacheHttpClient = __importStar(__webpack_require__(114));
 | 
				
			||||||
const tar_1 = __webpack_require__(434);
 | 
					const tar_1 = __webpack_require__(434);
 | 
				
			||||||
 | 
					const constants_1 = __webpack_require__(931);
 | 
				
			||||||
class ValidationError extends Error {
 | 
					class ValidationError extends Error {
 | 
				
			||||||
    constructor(message) {
 | 
					    constructor(message) {
 | 
				
			||||||
        super(message);
 | 
					        super(message);
 | 
				
			||||||
@@ -47390,13 +47143,33 @@ function restoreCache(paths, primaryKey, restoreKeys, options) {
 | 
				
			|||||||
        for (const key of keys) {
 | 
					        for (const key of keys) {
 | 
				
			||||||
            checkKey(key);
 | 
					            checkKey(key);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        const compressionMethod = yield utils.getCompressionMethod();
 | 
					        let cacheEntry;
 | 
				
			||||||
 | 
					        let compressionMethod = yield utils.getCompressionMethod();
 | 
				
			||||||
        let archivePath = '';
 | 
					        let archivePath = '';
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
            try {
 | 
					            try {
 | 
				
			||||||
                // path are needed to compute version
 | 
					                // path are needed to compute version
 | 
				
			||||||
            const cacheEntry = yield cacheHttpClient.getCacheEntry(keys, paths, {
 | 
					                cacheEntry = yield cacheHttpClient.getCacheEntry(keys, paths, {
 | 
				
			||||||
                    compressionMethod
 | 
					                    compressionMethod
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            catch (error) {
 | 
				
			||||||
 | 
					                // This is to support the old cache entry created
 | 
				
			||||||
 | 
					                // by the old version of the cache action on windows.
 | 
				
			||||||
 | 
					                if (process.platform === 'win32' &&
 | 
				
			||||||
 | 
					                    compressionMethod !== constants_1.CompressionMethod.Gzip) {
 | 
				
			||||||
 | 
					                    compressionMethod = constants_1.CompressionMethod.Gzip;
 | 
				
			||||||
 | 
					                    cacheEntry = yield cacheHttpClient.getCacheEntry(keys, paths, {
 | 
				
			||||||
 | 
					                        compressionMethod
 | 
				
			||||||
 | 
					                    });
 | 
				
			||||||
 | 
					                    if (!(cacheEntry === null || cacheEntry === void 0 ? void 0 : cacheEntry.archiveLocation)) {
 | 
				
			||||||
 | 
					                        throw error;
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                else {
 | 
				
			||||||
 | 
					                    throw error;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
            if (!(cacheEntry === null || cacheEntry === void 0 ? void 0 : cacheEntry.archiveLocation)) {
 | 
					            if (!(cacheEntry === null || cacheEntry === void 0 ? void 0 : cacheEntry.archiveLocation)) {
 | 
				
			||||||
                // Cache not found
 | 
					                // Cache not found
 | 
				
			||||||
                return undefined;
 | 
					                return undefined;
 | 
				
			||||||
@@ -53485,6 +53258,11 @@ var CompressionMethod;
 | 
				
			|||||||
    CompressionMethod["ZstdWithoutLong"] = "zstd-without-long";
 | 
					    CompressionMethod["ZstdWithoutLong"] = "zstd-without-long";
 | 
				
			||||||
    CompressionMethod["Zstd"] = "zstd";
 | 
					    CompressionMethod["Zstd"] = "zstd";
 | 
				
			||||||
})(CompressionMethod = exports.CompressionMethod || (exports.CompressionMethod = {}));
 | 
					})(CompressionMethod = exports.CompressionMethod || (exports.CompressionMethod = {}));
 | 
				
			||||||
 | 
					var ArchiveToolType;
 | 
				
			||||||
 | 
					(function (ArchiveToolType) {
 | 
				
			||||||
 | 
					    ArchiveToolType["GNU"] = "gnu";
 | 
				
			||||||
 | 
					    ArchiveToolType["BSD"] = "bsd";
 | 
				
			||||||
 | 
					})(ArchiveToolType = exports.ArchiveToolType || (exports.ArchiveToolType = {}));
 | 
				
			||||||
// The default number of retry attempts.
 | 
					// The default number of retry attempts.
 | 
				
			||||||
exports.DefaultRetryAttempts = 2;
 | 
					exports.DefaultRetryAttempts = 2;
 | 
				
			||||||
// The default delay in milliseconds between retry attempts.
 | 
					// The default delay in milliseconds between retry attempts.
 | 
				
			||||||
@@ -53493,6 +53271,12 @@ exports.DefaultRetryDelay = 5000;
 | 
				
			|||||||
// over the socket during this period, the socket is destroyed and the download
 | 
					// over the socket during this period, the socket is destroyed and the download
 | 
				
			||||||
// is aborted.
 | 
					// is aborted.
 | 
				
			||||||
exports.SocketTimeout = 5000;
 | 
					exports.SocketTimeout = 5000;
 | 
				
			||||||
 | 
					// The default path of GNUtar on hosted Windows runners
 | 
				
			||||||
 | 
					exports.GnuTarPathOnWindows = `${process.env['PROGRAMFILES']}\\Git\\usr\\bin\\tar.exe`;
 | 
				
			||||||
 | 
					// The default path of BSDtar on hosted Windows runners
 | 
				
			||||||
 | 
					exports.SystemTarPathOnWindows = `${process.env['SYSTEMDRIVE']}\\Windows\\System32\\tar.exe`;
 | 
				
			||||||
 | 
					exports.TarFilename = 'cache.tar';
 | 
				
			||||||
 | 
					exports.ManifestFilename = 'manifest.txt';
 | 
				
			||||||
//# sourceMappingURL=constants.js.map
 | 
					//# sourceMappingURL=constants.js.map
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/***/ }),
 | 
					/***/ }),
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										694
									
								
								dist/save/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										694
									
								
								dist/save/index.js
									
									
									
									
										vendored
									
									
								
							@@ -1177,10 +1177,6 @@ function getVersion(app) {
 | 
				
			|||||||
// Use zstandard if possible to maximize cache performance
 | 
					// Use zstandard if possible to maximize cache performance
 | 
				
			||||||
function getCompressionMethod() {
 | 
					function getCompressionMethod() {
 | 
				
			||||||
    return __awaiter(this, void 0, void 0, function* () {
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
        if (process.platform === 'win32' && !(yield isGnuTarInstalled())) {
 | 
					 | 
				
			||||||
            // Disable zstd due to bug https://github.com/actions/cache/issues/301
 | 
					 | 
				
			||||||
            return constants_1.CompressionMethod.Gzip;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        const versionOutput = yield getVersion('zstd');
 | 
					        const versionOutput = yield getVersion('zstd');
 | 
				
			||||||
        const version = semver.clean(versionOutput);
 | 
					        const version = semver.clean(versionOutput);
 | 
				
			||||||
        if (!versionOutput.toLowerCase().includes('zstd command line interface')) {
 | 
					        if (!versionOutput.toLowerCase().includes('zstd command line interface')) {
 | 
				
			||||||
@@ -1204,13 +1200,16 @@ function getCacheFileName(compressionMethod) {
 | 
				
			|||||||
        : constants_1.CacheFilename.Zstd;
 | 
					        : constants_1.CacheFilename.Zstd;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
exports.getCacheFileName = getCacheFileName;
 | 
					exports.getCacheFileName = getCacheFileName;
 | 
				
			||||||
function isGnuTarInstalled() {
 | 
					function getGnuTarPathOnWindows() {
 | 
				
			||||||
    return __awaiter(this, void 0, void 0, function* () {
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
 | 
					        if (fs.existsSync(constants_1.GnuTarPathOnWindows)) {
 | 
				
			||||||
 | 
					            return constants_1.GnuTarPathOnWindows;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        const versionOutput = yield getVersion('tar');
 | 
					        const versionOutput = yield getVersion('tar');
 | 
				
			||||||
        return versionOutput.toLowerCase().includes('gnu tar');
 | 
					        return versionOutput.toLowerCase().includes('gnu tar') ? io.which('tar') : '';
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
exports.isGnuTarInstalled = isGnuTarInstalled;
 | 
					exports.getGnuTarPathOnWindows = getGnuTarPathOnWindows;
 | 
				
			||||||
function assertDefined(name, value) {
 | 
					function assertDefined(name, value) {
 | 
				
			||||||
    if (value === undefined) {
 | 
					    if (value === undefined) {
 | 
				
			||||||
        throw Error(`Expected ${name} but value was undefiend`);
 | 
					        throw Error(`Expected ${name} but value was undefiend`);
 | 
				
			||||||
@@ -3046,19 +3045,18 @@ exports.default = _default;
 | 
				
			|||||||
/***/ }),
 | 
					/***/ }),
 | 
				
			||||||
/* 105 */,
 | 
					/* 105 */,
 | 
				
			||||||
/* 106 */
 | 
					/* 106 */
 | 
				
			||||||
/***/ (function(__unusedmodule, exports, __webpack_require__) {
 | 
					/***/ (function(__unusedmodule, exports) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
"use strict";
 | 
					"use strict";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Object.defineProperty(exports, '__esModule', { value: true });
 | 
					Object.defineProperty(exports, '__esModule', { value: true });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var tslib = __webpack_require__(640);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Copyright (c) Microsoft Corporation.
 | 
					// Copyright (c) Microsoft Corporation.
 | 
				
			||||||
// Licensed under the MIT license.
 | 
					// Licensed under the MIT license.
 | 
				
			||||||
var listenersMap = new WeakMap();
 | 
					/// <reference path="../shims-public.d.ts" />
 | 
				
			||||||
var abortedMap = new WeakMap();
 | 
					const listenersMap = new WeakMap();
 | 
				
			||||||
 | 
					const abortedMap = new WeakMap();
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * An aborter instance implements AbortSignal interface, can abort HTTP requests.
 | 
					 * An aborter instance implements AbortSignal interface, can abort HTTP requests.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
@@ -3072,8 +3070,8 @@ var abortedMap = new WeakMap();
 | 
				
			|||||||
 * await doAsyncWork(AbortSignal.none);
 | 
					 * await doAsyncWork(AbortSignal.none);
 | 
				
			||||||
 * ```
 | 
					 * ```
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
var AbortSignal = /** @class */ (function () {
 | 
					class AbortSignal {
 | 
				
			||||||
    function AbortSignal() {
 | 
					    constructor() {
 | 
				
			||||||
        /**
 | 
					        /**
 | 
				
			||||||
         * onabort event listener.
 | 
					         * onabort event listener.
 | 
				
			||||||
         */
 | 
					         */
 | 
				
			||||||
@@ -3081,74 +3079,65 @@ var AbortSignal = /** @class */ (function () {
 | 
				
			|||||||
        listenersMap.set(this, []);
 | 
					        listenersMap.set(this, []);
 | 
				
			||||||
        abortedMap.set(this, false);
 | 
					        abortedMap.set(this, false);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    Object.defineProperty(AbortSignal.prototype, "aborted", {
 | 
					 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Status of whether aborted or not.
 | 
					     * Status of whether aborted or not.
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @readonly
 | 
					     * @readonly
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
        get: function () {
 | 
					    get aborted() {
 | 
				
			||||||
        if (!abortedMap.has(this)) {
 | 
					        if (!abortedMap.has(this)) {
 | 
				
			||||||
            throw new TypeError("Expected `this` to be an instance of AbortSignal.");
 | 
					            throw new TypeError("Expected `this` to be an instance of AbortSignal.");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return abortedMap.get(this);
 | 
					        return abortedMap.get(this);
 | 
				
			||||||
        },
 | 
					    }
 | 
				
			||||||
        enumerable: false,
 | 
					 | 
				
			||||||
        configurable: true
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
    Object.defineProperty(AbortSignal, "none", {
 | 
					 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Creates a new AbortSignal instance that will never be aborted.
 | 
					     * Creates a new AbortSignal instance that will never be aborted.
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @readonly
 | 
					     * @readonly
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
        get: function () {
 | 
					    static get none() {
 | 
				
			||||||
        return new AbortSignal();
 | 
					        return new AbortSignal();
 | 
				
			||||||
        },
 | 
					    }
 | 
				
			||||||
        enumerable: false,
 | 
					 | 
				
			||||||
        configurable: true
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Added new "abort" event listener, only support "abort" event.
 | 
					     * Added new "abort" event listener, only support "abort" event.
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @param _type - Only support "abort" event
 | 
					     * @param _type - Only support "abort" event
 | 
				
			||||||
     * @param listener - The listener to be added
 | 
					     * @param listener - The listener to be added
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    AbortSignal.prototype.addEventListener = function (
 | 
					    addEventListener(
 | 
				
			||||||
    // tslint:disable-next-line:variable-name
 | 
					    // tslint:disable-next-line:variable-name
 | 
				
			||||||
    _type, listener) {
 | 
					    _type, listener) {
 | 
				
			||||||
        if (!listenersMap.has(this)) {
 | 
					        if (!listenersMap.has(this)) {
 | 
				
			||||||
            throw new TypeError("Expected `this` to be an instance of AbortSignal.");
 | 
					            throw new TypeError("Expected `this` to be an instance of AbortSignal.");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        var listeners = listenersMap.get(this);
 | 
					        const listeners = listenersMap.get(this);
 | 
				
			||||||
        listeners.push(listener);
 | 
					        listeners.push(listener);
 | 
				
			||||||
    };
 | 
					    }
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Remove "abort" event listener, only support "abort" event.
 | 
					     * Remove "abort" event listener, only support "abort" event.
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @param _type - Only support "abort" event
 | 
					     * @param _type - Only support "abort" event
 | 
				
			||||||
     * @param listener - The listener to be removed
 | 
					     * @param listener - The listener to be removed
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    AbortSignal.prototype.removeEventListener = function (
 | 
					    removeEventListener(
 | 
				
			||||||
    // tslint:disable-next-line:variable-name
 | 
					    // tslint:disable-next-line:variable-name
 | 
				
			||||||
    _type, listener) {
 | 
					    _type, listener) {
 | 
				
			||||||
        if (!listenersMap.has(this)) {
 | 
					        if (!listenersMap.has(this)) {
 | 
				
			||||||
            throw new TypeError("Expected `this` to be an instance of AbortSignal.");
 | 
					            throw new TypeError("Expected `this` to be an instance of AbortSignal.");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        var listeners = listenersMap.get(this);
 | 
					        const listeners = listenersMap.get(this);
 | 
				
			||||||
        var index = listeners.indexOf(listener);
 | 
					        const index = listeners.indexOf(listener);
 | 
				
			||||||
        if (index > -1) {
 | 
					        if (index > -1) {
 | 
				
			||||||
            listeners.splice(index, 1);
 | 
					            listeners.splice(index, 1);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    };
 | 
					    }
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Dispatches a synthetic event to the AbortSignal.
 | 
					     * Dispatches a synthetic event to the AbortSignal.
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    AbortSignal.prototype.dispatchEvent = function (_event) {
 | 
					    dispatchEvent(_event) {
 | 
				
			||||||
        throw new Error("This is a stub dispatchEvent implementation that should not be used.  It only exists for type-checking purposes.");
 | 
					        throw new Error("This is a stub dispatchEvent implementation that should not be used.  It only exists for type-checking purposes.");
 | 
				
			||||||
    };
 | 
					    }
 | 
				
			||||||
    return AbortSignal;
 | 
					}
 | 
				
			||||||
}());
 | 
					 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Helper to trigger an abort event immediately, the onabort and all abort event listeners will be triggered.
 | 
					 * Helper to trigger an abort event immediately, the onabort and all abort event listeners will be triggered.
 | 
				
			||||||
 * Will try to trigger abort event for all linked AbortSignal nodes.
 | 
					 * Will try to trigger abort event for all linked AbortSignal nodes.
 | 
				
			||||||
@@ -3166,12 +3155,12 @@ function abortSignal(signal) {
 | 
				
			|||||||
    if (signal.onabort) {
 | 
					    if (signal.onabort) {
 | 
				
			||||||
        signal.onabort.call(signal);
 | 
					        signal.onabort.call(signal);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    var listeners = listenersMap.get(signal);
 | 
					    const listeners = listenersMap.get(signal);
 | 
				
			||||||
    if (listeners) {
 | 
					    if (listeners) {
 | 
				
			||||||
        // Create a copy of listeners so mutations to the array
 | 
					        // Create a copy of listeners so mutations to the array
 | 
				
			||||||
        // (e.g. via removeListener calls) don't affect the listeners
 | 
					        // (e.g. via removeListener calls) don't affect the listeners
 | 
				
			||||||
        // we invoke.
 | 
					        // we invoke.
 | 
				
			||||||
        listeners.slice().forEach(function (listener) {
 | 
					        listeners.slice().forEach((listener) => {
 | 
				
			||||||
            listener.call(signal, { type: "abort" });
 | 
					            listener.call(signal, { type: "abort" });
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -3197,15 +3186,12 @@ function abortSignal(signal) {
 | 
				
			|||||||
 * }
 | 
					 * }
 | 
				
			||||||
 * ```
 | 
					 * ```
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
var AbortError = /** @class */ (function (_super) {
 | 
					class AbortError extends Error {
 | 
				
			||||||
    tslib.__extends(AbortError, _super);
 | 
					    constructor(message) {
 | 
				
			||||||
    function AbortError(message) {
 | 
					        super(message);
 | 
				
			||||||
        var _this = _super.call(this, message) || this;
 | 
					        this.name = "AbortError";
 | 
				
			||||||
        _this.name = "AbortError";
 | 
					 | 
				
			||||||
        return _this;
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    return AbortError;
 | 
					}
 | 
				
			||||||
}(Error));
 | 
					 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * An AbortController provides an AbortSignal and the associated controls to signal
 | 
					 * An AbortController provides an AbortSignal and the associated controls to signal
 | 
				
			||||||
 * that an asynchronous operation should be aborted.
 | 
					 * that an asynchronous operation should be aborted.
 | 
				
			||||||
@@ -3240,10 +3226,9 @@ var AbortError = /** @class */ (function (_super) {
 | 
				
			|||||||
 * await doAsyncWork(aborter.withTimeout(25 * 1000));
 | 
					 * await doAsyncWork(aborter.withTimeout(25 * 1000));
 | 
				
			||||||
 * ```
 | 
					 * ```
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
var AbortController = /** @class */ (function () {
 | 
					class AbortController {
 | 
				
			||||||
    // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
 | 
					    // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
 | 
				
			||||||
    function AbortController(parentSignals) {
 | 
					    constructor(parentSignals) {
 | 
				
			||||||
        var _this = this;
 | 
					 | 
				
			||||||
        this._signal = new AbortSignal();
 | 
					        this._signal = new AbortSignal();
 | 
				
			||||||
        if (!parentSignals) {
 | 
					        if (!parentSignals) {
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
@@ -3253,8 +3238,7 @@ var AbortController = /** @class */ (function () {
 | 
				
			|||||||
            // eslint-disable-next-line prefer-rest-params
 | 
					            // eslint-disable-next-line prefer-rest-params
 | 
				
			||||||
            parentSignals = arguments;
 | 
					            parentSignals = arguments;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        for (var _i = 0, parentSignals_1 = parentSignals; _i < parentSignals_1.length; _i++) {
 | 
					        for (const parentSignal of parentSignals) {
 | 
				
			||||||
            var parentSignal = parentSignals_1[_i];
 | 
					 | 
				
			||||||
            // if the parent signal has already had abort() called,
 | 
					            // if the parent signal has already had abort() called,
 | 
				
			||||||
            // then call abort on this signal as well.
 | 
					            // then call abort on this signal as well.
 | 
				
			||||||
            if (parentSignal.aborted) {
 | 
					            if (parentSignal.aborted) {
 | 
				
			||||||
@@ -3262,47 +3246,42 @@ var AbortController = /** @class */ (function () {
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
            else {
 | 
					            else {
 | 
				
			||||||
                // when the parent signal aborts, this signal should as well.
 | 
					                // when the parent signal aborts, this signal should as well.
 | 
				
			||||||
                parentSignal.addEventListener("abort", function () {
 | 
					                parentSignal.addEventListener("abort", () => {
 | 
				
			||||||
                    _this.abort();
 | 
					                    this.abort();
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    Object.defineProperty(AbortController.prototype, "signal", {
 | 
					 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * The AbortSignal associated with this controller that will signal aborted
 | 
					     * The AbortSignal associated with this controller that will signal aborted
 | 
				
			||||||
     * when the abort method is called on this controller.
 | 
					     * when the abort method is called on this controller.
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @readonly
 | 
					     * @readonly
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
        get: function () {
 | 
					    get signal() {
 | 
				
			||||||
        return this._signal;
 | 
					        return this._signal;
 | 
				
			||||||
        },
 | 
					    }
 | 
				
			||||||
        enumerable: false,
 | 
					 | 
				
			||||||
        configurable: true
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Signal that any operations passed this controller's associated abort signal
 | 
					     * Signal that any operations passed this controller's associated abort signal
 | 
				
			||||||
     * to cancel any remaining work and throw an `AbortError`.
 | 
					     * to cancel any remaining work and throw an `AbortError`.
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    AbortController.prototype.abort = function () {
 | 
					    abort() {
 | 
				
			||||||
        abortSignal(this._signal);
 | 
					        abortSignal(this._signal);
 | 
				
			||||||
    };
 | 
					    }
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Creates a new AbortSignal instance that will abort after the provided ms.
 | 
					     * Creates a new AbortSignal instance that will abort after the provided ms.
 | 
				
			||||||
     * @param ms - Elapsed time in milliseconds to trigger an abort.
 | 
					     * @param ms - Elapsed time in milliseconds to trigger an abort.
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    AbortController.timeout = function (ms) {
 | 
					    static timeout(ms) {
 | 
				
			||||||
        var signal = new AbortSignal();
 | 
					        const signal = new AbortSignal();
 | 
				
			||||||
        var timer = setTimeout(abortSignal, ms, signal);
 | 
					        const timer = setTimeout(abortSignal, ms, signal);
 | 
				
			||||||
        // Prevent the active Timer from keeping the Node.js event loop active.
 | 
					        // Prevent the active Timer from keeping the Node.js event loop active.
 | 
				
			||||||
        if (typeof timer.unref === "function") {
 | 
					        if (typeof timer.unref === "function") {
 | 
				
			||||||
            timer.unref();
 | 
					            timer.unref();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return signal;
 | 
					        return signal;
 | 
				
			||||||
    };
 | 
					    }
 | 
				
			||||||
    return AbortController;
 | 
					}
 | 
				
			||||||
}());
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
exports.AbortController = AbortController;
 | 
					exports.AbortController = AbortController;
 | 
				
			||||||
exports.AbortError = AbortError;
 | 
					exports.AbortError = AbortError;
 | 
				
			||||||
@@ -38055,21 +38034,19 @@ const path = __importStar(__webpack_require__(622));
 | 
				
			|||||||
const utils = __importStar(__webpack_require__(15));
 | 
					const utils = __importStar(__webpack_require__(15));
 | 
				
			||||||
const constants_1 = __webpack_require__(931);
 | 
					const constants_1 = __webpack_require__(931);
 | 
				
			||||||
const IS_WINDOWS = process.platform === 'win32';
 | 
					const IS_WINDOWS = process.platform === 'win32';
 | 
				
			||||||
function getTarPath(args, compressionMethod) {
 | 
					// Function also mutates the args array. For non-mutation call with passing an empty array.
 | 
				
			||||||
 | 
					function getTarPath() {
 | 
				
			||||||
    return __awaiter(this, void 0, void 0, function* () {
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
        switch (process.platform) {
 | 
					        switch (process.platform) {
 | 
				
			||||||
            case 'win32': {
 | 
					            case 'win32': {
 | 
				
			||||||
                const systemTar = `${process.env['windir']}\\System32\\tar.exe`;
 | 
					                const gnuTar = yield utils.getGnuTarPathOnWindows();
 | 
				
			||||||
                if (compressionMethod !== constants_1.CompressionMethod.Gzip) {
 | 
					                const systemTar = constants_1.SystemTarPathOnWindows;
 | 
				
			||||||
                    // We only use zstandard compression on windows when gnu tar is installed due to
 | 
					                if (gnuTar) {
 | 
				
			||||||
                    // a bug with compressing large files with bsdtar + zstd
 | 
					                    // Use GNUtar as default on windows
 | 
				
			||||||
                    args.push('--force-local');
 | 
					                    return { path: gnuTar, type: constants_1.ArchiveToolType.GNU };
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else if (fs_1.existsSync(systemTar)) {
 | 
					                else if (fs_1.existsSync(systemTar)) {
 | 
				
			||||||
                    return systemTar;
 | 
					                    return { path: systemTar, type: constants_1.ArchiveToolType.BSD };
 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                else if (yield utils.isGnuTarInstalled()) {
 | 
					 | 
				
			||||||
                    args.push('--force-local');
 | 
					 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@@ -38077,24 +38054,83 @@ function getTarPath(args, compressionMethod) {
 | 
				
			|||||||
                const gnuTar = yield io.which('gtar', false);
 | 
					                const gnuTar = yield io.which('gtar', false);
 | 
				
			||||||
                if (gnuTar) {
 | 
					                if (gnuTar) {
 | 
				
			||||||
                    // fix permission denied errors when extracting BSD tar archive with GNU tar - https://github.com/actions/cache/issues/527
 | 
					                    // fix permission denied errors when extracting BSD tar archive with GNU tar - https://github.com/actions/cache/issues/527
 | 
				
			||||||
                    args.push('--delay-directory-restore');
 | 
					                    return { path: gnuTar, type: constants_1.ArchiveToolType.GNU };
 | 
				
			||||||
                    return gnuTar;
 | 
					                }
 | 
				
			||||||
 | 
					                else {
 | 
				
			||||||
 | 
					                    return {
 | 
				
			||||||
 | 
					                        path: yield io.which('tar', true),
 | 
				
			||||||
 | 
					                        type: constants_1.ArchiveToolType.BSD
 | 
				
			||||||
 | 
					                    };
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                break;
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            default:
 | 
					            default:
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return yield io.which('tar', true);
 | 
					        return {
 | 
				
			||||||
 | 
					            path: yield io.which('tar', true),
 | 
				
			||||||
 | 
					            type: constants_1.ArchiveToolType.GNU
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
function execTar(args, compressionMethod, cwd) {
 | 
					// Return arguments for tar as per tarPath, compressionMethod, method type and os
 | 
				
			||||||
 | 
					function getTarArgs(tarPath, compressionMethod, type, archivePath = '') {
 | 
				
			||||||
    return __awaiter(this, void 0, void 0, function* () {
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
        try {
 | 
					        const args = [`"${tarPath.path}"`];
 | 
				
			||||||
            yield exec_1.exec(`"${yield getTarPath(args, compressionMethod)}"`, args, { cwd });
 | 
					        const cacheFileName = utils.getCacheFileName(compressionMethod);
 | 
				
			||||||
 | 
					        const tarFile = 'cache.tar';
 | 
				
			||||||
 | 
					        const workingDirectory = getWorkingDirectory();
 | 
				
			||||||
 | 
					        const BSD_TAR_ZSTD = tarPath.type === constants_1.ArchiveToolType.BSD &&
 | 
				
			||||||
 | 
					            compressionMethod !== constants_1.CompressionMethod.Gzip &&
 | 
				
			||||||
 | 
					            IS_WINDOWS;
 | 
				
			||||||
 | 
					        // Method specific args
 | 
				
			||||||
 | 
					        switch (type) {
 | 
				
			||||||
 | 
					            case 'create':
 | 
				
			||||||
 | 
					                args.push('--posix', '-cf', BSD_TAR_ZSTD
 | 
				
			||||||
 | 
					                    ? tarFile
 | 
				
			||||||
 | 
					                    : cacheFileName.replace(new RegExp(`\\${path.sep}`, 'g'), '/'), '--exclude', BSD_TAR_ZSTD
 | 
				
			||||||
 | 
					                    ? tarFile
 | 
				
			||||||
 | 
					                    : cacheFileName.replace(new RegExp(`\\${path.sep}`, 'g'), '/'), '-P', '-C', workingDirectory.replace(new RegExp(`\\${path.sep}`, 'g'), '/'), '--files-from', constants_1.ManifestFilename);
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            case 'extract':
 | 
				
			||||||
 | 
					                args.push('-xf', BSD_TAR_ZSTD
 | 
				
			||||||
 | 
					                    ? tarFile
 | 
				
			||||||
 | 
					                    : archivePath.replace(new RegExp(`\\${path.sep}`, 'g'), '/'), '-P', '-C', workingDirectory.replace(new RegExp(`\\${path.sep}`, 'g'), '/'));
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            case 'list':
 | 
				
			||||||
 | 
					                args.push('-tf', BSD_TAR_ZSTD
 | 
				
			||||||
 | 
					                    ? tarFile
 | 
				
			||||||
 | 
					                    : archivePath.replace(new RegExp(`\\${path.sep}`, 'g'), '/'), '-P');
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        catch (error) {
 | 
					        // Platform specific args
 | 
				
			||||||
            throw new Error(`Tar failed with error: ${error === null || error === void 0 ? void 0 : error.message}`);
 | 
					        if (tarPath.type === constants_1.ArchiveToolType.GNU) {
 | 
				
			||||||
 | 
					            switch (process.platform) {
 | 
				
			||||||
 | 
					                case 'win32':
 | 
				
			||||||
 | 
					                    args.push('--force-local');
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					                case 'darwin':
 | 
				
			||||||
 | 
					                    args.push('--delay-directory-restore');
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return args;
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					function getArgs(compressionMethod, type, archivePath = '') {
 | 
				
			||||||
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
 | 
					        const tarPath = yield getTarPath();
 | 
				
			||||||
 | 
					        const tarArgs = yield getTarArgs(tarPath, compressionMethod, type, archivePath);
 | 
				
			||||||
 | 
					        const compressionArgs = type !== 'create'
 | 
				
			||||||
 | 
					            ? yield getDecompressionProgram(tarPath, compressionMethod, archivePath)
 | 
				
			||||||
 | 
					            : yield getCompressionProgram(tarPath, compressionMethod);
 | 
				
			||||||
 | 
					        const BSD_TAR_ZSTD = tarPath.type === constants_1.ArchiveToolType.BSD &&
 | 
				
			||||||
 | 
					            compressionMethod !== constants_1.CompressionMethod.Gzip &&
 | 
				
			||||||
 | 
					            IS_WINDOWS;
 | 
				
			||||||
 | 
					        if (BSD_TAR_ZSTD && type !== 'create') {
 | 
				
			||||||
 | 
					            return [...compressionArgs, ...tarArgs].join(' ');
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else {
 | 
				
			||||||
 | 
					            return [...tarArgs, ...compressionArgs].join(' ');
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -38103,32 +38139,89 @@ function getWorkingDirectory() {
 | 
				
			|||||||
    return (_a = process.env['GITHUB_WORKSPACE']) !== null && _a !== void 0 ? _a : process.cwd();
 | 
					    return (_a = process.env['GITHUB_WORKSPACE']) !== null && _a !== void 0 ? _a : process.cwd();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
// Common function for extractTar and listTar to get the compression method
 | 
					// Common function for extractTar and listTar to get the compression method
 | 
				
			||||||
function getCompressionProgram(compressionMethod) {
 | 
					function getDecompressionProgram(tarPath, compressionMethod, archivePath) {
 | 
				
			||||||
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
        // -d: Decompress.
 | 
					        // -d: Decompress.
 | 
				
			||||||
        // unzstd is equivalent to 'zstd -d'
 | 
					        // unzstd is equivalent to 'zstd -d'
 | 
				
			||||||
        // --long=#: Enables long distance matching with # bits. Maximum is 30 (1GB) on 32-bit OS and 31 (2GB) on 64-bit.
 | 
					        // --long=#: Enables long distance matching with # bits. Maximum is 30 (1GB) on 32-bit OS and 31 (2GB) on 64-bit.
 | 
				
			||||||
        // Using 30 here because we also support 32-bit self-hosted runners.
 | 
					        // Using 30 here because we also support 32-bit self-hosted runners.
 | 
				
			||||||
 | 
					        const BSD_TAR_ZSTD = tarPath.type === constants_1.ArchiveToolType.BSD &&
 | 
				
			||||||
 | 
					            compressionMethod !== constants_1.CompressionMethod.Gzip &&
 | 
				
			||||||
 | 
					            IS_WINDOWS;
 | 
				
			||||||
        switch (compressionMethod) {
 | 
					        switch (compressionMethod) {
 | 
				
			||||||
            case constants_1.CompressionMethod.Zstd:
 | 
					            case constants_1.CompressionMethod.Zstd:
 | 
				
			||||||
            return [
 | 
					                return BSD_TAR_ZSTD
 | 
				
			||||||
 | 
					                    ? [
 | 
				
			||||||
 | 
					                        'zstd -d --long=30 -o',
 | 
				
			||||||
 | 
					                        constants_1.TarFilename,
 | 
				
			||||||
 | 
					                        archivePath.replace(new RegExp(`\\${path.sep}`, 'g'), '/'),
 | 
				
			||||||
 | 
					                        '&&'
 | 
				
			||||||
 | 
					                    ]
 | 
				
			||||||
 | 
					                    : [
 | 
				
			||||||
                        '--use-compress-program',
 | 
					                        '--use-compress-program',
 | 
				
			||||||
                IS_WINDOWS ? 'zstd -d --long=30' : 'unzstd --long=30'
 | 
					                        IS_WINDOWS ? '"zstd -d --long=30"' : 'unzstd --long=30'
 | 
				
			||||||
                    ];
 | 
					                    ];
 | 
				
			||||||
            case constants_1.CompressionMethod.ZstdWithoutLong:
 | 
					            case constants_1.CompressionMethod.ZstdWithoutLong:
 | 
				
			||||||
            return ['--use-compress-program', IS_WINDOWS ? 'zstd -d' : 'unzstd'];
 | 
					                return BSD_TAR_ZSTD
 | 
				
			||||||
 | 
					                    ? [
 | 
				
			||||||
 | 
					                        'zstd -d -o',
 | 
				
			||||||
 | 
					                        constants_1.TarFilename,
 | 
				
			||||||
 | 
					                        archivePath.replace(new RegExp(`\\${path.sep}`, 'g'), '/'),
 | 
				
			||||||
 | 
					                        '&&'
 | 
				
			||||||
 | 
					                    ]
 | 
				
			||||||
 | 
					                    : ['--use-compress-program', IS_WINDOWS ? '"zstd -d"' : 'unzstd'];
 | 
				
			||||||
            default:
 | 
					            default:
 | 
				
			||||||
                return ['-z'];
 | 
					                return ['-z'];
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					// -T#: Compress using # working thread. If # is 0, attempt to detect and use the number of physical CPU cores.
 | 
				
			||||||
 | 
					// zstdmt is equivalent to 'zstd -T0'
 | 
				
			||||||
 | 
					// --long=#: Enables long distance matching with # bits. Maximum is 30 (1GB) on 32-bit OS and 31 (2GB) on 64-bit.
 | 
				
			||||||
 | 
					// Using 30 here because we also support 32-bit self-hosted runners.
 | 
				
			||||||
 | 
					// Long range mode is added to zstd in v1.3.2 release, so we will not use --long in older version of zstd.
 | 
				
			||||||
 | 
					function getCompressionProgram(tarPath, compressionMethod) {
 | 
				
			||||||
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
 | 
					        const cacheFileName = utils.getCacheFileName(compressionMethod);
 | 
				
			||||||
 | 
					        const BSD_TAR_ZSTD = tarPath.type === constants_1.ArchiveToolType.BSD &&
 | 
				
			||||||
 | 
					            compressionMethod !== constants_1.CompressionMethod.Gzip &&
 | 
				
			||||||
 | 
					            IS_WINDOWS;
 | 
				
			||||||
 | 
					        switch (compressionMethod) {
 | 
				
			||||||
 | 
					            case constants_1.CompressionMethod.Zstd:
 | 
				
			||||||
 | 
					                return BSD_TAR_ZSTD
 | 
				
			||||||
 | 
					                    ? [
 | 
				
			||||||
 | 
					                        '&&',
 | 
				
			||||||
 | 
					                        'zstd -T0 --long=30 -o',
 | 
				
			||||||
 | 
					                        cacheFileName.replace(new RegExp(`\\${path.sep}`, 'g'), '/'),
 | 
				
			||||||
 | 
					                        constants_1.TarFilename
 | 
				
			||||||
 | 
					                    ]
 | 
				
			||||||
 | 
					                    : [
 | 
				
			||||||
 | 
					                        '--use-compress-program',
 | 
				
			||||||
 | 
					                        IS_WINDOWS ? '"zstd -T0 --long=30"' : 'zstdmt --long=30'
 | 
				
			||||||
 | 
					                    ];
 | 
				
			||||||
 | 
					            case constants_1.CompressionMethod.ZstdWithoutLong:
 | 
				
			||||||
 | 
					                return BSD_TAR_ZSTD
 | 
				
			||||||
 | 
					                    ? [
 | 
				
			||||||
 | 
					                        '&&',
 | 
				
			||||||
 | 
					                        'zstd -T0 -o',
 | 
				
			||||||
 | 
					                        cacheFileName.replace(new RegExp(`\\${path.sep}`, 'g'), '/'),
 | 
				
			||||||
 | 
					                        constants_1.TarFilename
 | 
				
			||||||
 | 
					                    ]
 | 
				
			||||||
 | 
					                    : ['--use-compress-program', IS_WINDOWS ? '"zstd -T0"' : 'zstdmt'];
 | 
				
			||||||
 | 
					            default:
 | 
				
			||||||
 | 
					                return ['-z'];
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
function listTar(archivePath, compressionMethod) {
 | 
					function listTar(archivePath, compressionMethod) {
 | 
				
			||||||
    return __awaiter(this, void 0, void 0, function* () {
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
        const args = [
 | 
					        const args = yield getArgs(compressionMethod, 'list', archivePath);
 | 
				
			||||||
            ...getCompressionProgram(compressionMethod),
 | 
					        try {
 | 
				
			||||||
            '-tf',
 | 
					            yield exec_1.exec(args);
 | 
				
			||||||
            archivePath.replace(new RegExp(`\\${path.sep}`, 'g'), '/'),
 | 
					        }
 | 
				
			||||||
            '-P'
 | 
					        catch (error) {
 | 
				
			||||||
        ];
 | 
					            throw new Error(`Tar failed with error: ${error === null || error === void 0 ? void 0 : error.message}`);
 | 
				
			||||||
        yield execTar(args, compressionMethod);
 | 
					        }
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
exports.listTar = listTar;
 | 
					exports.listTar = listTar;
 | 
				
			||||||
@@ -38137,57 +38230,27 @@ function extractTar(archivePath, compressionMethod) {
 | 
				
			|||||||
        // Create directory to extract tar into
 | 
					        // Create directory to extract tar into
 | 
				
			||||||
        const workingDirectory = getWorkingDirectory();
 | 
					        const workingDirectory = getWorkingDirectory();
 | 
				
			||||||
        yield io.mkdirP(workingDirectory);
 | 
					        yield io.mkdirP(workingDirectory);
 | 
				
			||||||
        const args = [
 | 
					        const args = yield getArgs(compressionMethod, 'extract', archivePath);
 | 
				
			||||||
            ...getCompressionProgram(compressionMethod),
 | 
					        try {
 | 
				
			||||||
            '-xf',
 | 
					            yield exec_1.exec(args);
 | 
				
			||||||
            archivePath.replace(new RegExp(`\\${path.sep}`, 'g'), '/'),
 | 
					        }
 | 
				
			||||||
            '-P',
 | 
					        catch (error) {
 | 
				
			||||||
            '-C',
 | 
					            throw new Error(`Tar failed with error: ${error === null || error === void 0 ? void 0 : error.message}`);
 | 
				
			||||||
            workingDirectory.replace(new RegExp(`\\${path.sep}`, 'g'), '/')
 | 
					        }
 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
        yield execTar(args, compressionMethod);
 | 
					 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
exports.extractTar = extractTar;
 | 
					exports.extractTar = extractTar;
 | 
				
			||||||
function createTar(archiveFolder, sourceDirectories, compressionMethod) {
 | 
					function createTar(archiveFolder, sourceDirectories, compressionMethod) {
 | 
				
			||||||
    return __awaiter(this, void 0, void 0, function* () {
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
        // Write source directories to manifest.txt to avoid command length limits
 | 
					        // Write source directories to manifest.txt to avoid command length limits
 | 
				
			||||||
        const manifestFilename = 'manifest.txt';
 | 
					        fs_1.writeFileSync(path.join(archiveFolder, constants_1.ManifestFilename), sourceDirectories.join('\n'));
 | 
				
			||||||
        const cacheFileName = utils.getCacheFileName(compressionMethod);
 | 
					        const args = yield getArgs(compressionMethod, 'create');
 | 
				
			||||||
        fs_1.writeFileSync(path.join(archiveFolder, manifestFilename), sourceDirectories.join('\n'));
 | 
					        try {
 | 
				
			||||||
        const workingDirectory = getWorkingDirectory();
 | 
					            yield exec_1.exec(args, undefined, { cwd: archiveFolder });
 | 
				
			||||||
        // -T#: Compress using # working thread. If # is 0, attempt to detect and use the number of physical CPU cores.
 | 
					 | 
				
			||||||
        // zstdmt is equivalent to 'zstd -T0'
 | 
					 | 
				
			||||||
        // --long=#: Enables long distance matching with # bits. Maximum is 30 (1GB) on 32-bit OS and 31 (2GB) on 64-bit.
 | 
					 | 
				
			||||||
        // Using 30 here because we also support 32-bit self-hosted runners.
 | 
					 | 
				
			||||||
        // Long range mode is added to zstd in v1.3.2 release, so we will not use --long in older version of zstd.
 | 
					 | 
				
			||||||
        function getCompressionProgram() {
 | 
					 | 
				
			||||||
            switch (compressionMethod) {
 | 
					 | 
				
			||||||
                case constants_1.CompressionMethod.Zstd:
 | 
					 | 
				
			||||||
                    return [
 | 
					 | 
				
			||||||
                        '--use-compress-program',
 | 
					 | 
				
			||||||
                        IS_WINDOWS ? 'zstd -T0 --long=30' : 'zstdmt --long=30'
 | 
					 | 
				
			||||||
                    ];
 | 
					 | 
				
			||||||
                case constants_1.CompressionMethod.ZstdWithoutLong:
 | 
					 | 
				
			||||||
                    return ['--use-compress-program', IS_WINDOWS ? 'zstd -T0' : 'zstdmt'];
 | 
					 | 
				
			||||||
                default:
 | 
					 | 
				
			||||||
                    return ['-z'];
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        catch (error) {
 | 
				
			||||||
 | 
					            throw new Error(`Tar failed with error: ${error === null || error === void 0 ? void 0 : error.message}`);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        const args = [
 | 
					 | 
				
			||||||
            '--posix',
 | 
					 | 
				
			||||||
            ...getCompressionProgram(),
 | 
					 | 
				
			||||||
            '-cf',
 | 
					 | 
				
			||||||
            cacheFileName.replace(new RegExp(`\\${path.sep}`, 'g'), '/'),
 | 
					 | 
				
			||||||
            '--exclude',
 | 
					 | 
				
			||||||
            cacheFileName.replace(new RegExp(`\\${path.sep}`, 'g'), '/'),
 | 
					 | 
				
			||||||
            '-P',
 | 
					 | 
				
			||||||
            '-C',
 | 
					 | 
				
			||||||
            workingDirectory.replace(new RegExp(`\\${path.sep}`, 'g'), '/'),
 | 
					 | 
				
			||||||
            '--files-from',
 | 
					 | 
				
			||||||
            manifestFilename
 | 
					 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
        yield execTar(args, compressionMethod, archiveFolder);
 | 
					 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
exports.createTar = createTar;
 | 
					exports.createTar = createTar;
 | 
				
			||||||
@@ -44126,318 +44189,7 @@ exports.default = _default;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/***/ }),
 | 
					/***/ }),
 | 
				
			||||||
/* 640 */
 | 
					/* 640 */,
 | 
				
			||||||
/***/ (function(module) {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*! *****************************************************************************
 | 
					 | 
				
			||||||
Copyright (c) Microsoft Corporation.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Permission to use, copy, modify, and/or distribute this software for any
 | 
					 | 
				
			||||||
purpose with or without fee is hereby granted.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
 | 
					 | 
				
			||||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
 | 
					 | 
				
			||||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
 | 
					 | 
				
			||||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
 | 
					 | 
				
			||||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
 | 
					 | 
				
			||||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 | 
					 | 
				
			||||||
PERFORMANCE OF THIS SOFTWARE.
 | 
					 | 
				
			||||||
***************************************************************************** */
 | 
					 | 
				
			||||||
/* global global, define, System, Reflect, Promise */
 | 
					 | 
				
			||||||
var __extends;
 | 
					 | 
				
			||||||
var __assign;
 | 
					 | 
				
			||||||
var __rest;
 | 
					 | 
				
			||||||
var __decorate;
 | 
					 | 
				
			||||||
var __param;
 | 
					 | 
				
			||||||
var __metadata;
 | 
					 | 
				
			||||||
var __awaiter;
 | 
					 | 
				
			||||||
var __generator;
 | 
					 | 
				
			||||||
var __exportStar;
 | 
					 | 
				
			||||||
var __values;
 | 
					 | 
				
			||||||
var __read;
 | 
					 | 
				
			||||||
var __spread;
 | 
					 | 
				
			||||||
var __spreadArrays;
 | 
					 | 
				
			||||||
var __spreadArray;
 | 
					 | 
				
			||||||
var __await;
 | 
					 | 
				
			||||||
var __asyncGenerator;
 | 
					 | 
				
			||||||
var __asyncDelegator;
 | 
					 | 
				
			||||||
var __asyncValues;
 | 
					 | 
				
			||||||
var __makeTemplateObject;
 | 
					 | 
				
			||||||
var __importStar;
 | 
					 | 
				
			||||||
var __importDefault;
 | 
					 | 
				
			||||||
var __classPrivateFieldGet;
 | 
					 | 
				
			||||||
var __classPrivateFieldSet;
 | 
					 | 
				
			||||||
var __createBinding;
 | 
					 | 
				
			||||||
(function (factory) {
 | 
					 | 
				
			||||||
    var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {};
 | 
					 | 
				
			||||||
    if (typeof define === "function" && define.amd) {
 | 
					 | 
				
			||||||
        define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); });
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    else if ( true && typeof module.exports === "object") {
 | 
					 | 
				
			||||||
        factory(createExporter(root, createExporter(module.exports)));
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    else {
 | 
					 | 
				
			||||||
        factory(createExporter(root));
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    function createExporter(exports, previous) {
 | 
					 | 
				
			||||||
        if (exports !== root) {
 | 
					 | 
				
			||||||
            if (typeof Object.create === "function") {
 | 
					 | 
				
			||||||
                Object.defineProperty(exports, "__esModule", { value: true });
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            else {
 | 
					 | 
				
			||||||
                exports.__esModule = true;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
})
 | 
					 | 
				
			||||||
(function (exporter) {
 | 
					 | 
				
			||||||
    var extendStatics = Object.setPrototypeOf ||
 | 
					 | 
				
			||||||
        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
 | 
					 | 
				
			||||||
        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __extends = function (d, b) {
 | 
					 | 
				
			||||||
        if (typeof b !== "function" && b !== null)
 | 
					 | 
				
			||||||
            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
 | 
					 | 
				
			||||||
        extendStatics(d, b);
 | 
					 | 
				
			||||||
        function __() { this.constructor = d; }
 | 
					 | 
				
			||||||
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __assign = Object.assign || function (t) {
 | 
					 | 
				
			||||||
        for (var s, i = 1, n = arguments.length; i < n; i++) {
 | 
					 | 
				
			||||||
            s = arguments[i];
 | 
					 | 
				
			||||||
            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        return t;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __rest = function (s, e) {
 | 
					 | 
				
			||||||
        var t = {};
 | 
					 | 
				
			||||||
        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
 | 
					 | 
				
			||||||
            t[p] = s[p];
 | 
					 | 
				
			||||||
        if (s != null && typeof Object.getOwnPropertySymbols === "function")
 | 
					 | 
				
			||||||
            for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
 | 
					 | 
				
			||||||
                if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
 | 
					 | 
				
			||||||
                    t[p[i]] = s[p[i]];
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        return t;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __decorate = function (decorators, target, key, desc) {
 | 
					 | 
				
			||||||
        var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
 | 
					 | 
				
			||||||
        if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
 | 
					 | 
				
			||||||
        else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
 | 
					 | 
				
			||||||
        return c > 3 && r && Object.defineProperty(target, key, r), r;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __param = function (paramIndex, decorator) {
 | 
					 | 
				
			||||||
        return function (target, key) { decorator(target, key, paramIndex); }
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __metadata = function (metadataKey, metadataValue) {
 | 
					 | 
				
			||||||
        if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __awaiter = function (thisArg, _arguments, P, generator) {
 | 
					 | 
				
			||||||
        function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
 | 
					 | 
				
			||||||
        return new (P || (P = Promise))(function (resolve, reject) {
 | 
					 | 
				
			||||||
            function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
 | 
					 | 
				
			||||||
            function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
 | 
					 | 
				
			||||||
            function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
 | 
					 | 
				
			||||||
            step((generator = generator.apply(thisArg, _arguments || [])).next());
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __generator = function (thisArg, body) {
 | 
					 | 
				
			||||||
        var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
 | 
					 | 
				
			||||||
        return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
 | 
					 | 
				
			||||||
        function verb(n) { return function (v) { return step([n, v]); }; }
 | 
					 | 
				
			||||||
        function step(op) {
 | 
					 | 
				
			||||||
            if (f) throw new TypeError("Generator is already executing.");
 | 
					 | 
				
			||||||
            while (_) try {
 | 
					 | 
				
			||||||
                if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
 | 
					 | 
				
			||||||
                if (y = 0, t) op = [op[0] & 2, t.value];
 | 
					 | 
				
			||||||
                switch (op[0]) {
 | 
					 | 
				
			||||||
                    case 0: case 1: t = op; break;
 | 
					 | 
				
			||||||
                    case 4: _.label++; return { value: op[1], done: false };
 | 
					 | 
				
			||||||
                    case 5: _.label++; y = op[1]; op = [0]; continue;
 | 
					 | 
				
			||||||
                    case 7: op = _.ops.pop(); _.trys.pop(); continue;
 | 
					 | 
				
			||||||
                    default:
 | 
					 | 
				
			||||||
                        if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
 | 
					 | 
				
			||||||
                        if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
 | 
					 | 
				
			||||||
                        if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
 | 
					 | 
				
			||||||
                        if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
 | 
					 | 
				
			||||||
                        if (t[2]) _.ops.pop();
 | 
					 | 
				
			||||||
                        _.trys.pop(); continue;
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                op = body.call(thisArg, _);
 | 
					 | 
				
			||||||
            } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
 | 
					 | 
				
			||||||
            if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __exportStar = function(m, o) {
 | 
					 | 
				
			||||||
        for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __createBinding = Object.create ? (function(o, m, k, k2) {
 | 
					 | 
				
			||||||
        if (k2 === undefined) k2 = k;
 | 
					 | 
				
			||||||
        Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
 | 
					 | 
				
			||||||
    }) : (function(o, m, k, k2) {
 | 
					 | 
				
			||||||
        if (k2 === undefined) k2 = k;
 | 
					 | 
				
			||||||
        o[k2] = m[k];
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __values = function (o) {
 | 
					 | 
				
			||||||
        var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
 | 
					 | 
				
			||||||
        if (m) return m.call(o);
 | 
					 | 
				
			||||||
        if (o && typeof o.length === "number") return {
 | 
					 | 
				
			||||||
            next: function () {
 | 
					 | 
				
			||||||
                if (o && i >= o.length) o = void 0;
 | 
					 | 
				
			||||||
                return { value: o && o[i++], done: !o };
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
        throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __read = function (o, n) {
 | 
					 | 
				
			||||||
        var m = typeof Symbol === "function" && o[Symbol.iterator];
 | 
					 | 
				
			||||||
        if (!m) return o;
 | 
					 | 
				
			||||||
        var i = m.call(o), r, ar = [], e;
 | 
					 | 
				
			||||||
        try {
 | 
					 | 
				
			||||||
            while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        catch (error) { e = { error: error }; }
 | 
					 | 
				
			||||||
        finally {
 | 
					 | 
				
			||||||
            try {
 | 
					 | 
				
			||||||
                if (r && !r.done && (m = i["return"])) m.call(i);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            finally { if (e) throw e.error; }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        return ar;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /** @deprecated */
 | 
					 | 
				
			||||||
    __spread = function () {
 | 
					 | 
				
			||||||
        for (var ar = [], i = 0; i < arguments.length; i++)
 | 
					 | 
				
			||||||
            ar = ar.concat(__read(arguments[i]));
 | 
					 | 
				
			||||||
        return ar;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /** @deprecated */
 | 
					 | 
				
			||||||
    __spreadArrays = function () {
 | 
					 | 
				
			||||||
        for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
 | 
					 | 
				
			||||||
        for (var r = Array(s), k = 0, i = 0; i < il; i++)
 | 
					 | 
				
			||||||
            for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
 | 
					 | 
				
			||||||
                r[k] = a[j];
 | 
					 | 
				
			||||||
        return r;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __spreadArray = function (to, from, pack) {
 | 
					 | 
				
			||||||
        if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
 | 
					 | 
				
			||||||
            if (ar || !(i in from)) {
 | 
					 | 
				
			||||||
                if (!ar) ar = Array.prototype.slice.call(from, 0, i);
 | 
					 | 
				
			||||||
                ar[i] = from[i];
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        return to.concat(ar || Array.prototype.slice.call(from));
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __await = function (v) {
 | 
					 | 
				
			||||||
        return this instanceof __await ? (this.v = v, this) : new __await(v);
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __asyncGenerator = function (thisArg, _arguments, generator) {
 | 
					 | 
				
			||||||
        if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
 | 
					 | 
				
			||||||
        var g = generator.apply(thisArg, _arguments || []), i, q = [];
 | 
					 | 
				
			||||||
        return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
 | 
					 | 
				
			||||||
        function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
 | 
					 | 
				
			||||||
        function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
 | 
					 | 
				
			||||||
        function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);  }
 | 
					 | 
				
			||||||
        function fulfill(value) { resume("next", value); }
 | 
					 | 
				
			||||||
        function reject(value) { resume("throw", value); }
 | 
					 | 
				
			||||||
        function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __asyncDelegator = function (o) {
 | 
					 | 
				
			||||||
        var i, p;
 | 
					 | 
				
			||||||
        return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
 | 
					 | 
				
			||||||
        function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __asyncValues = function (o) {
 | 
					 | 
				
			||||||
        if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
 | 
					 | 
				
			||||||
        var m = o[Symbol.asyncIterator], i;
 | 
					 | 
				
			||||||
        return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
 | 
					 | 
				
			||||||
        function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
 | 
					 | 
				
			||||||
        function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __makeTemplateObject = function (cooked, raw) {
 | 
					 | 
				
			||||||
        if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
 | 
					 | 
				
			||||||
        return cooked;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    var __setModuleDefault = Object.create ? (function(o, v) {
 | 
					 | 
				
			||||||
        Object.defineProperty(o, "default", { enumerable: true, value: v });
 | 
					 | 
				
			||||||
    }) : function(o, v) {
 | 
					 | 
				
			||||||
        o["default"] = v;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __importStar = function (mod) {
 | 
					 | 
				
			||||||
        if (mod && mod.__esModule) return mod;
 | 
					 | 
				
			||||||
        var result = {};
 | 
					 | 
				
			||||||
        if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
 | 
					 | 
				
			||||||
        __setModuleDefault(result, mod);
 | 
					 | 
				
			||||||
        return result;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __importDefault = function (mod) {
 | 
					 | 
				
			||||||
        return (mod && mod.__esModule) ? mod : { "default": mod };
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __classPrivateFieldGet = function (receiver, state, kind, f) {
 | 
					 | 
				
			||||||
        if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
 | 
					 | 
				
			||||||
        if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
 | 
					 | 
				
			||||||
        return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    __classPrivateFieldSet = function (receiver, state, value, kind, f) {
 | 
					 | 
				
			||||||
        if (kind === "m") throw new TypeError("Private method is not writable");
 | 
					 | 
				
			||||||
        if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
 | 
					 | 
				
			||||||
        if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
 | 
					 | 
				
			||||||
        return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    exporter("__extends", __extends);
 | 
					 | 
				
			||||||
    exporter("__assign", __assign);
 | 
					 | 
				
			||||||
    exporter("__rest", __rest);
 | 
					 | 
				
			||||||
    exporter("__decorate", __decorate);
 | 
					 | 
				
			||||||
    exporter("__param", __param);
 | 
					 | 
				
			||||||
    exporter("__metadata", __metadata);
 | 
					 | 
				
			||||||
    exporter("__awaiter", __awaiter);
 | 
					 | 
				
			||||||
    exporter("__generator", __generator);
 | 
					 | 
				
			||||||
    exporter("__exportStar", __exportStar);
 | 
					 | 
				
			||||||
    exporter("__createBinding", __createBinding);
 | 
					 | 
				
			||||||
    exporter("__values", __values);
 | 
					 | 
				
			||||||
    exporter("__read", __read);
 | 
					 | 
				
			||||||
    exporter("__spread", __spread);
 | 
					 | 
				
			||||||
    exporter("__spreadArrays", __spreadArrays);
 | 
					 | 
				
			||||||
    exporter("__spreadArray", __spreadArray);
 | 
					 | 
				
			||||||
    exporter("__await", __await);
 | 
					 | 
				
			||||||
    exporter("__asyncGenerator", __asyncGenerator);
 | 
					 | 
				
			||||||
    exporter("__asyncDelegator", __asyncDelegator);
 | 
					 | 
				
			||||||
    exporter("__asyncValues", __asyncValues);
 | 
					 | 
				
			||||||
    exporter("__makeTemplateObject", __makeTemplateObject);
 | 
					 | 
				
			||||||
    exporter("__importStar", __importStar);
 | 
					 | 
				
			||||||
    exporter("__importDefault", __importDefault);
 | 
					 | 
				
			||||||
    exporter("__classPrivateFieldGet", __classPrivateFieldGet);
 | 
					 | 
				
			||||||
    exporter("__classPrivateFieldSet", __classPrivateFieldSet);
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/***/ }),
 | 
					 | 
				
			||||||
/* 641 */,
 | 
					/* 641 */,
 | 
				
			||||||
/* 642 */,
 | 
					/* 642 */,
 | 
				
			||||||
/* 643 */,
 | 
					/* 643 */,
 | 
				
			||||||
@@ -47415,6 +47167,7 @@ const path = __importStar(__webpack_require__(622));
 | 
				
			|||||||
const utils = __importStar(__webpack_require__(15));
 | 
					const utils = __importStar(__webpack_require__(15));
 | 
				
			||||||
const cacheHttpClient = __importStar(__webpack_require__(114));
 | 
					const cacheHttpClient = __importStar(__webpack_require__(114));
 | 
				
			||||||
const tar_1 = __webpack_require__(434);
 | 
					const tar_1 = __webpack_require__(434);
 | 
				
			||||||
 | 
					const constants_1 = __webpack_require__(931);
 | 
				
			||||||
class ValidationError extends Error {
 | 
					class ValidationError extends Error {
 | 
				
			||||||
    constructor(message) {
 | 
					    constructor(message) {
 | 
				
			||||||
        super(message);
 | 
					        super(message);
 | 
				
			||||||
@@ -47476,13 +47229,33 @@ function restoreCache(paths, primaryKey, restoreKeys, options) {
 | 
				
			|||||||
        for (const key of keys) {
 | 
					        for (const key of keys) {
 | 
				
			||||||
            checkKey(key);
 | 
					            checkKey(key);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        const compressionMethod = yield utils.getCompressionMethod();
 | 
					        let cacheEntry;
 | 
				
			||||||
 | 
					        let compressionMethod = yield utils.getCompressionMethod();
 | 
				
			||||||
        let archivePath = '';
 | 
					        let archivePath = '';
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
            try {
 | 
					            try {
 | 
				
			||||||
                // path are needed to compute version
 | 
					                // path are needed to compute version
 | 
				
			||||||
            const cacheEntry = yield cacheHttpClient.getCacheEntry(keys, paths, {
 | 
					                cacheEntry = yield cacheHttpClient.getCacheEntry(keys, paths, {
 | 
				
			||||||
                    compressionMethod
 | 
					                    compressionMethod
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            catch (error) {
 | 
				
			||||||
 | 
					                // This is to support the old cache entry created
 | 
				
			||||||
 | 
					                // by the old version of the cache action on windows.
 | 
				
			||||||
 | 
					                if (process.platform === 'win32' &&
 | 
				
			||||||
 | 
					                    compressionMethod !== constants_1.CompressionMethod.Gzip) {
 | 
				
			||||||
 | 
					                    compressionMethod = constants_1.CompressionMethod.Gzip;
 | 
				
			||||||
 | 
					                    cacheEntry = yield cacheHttpClient.getCacheEntry(keys, paths, {
 | 
				
			||||||
 | 
					                        compressionMethod
 | 
				
			||||||
 | 
					                    });
 | 
				
			||||||
 | 
					                    if (!(cacheEntry === null || cacheEntry === void 0 ? void 0 : cacheEntry.archiveLocation)) {
 | 
				
			||||||
 | 
					                        throw error;
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                else {
 | 
				
			||||||
 | 
					                    throw error;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
            if (!(cacheEntry === null || cacheEntry === void 0 ? void 0 : cacheEntry.archiveLocation)) {
 | 
					            if (!(cacheEntry === null || cacheEntry === void 0 ? void 0 : cacheEntry.archiveLocation)) {
 | 
				
			||||||
                // Cache not found
 | 
					                // Cache not found
 | 
				
			||||||
                return undefined;
 | 
					                return undefined;
 | 
				
			||||||
@@ -53488,6 +53261,11 @@ var CompressionMethod;
 | 
				
			|||||||
    CompressionMethod["ZstdWithoutLong"] = "zstd-without-long";
 | 
					    CompressionMethod["ZstdWithoutLong"] = "zstd-without-long";
 | 
				
			||||||
    CompressionMethod["Zstd"] = "zstd";
 | 
					    CompressionMethod["Zstd"] = "zstd";
 | 
				
			||||||
})(CompressionMethod = exports.CompressionMethod || (exports.CompressionMethod = {}));
 | 
					})(CompressionMethod = exports.CompressionMethod || (exports.CompressionMethod = {}));
 | 
				
			||||||
 | 
					var ArchiveToolType;
 | 
				
			||||||
 | 
					(function (ArchiveToolType) {
 | 
				
			||||||
 | 
					    ArchiveToolType["GNU"] = "gnu";
 | 
				
			||||||
 | 
					    ArchiveToolType["BSD"] = "bsd";
 | 
				
			||||||
 | 
					})(ArchiveToolType = exports.ArchiveToolType || (exports.ArchiveToolType = {}));
 | 
				
			||||||
// The default number of retry attempts.
 | 
					// The default number of retry attempts.
 | 
				
			||||||
exports.DefaultRetryAttempts = 2;
 | 
					exports.DefaultRetryAttempts = 2;
 | 
				
			||||||
// The default delay in milliseconds between retry attempts.
 | 
					// The default delay in milliseconds between retry attempts.
 | 
				
			||||||
@@ -53496,6 +53274,12 @@ exports.DefaultRetryDelay = 5000;
 | 
				
			|||||||
// over the socket during this period, the socket is destroyed and the download
 | 
					// over the socket during this period, the socket is destroyed and the download
 | 
				
			||||||
// is aborted.
 | 
					// is aborted.
 | 
				
			||||||
exports.SocketTimeout = 5000;
 | 
					exports.SocketTimeout = 5000;
 | 
				
			||||||
 | 
					// The default path of GNUtar on hosted Windows runners
 | 
				
			||||||
 | 
					exports.GnuTarPathOnWindows = `${process.env['PROGRAMFILES']}\\Git\\usr\\bin\\tar.exe`;
 | 
				
			||||||
 | 
					// The default path of BSDtar on hosted Windows runners
 | 
				
			||||||
 | 
					exports.SystemTarPathOnWindows = `${process.env['SYSTEMDRIVE']}\\Windows\\System32\\tar.exe`;
 | 
				
			||||||
 | 
					exports.TarFilename = 'cache.tar';
 | 
				
			||||||
 | 
					exports.ManifestFilename = 'manifest.txt';
 | 
				
			||||||
//# sourceMappingURL=constants.js.map
 | 
					//# sourceMappingURL=constants.js.map
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/***/ }),
 | 
					/***/ }),
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										38
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										38
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -1,15 +1,15 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "name": "cache",
 | 
					  "name": "cache",
 | 
				
			||||||
  "version": "3.0.11",
 | 
					  "version": "3.1.0-beta.2",
 | 
				
			||||||
  "lockfileVersion": 2,
 | 
					  "lockfileVersion": 2,
 | 
				
			||||||
  "requires": true,
 | 
					  "requires": true,
 | 
				
			||||||
  "packages": {
 | 
					  "packages": {
 | 
				
			||||||
    "": {
 | 
					    "": {
 | 
				
			||||||
      "name": "cache",
 | 
					      "name": "cache",
 | 
				
			||||||
      "version": "3.0.11",
 | 
					      "version": "3.1.0-beta.2",
 | 
				
			||||||
      "license": "MIT",
 | 
					      "license": "MIT",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@actions/cache": "^3.0.5",
 | 
					        "@actions/cache": "3.1.0-beta.2",
 | 
				
			||||||
        "@actions/core": "^1.10.0",
 | 
					        "@actions/core": "^1.10.0",
 | 
				
			||||||
        "@actions/exec": "^1.1.1",
 | 
					        "@actions/exec": "^1.1.1",
 | 
				
			||||||
        "@actions/io": "^1.1.2"
 | 
					        "@actions/io": "^1.1.2"
 | 
				
			||||||
@@ -36,15 +36,16 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@actions/cache": {
 | 
					    "node_modules/@actions/cache": {
 | 
				
			||||||
      "version": "3.0.5",
 | 
					      "version": "3.1.0-beta.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-3.0.5.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-3.1.0-beta.2.tgz",
 | 
				
			||||||
      "integrity": "sha512-0WpPmwnRPkn5k5ASmjoX8bY8NrZEPTwN+64nGYJmR/bHjEVgC8svdf5K956wi67tNJBGJky2+UfvNbUOtHmMHg==",
 | 
					      "integrity": "sha512-xt9NLWPCh5WU9Z5ITeGpT5Nza/57wMXeLsGuNVcRCIVpPuNTf3Puj82vjZZQw4rGqiCCs+n4+hnkTcE9BKw2sw==",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@actions/core": "^1.10.0",
 | 
					        "@actions/core": "^1.10.0",
 | 
				
			||||||
        "@actions/exec": "^1.0.1",
 | 
					        "@actions/exec": "^1.0.1",
 | 
				
			||||||
        "@actions/glob": "^0.1.0",
 | 
					        "@actions/glob": "^0.1.0",
 | 
				
			||||||
        "@actions/http-client": "^2.0.1",
 | 
					        "@actions/http-client": "^2.0.1",
 | 
				
			||||||
        "@actions/io": "^1.0.1",
 | 
					        "@actions/io": "^1.0.1",
 | 
				
			||||||
 | 
					        "@azure/abort-controller": "^1.1.0",
 | 
				
			||||||
        "@azure/ms-rest-js": "^2.6.0",
 | 
					        "@azure/ms-rest-js": "^2.6.0",
 | 
				
			||||||
        "@azure/storage-blob": "^12.8.0",
 | 
					        "@azure/storage-blob": "^12.8.0",
 | 
				
			||||||
        "semver": "^6.1.0",
 | 
					        "semver": "^6.1.0",
 | 
				
			||||||
@@ -111,14 +112,14 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@azure/abort-controller": {
 | 
					    "node_modules/@azure/abort-controller": {
 | 
				
			||||||
      "version": "1.0.4",
 | 
					      "version": "1.1.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.0.4.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.1.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-lNUmDRVGpanCsiUN3NWxFTdwmdFI53xwhkTFfHDGTYk46ca7Ind3nanJc+U6Zj9Tv+9nTCWRBscWEW1DyKOpTw==",
 | 
					      "integrity": "sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "tslib": "^2.0.0"
 | 
					        "tslib": "^2.2.0"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "engines": {
 | 
					      "engines": {
 | 
				
			||||||
        "node": ">=8.0.0"
 | 
					        "node": ">=12.0.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@azure/abort-controller/node_modules/tslib": {
 | 
					    "node_modules/@azure/abort-controller/node_modules/tslib": {
 | 
				
			||||||
@@ -9721,15 +9722,16 @@
 | 
				
			|||||||
  },
 | 
					  },
 | 
				
			||||||
  "dependencies": {
 | 
					  "dependencies": {
 | 
				
			||||||
    "@actions/cache": {
 | 
					    "@actions/cache": {
 | 
				
			||||||
      "version": "3.0.5",
 | 
					      "version": "3.1.0-beta.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-3.0.5.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-3.1.0-beta.2.tgz",
 | 
				
			||||||
      "integrity": "sha512-0WpPmwnRPkn5k5ASmjoX8bY8NrZEPTwN+64nGYJmR/bHjEVgC8svdf5K956wi67tNJBGJky2+UfvNbUOtHmMHg==",
 | 
					      "integrity": "sha512-xt9NLWPCh5WU9Z5ITeGpT5Nza/57wMXeLsGuNVcRCIVpPuNTf3Puj82vjZZQw4rGqiCCs+n4+hnkTcE9BKw2sw==",
 | 
				
			||||||
      "requires": {
 | 
					      "requires": {
 | 
				
			||||||
        "@actions/core": "^1.10.0",
 | 
					        "@actions/core": "^1.10.0",
 | 
				
			||||||
        "@actions/exec": "^1.0.1",
 | 
					        "@actions/exec": "^1.0.1",
 | 
				
			||||||
        "@actions/glob": "^0.1.0",
 | 
					        "@actions/glob": "^0.1.0",
 | 
				
			||||||
        "@actions/http-client": "^2.0.1",
 | 
					        "@actions/http-client": "^2.0.1",
 | 
				
			||||||
        "@actions/io": "^1.0.1",
 | 
					        "@actions/io": "^1.0.1",
 | 
				
			||||||
 | 
					        "@azure/abort-controller": "^1.1.0",
 | 
				
			||||||
        "@azure/ms-rest-js": "^2.6.0",
 | 
					        "@azure/ms-rest-js": "^2.6.0",
 | 
				
			||||||
        "@azure/storage-blob": "^12.8.0",
 | 
					        "@azure/storage-blob": "^12.8.0",
 | 
				
			||||||
        "semver": "^6.1.0",
 | 
					        "semver": "^6.1.0",
 | 
				
			||||||
@@ -9792,11 +9794,11 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "@azure/abort-controller": {
 | 
					    "@azure/abort-controller": {
 | 
				
			||||||
      "version": "1.0.4",
 | 
					      "version": "1.1.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.0.4.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.1.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-lNUmDRVGpanCsiUN3NWxFTdwmdFI53xwhkTFfHDGTYk46ca7Ind3nanJc+U6Zj9Tv+9nTCWRBscWEW1DyKOpTw==",
 | 
					      "integrity": "sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==",
 | 
				
			||||||
      "requires": {
 | 
					      "requires": {
 | 
				
			||||||
        "tslib": "^2.0.0"
 | 
					        "tslib": "^2.2.0"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "tslib": {
 | 
					        "tslib": {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "name": "cache",
 | 
					  "name": "cache",
 | 
				
			||||||
  "version": "3.0.11",
 | 
					  "version": "3.1.0-beta.2",
 | 
				
			||||||
  "private": true,
 | 
					  "private": true,
 | 
				
			||||||
  "description": "Cache dependencies and build outputs",
 | 
					  "description": "Cache dependencies and build outputs",
 | 
				
			||||||
  "main": "dist/restore/index.js",
 | 
					  "main": "dist/restore/index.js",
 | 
				
			||||||
@@ -23,7 +23,7 @@
 | 
				
			|||||||
  "author": "GitHub",
 | 
					  "author": "GitHub",
 | 
				
			||||||
  "license": "MIT",
 | 
					  "license": "MIT",
 | 
				
			||||||
  "dependencies": {
 | 
					  "dependencies": {
 | 
				
			||||||
    "@actions/cache": "^3.0.5",
 | 
					    "@actions/cache": "3.1.0-beta.2",
 | 
				
			||||||
    "@actions/core": "^1.10.0",
 | 
					    "@actions/core": "^1.10.0",
 | 
				
			||||||
    "@actions/exec": "^1.1.1",
 | 
					    "@actions/exec": "^1.1.1",
 | 
				
			||||||
    "@actions/io": "^1.1.2"
 | 
					    "@actions/io": "^1.1.2"
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user