mirror of
				https://gitea.com/actions/setup-python.git
				synced 2025-10-31 19:58:55 +08:00 
			
		
		
		
	Update cache-save.ts to support @actions/cache v3.0.0 lib
Made package.json and package-lock.json to use @actions/cache v3.0.0, updated logic of the cache-save operation and added unit-tests
This commit is contained in:
		
							
								
								
									
										673
									
								
								dist/cache-save/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										673
									
								
								dist/cache-save/index.js
									
									
									
									
										vendored
									
									
								
							| @@ -90,17 +90,18 @@ function restoreCache(paths, primaryKey, restoreKeys, options) { | ||||
|             checkKey(key); | ||||
|         } | ||||
|         const compressionMethod = yield utils.getCompressionMethod(); | ||||
|         // path are needed to compute version
 | ||||
|         const cacheEntry = yield cacheHttpClient.getCacheEntry(keys, paths, { | ||||
|             compressionMethod | ||||
|         }); | ||||
|         if (!(cacheEntry === null || cacheEntry === void 0 ? void 0 : cacheEntry.archiveLocation)) { | ||||
|             // Cache not found
 | ||||
|             return undefined; | ||||
|         } | ||||
|         const archivePath = path.join(yield utils.createTempDirectory(), utils.getCacheFileName(compressionMethod)); | ||||
|         core.debug(`Archive Path: ${archivePath}`); | ||||
|         let archivePath = ''; | ||||
|         try { | ||||
|             // path are needed to compute version
 | ||||
|             const cacheEntry = yield cacheHttpClient.getCacheEntry(keys, paths, { | ||||
|                 compressionMethod | ||||
|             }); | ||||
|             if (!(cacheEntry === null || cacheEntry === void 0 ? void 0 : cacheEntry.archiveLocation)) { | ||||
|                 // Cache not found
 | ||||
|                 return undefined; | ||||
|             } | ||||
|             archivePath = path.join(yield utils.createTempDirectory(), utils.getCacheFileName(compressionMethod)); | ||||
|             core.debug(`Archive Path: ${archivePath}`); | ||||
|             // Download the cache from the cache entry
 | ||||
|             yield cacheHttpClient.downloadCache(cacheEntry.archiveLocation, archivePath, options); | ||||
|             if (core.isDebug()) { | ||||
| @@ -110,6 +111,17 @@ function restoreCache(paths, primaryKey, restoreKeys, options) { | ||||
|             core.info(`Cache Size: ~${Math.round(archiveFileSize / (1024 * 1024))} MB (${archiveFileSize} B)`); | ||||
|             yield tar_1.extractTar(archivePath, compressionMethod); | ||||
|             core.info('Cache restored successfully'); | ||||
|             return cacheEntry.cacheKey; | ||||
|         } | ||||
|         catch (error) { | ||||
|             const typedError = error; | ||||
|             if (typedError.name === ValidationError.name) { | ||||
|                 throw error; | ||||
|             } | ||||
|             else { | ||||
|                 // Supress all non-validation cache related errors because caching should be optional
 | ||||
|                 core.warning(`Failed to restore: ${error.message}`); | ||||
|             } | ||||
|         } | ||||
|         finally { | ||||
|             // Try to delete the archive to save space
 | ||||
| @@ -120,7 +132,7 @@ function restoreCache(paths, primaryKey, restoreKeys, options) { | ||||
|                 core.debug(`Failed to delete archive: ${error}`); | ||||
|             } | ||||
|         } | ||||
|         return cacheEntry.cacheKey; | ||||
|         return undefined; | ||||
|     }); | ||||
| } | ||||
| exports.restoreCache = restoreCache; | ||||
| @@ -138,10 +150,13 @@ function saveCache(paths, key, options) { | ||||
|         checkPaths(paths); | ||||
|         checkKey(key); | ||||
|         const compressionMethod = yield utils.getCompressionMethod(); | ||||
|         let cacheId = null; | ||||
|         let cacheId = -1; | ||||
|         const cachePaths = yield utils.resolvePaths(paths); | ||||
|         core.debug('Cache Paths:'); | ||||
|         core.debug(`${JSON.stringify(cachePaths)}`); | ||||
|         if (cachePaths.length === 0) { | ||||
|             throw new Error(`Path Validation Error: Path(s) specified in the action for caching do(es) not exist, hence no cache is being saved.`); | ||||
|         } | ||||
|         const archiveFolder = yield utils.createTempDirectory(); | ||||
|         const archivePath = path.join(archiveFolder, utils.getCacheFileName(compressionMethod)); | ||||
|         core.debug(`Archive Path: ${archivePath}`); | ||||
| @@ -174,6 +189,18 @@ function saveCache(paths, key, options) { | ||||
|             core.debug(`Saving Cache (ID: ${cacheId})`); | ||||
|             yield cacheHttpClient.saveCache(cacheId, archivePath, options); | ||||
|         } | ||||
|         catch (error) { | ||||
|             const typedError = error; | ||||
|             if (typedError.name === ValidationError.name) { | ||||
|                 throw error; | ||||
|             } | ||||
|             else if (typedError.name === ReserveCacheError.name) { | ||||
|                 core.info(`Failed to save: ${typedError.message}`); | ||||
|             } | ||||
|             else { | ||||
|                 core.warning(`Failed to save: ${typedError.message}`); | ||||
|             } | ||||
|         } | ||||
|         finally { | ||||
|             // Try to delete the archive to save space
 | ||||
|             try { | ||||
| @@ -214,8 +241,8 @@ var __importStar = (this && this.__importStar) || function (mod) { | ||||
| }; | ||||
| Object.defineProperty(exports, "__esModule", ({ value: true })); | ||||
| const core = __importStar(__nccwpck_require__(2186)); | ||||
| const http_client_1 = __nccwpck_require__(7320); | ||||
| const auth_1 = __nccwpck_require__(7093); | ||||
| const http_client_1 = __nccwpck_require__(1825); | ||||
| const auth_1 = __nccwpck_require__(2001); | ||||
| const crypto = __importStar(__nccwpck_require__(6113)); | ||||
| const fs = __importStar(__nccwpck_require__(7147)); | ||||
| const url_1 = __nccwpck_require__(7310); | ||||
| @@ -647,7 +674,7 @@ var __importStar = (this && this.__importStar) || function (mod) { | ||||
| }; | ||||
| Object.defineProperty(exports, "__esModule", ({ value: true })); | ||||
| const core = __importStar(__nccwpck_require__(2186)); | ||||
| const http_client_1 = __nccwpck_require__(7320); | ||||
| const http_client_1 = __nccwpck_require__(1825); | ||||
| const storage_blob_1 = __nccwpck_require__(4100); | ||||
| const buffer = __importStar(__nccwpck_require__(4300)); | ||||
| const fs = __importStar(__nccwpck_require__(7147)); | ||||
| @@ -885,7 +912,7 @@ var __importStar = (this && this.__importStar) || function (mod) { | ||||
| }; | ||||
| Object.defineProperty(exports, "__esModule", ({ value: true })); | ||||
| const core = __importStar(__nccwpck_require__(2186)); | ||||
| const http_client_1 = __nccwpck_require__(7320); | ||||
| const http_client_1 = __nccwpck_require__(1825); | ||||
| const constants_1 = __nccwpck_require__(8840); | ||||
| function isSuccessStatusCode(statusCode) { | ||||
|     if (!statusCode) { | ||||
| @@ -962,7 +989,7 @@ function retryTypedResponse(name, method, maxAttempts = constants_1.DefaultRetry | ||||
|     return __awaiter(this, void 0, void 0, function* () { | ||||
|         return yield retry(name, method, (response) => response.statusCode, maxAttempts, delay,  | ||||
|         // If the error object contains the statusCode property, extract it and return
 | ||||
|         // an ITypedResponse<T> so it can be processed by the retry logic.
 | ||||
|         // an TypedResponse<T> so it can be processed by the retry logic.
 | ||||
|         (error) => { | ||||
|             if (error instanceof http_client_1.HttpClientError) { | ||||
|                 return { | ||||
| @@ -1120,6 +1147,8 @@ function createTar(archiveFolder, sourceDirectories, compressionMethod) { | ||||
|             ...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'), '/'), | ||||
| @@ -2292,28 +2321,41 @@ exports.SearchState = SearchState; | ||||
| 
 | ||||
| /***/ }), | ||||
| 
 | ||||
| /***/ 7093: | ||||
| /***/ ((__unused_webpack_module, exports) => { | ||||
| /***/ 2001: | ||||
| /***/ (function(__unused_webpack_module, exports) { | ||||
| 
 | ||||
| "use strict"; | ||||
| 
 | ||||
| var __awaiter = (this && this.__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()); | ||||
|     }); | ||||
| }; | ||||
| Object.defineProperty(exports, "__esModule", ({ value: true })); | ||||
| exports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0; | ||||
| class BasicCredentialHandler { | ||||
|     constructor(username, password) { | ||||
|         this.username = username; | ||||
|         this.password = password; | ||||
|     } | ||||
|     prepareRequest(options) { | ||||
|         options.headers['Authorization'] = | ||||
|             'Basic ' + | ||||
|                 Buffer.from(this.username + ':' + this.password).toString('base64'); | ||||
|         if (!options.headers) { | ||||
|             throw Error('The request has no headers'); | ||||
|         } | ||||
|         options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`; | ||||
|     } | ||||
|     // This handler cannot handle 401
 | ||||
|     canHandleAuthentication(response) { | ||||
|     canHandleAuthentication() { | ||||
|         return false; | ||||
|     } | ||||
|     handleAuthentication(httpClient, requestInfo, objs) { | ||||
|         return null; | ||||
|     handleAuthentication() { | ||||
|         return __awaiter(this, void 0, void 0, function* () { | ||||
|             throw new Error('not implemented'); | ||||
|         }); | ||||
|     } | ||||
| } | ||||
| exports.BasicCredentialHandler = BasicCredentialHandler; | ||||
| @@ -2324,14 +2366,19 @@ class BearerCredentialHandler { | ||||
|     // currently implements pre-authorization
 | ||||
|     // TODO: support preAuth = false where it hooks on 401
 | ||||
|     prepareRequest(options) { | ||||
|         options.headers['Authorization'] = 'Bearer ' + this.token; | ||||
|         if (!options.headers) { | ||||
|             throw Error('The request has no headers'); | ||||
|         } | ||||
|         options.headers['Authorization'] = `Bearer ${this.token}`; | ||||
|     } | ||||
|     // This handler cannot handle 401
 | ||||
|     canHandleAuthentication(response) { | ||||
|     canHandleAuthentication() { | ||||
|         return false; | ||||
|     } | ||||
|     handleAuthentication(httpClient, requestInfo, objs) { | ||||
|         return null; | ||||
|     handleAuthentication() { | ||||
|         return __awaiter(this, void 0, void 0, function* () { | ||||
|             throw new Error('not implemented'); | ||||
|         }); | ||||
|     } | ||||
| } | ||||
| exports.BearerCredentialHandler = BearerCredentialHandler; | ||||
| @@ -2342,32 +2389,66 @@ class PersonalAccessTokenCredentialHandler { | ||||
|     // currently implements pre-authorization
 | ||||
|     // TODO: support preAuth = false where it hooks on 401
 | ||||
|     prepareRequest(options) { | ||||
|         options.headers['Authorization'] = | ||||
|             'Basic ' + Buffer.from('PAT:' + this.token).toString('base64'); | ||||
|         if (!options.headers) { | ||||
|             throw Error('The request has no headers'); | ||||
|         } | ||||
|         options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`; | ||||
|     } | ||||
|     // This handler cannot handle 401
 | ||||
|     canHandleAuthentication(response) { | ||||
|     canHandleAuthentication() { | ||||
|         return false; | ||||
|     } | ||||
|     handleAuthentication(httpClient, requestInfo, objs) { | ||||
|         return null; | ||||
|     handleAuthentication() { | ||||
|         return __awaiter(this, void 0, void 0, function* () { | ||||
|             throw new Error('not implemented'); | ||||
|         }); | ||||
|     } | ||||
| } | ||||
| exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; | ||||
| 
 | ||||
| //# sourceMappingURL=auth.js.map
 | ||||
| 
 | ||||
| /***/ }), | ||||
| 
 | ||||
| /***/ 7320: | ||||
| /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { | ||||
| /***/ 1825: | ||||
| /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { | ||||
| 
 | ||||
| "use strict"; | ||||
| 
 | ||||
| /* eslint-disable @typescript-eslint/no-explicit-any */ | ||||
| var __createBinding = (this && this.__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]; | ||||
| })); | ||||
| var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { | ||||
|     Object.defineProperty(o, "default", { enumerable: true, value: v }); | ||||
| }) : function(o, v) { | ||||
|     o["default"] = v; | ||||
| }); | ||||
| var __importStar = (this && this.__importStar) || function (mod) { | ||||
|     if (mod && mod.__esModule) return mod; | ||||
|     var result = {}; | ||||
|     if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); | ||||
|     __setModuleDefault(result, mod); | ||||
|     return result; | ||||
| }; | ||||
| var __awaiter = (this && this.__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()); | ||||
|     }); | ||||
| }; | ||||
| Object.defineProperty(exports, "__esModule", ({ value: true })); | ||||
| const http = __nccwpck_require__(3685); | ||||
| const https = __nccwpck_require__(5687); | ||||
| const pm = __nccwpck_require__(7326); | ||||
| let tunnel; | ||||
| exports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0; | ||||
| const http = __importStar(__nccwpck_require__(3685)); | ||||
| const https = __importStar(__nccwpck_require__(5687)); | ||||
| const pm = __importStar(__nccwpck_require__(4977)); | ||||
| const tunnel = __importStar(__nccwpck_require__(4294)); | ||||
| var HttpCodes; | ||||
| (function (HttpCodes) { | ||||
|     HttpCodes[HttpCodes["OK"] = 200] = "OK"; | ||||
| @@ -2412,7 +2493,7 @@ var MediaTypes; | ||||
|  * @param serverUrl  The server URL where the request will be sent. For example, https://api.github.com
 | ||||
|  */ | ||||
| function getProxyUrl(serverUrl) { | ||||
|     let proxyUrl = pm.getProxyUrl(new URL(serverUrl)); | ||||
|     const proxyUrl = pm.getProxyUrl(new URL(serverUrl)); | ||||
|     return proxyUrl ? proxyUrl.href : ''; | ||||
| } | ||||
| exports.getProxyUrl = getProxyUrl; | ||||
| @@ -2445,20 +2526,22 @@ class HttpClientResponse { | ||||
|         this.message = message; | ||||
|     } | ||||
|     readBody() { | ||||
|         return new Promise(async (resolve, reject) => { | ||||
|             let output = Buffer.alloc(0); | ||||
|             this.message.on('data', (chunk) => { | ||||
|                 output = Buffer.concat([output, chunk]); | ||||
|             }); | ||||
|             this.message.on('end', () => { | ||||
|                 resolve(output.toString()); | ||||
|             }); | ||||
|         return __awaiter(this, void 0, void 0, function* () { | ||||
|             return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () { | ||||
|                 let output = Buffer.alloc(0); | ||||
|                 this.message.on('data', (chunk) => { | ||||
|                     output = Buffer.concat([output, chunk]); | ||||
|                 }); | ||||
|                 this.message.on('end', () => { | ||||
|                     resolve(output.toString()); | ||||
|                 }); | ||||
|             })); | ||||
|         }); | ||||
|     } | ||||
| } | ||||
| exports.HttpClientResponse = HttpClientResponse; | ||||
| function isHttps(requestUrl) { | ||||
|     let parsedUrl = new URL(requestUrl); | ||||
|     const parsedUrl = new URL(requestUrl); | ||||
|     return parsedUrl.protocol === 'https:'; | ||||
| } | ||||
| exports.isHttps = isHttps; | ||||
| @@ -2501,141 +2584,169 @@ class HttpClient { | ||||
|         } | ||||
|     } | ||||
|     options(requestUrl, additionalHeaders) { | ||||
|         return this.request('OPTIONS', requestUrl, null, additionalHeaders || {}); | ||||
|         return __awaiter(this, void 0, void 0, function* () { | ||||
|             return this.request('OPTIONS', requestUrl, null, additionalHeaders || {}); | ||||
|         }); | ||||
|     } | ||||
|     get(requestUrl, additionalHeaders) { | ||||
|         return this.request('GET', requestUrl, null, additionalHeaders || {}); | ||||
|         return __awaiter(this, void 0, void 0, function* () { | ||||
|             return this.request('GET', requestUrl, null, additionalHeaders || {}); | ||||
|         }); | ||||
|     } | ||||
|     del(requestUrl, additionalHeaders) { | ||||
|         return this.request('DELETE', requestUrl, null, additionalHeaders || {}); | ||||
|         return __awaiter(this, void 0, void 0, function* () { | ||||
|             return this.request('DELETE', requestUrl, null, additionalHeaders || {}); | ||||
|         }); | ||||
|     } | ||||
|     post(requestUrl, data, additionalHeaders) { | ||||
|         return this.request('POST', requestUrl, data, additionalHeaders || {}); | ||||
|         return __awaiter(this, void 0, void 0, function* () { | ||||
|             return this.request('POST', requestUrl, data, additionalHeaders || {}); | ||||
|         }); | ||||
|     } | ||||
|     patch(requestUrl, data, additionalHeaders) { | ||||
|         return this.request('PATCH', requestUrl, data, additionalHeaders || {}); | ||||
|         return __awaiter(this, void 0, void 0, function* () { | ||||
|             return this.request('PATCH', requestUrl, data, additionalHeaders || {}); | ||||
|         }); | ||||
|     } | ||||
|     put(requestUrl, data, additionalHeaders) { | ||||
|         return this.request('PUT', requestUrl, data, additionalHeaders || {}); | ||||
|         return __awaiter(this, void 0, void 0, function* () { | ||||
|             return this.request('PUT', requestUrl, data, additionalHeaders || {}); | ||||
|         }); | ||||
|     } | ||||
|     head(requestUrl, additionalHeaders) { | ||||
|         return this.request('HEAD', requestUrl, null, additionalHeaders || {}); | ||||
|         return __awaiter(this, void 0, void 0, function* () { | ||||
|             return this.request('HEAD', requestUrl, null, additionalHeaders || {}); | ||||
|         }); | ||||
|     } | ||||
|     sendStream(verb, requestUrl, stream, additionalHeaders) { | ||||
|         return this.request(verb, requestUrl, stream, additionalHeaders); | ||||
|         return __awaiter(this, void 0, void 0, function* () { | ||||
|             return this.request(verb, requestUrl, stream, additionalHeaders); | ||||
|         }); | ||||
|     } | ||||
|     /** | ||||
|      * Gets a typed object from an endpoint | ||||
|      * Be aware that not found returns a null.  Other errors (4xx, 5xx) reject the promise | ||||
|      */ | ||||
|     async getJson(requestUrl, additionalHeaders = {}) { | ||||
|         additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); | ||||
|         let res = await this.get(requestUrl, additionalHeaders); | ||||
|         return this._processResponse(res, this.requestOptions); | ||||
|     getJson(requestUrl, additionalHeaders = {}) { | ||||
|         return __awaiter(this, void 0, void 0, function* () { | ||||
|             additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); | ||||
|             const res = yield this.get(requestUrl, additionalHeaders); | ||||
|             return this._processResponse(res, this.requestOptions); | ||||
|         }); | ||||
|     } | ||||
|     async postJson(requestUrl, obj, additionalHeaders = {}) { | ||||
|         let data = JSON.stringify(obj, null, 2); | ||||
|         additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); | ||||
|         additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); | ||||
|         let res = await this.post(requestUrl, data, additionalHeaders); | ||||
|         return this._processResponse(res, this.requestOptions); | ||||
|     postJson(requestUrl, obj, additionalHeaders = {}) { | ||||
|         return __awaiter(this, void 0, void 0, function* () { | ||||
|             const data = JSON.stringify(obj, null, 2); | ||||
|             additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); | ||||
|             additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); | ||||
|             const res = yield this.post(requestUrl, data, additionalHeaders); | ||||
|             return this._processResponse(res, this.requestOptions); | ||||
|         }); | ||||
|     } | ||||
|     async putJson(requestUrl, obj, additionalHeaders = {}) { | ||||
|         let data = JSON.stringify(obj, null, 2); | ||||
|         additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); | ||||
|         additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); | ||||
|         let res = await this.put(requestUrl, data, additionalHeaders); | ||||
|         return this._processResponse(res, this.requestOptions); | ||||
|     putJson(requestUrl, obj, additionalHeaders = {}) { | ||||
|         return __awaiter(this, void 0, void 0, function* () { | ||||
|             const data = JSON.stringify(obj, null, 2); | ||||
|             additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); | ||||
|             additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); | ||||
|             const res = yield this.put(requestUrl, data, additionalHeaders); | ||||
|             return this._processResponse(res, this.requestOptions); | ||||
|         }); | ||||
|     } | ||||
|     async patchJson(requestUrl, obj, additionalHeaders = {}) { | ||||
|         let data = JSON.stringify(obj, null, 2); | ||||
|         additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); | ||||
|         additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); | ||||
|         let res = await this.patch(requestUrl, data, additionalHeaders); | ||||
|         return this._processResponse(res, this.requestOptions); | ||||
|     patchJson(requestUrl, obj, additionalHeaders = {}) { | ||||
|         return __awaiter(this, void 0, void 0, function* () { | ||||
|             const data = JSON.stringify(obj, null, 2); | ||||
|             additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); | ||||
|             additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); | ||||
|             const res = yield this.patch(requestUrl, data, additionalHeaders); | ||||
|             return this._processResponse(res, this.requestOptions); | ||||
|         }); | ||||
|     } | ||||
|     /** | ||||
|      * Makes a raw http request. | ||||
|      * All other methods such as get, post, patch, and request ultimately call this. | ||||
|      * Prefer get, del, post and patch | ||||
|      */ | ||||
|     async request(verb, requestUrl, data, headers) { | ||||
|         if (this._disposed) { | ||||
|             throw new Error('Client has already been disposed.'); | ||||
|         } | ||||
|         let parsedUrl = new URL(requestUrl); | ||||
|         let info = this._prepareRequest(verb, parsedUrl, headers); | ||||
|         // Only perform retries on reads since writes may not be idempotent.
 | ||||
|         let maxTries = this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1 | ||||
|             ? this._maxRetries + 1 | ||||
|             : 1; | ||||
|         let numTries = 0; | ||||
|         let response; | ||||
|         while (numTries < maxTries) { | ||||
|             response = await this.requestRaw(info, data); | ||||
|             // Check if it's an authentication challenge
 | ||||
|             if (response && | ||||
|                 response.message && | ||||
|                 response.message.statusCode === HttpCodes.Unauthorized) { | ||||
|                 let authenticationHandler; | ||||
|                 for (let i = 0; i < this.handlers.length; i++) { | ||||
|                     if (this.handlers[i].canHandleAuthentication(response)) { | ||||
|                         authenticationHandler = this.handlers[i]; | ||||
|                         break; | ||||
|                     } | ||||
|                 } | ||||
|                 if (authenticationHandler) { | ||||
|                     return authenticationHandler.handleAuthentication(this, info, data); | ||||
|                 } | ||||
|                 else { | ||||
|                     // We have received an unauthorized response but have no handlers to handle it.
 | ||||
|                     // Let the response return to the caller.
 | ||||
|                     return response; | ||||
|                 } | ||||
|     request(verb, requestUrl, data, headers) { | ||||
|         return __awaiter(this, void 0, void 0, function* () { | ||||
|             if (this._disposed) { | ||||
|                 throw new Error('Client has already been disposed.'); | ||||
|             } | ||||
|             let redirectsRemaining = this._maxRedirects; | ||||
|             while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1 && | ||||
|                 this._allowRedirects && | ||||
|                 redirectsRemaining > 0) { | ||||
|                 const redirectUrl = response.message.headers['location']; | ||||
|                 if (!redirectUrl) { | ||||
|                     // if there's no location to redirect to, we won't
 | ||||
|                     break; | ||||
|                 } | ||||
|                 let parsedRedirectUrl = new URL(redirectUrl); | ||||
|                 if (parsedUrl.protocol == 'https:' && | ||||
|                     parsedUrl.protocol != parsedRedirectUrl.protocol && | ||||
|                     !this._allowRedirectDowngrade) { | ||||
|                     throw new Error('Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.'); | ||||
|                 } | ||||
|                 // we need to finish reading the response before reassigning response
 | ||||
|                 // which will leak the open socket.
 | ||||
|                 await response.readBody(); | ||||
|                 // strip authorization header if redirected to a different hostname
 | ||||
|                 if (parsedRedirectUrl.hostname !== parsedUrl.hostname) { | ||||
|                     for (let header in headers) { | ||||
|                         // header names are case insensitive
 | ||||
|                         if (header.toLowerCase() === 'authorization') { | ||||
|                             delete headers[header]; | ||||
|             const parsedUrl = new URL(requestUrl); | ||||
|             let info = this._prepareRequest(verb, parsedUrl, headers); | ||||
|             // Only perform retries on reads since writes may not be idempotent.
 | ||||
|             const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb) | ||||
|                 ? this._maxRetries + 1 | ||||
|                 : 1; | ||||
|             let numTries = 0; | ||||
|             let response; | ||||
|             do { | ||||
|                 response = yield this.requestRaw(info, data); | ||||
|                 // Check if it's an authentication challenge
 | ||||
|                 if (response && | ||||
|                     response.message && | ||||
|                     response.message.statusCode === HttpCodes.Unauthorized) { | ||||
|                     let authenticationHandler; | ||||
|                     for (const handler of this.handlers) { | ||||
|                         if (handler.canHandleAuthentication(response)) { | ||||
|                             authenticationHandler = handler; | ||||
|                             break; | ||||
|                         } | ||||
|                     } | ||||
|                     if (authenticationHandler) { | ||||
|                         return authenticationHandler.handleAuthentication(this, info, data); | ||||
|                     } | ||||
|                     else { | ||||
|                         // We have received an unauthorized response but have no handlers to handle it.
 | ||||
|                         // Let the response return to the caller.
 | ||||
|                         return response; | ||||
|                     } | ||||
|                 } | ||||
|                 // let's make the request with the new redirectUrl
 | ||||
|                 info = this._prepareRequest(verb, parsedRedirectUrl, headers); | ||||
|                 response = await this.requestRaw(info, data); | ||||
|                 redirectsRemaining--; | ||||
|             } | ||||
|             if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) { | ||||
|                 // If not a retry code, return immediately instead of retrying
 | ||||
|                 return response; | ||||
|             } | ||||
|             numTries += 1; | ||||
|             if (numTries < maxTries) { | ||||
|                 await response.readBody(); | ||||
|                 await this._performExponentialBackoff(numTries); | ||||
|             } | ||||
|         } | ||||
|         return response; | ||||
|                 let redirectsRemaining = this._maxRedirects; | ||||
|                 while (response.message.statusCode && | ||||
|                     HttpRedirectCodes.includes(response.message.statusCode) && | ||||
|                     this._allowRedirects && | ||||
|                     redirectsRemaining > 0) { | ||||
|                     const redirectUrl = response.message.headers['location']; | ||||
|                     if (!redirectUrl) { | ||||
|                         // if there's no location to redirect to, we won't
 | ||||
|                         break; | ||||
|                     } | ||||
|                     const parsedRedirectUrl = new URL(redirectUrl); | ||||
|                     if (parsedUrl.protocol === 'https:' && | ||||
|                         parsedUrl.protocol !== parsedRedirectUrl.protocol && | ||||
|                         !this._allowRedirectDowngrade) { | ||||
|                         throw new Error('Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.'); | ||||
|                     } | ||||
|                     // we need to finish reading the response before reassigning response
 | ||||
|                     // which will leak the open socket.
 | ||||
|                     yield response.readBody(); | ||||
|                     // strip authorization header if redirected to a different hostname
 | ||||
|                     if (parsedRedirectUrl.hostname !== parsedUrl.hostname) { | ||||
|                         for (const header in headers) { | ||||
|                             // header names are case insensitive
 | ||||
|                             if (header.toLowerCase() === 'authorization') { | ||||
|                                 delete headers[header]; | ||||
|                             } | ||||
|                         } | ||||
|                     } | ||||
|                     // let's make the request with the new redirectUrl
 | ||||
|                     info = this._prepareRequest(verb, parsedRedirectUrl, headers); | ||||
|                     response = yield this.requestRaw(info, data); | ||||
|                     redirectsRemaining--; | ||||
|                 } | ||||
|                 if (!response.message.statusCode || | ||||
|                     !HttpResponseRetryCodes.includes(response.message.statusCode)) { | ||||
|                     // If not a retry code, return immediately instead of retrying
 | ||||
|                     return response; | ||||
|                 } | ||||
|                 numTries += 1; | ||||
|                 if (numTries < maxTries) { | ||||
|                     yield response.readBody(); | ||||
|                     yield this._performExponentialBackoff(numTries); | ||||
|                 } | ||||
|             } while (numTries < maxTries); | ||||
|             return response; | ||||
|         }); | ||||
|     } | ||||
|     /** | ||||
|      * Needs to be called if keepAlive is set to true in request options. | ||||
| @@ -2652,14 +2763,22 @@ class HttpClient { | ||||
|      * @param data | ||||
|      */ | ||||
|     requestRaw(info, data) { | ||||
|         return new Promise((resolve, reject) => { | ||||
|             let callbackForResult = function (err, res) { | ||||
|                 if (err) { | ||||
|                     reject(err); | ||||
|         return __awaiter(this, void 0, void 0, function* () { | ||||
|             return new Promise((resolve, reject) => { | ||||
|                 function callbackForResult(err, res) { | ||||
|                     if (err) { | ||||
|                         reject(err); | ||||
|                     } | ||||
|                     else if (!res) { | ||||
|                         // If `err` is not passed, then `res` must be passed.
 | ||||
|                         reject(new Error('Unknown error')); | ||||
|                     } | ||||
|                     else { | ||||
|                         resolve(res); | ||||
|                     } | ||||
|                 } | ||||
|                 resolve(res); | ||||
|             }; | ||||
|             this.requestRawWithCallback(info, data, callbackForResult); | ||||
|                 this.requestRawWithCallback(info, data, callbackForResult); | ||||
|             }); | ||||
|         }); | ||||
|     } | ||||
|     /** | ||||
| @@ -2669,21 +2788,24 @@ class HttpClient { | ||||
|      * @param onResult | ||||
|      */ | ||||
|     requestRawWithCallback(info, data, onResult) { | ||||
|         let socket; | ||||
|         if (typeof data === 'string') { | ||||
|             if (!info.options.headers) { | ||||
|                 info.options.headers = {}; | ||||
|             } | ||||
|             info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8'); | ||||
|         } | ||||
|         let callbackCalled = false; | ||||
|         let handleResult = (err, res) => { | ||||
|         function handleResult(err, res) { | ||||
|             if (!callbackCalled) { | ||||
|                 callbackCalled = true; | ||||
|                 onResult(err, res); | ||||
|             } | ||||
|         }; | ||||
|         let req = info.httpModule.request(info.options, (msg) => { | ||||
|             let res = new HttpClientResponse(msg); | ||||
|             handleResult(null, res); | ||||
|         } | ||||
|         const req = info.httpModule.request(info.options, (msg) => { | ||||
|             const res = new HttpClientResponse(msg); | ||||
|             handleResult(undefined, res); | ||||
|         }); | ||||
|         let socket; | ||||
|         req.on('socket', sock => { | ||||
|             socket = sock; | ||||
|         }); | ||||
| @@ -2692,12 +2814,12 @@ class HttpClient { | ||||
|             if (socket) { | ||||
|                 socket.end(); | ||||
|             } | ||||
|             handleResult(new Error('Request timeout: ' + info.options.path), null); | ||||
|             handleResult(new Error(`Request timeout: ${info.options.path}`)); | ||||
|         }); | ||||
|         req.on('error', function (err) { | ||||
|             // err has statusCode property
 | ||||
|             // res should have headers
 | ||||
|             handleResult(err, null); | ||||
|             handleResult(err); | ||||
|         }); | ||||
|         if (data && typeof data === 'string') { | ||||
|             req.write(data, 'utf8'); | ||||
| @@ -2718,7 +2840,7 @@ class HttpClient { | ||||
|      * @param serverUrl  The server URL where the request will be sent. For example, https://api.github.com
 | ||||
|      */ | ||||
|     getAgent(serverUrl) { | ||||
|         let parsedUrl = new URL(serverUrl); | ||||
|         const parsedUrl = new URL(serverUrl); | ||||
|         return this._getAgent(parsedUrl); | ||||
|     } | ||||
|     _prepareRequest(method, requestUrl, headers) { | ||||
| @@ -2742,21 +2864,19 @@ class HttpClient { | ||||
|         info.options.agent = this._getAgent(info.parsedUrl); | ||||
|         // gives handlers an opportunity to participate
 | ||||
|         if (this.handlers) { | ||||
|             this.handlers.forEach(handler => { | ||||
|             for (const handler of this.handlers) { | ||||
|                 handler.prepareRequest(info.options); | ||||
|             }); | ||||
|             } | ||||
|         } | ||||
|         return info; | ||||
|     } | ||||
|     _mergeHeaders(headers) { | ||||
|         const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); | ||||
|         if (this.requestOptions && this.requestOptions.headers) { | ||||
|             return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers)); | ||||
|             return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {})); | ||||
|         } | ||||
|         return lowercaseKeys(headers || {}); | ||||
|     } | ||||
|     _getExistingOrDefaultHeader(additionalHeaders, header, _default) { | ||||
|         const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); | ||||
|         let clientHeader; | ||||
|         if (this.requestOptions && this.requestOptions.headers) { | ||||
|             clientHeader = lowercaseKeys(this.requestOptions.headers)[header]; | ||||
| @@ -2765,8 +2885,8 @@ class HttpClient { | ||||
|     } | ||||
|     _getAgent(parsedUrl) { | ||||
|         let agent; | ||||
|         let proxyUrl = pm.getProxyUrl(parsedUrl); | ||||
|         let useProxy = proxyUrl && proxyUrl.hostname; | ||||
|         const proxyUrl = pm.getProxyUrl(parsedUrl); | ||||
|         const useProxy = proxyUrl && proxyUrl.hostname; | ||||
|         if (this._keepAlive && useProxy) { | ||||
|             agent = this._proxyAgent; | ||||
|         } | ||||
| @@ -2774,29 +2894,22 @@ class HttpClient { | ||||
|             agent = this._agent; | ||||
|         } | ||||
|         // if agent is already assigned use that agent.
 | ||||
|         if (!!agent) { | ||||
|         if (agent) { | ||||
|             return agent; | ||||
|         } | ||||
|         const usingSsl = parsedUrl.protocol === 'https:'; | ||||
|         let maxSockets = 100; | ||||
|         if (!!this.requestOptions) { | ||||
|         if (this.requestOptions) { | ||||
|             maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets; | ||||
|         } | ||||
|         if (useProxy) { | ||||
|             // If using proxy, need tunnel
 | ||||
|             if (!tunnel) { | ||||
|                 tunnel = __nccwpck_require__(4294); | ||||
|             } | ||||
|         // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis.
 | ||||
|         if (proxyUrl && proxyUrl.hostname) { | ||||
|             const agentOptions = { | ||||
|                 maxSockets: maxSockets, | ||||
|                 maxSockets, | ||||
|                 keepAlive: this._keepAlive, | ||||
|                 proxy: { | ||||
|                     ...((proxyUrl.username || proxyUrl.password) && { | ||||
|                         proxyAuth: `${proxyUrl.username}:${proxyUrl.password}` | ||||
|                     }), | ||||
|                     host: proxyUrl.hostname, | ||||
|                     port: proxyUrl.port | ||||
|                 } | ||||
|                 proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && { | ||||
|                     proxyAuth: `${proxyUrl.username}:${proxyUrl.password}` | ||||
|                 })), { host: proxyUrl.hostname, port: proxyUrl.port }) | ||||
|             }; | ||||
|             let tunnelAgent; | ||||
|             const overHttps = proxyUrl.protocol === 'https:'; | ||||
| @@ -2811,7 +2924,7 @@ class HttpClient { | ||||
|         } | ||||
|         // if reusing agent across request and tunneling agent isn't assigned create a new agent
 | ||||
|         if (this._keepAlive && !agent) { | ||||
|             const options = { keepAlive: this._keepAlive, maxSockets: maxSockets }; | ||||
|             const options = { keepAlive: this._keepAlive, maxSockets }; | ||||
|             agent = usingSsl ? new https.Agent(options) : new http.Agent(options); | ||||
|             this._agent = agent; | ||||
|         } | ||||
| @@ -2830,109 +2943,117 @@ class HttpClient { | ||||
|         return agent; | ||||
|     } | ||||
|     _performExponentialBackoff(retryNumber) { | ||||
|         retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber); | ||||
|         const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber); | ||||
|         return new Promise(resolve => setTimeout(() => resolve(), ms)); | ||||
|         return __awaiter(this, void 0, void 0, function* () { | ||||
|             retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber); | ||||
|             const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber); | ||||
|             return new Promise(resolve => setTimeout(() => resolve(), ms)); | ||||
|         }); | ||||
|     } | ||||
|     static dateTimeDeserializer(key, value) { | ||||
|         if (typeof value === 'string') { | ||||
|             let a = new Date(value); | ||||
|             if (!isNaN(a.valueOf())) { | ||||
|                 return a; | ||||
|             } | ||||
|         } | ||||
|         return value; | ||||
|     } | ||||
|     async _processResponse(res, options) { | ||||
|         return new Promise(async (resolve, reject) => { | ||||
|             const statusCode = res.message.statusCode; | ||||
|             const response = { | ||||
|                 statusCode: statusCode, | ||||
|                 result: null, | ||||
|                 headers: {} | ||||
|             }; | ||||
|             // not found leads to null obj returned
 | ||||
|             if (statusCode == HttpCodes.NotFound) { | ||||
|                 resolve(response); | ||||
|             } | ||||
|             let obj; | ||||
|             let contents; | ||||
|             // get the result from the body
 | ||||
|             try { | ||||
|                 contents = await res.readBody(); | ||||
|                 if (contents && contents.length > 0) { | ||||
|                     if (options && options.deserializeDates) { | ||||
|                         obj = JSON.parse(contents, HttpClient.dateTimeDeserializer); | ||||
|     _processResponse(res, options) { | ||||
|         return __awaiter(this, void 0, void 0, function* () { | ||||
|             return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { | ||||
|                 const statusCode = res.message.statusCode || 0; | ||||
|                 const response = { | ||||
|                     statusCode, | ||||
|                     result: null, | ||||
|                     headers: {} | ||||
|                 }; | ||||
|                 // not found leads to null obj returned
 | ||||
|                 if (statusCode === HttpCodes.NotFound) { | ||||
|                     resolve(response); | ||||
|                 } | ||||
|                 // get the result from the body
 | ||||
|                 function dateTimeDeserializer(key, value) { | ||||
|                     if (typeof value === 'string') { | ||||
|                         const a = new Date(value); | ||||
|                         if (!isNaN(a.valueOf())) { | ||||
|                             return a; | ||||
|                         } | ||||
|                     } | ||||
|                     return value; | ||||
|                 } | ||||
|                 let obj; | ||||
|                 let contents; | ||||
|                 try { | ||||
|                     contents = yield res.readBody(); | ||||
|                     if (contents && contents.length > 0) { | ||||
|                         if (options && options.deserializeDates) { | ||||
|                             obj = JSON.parse(contents, dateTimeDeserializer); | ||||
|                         } | ||||
|                         else { | ||||
|                             obj = JSON.parse(contents); | ||||
|                         } | ||||
|                         response.result = obj; | ||||
|                     } | ||||
|                     response.headers = res.message.headers; | ||||
|                 } | ||||
|                 catch (err) { | ||||
|                     // Invalid resource (contents not json);  leaving result obj null
 | ||||
|                 } | ||||
|                 // note that 3xx redirects are handled by the http layer.
 | ||||
|                 if (statusCode > 299) { | ||||
|                     let msg; | ||||
|                     // if exception/error in body, attempt to get better error
 | ||||
|                     if (obj && obj.message) { | ||||
|                         msg = obj.message; | ||||
|                     } | ||||
|                     else if (contents && contents.length > 0) { | ||||
|                         // it may be the case that the exception is in the body message as string
 | ||||
|                         msg = contents; | ||||
|                     } | ||||
|                     else { | ||||
|                         obj = JSON.parse(contents); | ||||
|                         msg = `Failed request: (${statusCode})`; | ||||
|                     } | ||||
|                     response.result = obj; | ||||
|                 } | ||||
|                 response.headers = res.message.headers; | ||||
|             } | ||||
|             catch (err) { | ||||
|                 // Invalid resource (contents not json);  leaving result obj null
 | ||||
|             } | ||||
|             // note that 3xx redirects are handled by the http layer.
 | ||||
|             if (statusCode > 299) { | ||||
|                 let msg; | ||||
|                 // if exception/error in body, attempt to get better error
 | ||||
|                 if (obj && obj.message) { | ||||
|                     msg = obj.message; | ||||
|                 } | ||||
|                 else if (contents && contents.length > 0) { | ||||
|                     // it may be the case that the exception is in the body message as string
 | ||||
|                     msg = contents; | ||||
|                     const err = new HttpClientError(msg, statusCode); | ||||
|                     err.result = response.result; | ||||
|                     reject(err); | ||||
|                 } | ||||
|                 else { | ||||
|                     msg = 'Failed request: (' + statusCode + ')'; | ||||
|                     resolve(response); | ||||
|                 } | ||||
|                 let err = new HttpClientError(msg, statusCode); | ||||
|                 err.result = response.result; | ||||
|                 reject(err); | ||||
|             } | ||||
|             else { | ||||
|                 resolve(response); | ||||
|             } | ||||
|             })); | ||||
|         }); | ||||
|     } | ||||
| } | ||||
| exports.HttpClient = HttpClient; | ||||
| 
 | ||||
| const lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); | ||||
| //# sourceMappingURL=index.js.map
 | ||||
| 
 | ||||
| /***/ }), | ||||
| 
 | ||||
| /***/ 7326: | ||||
| /***/ 4977: | ||||
| /***/ ((__unused_webpack_module, exports) => { | ||||
| 
 | ||||
| "use strict"; | ||||
| 
 | ||||
| Object.defineProperty(exports, "__esModule", ({ value: true })); | ||||
| exports.checkBypass = exports.getProxyUrl = void 0; | ||||
| function getProxyUrl(reqUrl) { | ||||
|     let usingSsl = reqUrl.protocol === 'https:'; | ||||
|     let proxyUrl; | ||||
|     const usingSsl = reqUrl.protocol === 'https:'; | ||||
|     if (checkBypass(reqUrl)) { | ||||
|         return proxyUrl; | ||||
|         return undefined; | ||||
|     } | ||||
|     let proxyVar; | ||||
|     if (usingSsl) { | ||||
|         proxyVar = process.env['https_proxy'] || process.env['HTTPS_PROXY']; | ||||
|     const proxyVar = (() => { | ||||
|         if (usingSsl) { | ||||
|             return process.env['https_proxy'] || process.env['HTTPS_PROXY']; | ||||
|         } | ||||
|         else { | ||||
|             return process.env['http_proxy'] || process.env['HTTP_PROXY']; | ||||
|         } | ||||
|     })(); | ||||
|     if (proxyVar) { | ||||
|         return new URL(proxyVar); | ||||
|     } | ||||
|     else { | ||||
|         proxyVar = process.env['http_proxy'] || process.env['HTTP_PROXY']; | ||||
|         return undefined; | ||||
|     } | ||||
|     if (proxyVar) { | ||||
|         proxyUrl = new URL(proxyVar); | ||||
|     } | ||||
|     return proxyUrl; | ||||
| } | ||||
| exports.getProxyUrl = getProxyUrl; | ||||
| function checkBypass(reqUrl) { | ||||
|     if (!reqUrl.hostname) { | ||||
|         return false; | ||||
|     } | ||||
|     let noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || ''; | ||||
|     const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || ''; | ||||
|     if (!noProxy) { | ||||
|         return false; | ||||
|     } | ||||
| @@ -2948,12 +3069,12 @@ function checkBypass(reqUrl) { | ||||
|         reqPort = 443; | ||||
|     } | ||||
|     // Format the request hostname and hostname with port
 | ||||
|     let upperReqHosts = [reqUrl.hostname.toUpperCase()]; | ||||
|     const upperReqHosts = [reqUrl.hostname.toUpperCase()]; | ||||
|     if (typeof reqPort === 'number') { | ||||
|         upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`); | ||||
|     } | ||||
|     // Compare request host against noproxy
 | ||||
|     for (let upperNoProxyItem of noProxy | ||||
|     for (const upperNoProxyItem of noProxy | ||||
|         .split(',') | ||||
|         .map(x => x.trim().toUpperCase()) | ||||
|         .filter(x => x)) { | ||||
| @@ -2964,7 +3085,7 @@ function checkBypass(reqUrl) { | ||||
|     return false; | ||||
| } | ||||
| exports.checkBypass = checkBypass; | ||||
| 
 | ||||
| //# sourceMappingURL=proxy.js.map
 | ||||
| 
 | ||||
| /***/ }), | ||||
| 
 | ||||
| @@ -57624,19 +57745,11 @@ function saveCache(packageManager) { | ||||
|             core.info(`Cache hit occurred on the primary key ${primaryKey}, not saving cache.`); | ||||
|             return; | ||||
|         } | ||||
|         try { | ||||
|             yield cache.saveCache(cachePaths, primaryKey); | ||||
|             core.info(`Cache saved with the key: ${primaryKey}`); | ||||
|         } | ||||
|         catch (error) { | ||||
|             const err = error; | ||||
|             if (err.name === cache.ReserveCacheError.name) { | ||||
|                 core.info(err.message); | ||||
|             } | ||||
|             else { | ||||
|                 throw error; | ||||
|             } | ||||
|         const cacheId = yield cache.saveCache(cachePaths, primaryKey); | ||||
|         if (cacheId == -1) { | ||||
|             return; | ||||
|         } | ||||
|         core.info(`Cache saved with the key: ${primaryKey}`); | ||||
|     }); | ||||
| } | ||||
| function isCacheDirectoryExists(cacheDirectory) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 IvanZosimov
					IvanZosimov