@rushstack/rush-http-build-cache-plugin 5.124.4 → 5.124.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.rush/temp/operation/_phase_build/all.log +2 -2
- package/.rush/temp/operation/_phase_build/state.json +1 -1
- package/.rush/temp/operation/_phase_test/all.log +3 -3
- package/.rush/temp/operation/_phase_test/state.json +1 -1
- package/.rush/temp/{rushstack+rush-http-build-cache-plugin-_phase_build-6ac2054e54525d06ae8d529c7d9e271640872af4.tar.log → rushstack+rush-http-build-cache-plugin-_phase_build-3d708c46ebdde5941cd2158c799eba1057ea57bc.tar.log} +2 -2
- package/.rush/temp/{rushstack+rush-http-build-cache-plugin-_phase_test-630dd65919573e16a5f24e8b9951d63fa82de76a.tar.log → rushstack+rush-http-build-cache-plugin-_phase_test-febc74458cdca8cd24fe8aac9e8da5b34a862270.tar.log} +2 -2
- package/coverage/HttpBuildCacheProvider.ts.html +29 -20
- package/coverage/RushHttpBuildCachePlugin.ts.html +1 -1
- package/coverage/cobertura-coverage.xml +107 -104
- package/coverage/index.html +11 -11
- package/coverage/index.ts.html +1 -1
- package/coverage/junit.xml +4 -4
- package/lib/HttpBuildCacheProvider.d.ts +3 -3
- package/lib/HttpBuildCacheProvider.d.ts.map +1 -1
- package/lib/HttpBuildCacheProvider.js +10 -10
- package/lib/HttpBuildCacheProvider.js.map +1 -1
- package/package.json +6 -6
- package/rush-logs/rush-http-build-cache-plugin._phase_build.cache.log +1 -1
- package/rush-logs/rush-http-build-cache-plugin._phase_build.log +2 -2
- package/rush-logs/rush-http-build-cache-plugin._phase_test.cache.log +1 -1
- package/rush-logs/rush-http-build-cache-plugin._phase_test.log +3 -3
- package/src/HttpBuildCacheProvider.ts +17 -14
- package/temp/build/lint/_eslint-it73M-Rx.json +1 -1
- package/temp/build/typescript/ts_l9Fw4VUO.json +1 -1
- package/temp/test/jest/haste-map-8bff56e236187dbf28a94cdea7ee2158-1f8f3a8b20228094c245723445dd2c9a-e95bfd62c357a87bf3c5f47c6c3a2910 +0 -0
- package/temp/test/jest/jest-transform-cache-8bff56e236187dbf28a94cdea7ee2158-79ef2876fae7ca75eedb2aa53dc48338/{f0/package_f00bb8686fad08427c067780596283bb → 5f/package_5f714b83af81106b88f92ceaf0fe1deb} +2 -2
- package/temp/test/jest/perf-cache-8bff56e236187dbf28a94cdea7ee2158-da39a3ee5e6b4b0d3255bfef95601890 +1 -1
package/coverage/index.ts.html
CHANGED
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
92
92
|
Code coverage generated by
|
|
93
93
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
94
|
-
at 2024-05-
|
|
94
|
+
at 2024-05-16T01:10:52.146Z
|
|
95
95
|
</div>
|
|
96
96
|
<script src="prettify.js"></script>
|
|
97
97
|
<script>
|
package/coverage/junit.xml
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<testsuites name="jest tests" tests="2" failures="0" errors="0" time="
|
|
3
|
-
<testsuite name="HttpBuildCacheProvider" errors="0" failures="0" skipped="0" timestamp="2024-05-
|
|
4
|
-
<testcase classname="HttpBuildCacheProvider tryGetCacheEntryBufferByIdAsync > " name="prints warning if read credentials are not available (lib/test/HttpBuildCacheProvider.test.js)" time="0.
|
|
2
|
+
<testsuites name="jest tests" tests="2" failures="0" errors="0" time="3.14">
|
|
3
|
+
<testsuite name="HttpBuildCacheProvider" errors="0" failures="0" skipped="0" timestamp="2024-05-16T01:10:48" time="2.561" tests="2">
|
|
4
|
+
<testcase classname="HttpBuildCacheProvider tryGetCacheEntryBufferByIdAsync > " name="prints warning if read credentials are not available (lib/test/HttpBuildCacheProvider.test.js)" time="0.078">
|
|
5
5
|
</testcase>
|
|
6
|
-
<testcase classname="HttpBuildCacheProvider tryGetCacheEntryBufferByIdAsync > " name="attempts up to 3 times to download a cache entry (lib/test/HttpBuildCacheProvider.test.js)" time="0.
|
|
6
|
+
<testcase classname="HttpBuildCacheProvider tryGetCacheEntryBufferByIdAsync > " name="attempts up to 3 times to download a cache entry (lib/test/HttpBuildCacheProvider.test.js)" time="0.014">
|
|
7
7
|
</testcase>
|
|
8
8
|
</testsuite>
|
|
9
9
|
</testsuites>
|
|
@@ -39,9 +39,9 @@ export declare class HttpBuildCacheProvider implements ICloudBuildCacheProvider
|
|
|
39
39
|
updateCachedCredentialInteractiveAsync(terminal: ITerminal): Promise<void>;
|
|
40
40
|
deleteCachedCredentialsAsync(terminal: ITerminal): Promise<void>;
|
|
41
41
|
private get _credentialCacheId();
|
|
42
|
-
private
|
|
43
|
-
private
|
|
44
|
-
private
|
|
42
|
+
private _makeHttpRequestAsync;
|
|
43
|
+
private _tryGetCredentialsAsync;
|
|
44
|
+
private _tryGetCredentialsFromCacheAsync;
|
|
45
45
|
private _getFailureType;
|
|
46
46
|
private _reportFailure;
|
|
47
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpBuildCacheProvider.d.ts","sourceRoot":"","sources":["../src/HttpBuildCacheProvider.ts"],"names":[],"mappings":";AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EACL,KAAK,wBAAwB,EAG7B,KAAK,WAAW,EAEjB,MAAM,qBAAqB,CAAC;AAkB7B,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,2BAA2B,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAKD,qBAAa,sBAAuB,YAAW,wBAAwB;IACrE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAqB;IAC5D,OAAO,CAAC,QAAQ,CAAC,mCAAmC,CAAU;IAC9D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAM;IAC3B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0C;IACxE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,mBAAmB,CAAqB;IAEhD,IAAW,mBAAmB,IAAI,OAAO,CAExC;gBAEkB,OAAO,EAAE,8BAA8B,EAAE,WAAW,EAAE,WAAW;IAcvE,+BAA+B,CAC1C,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAmBjB,2BAA2B,CACtC,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC;IA0BN,2BAA2B,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcnF,sCAAsC,CAAC,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC1E,4BAA4B,CAAC,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAY7E,OAAO,KAAK,kBAAkB,GAY7B;YAEa,
|
|
1
|
+
{"version":3,"file":"HttpBuildCacheProvider.d.ts","sourceRoot":"","sources":["../src/HttpBuildCacheProvider.ts"],"names":[],"mappings":";AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EACL,KAAK,wBAAwB,EAG7B,KAAK,WAAW,EAEjB,MAAM,qBAAqB,CAAC;AAkB7B,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,2BAA2B,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAKD,qBAAa,sBAAuB,YAAW,wBAAwB;IACrE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAqB;IAC5D,OAAO,CAAC,QAAQ,CAAC,mCAAmC,CAAU;IAC9D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAM;IAC3B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0C;IACxE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,mBAAmB,CAAqB;IAEhD,IAAW,mBAAmB,IAAI,OAAO,CAExC;gBAEkB,OAAO,EAAE,8BAA8B,EAAE,WAAW,EAAE,WAAW;IAcvE,+BAA+B,CAC1C,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAmBjB,2BAA2B,CACtC,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC;IA0BN,2BAA2B,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcnF,sCAAsC,CAAC,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC1E,4BAA4B,CAAC,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAY7E,OAAO,KAAK,kBAAkB,GAY7B;YAEa,qBAAqB;YAmFrB,uBAAuB;YAgCvB,gCAAgC;IAoB9C,OAAO,CAAC,eAAe;IA+CvB,OAAO,CAAC,cAAc;CA4CvB"}
|
|
@@ -45,7 +45,7 @@ class HttpBuildCacheProvider {
|
|
|
45
45
|
}
|
|
46
46
|
async tryGetCacheEntryBufferByIdAsync(terminal, cacheId) {
|
|
47
47
|
try {
|
|
48
|
-
const result = await this.
|
|
48
|
+
const result = await this._makeHttpRequestAsync({
|
|
49
49
|
terminal: terminal,
|
|
50
50
|
relUrl: `${this._cacheKeyPrefix}${cacheId}`,
|
|
51
51
|
method: 'GET',
|
|
@@ -68,7 +68,7 @@ class HttpBuildCacheProvider {
|
|
|
68
68
|
}
|
|
69
69
|
terminal.writeDebugLine('Uploading object with cacheId: ', cacheId);
|
|
70
70
|
try {
|
|
71
|
-
const result = await this.
|
|
71
|
+
const result = await this._makeHttpRequestAsync({
|
|
72
72
|
terminal: terminal,
|
|
73
73
|
relUrl: `${this._cacheKeyPrefix}${cacheId}`,
|
|
74
74
|
method: this._uploadMethod,
|
|
@@ -133,10 +133,10 @@ class HttpBuildCacheProvider {
|
|
|
133
133
|
}
|
|
134
134
|
return this.__credentialCacheId;
|
|
135
135
|
}
|
|
136
|
-
async
|
|
136
|
+
async _makeHttpRequestAsync(options) {
|
|
137
137
|
const { terminal, relUrl, method, body, warningText, readBody, credentialOptions } = options;
|
|
138
138
|
const safeCredentialOptions = credentialOptions !== null && credentialOptions !== void 0 ? credentialOptions : CredentialsOptions.Optional;
|
|
139
|
-
const credentials = await this.
|
|
139
|
+
const credentials = await this._tryGetCredentialsAsync(safeCredentialOptions);
|
|
140
140
|
const url = new URL(relUrl, this._url).href;
|
|
141
141
|
const headers = {};
|
|
142
142
|
if (typeof credentials === 'string') {
|
|
@@ -165,7 +165,7 @@ class HttpBuildCacheProvider {
|
|
|
165
165
|
// required. Re-attempt the request, requiring credentials this time.
|
|
166
166
|
//
|
|
167
167
|
// This counts as part of the "first attempt", so it is not included in the max attempts
|
|
168
|
-
return await this.
|
|
168
|
+
return await this._makeHttpRequestAsync(Object.assign(Object.assign({}, options), { credentialOptions: CredentialsOptions.Required }));
|
|
169
169
|
}
|
|
170
170
|
if (options.maxAttempts > 1) {
|
|
171
171
|
// Pause a bit before retrying in case the server is busy
|
|
@@ -173,8 +173,8 @@ class HttpBuildCacheProvider {
|
|
|
173
173
|
// A proper solution might add exponential back off in case the retry count is high (10 or more)
|
|
174
174
|
const factor = 1.0 + Math.random(); // A random number between 1.0 and 2.0
|
|
175
175
|
const retryDelay = Math.floor(factor * this._minHttpRetryDelayMs);
|
|
176
|
-
await node_core_library_1.Async.
|
|
177
|
-
return await this.
|
|
176
|
+
await node_core_library_1.Async.sleepAsync(retryDelay);
|
|
177
|
+
return await this._makeHttpRequestAsync(Object.assign(Object.assign({}, options), { maxAttempts: options.maxAttempts - 1 }));
|
|
178
178
|
}
|
|
179
179
|
this._reportFailure(terminal, method, response, false, warningText);
|
|
180
180
|
return false;
|
|
@@ -183,13 +183,13 @@ class HttpBuildCacheProvider {
|
|
|
183
183
|
terminal.writeDebugLine(`[http-build-cache] actual response: ${response.status} ${url} ${result === true ? 'true' : result.length} bytes`);
|
|
184
184
|
return result;
|
|
185
185
|
}
|
|
186
|
-
async
|
|
186
|
+
async _tryGetCredentialsAsync(options) {
|
|
187
187
|
if (options === CredentialsOptions.Omit) {
|
|
188
188
|
return;
|
|
189
189
|
}
|
|
190
190
|
let credentials = this._environmentCredential;
|
|
191
191
|
if (credentials === undefined) {
|
|
192
|
-
credentials = await this.
|
|
192
|
+
credentials = await this._tryGetCredentialsFromCacheAsync();
|
|
193
193
|
}
|
|
194
194
|
if (typeof credentials !== 'string' && options === CredentialsOptions.Required) {
|
|
195
195
|
throw new Error([
|
|
@@ -204,7 +204,7 @@ class HttpBuildCacheProvider {
|
|
|
204
204
|
}
|
|
205
205
|
return credentials;
|
|
206
206
|
}
|
|
207
|
-
async
|
|
207
|
+
async _tryGetCredentialsFromCacheAsync() {
|
|
208
208
|
var _a;
|
|
209
209
|
let cacheEntry;
|
|
210
210
|
await rush_sdk_1.CredentialCache.usingAsync({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpBuildCacheProvider.js","sourceRoot":"","sources":["../src/HttpBuildCacheProvider.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport { Executable, Async } from '@rushstack/node-core-library';\nimport type { ITerminal } from '@rushstack/terminal';\nimport {\n type ICloudBuildCacheProvider,\n type ICredentialCacheEntry,\n CredentialCache,\n type RushSession,\n EnvironmentConfiguration\n} from '@rushstack/rush-sdk';\nimport fetch, { type BodyInit, type Response } from 'node-fetch';\nimport type { SpawnSyncReturns } from 'child_process';\n\nenum CredentialsOptions {\n Optional,\n Required,\n Omit\n}\n\nenum FailureType {\n None,\n Informational,\n Warning,\n Error,\n Authentication\n}\n\nexport interface IHttpBuildCacheTokenHandler {\n exec: string;\n args?: string[];\n}\n\n/**\n * @public\n */\nexport interface IHttpBuildCacheProviderOptions {\n url: string;\n tokenHandler?: IHttpBuildCacheTokenHandler;\n uploadMethod?: string;\n minHttpRetryDelayMs?: number;\n headers?: Record<string, string>;\n cacheKeyPrefix?: string;\n isCacheWriteAllowed: boolean;\n pluginName: string;\n rushJsonFolder: string;\n}\n\nconst MAX_HTTP_CACHE_ATTEMPTS: number = 3;\nconst DEFAULT_MIN_HTTP_RETRY_DELAY_MS: number = 2500;\n\nexport class HttpBuildCacheProvider implements ICloudBuildCacheProvider {\n private readonly _pluginName: string;\n private readonly _rushProjectRoot: string;\n private readonly _environmentCredential: string | undefined;\n private readonly _isCacheWriteAllowedByConfiguration: boolean;\n private readonly _url: URL;\n private readonly _uploadMethod: string;\n private readonly _headers: Record<string, string>;\n private readonly _cacheKeyPrefix: string;\n private readonly _tokenHandler: IHttpBuildCacheTokenHandler | undefined;\n private readonly _minHttpRetryDelayMs: number;\n private __credentialCacheId: string | undefined;\n\n public get isCacheWriteAllowed(): boolean {\n return EnvironmentConfiguration.buildCacheWriteAllowed ?? this._isCacheWriteAllowedByConfiguration;\n }\n\n public constructor(options: IHttpBuildCacheProviderOptions, rushSession: RushSession) {\n this._pluginName = options.pluginName;\n this._rushProjectRoot = options.rushJsonFolder;\n\n this._environmentCredential = EnvironmentConfiguration.buildCacheCredential;\n this._isCacheWriteAllowedByConfiguration = options.isCacheWriteAllowed;\n this._url = new URL(options.url.endsWith('/') ? options.url : options.url + '/');\n this._uploadMethod = options.uploadMethod ?? 'PUT';\n this._headers = options.headers ?? {};\n this._tokenHandler = options.tokenHandler;\n this._cacheKeyPrefix = options.cacheKeyPrefix ?? '';\n this._minHttpRetryDelayMs = options.minHttpRetryDelayMs ?? DEFAULT_MIN_HTTP_RETRY_DELAY_MS;\n }\n\n public async tryGetCacheEntryBufferByIdAsync(\n terminal: ITerminal,\n cacheId: string\n ): Promise<Buffer | undefined> {\n try {\n const result: boolean | Buffer = await this._http({\n terminal: terminal,\n relUrl: `${this._cacheKeyPrefix}${cacheId}`,\n method: 'GET',\n body: undefined,\n warningText: 'Could not get cache entry',\n readBody: true,\n maxAttempts: MAX_HTTP_CACHE_ATTEMPTS\n });\n\n return Buffer.isBuffer(result) ? result : undefined;\n } catch (e) {\n terminal.writeWarningLine(`Error getting cache entry: ${e}`);\n return undefined;\n }\n }\n\n public async trySetCacheEntryBufferAsync(\n terminal: ITerminal,\n cacheId: string,\n objectBuffer: Buffer\n ): Promise<boolean> {\n if (!this.isCacheWriteAllowed) {\n terminal.writeErrorLine('Writing to cache is not allowed in the current configuration.');\n return false;\n }\n\n terminal.writeDebugLine('Uploading object with cacheId: ', cacheId);\n\n try {\n const result: boolean | Buffer = await this._http({\n terminal: terminal,\n relUrl: `${this._cacheKeyPrefix}${cacheId}`,\n method: this._uploadMethod,\n body: objectBuffer,\n warningText: 'Could not write cache entry',\n readBody: false,\n maxAttempts: MAX_HTTP_CACHE_ATTEMPTS\n });\n\n return result !== false;\n } catch (e) {\n terminal.writeWarningLine(`Error uploading cache entry: ${e}`);\n return false;\n }\n }\n\n public async updateCachedCredentialAsync(terminal: ITerminal, credential: string): Promise<void> {\n await CredentialCache.usingAsync(\n {\n supportEditing: true\n },\n async (credentialsCache: CredentialCache) => {\n credentialsCache.setCacheEntry(this._credentialCacheId, {\n credential: credential\n });\n await credentialsCache.saveIfModifiedAsync();\n }\n );\n }\n\n public async updateCachedCredentialInteractiveAsync(terminal: ITerminal): Promise<void> {\n if (!this._tokenHandler) {\n throw new Error(\n `The interactive cloud credentials flow is not configured.\\n` +\n `Set the 'tokenHandler' setting in 'common/config/rush-plugins/${this._pluginName}.json' to a command that writes your credentials to standard output and exits with code 0 ` +\n `or provide your credentials to rush using the --credential flag instead. Credentials must be the ` +\n `'Authorization' header expected by ${this._url.href}`\n );\n }\n\n const cmd: string = `${this._tokenHandler.exec} ${(this._tokenHandler.args || []).join(' ')}`;\n terminal.writeVerboseLine(`Running '${cmd}' to get credentials`);\n const result: SpawnSyncReturns<string> = Executable.spawnSync(\n this._tokenHandler.exec,\n this._tokenHandler.args || [],\n {\n currentWorkingDirectory: this._rushProjectRoot\n }\n );\n\n terminal.writeErrorLine(result.stderr);\n\n if (result.error) {\n throw new Error(`Could not obtain credentials. The command '${cmd}' failed.`);\n }\n\n const credential: string = result.stdout.trim();\n terminal.writeVerboseLine('Got credentials');\n\n await this.updateCachedCredentialAsync(terminal, credential);\n\n terminal.writeLine('Updated credentials cache');\n }\n\n public async deleteCachedCredentialsAsync(terminal: ITerminal): Promise<void> {\n await CredentialCache.usingAsync(\n {\n supportEditing: true\n },\n async (credentialsCache: CredentialCache) => {\n credentialsCache.deleteCacheEntry(this._credentialCacheId);\n await credentialsCache.saveIfModifiedAsync();\n }\n );\n }\n\n private get _credentialCacheId(): string {\n if (!this.__credentialCacheId) {\n const cacheIdParts: string[] = [this._url.href];\n\n if (this._isCacheWriteAllowedByConfiguration) {\n cacheIdParts.push('cacheWriteAllowed');\n }\n\n this.__credentialCacheId = cacheIdParts.join('|');\n }\n\n return this.__credentialCacheId;\n }\n\n private async _http(options: {\n terminal: ITerminal;\n relUrl: string;\n method: string;\n body: BodyInit | undefined;\n warningText: string;\n readBody: boolean;\n maxAttempts: number;\n credentialOptions?: CredentialsOptions;\n }): Promise<Buffer | boolean> {\n const { terminal, relUrl, method, body, warningText, readBody, credentialOptions } = options;\n const safeCredentialOptions: CredentialsOptions = credentialOptions ?? CredentialsOptions.Optional;\n const credentials: string | undefined = await this._tryGetCredentials(safeCredentialOptions);\n const url: string = new URL(relUrl, this._url).href;\n\n const headers: Record<string, string> = {};\n if (typeof credentials === 'string') {\n headers.Authorization = credentials;\n }\n\n for (const [key, value] of Object.entries(this._headers)) {\n if (typeof value === 'string') {\n headers[key] = value;\n }\n }\n\n const bodyLength: number | 'unknown' = (body as { length: number })?.length || 'unknown';\n\n terminal.writeDebugLine(`[http-build-cache] request: ${method} ${url} ${bodyLength} bytes`);\n\n const response: Response = await fetch(url, {\n method: method,\n headers: headers,\n body: body,\n redirect: 'follow'\n });\n\n if (!response.ok) {\n const isNonCredentialResponse: boolean = response.status >= 500 && response.status < 600;\n\n if (\n !isNonCredentialResponse &&\n typeof credentials !== 'string' &&\n safeCredentialOptions === CredentialsOptions.Optional\n ) {\n // If we don't already have credentials yet, and we got a response from the server\n // that is a \"normal\" failure (4xx), then we assume that credentials are probably\n // required. Re-attempt the request, requiring credentials this time.\n //\n // This counts as part of the \"first attempt\", so it is not included in the max attempts\n return await this._http({ ...options, credentialOptions: CredentialsOptions.Required });\n }\n\n if (options.maxAttempts > 1) {\n // Pause a bit before retrying in case the server is busy\n // Add some random jitter to the retry so we can spread out load on the remote service\n // A proper solution might add exponential back off in case the retry count is high (10 or more)\n const factor: number = 1.0 + Math.random(); // A random number between 1.0 and 2.0\n const retryDelay: number = Math.floor(factor * this._minHttpRetryDelayMs);\n\n await Async.sleep(retryDelay);\n\n return await this._http({ ...options, maxAttempts: options.maxAttempts - 1 });\n }\n\n this._reportFailure(terminal, method, response, false, warningText);\n return false;\n }\n\n const result: Buffer | boolean = readBody ? Buffer.from(await response.arrayBuffer()) : true;\n\n terminal.writeDebugLine(\n `[http-build-cache] actual response: ${response.status} ${url} ${\n result === true ? 'true' : result.length\n } bytes`\n );\n\n return result;\n }\n\n private async _tryGetCredentials(options: CredentialsOptions.Required): Promise<string>;\n private async _tryGetCredentials(options: CredentialsOptions.Optional): Promise<string | undefined>;\n private async _tryGetCredentials(options: CredentialsOptions.Omit): Promise<undefined>;\n private async _tryGetCredentials(options: CredentialsOptions): Promise<string | undefined>;\n private async _tryGetCredentials(options: CredentialsOptions): Promise<string | undefined> {\n if (options === CredentialsOptions.Omit) {\n return;\n }\n\n let credentials: string | undefined = this._environmentCredential;\n\n if (credentials === undefined) {\n credentials = await this._tryGetCredentialsFromCache();\n }\n\n if (typeof credentials !== 'string' && options === CredentialsOptions.Required) {\n throw new Error(\n [\n `Credentials for ${this._url.href} have not been provided.`,\n `In CI, verify that RUSH_BUILD_CACHE_CREDENTIAL contains a valid Authorization header value.`,\n ``,\n `For local developers, run:`,\n ``,\n ` rush update-cloud-credentials --interactive`,\n ``\n ].join('\\n')\n );\n }\n\n return credentials;\n }\n\n private async _tryGetCredentialsFromCache(): Promise<string | undefined> {\n let cacheEntry: ICredentialCacheEntry | undefined;\n\n await CredentialCache.usingAsync(\n {\n supportEditing: false\n },\n (credentialsCache: CredentialCache) => {\n cacheEntry = credentialsCache.tryGetCacheEntry(this._credentialCacheId);\n }\n );\n\n if (cacheEntry) {\n const expirationTime: number | undefined = cacheEntry.expires?.getTime();\n if (!expirationTime || expirationTime >= Date.now()) {\n return cacheEntry.credential;\n }\n }\n }\n\n private _getFailureType(requestMethod: string, response: Response, isRedirect: boolean): FailureType {\n if (response.ok) {\n return FailureType.None;\n }\n\n switch (response.status) {\n case 503: {\n // We select 503 specifically because this represents \"service unavailable\" and\n // \"rate limit throttle\" errors, which are transient issues.\n //\n // There are other 5xx errors, such as 501, that can occur if the request is\n // malformed, so as a general rule we want to let through other 5xx errors\n // so the user can troubleshoot.\n\n // Don't fail production builds with warnings for transient issues\n return FailureType.Informational;\n }\n\n case 401:\n case 403:\n case 407: {\n if (requestMethod === 'GET' && (isRedirect || response.redirected)) {\n // Cache misses for GET requests are not errors\n // This is a workaround behavior where a server can issue a redirect and we fail to authenticate at the new location.\n // We do not want to signal this as an authentication failure because the authorization header is not passed on to redirects.\n // i.e The authentication header was accepted for the first request and therefore subsequent failures\n // where it was not present should not be attributed to the header.\n // This scenario usually comes up with services that redirect to pre-signed URLS that don't actually exist.\n // Those services then usually treat the 404 as a 403 to prevent leaking information.\n return FailureType.None;\n }\n\n return FailureType.Authentication;\n }\n\n case 404: {\n if (requestMethod === 'GET') {\n // Cache misses for GET requests are not errors\n return FailureType.None;\n }\n }\n }\n\n // Let dev builds succeed, let Prod builds fail\n return FailureType.Warning;\n }\n\n private _reportFailure(\n terminal: ITerminal,\n requestMethod: string,\n response: Response,\n isRedirect: boolean,\n message: string\n ): void {\n switch (this._getFailureType(requestMethod, response, isRedirect)) {\n default: {\n terminal.writeErrorLine(`${message}: HTTP ${response.status}: ${response.statusText}`);\n break;\n }\n\n case FailureType.Warning: {\n terminal.writeWarningLine(`${message}: HTTP ${response.status}: ${response.statusText}`);\n break;\n }\n\n case FailureType.Informational: {\n terminal.writeLine(`${message}: HTTP ${response.status}: ${response.statusText}`);\n break;\n }\n\n case FailureType.None: {\n terminal.writeDebugLine(`${message}: HTTP ${response.status}: ${response.statusText}`);\n break;\n }\n\n case FailureType.Authentication: {\n throw new Error(\n [\n `${this._url.href} responded with ${response.status}: ${response.statusText}.`,\n `Credentials may be misconfigured or have expired.`,\n `In CI, verify that RUSH_BUILD_CACHE_CREDENTIAL contains a valid Authorization header value.`,\n ``,\n `For local developers, run:`,\n ``,\n ` rush update-cloud-credentials --interactive`,\n ``\n ].join('\\n')\n );\n }\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"HttpBuildCacheProvider.js","sourceRoot":"","sources":["../src/HttpBuildCacheProvider.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport { Executable, Async } from '@rushstack/node-core-library';\nimport type { ITerminal } from '@rushstack/terminal';\nimport {\n type ICloudBuildCacheProvider,\n type ICredentialCacheEntry,\n CredentialCache,\n type RushSession,\n EnvironmentConfiguration\n} from '@rushstack/rush-sdk';\nimport fetch, { type BodyInit, type Response } from 'node-fetch';\nimport type { SpawnSyncReturns } from 'child_process';\n\nenum CredentialsOptions {\n Optional,\n Required,\n Omit\n}\n\nenum FailureType {\n None,\n Informational,\n Warning,\n Error,\n Authentication\n}\n\nexport interface IHttpBuildCacheTokenHandler {\n exec: string;\n args?: string[];\n}\n\n/**\n * @public\n */\nexport interface IHttpBuildCacheProviderOptions {\n url: string;\n tokenHandler?: IHttpBuildCacheTokenHandler;\n uploadMethod?: string;\n minHttpRetryDelayMs?: number;\n headers?: Record<string, string>;\n cacheKeyPrefix?: string;\n isCacheWriteAllowed: boolean;\n pluginName: string;\n rushJsonFolder: string;\n}\n\nconst MAX_HTTP_CACHE_ATTEMPTS: number = 3;\nconst DEFAULT_MIN_HTTP_RETRY_DELAY_MS: number = 2500;\n\nexport class HttpBuildCacheProvider implements ICloudBuildCacheProvider {\n private readonly _pluginName: string;\n private readonly _rushProjectRoot: string;\n private readonly _environmentCredential: string | undefined;\n private readonly _isCacheWriteAllowedByConfiguration: boolean;\n private readonly _url: URL;\n private readonly _uploadMethod: string;\n private readonly _headers: Record<string, string>;\n private readonly _cacheKeyPrefix: string;\n private readonly _tokenHandler: IHttpBuildCacheTokenHandler | undefined;\n private readonly _minHttpRetryDelayMs: number;\n private __credentialCacheId: string | undefined;\n\n public get isCacheWriteAllowed(): boolean {\n return EnvironmentConfiguration.buildCacheWriteAllowed ?? this._isCacheWriteAllowedByConfiguration;\n }\n\n public constructor(options: IHttpBuildCacheProviderOptions, rushSession: RushSession) {\n this._pluginName = options.pluginName;\n this._rushProjectRoot = options.rushJsonFolder;\n\n this._environmentCredential = EnvironmentConfiguration.buildCacheCredential;\n this._isCacheWriteAllowedByConfiguration = options.isCacheWriteAllowed;\n this._url = new URL(options.url.endsWith('/') ? options.url : options.url + '/');\n this._uploadMethod = options.uploadMethod ?? 'PUT';\n this._headers = options.headers ?? {};\n this._tokenHandler = options.tokenHandler;\n this._cacheKeyPrefix = options.cacheKeyPrefix ?? '';\n this._minHttpRetryDelayMs = options.minHttpRetryDelayMs ?? DEFAULT_MIN_HTTP_RETRY_DELAY_MS;\n }\n\n public async tryGetCacheEntryBufferByIdAsync(\n terminal: ITerminal,\n cacheId: string\n ): Promise<Buffer | undefined> {\n try {\n const result: boolean | Buffer = await this._makeHttpRequestAsync({\n terminal: terminal,\n relUrl: `${this._cacheKeyPrefix}${cacheId}`,\n method: 'GET',\n body: undefined,\n warningText: 'Could not get cache entry',\n readBody: true,\n maxAttempts: MAX_HTTP_CACHE_ATTEMPTS\n });\n\n return Buffer.isBuffer(result) ? result : undefined;\n } catch (e) {\n terminal.writeWarningLine(`Error getting cache entry: ${e}`);\n return undefined;\n }\n }\n\n public async trySetCacheEntryBufferAsync(\n terminal: ITerminal,\n cacheId: string,\n objectBuffer: Buffer\n ): Promise<boolean> {\n if (!this.isCacheWriteAllowed) {\n terminal.writeErrorLine('Writing to cache is not allowed in the current configuration.');\n return false;\n }\n\n terminal.writeDebugLine('Uploading object with cacheId: ', cacheId);\n\n try {\n const result: boolean | Buffer = await this._makeHttpRequestAsync({\n terminal: terminal,\n relUrl: `${this._cacheKeyPrefix}${cacheId}`,\n method: this._uploadMethod,\n body: objectBuffer,\n warningText: 'Could not write cache entry',\n readBody: false,\n maxAttempts: MAX_HTTP_CACHE_ATTEMPTS\n });\n\n return result !== false;\n } catch (e) {\n terminal.writeWarningLine(`Error uploading cache entry: ${e}`);\n return false;\n }\n }\n\n public async updateCachedCredentialAsync(terminal: ITerminal, credential: string): Promise<void> {\n await CredentialCache.usingAsync(\n {\n supportEditing: true\n },\n async (credentialsCache: CredentialCache) => {\n credentialsCache.setCacheEntry(this._credentialCacheId, {\n credential: credential\n });\n await credentialsCache.saveIfModifiedAsync();\n }\n );\n }\n\n public async updateCachedCredentialInteractiveAsync(terminal: ITerminal): Promise<void> {\n if (!this._tokenHandler) {\n throw new Error(\n `The interactive cloud credentials flow is not configured.\\n` +\n `Set the 'tokenHandler' setting in 'common/config/rush-plugins/${this._pluginName}.json' to a command that writes your credentials to standard output and exits with code 0 ` +\n `or provide your credentials to rush using the --credential flag instead. Credentials must be the ` +\n `'Authorization' header expected by ${this._url.href}`\n );\n }\n\n const cmd: string = `${this._tokenHandler.exec} ${(this._tokenHandler.args || []).join(' ')}`;\n terminal.writeVerboseLine(`Running '${cmd}' to get credentials`);\n const result: SpawnSyncReturns<string> = Executable.spawnSync(\n this._tokenHandler.exec,\n this._tokenHandler.args || [],\n {\n currentWorkingDirectory: this._rushProjectRoot\n }\n );\n\n terminal.writeErrorLine(result.stderr);\n\n if (result.error) {\n throw new Error(`Could not obtain credentials. The command '${cmd}' failed.`);\n }\n\n const credential: string = result.stdout.trim();\n terminal.writeVerboseLine('Got credentials');\n\n await this.updateCachedCredentialAsync(terminal, credential);\n\n terminal.writeLine('Updated credentials cache');\n }\n\n public async deleteCachedCredentialsAsync(terminal: ITerminal): Promise<void> {\n await CredentialCache.usingAsync(\n {\n supportEditing: true\n },\n async (credentialsCache: CredentialCache) => {\n credentialsCache.deleteCacheEntry(this._credentialCacheId);\n await credentialsCache.saveIfModifiedAsync();\n }\n );\n }\n\n private get _credentialCacheId(): string {\n if (!this.__credentialCacheId) {\n const cacheIdParts: string[] = [this._url.href];\n\n if (this._isCacheWriteAllowedByConfiguration) {\n cacheIdParts.push('cacheWriteAllowed');\n }\n\n this.__credentialCacheId = cacheIdParts.join('|');\n }\n\n return this.__credentialCacheId;\n }\n\n private async _makeHttpRequestAsync(options: {\n terminal: ITerminal;\n relUrl: string;\n method: string;\n body: BodyInit | undefined;\n warningText: string;\n readBody: boolean;\n maxAttempts: number;\n credentialOptions?: CredentialsOptions;\n }): Promise<Buffer | boolean> {\n const { terminal, relUrl, method, body, warningText, readBody, credentialOptions } = options;\n const safeCredentialOptions: CredentialsOptions = credentialOptions ?? CredentialsOptions.Optional;\n const credentials: string | undefined = await this._tryGetCredentialsAsync(safeCredentialOptions);\n const url: string = new URL(relUrl, this._url).href;\n\n const headers: Record<string, string> = {};\n if (typeof credentials === 'string') {\n headers.Authorization = credentials;\n }\n\n for (const [key, value] of Object.entries(this._headers)) {\n if (typeof value === 'string') {\n headers[key] = value;\n }\n }\n\n const bodyLength: number | 'unknown' = (body as { length: number })?.length || 'unknown';\n\n terminal.writeDebugLine(`[http-build-cache] request: ${method} ${url} ${bodyLength} bytes`);\n\n const response: Response = await fetch(url, {\n method: method,\n headers: headers,\n body: body,\n redirect: 'follow'\n });\n\n if (!response.ok) {\n const isNonCredentialResponse: boolean = response.status >= 500 && response.status < 600;\n\n if (\n !isNonCredentialResponse &&\n typeof credentials !== 'string' &&\n safeCredentialOptions === CredentialsOptions.Optional\n ) {\n // If we don't already have credentials yet, and we got a response from the server\n // that is a \"normal\" failure (4xx), then we assume that credentials are probably\n // required. Re-attempt the request, requiring credentials this time.\n //\n // This counts as part of the \"first attempt\", so it is not included in the max attempts\n return await this._makeHttpRequestAsync({\n ...options,\n credentialOptions: CredentialsOptions.Required\n });\n }\n\n if (options.maxAttempts > 1) {\n // Pause a bit before retrying in case the server is busy\n // Add some random jitter to the retry so we can spread out load on the remote service\n // A proper solution might add exponential back off in case the retry count is high (10 or more)\n const factor: number = 1.0 + Math.random(); // A random number between 1.0 and 2.0\n const retryDelay: number = Math.floor(factor * this._minHttpRetryDelayMs);\n\n await Async.sleepAsync(retryDelay);\n\n return await this._makeHttpRequestAsync({ ...options, maxAttempts: options.maxAttempts - 1 });\n }\n\n this._reportFailure(terminal, method, response, false, warningText);\n return false;\n }\n\n const result: Buffer | boolean = readBody ? Buffer.from(await response.arrayBuffer()) : true;\n\n terminal.writeDebugLine(\n `[http-build-cache] actual response: ${response.status} ${url} ${\n result === true ? 'true' : result.length\n } bytes`\n );\n\n return result;\n }\n\n private async _tryGetCredentialsAsync(options: CredentialsOptions.Required): Promise<string>;\n private async _tryGetCredentialsAsync(options: CredentialsOptions.Optional): Promise<string | undefined>;\n private async _tryGetCredentialsAsync(options: CredentialsOptions.Omit): Promise<undefined>;\n private async _tryGetCredentialsAsync(options: CredentialsOptions): Promise<string | undefined>;\n private async _tryGetCredentialsAsync(options: CredentialsOptions): Promise<string | undefined> {\n if (options === CredentialsOptions.Omit) {\n return;\n }\n\n let credentials: string | undefined = this._environmentCredential;\n\n if (credentials === undefined) {\n credentials = await this._tryGetCredentialsFromCacheAsync();\n }\n\n if (typeof credentials !== 'string' && options === CredentialsOptions.Required) {\n throw new Error(\n [\n `Credentials for ${this._url.href} have not been provided.`,\n `In CI, verify that RUSH_BUILD_CACHE_CREDENTIAL contains a valid Authorization header value.`,\n ``,\n `For local developers, run:`,\n ``,\n ` rush update-cloud-credentials --interactive`,\n ``\n ].join('\\n')\n );\n }\n\n return credentials;\n }\n\n private async _tryGetCredentialsFromCacheAsync(): Promise<string | undefined> {\n let cacheEntry: ICredentialCacheEntry | undefined;\n\n await CredentialCache.usingAsync(\n {\n supportEditing: false\n },\n (credentialsCache: CredentialCache) => {\n cacheEntry = credentialsCache.tryGetCacheEntry(this._credentialCacheId);\n }\n );\n\n if (cacheEntry) {\n const expirationTime: number | undefined = cacheEntry.expires?.getTime();\n if (!expirationTime || expirationTime >= Date.now()) {\n return cacheEntry.credential;\n }\n }\n }\n\n private _getFailureType(requestMethod: string, response: Response, isRedirect: boolean): FailureType {\n if (response.ok) {\n return FailureType.None;\n }\n\n switch (response.status) {\n case 503: {\n // We select 503 specifically because this represents \"service unavailable\" and\n // \"rate limit throttle\" errors, which are transient issues.\n //\n // There are other 5xx errors, such as 501, that can occur if the request is\n // malformed, so as a general rule we want to let through other 5xx errors\n // so the user can troubleshoot.\n\n // Don't fail production builds with warnings for transient issues\n return FailureType.Informational;\n }\n\n case 401:\n case 403:\n case 407: {\n if (requestMethod === 'GET' && (isRedirect || response.redirected)) {\n // Cache misses for GET requests are not errors\n // This is a workaround behavior where a server can issue a redirect and we fail to authenticate at the new location.\n // We do not want to signal this as an authentication failure because the authorization header is not passed on to redirects.\n // i.e The authentication header was accepted for the first request and therefore subsequent failures\n // where it was not present should not be attributed to the header.\n // This scenario usually comes up with services that redirect to pre-signed URLS that don't actually exist.\n // Those services then usually treat the 404 as a 403 to prevent leaking information.\n return FailureType.None;\n }\n\n return FailureType.Authentication;\n }\n\n case 404: {\n if (requestMethod === 'GET') {\n // Cache misses for GET requests are not errors\n return FailureType.None;\n }\n }\n }\n\n // Let dev builds succeed, let Prod builds fail\n return FailureType.Warning;\n }\n\n private _reportFailure(\n terminal: ITerminal,\n requestMethod: string,\n response: Response,\n isRedirect: boolean,\n message: string\n ): void {\n switch (this._getFailureType(requestMethod, response, isRedirect)) {\n default: {\n terminal.writeErrorLine(`${message}: HTTP ${response.status}: ${response.statusText}`);\n break;\n }\n\n case FailureType.Warning: {\n terminal.writeWarningLine(`${message}: HTTP ${response.status}: ${response.statusText}`);\n break;\n }\n\n case FailureType.Informational: {\n terminal.writeLine(`${message}: HTTP ${response.status}: ${response.statusText}`);\n break;\n }\n\n case FailureType.None: {\n terminal.writeDebugLine(`${message}: HTTP ${response.status}: ${response.statusText}`);\n break;\n }\n\n case FailureType.Authentication: {\n throw new Error(\n [\n `${this._url.href} responded with ${response.status}: ${response.statusText}.`,\n `Credentials may be misconfigured or have expired.`,\n `In CI, verify that RUSH_BUILD_CACHE_CREDENTIAL contains a valid Authorization header value.`,\n ``,\n `For local developers, run:`,\n ``,\n ` rush update-cloud-credentials --interactive`,\n ``\n ].join('\\n')\n );\n }\n }\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rushstack/rush-http-build-cache-plugin",
|
|
3
|
-
"version": "5.124.
|
|
3
|
+
"version": "5.124.6",
|
|
4
4
|
"description": "Rush plugin for generic HTTP cloud build cache",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -14,14 +14,14 @@
|
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"https-proxy-agent": "~5.0.0",
|
|
16
16
|
"node-fetch": "2.6.7",
|
|
17
|
-
"@rushstack/
|
|
18
|
-
"@rushstack/
|
|
17
|
+
"@rushstack/rush-sdk": "5.124.6",
|
|
18
|
+
"@rushstack/node-core-library": "4.3.0"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"@types/node-fetch": "2.6.2",
|
|
22
|
-
"@rushstack/
|
|
23
|
-
"@
|
|
24
|
-
"@
|
|
22
|
+
"@rushstack/heft": "0.66.8",
|
|
23
|
+
"@microsoft/rush-lib": "5.124.6",
|
|
24
|
+
"@rushstack/terminal": "0.11.0",
|
|
25
25
|
"local-node-rig": "1.0.0"
|
|
26
26
|
},
|
|
27
27
|
"scripts": {
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
Caching build output folders: lib, temp
|
|
2
2
|
Successfully set cache entry.
|
|
3
|
-
Cache key: rushstack+rush-http-build-cache-plugin-_phase_build-
|
|
3
|
+
Cache key: rushstack+rush-http-build-cache-plugin-_phase_build-3d708c46ebdde5941cd2158c799eba1057ea57bc
|
|
@@ -3,5 +3,5 @@ Invoking: heft run --only build -- --clean --production
|
|
|
3
3
|
[build:typescript] Using TypeScript version 5.4.2
|
|
4
4
|
[build:lint] Using ESLint version 8.57.0
|
|
5
5
|
[build:typescript] Copied 1 folder or file and linked 0 files
|
|
6
|
-
---- build finished (
|
|
7
|
-
-------------------- Finished (
|
|
6
|
+
---- build finished (8.916s) ----
|
|
7
|
+
-------------------- Finished (8.922s) --------------------
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
Caching build output folders: coverage
|
|
2
2
|
Successfully set cache entry.
|
|
3
|
-
Cache key: rushstack+rush-http-build-cache-plugin-_phase_test-
|
|
3
|
+
Cache key: rushstack+rush-http-build-cache-plugin-_phase_test-febc74458cdca8cd24fe8aac9e8da5b34a862270
|
|
@@ -5,11 +5,11 @@ The provided list of phases does not contain all phase dependencies. You may nee
|
|
|
5
5
|
[test:jest]
|
|
6
6
|
[test:jest] Run start. 1 test suite
|
|
7
7
|
[test:jest] START lib/test/HttpBuildCacheProvider.test.js
|
|
8
|
-
[test:jest] PASS lib/test/HttpBuildCacheProvider.test.js (duration:
|
|
8
|
+
[test:jest] PASS lib/test/HttpBuildCacheProvider.test.js (duration: 2.561s, 2 passed, 0 failed)
|
|
9
9
|
[test:jest]
|
|
10
10
|
[test:jest] Tests finished:
|
|
11
11
|
[test:jest] Successes: 2
|
|
12
12
|
[test:jest] Failures: 0
|
|
13
13
|
[test:jest] Total: 2
|
|
14
|
-
---- test finished (
|
|
15
|
-
-------------------- Finished (
|
|
14
|
+
---- test finished (4.828s) ----
|
|
15
|
+
-------------------- Finished (4.841s) --------------------
|
|
@@ -86,7 +86,7 @@ export class HttpBuildCacheProvider implements ICloudBuildCacheProvider {
|
|
|
86
86
|
cacheId: string
|
|
87
87
|
): Promise<Buffer | undefined> {
|
|
88
88
|
try {
|
|
89
|
-
const result: boolean | Buffer = await this.
|
|
89
|
+
const result: boolean | Buffer = await this._makeHttpRequestAsync({
|
|
90
90
|
terminal: terminal,
|
|
91
91
|
relUrl: `${this._cacheKeyPrefix}${cacheId}`,
|
|
92
92
|
method: 'GET',
|
|
@@ -116,7 +116,7 @@ export class HttpBuildCacheProvider implements ICloudBuildCacheProvider {
|
|
|
116
116
|
terminal.writeDebugLine('Uploading object with cacheId: ', cacheId);
|
|
117
117
|
|
|
118
118
|
try {
|
|
119
|
-
const result: boolean | Buffer = await this.
|
|
119
|
+
const result: boolean | Buffer = await this._makeHttpRequestAsync({
|
|
120
120
|
terminal: terminal,
|
|
121
121
|
relUrl: `${this._cacheKeyPrefix}${cacheId}`,
|
|
122
122
|
method: this._uploadMethod,
|
|
@@ -207,7 +207,7 @@ export class HttpBuildCacheProvider implements ICloudBuildCacheProvider {
|
|
|
207
207
|
return this.__credentialCacheId;
|
|
208
208
|
}
|
|
209
209
|
|
|
210
|
-
private async
|
|
210
|
+
private async _makeHttpRequestAsync(options: {
|
|
211
211
|
terminal: ITerminal;
|
|
212
212
|
relUrl: string;
|
|
213
213
|
method: string;
|
|
@@ -219,7 +219,7 @@ export class HttpBuildCacheProvider implements ICloudBuildCacheProvider {
|
|
|
219
219
|
}): Promise<Buffer | boolean> {
|
|
220
220
|
const { terminal, relUrl, method, body, warningText, readBody, credentialOptions } = options;
|
|
221
221
|
const safeCredentialOptions: CredentialsOptions = credentialOptions ?? CredentialsOptions.Optional;
|
|
222
|
-
const credentials: string | undefined = await this.
|
|
222
|
+
const credentials: string | undefined = await this._tryGetCredentialsAsync(safeCredentialOptions);
|
|
223
223
|
const url: string = new URL(relUrl, this._url).href;
|
|
224
224
|
|
|
225
225
|
const headers: Record<string, string> = {};
|
|
@@ -257,7 +257,10 @@ export class HttpBuildCacheProvider implements ICloudBuildCacheProvider {
|
|
|
257
257
|
// required. Re-attempt the request, requiring credentials this time.
|
|
258
258
|
//
|
|
259
259
|
// This counts as part of the "first attempt", so it is not included in the max attempts
|
|
260
|
-
return await this.
|
|
260
|
+
return await this._makeHttpRequestAsync({
|
|
261
|
+
...options,
|
|
262
|
+
credentialOptions: CredentialsOptions.Required
|
|
263
|
+
});
|
|
261
264
|
}
|
|
262
265
|
|
|
263
266
|
if (options.maxAttempts > 1) {
|
|
@@ -267,9 +270,9 @@ export class HttpBuildCacheProvider implements ICloudBuildCacheProvider {
|
|
|
267
270
|
const factor: number = 1.0 + Math.random(); // A random number between 1.0 and 2.0
|
|
268
271
|
const retryDelay: number = Math.floor(factor * this._minHttpRetryDelayMs);
|
|
269
272
|
|
|
270
|
-
await Async.
|
|
273
|
+
await Async.sleepAsync(retryDelay);
|
|
271
274
|
|
|
272
|
-
return await this.
|
|
275
|
+
return await this._makeHttpRequestAsync({ ...options, maxAttempts: options.maxAttempts - 1 });
|
|
273
276
|
}
|
|
274
277
|
|
|
275
278
|
this._reportFailure(terminal, method, response, false, warningText);
|
|
@@ -287,11 +290,11 @@ export class HttpBuildCacheProvider implements ICloudBuildCacheProvider {
|
|
|
287
290
|
return result;
|
|
288
291
|
}
|
|
289
292
|
|
|
290
|
-
private async
|
|
291
|
-
private async
|
|
292
|
-
private async
|
|
293
|
-
private async
|
|
294
|
-
private async
|
|
293
|
+
private async _tryGetCredentialsAsync(options: CredentialsOptions.Required): Promise<string>;
|
|
294
|
+
private async _tryGetCredentialsAsync(options: CredentialsOptions.Optional): Promise<string | undefined>;
|
|
295
|
+
private async _tryGetCredentialsAsync(options: CredentialsOptions.Omit): Promise<undefined>;
|
|
296
|
+
private async _tryGetCredentialsAsync(options: CredentialsOptions): Promise<string | undefined>;
|
|
297
|
+
private async _tryGetCredentialsAsync(options: CredentialsOptions): Promise<string | undefined> {
|
|
295
298
|
if (options === CredentialsOptions.Omit) {
|
|
296
299
|
return;
|
|
297
300
|
}
|
|
@@ -299,7 +302,7 @@ export class HttpBuildCacheProvider implements ICloudBuildCacheProvider {
|
|
|
299
302
|
let credentials: string | undefined = this._environmentCredential;
|
|
300
303
|
|
|
301
304
|
if (credentials === undefined) {
|
|
302
|
-
credentials = await this.
|
|
305
|
+
credentials = await this._tryGetCredentialsFromCacheAsync();
|
|
303
306
|
}
|
|
304
307
|
|
|
305
308
|
if (typeof credentials !== 'string' && options === CredentialsOptions.Required) {
|
|
@@ -319,7 +322,7 @@ export class HttpBuildCacheProvider implements ICloudBuildCacheProvider {
|
|
|
319
322
|
return credentials;
|
|
320
323
|
}
|
|
321
324
|
|
|
322
|
-
private async
|
|
325
|
+
private async _tryGetCredentialsFromCacheAsync(): Promise<string | undefined> {
|
|
323
326
|
let cacheEntry: ICredentialCacheEntry | undefined;
|
|
324
327
|
|
|
325
328
|
await CredentialCache.usingAsync(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"program":{"fileNames":["../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es5.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2015.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2016.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2017.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2018.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2019.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2020.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.decorators.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/assert.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/assert/strict.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/globals.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/async_hooks.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/buffer.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/child_process.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/cluster.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/console.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/constants.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/crypto.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/dgram.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/diagnostics_channel.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/dns.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/dns/promises.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/domain.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/dom-events.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/events.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/fs.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/fs/promises.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/http.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/http2.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/https.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/inspector.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/module.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/net.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/os.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/path.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/perf_hooks.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/process.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/punycode.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/querystring.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/readline.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/readline/promises.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/repl.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/stream.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/stream/promises.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/stream/consumers.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/stream/web.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/string_decoder.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/test.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/timers.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/timers/promises.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/tls.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/trace_events.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/tty.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/url.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/util.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/v8.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/vm.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/wasi.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/worker_threads.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/zlib.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/globals.global.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/index.d.ts","../../../../../libraries/node-core-library/dist/node-core-library.d.ts","../../../../../libraries/terminal/dist/terminal.d.ts","../../../../../common/temp/default/node_modules/.pnpm/tapable@2.2.1/node_modules/tapable/tapable.d.ts","../../../../../libraries/stream-collator/dist/stream-collator.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+argparse@1.0.38/node_modules/@types/argparse/index.d.ts","../../../../../libraries/ts-command-line/dist/ts-command-line.d.ts","../../../../../libraries/rush-sdk/dist/rush-lib.d.ts","../../../../../common/temp/default/node_modules/.pnpm/form-data@3.0.1/node_modules/form-data/index.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node-fetch@2.6.2/node_modules/@types/node-fetch/externals.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node-fetch@2.6.2/node_modules/@types/node-fetch/index.d.ts","../../../src/HttpBuildCacheProvider.ts","../../../src/RushHttpBuildCachePlugin.ts","../../../src/index.ts","../../../src/test/HttpBuildCacheProvider.test.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+heft-jest@1.0.1/node_modules/@types/heft-jest/mocked.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@jest+expect-utils@29.7.0/node_modules/@jest/expect-utils/build/index.d.ts","../../../../../common/temp/default/node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/index.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@sinclair+typebox@0.27.8/node_modules/@sinclair/typebox/typebox.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@jest+schemas@29.6.3/node_modules/@jest/schemas/build/index.d.ts","../../../../../common/temp/default/node_modules/.pnpm/pretty-format@29.7.0/node_modules/pretty-format/build/index.d.ts","../../../../../common/temp/default/node_modules/.pnpm/jest-diff@29.7.0/node_modules/jest-diff/build/index.d.ts","../../../../../common/temp/default/node_modules/.pnpm/jest-matcher-utils@29.7.0/node_modules/jest-matcher-utils/build/index.d.ts","../../../../../common/temp/default/node_modules/.pnpm/expect@29.7.0/node_modules/expect/build/index.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+jest@29.2.5/node_modules/@types/jest/index.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+heft-jest@1.0.1/node_modules/@types/heft-jest/index.d.ts"],"fileInfos":[{"version":"824cb491a40f7e8fdeb56f1df5edf91b23f3e3ee6b4cde84d4a99be32338faee","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4",{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"b20fe0eca9a4e405f1a5ae24a2b3290b37cf7f21eba6cbe4fc3fab979237d4f3","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"8073890e29d2f46fdbc19b8d6d2eb9ea58db9a2052f8640af20baff9afbc8640","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"ba8691cf6bea9d53e6bf6cbc22af964a9633a21793981a1be3dce65e7a714d8b","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"bce910d9164785c9f0d4dcea4be359f5f92130c7c7833dea6138ab1db310a1f9","affectsGlobalScope":true},"afddd0617cc7ef650f743c75b868df9d53f17f9ff0cccc255fb5f632e857be38",{"version":"7c387a02bf156d8d45667134d32518ac3ca1b99ca50ca9deff2c1a03eb6d1a81","affectsGlobalScope":true},"3719525a8f6ab731e3dfd585d9f87df55ec7d50d461df84f74eb4d68bb165244","f993522fd7d01ae1ead930091fe35130b8415720d6c2123dc2a7e8eb11bb3cba",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","b787b5b54349a24f07d089b612a9fb8ff024dbbe991ff52ea2b188a6b1230644","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","1cdcfc1f624d6c08aa12c73935f6e13f095919cd99edf95752951796eb225729","df6d4b6ba1e64f682091862faa30104e93891f9e7202d006bf5e7a88ab4a0dbe","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"c2fcbd6fad600e96fee8c5df1a62e908d477f5b47a9374b2bab7e74f52cfcc92","affectsGlobalScope":true},"dc15cb97f565e378faebd4e92699a56c28d2065f4535045f6c5550261fb83f3a","cc68e79b99f80e4dfd01967ec96be69efb0ff5bd7f779d9a2cc09dfe590ffd28","91d3d8f536f22dcaeeace0fc6f3544d3562e266a27cf3a2fe280b8051af5d006","9503113febdd737095465792cc074d541902c82c0aea3922f940de18784812ad","8d3c583a07e0c37e876908c2d5da575019f689df8d9fa4c081d99119d53dba22","7e5307e29dfd5d5b827203b85cb665d8d5bf932a6c6f393457da8e9ed1906761",{"version":"987b3a9098738f5f40efe9fee5734b55f4c8ac599a045922b1470bb325183ed6","affectsGlobalScope":true},"bcebb922784739bdb34c18ee51095d25a92b560c78ccd2eaacd6bd00f7443d83","7ee6ed878c4528215c82b664fe0cfe80e8b4da6c0d4cc80869367868774db8b1","b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30",{"version":"69e93290f59948789d5fce61cb0b89dde93747a4576744d0d6fae41ee3991646","affectsGlobalScope":true},{"version":"8d319604ab444d77b25dc531ace1811795c676834e564497e4b90ba1b77aafd5","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","b7998044b77ef376a39c07f038f317d875b3f51b5f8f733384d85ecd083182e7","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda",{"version":"a4a2a5596dd7e531ab0ce785ed1c8f6940e0632e5bcaa7e8c144bd0e41029297","affectsGlobalScope":true},{"version":"3c4ba1dd9b12ffa284b565063108f2f031d150ea15b8fafbdc17f5d2a07251f3","affectsGlobalScope":true},"e10177274a35a9d07c825615340b2fcde2f610f53f3fb40269fd196b4288dda6","1422cd9e705adcc09088fda85a900c2b70e3ad36ea85846f68bd1a884cdf4e2b","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"22d7b95cb63dead43834ae20ee492c9c8b6d90db3957d21665199f0efb1d3e26","affectsGlobalScope":true},{"version":"a9fc1469744055a3435f203123246b96c094e7ff8c4e1c3863829d9b705b7a34","affectsGlobalScope":true},"868831cab82b65dfe1d68180e898af1f2101e89ba9b754d1db6fb8cc2fac1921","5d842e3acce41c978af367a28163cef799170dadd06edf2111cc9ecab6eae968","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa",{"version":"52120bb7e4583612225bdf08e7c12559548170f11e660d33a33623bae9bbdbba","affectsGlobalScope":true},"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"d5be4343a9ace4611f04a6fffd91ceba91265fa15bfb0149306e0a6963e1a015","318d1ee306f0c6b543ce084ce318fc20cb1f3510986d5efb0bfd5f61fdcba353","ac7a2601238d55ad084b689dcd954f1c461e44c29e6423ebe8de954445666582","cd74c8275483d3fe0d07a9b4bba28845a8a611f0aa399e961dbd40e5d46dd9ad","51deb9261c4607f2eaaf15144bf5fe42f74c8d250c62806e30f957cbd09ddff6","dc3b172ee27054dbcedcf5007b78c256021db936f6313a9ce9a3ecbb503fd646","e1e0e2e29b98a923bf3693b560d989220613cd1b437f992f0a3b2800b85b3948","9ccc39f935d88b1c59fe98a689eeba876a661352e354709a78341c0d03d2a896","736097ddbb2903bef918bb3b5811ef1c9c5656f2a73bd39b22a91b9cc2525e50","3898e3dbe94b6fe529fbe8f0faee1309c1923100516d7a014b301955e52ece77","3663d1b50f356656a314e5df169bb51cb9d5fd75905fa703f75db6bb32030568",{"version":"af90097ec27d1471f818d8edcfdb5b1b143afe98ae5c07451dfae19579b75df1","signature":"119a490987beef64dbc6a752e5b8fcb7e17cdf98c573e9b6442cd5b63b27675b"},{"version":"f52b95eaf3a70b085fa07bcb257228b9d4612961bc78912cb158465e822732e7","signature":"f7ecb4bbbcbe53b6380a97a31ef07cfbd82dcfaa735047e31c217751d466df6b"},{"version":"033cb58bd671c0c95c9d0e6e6b9c3f05a07e32bba8a4a37c2a25f8aa4e56565a","signature":"e373fb948af094808ac33333ff6445614b4114a7ad3e250330ac683d99295adc"},{"version":"5773bd9bf7d74dbcc6bd036e10a3feee3f8cf6f3841535141b05d3cc91e7b44a","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"ef948381fb93e21b69bb6581851b1c1c15c9a9d59752fc3b30d223cb16539534","affectsGlobalScope":true},"cdcc132f207d097d7d3aa75615ab9a2e71d6a478162dde8b67f88ea19f3e54de","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","c085e9aa62d1ae1375794c1fb927a445fa105fed891a7e24edbb1c3300f7384a","f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","3e70a7e67c2cb16f8cd49097360c0309fe9d1e3210ff9222e9dac1f8df9d4fb6","ab68d2a3e3e8767c3fba8f80de099a1cfc18c0de79e42cb02ae66e22dfe14a66","d96cc6598148bf1a98fb2e8dcf01c63a4b3558bdaec6ef35e087fd0562eb40ec",{"version":"9aec3838773b6daece49517d7c04777c538ae9e9881ffb4e6d9aa8fc0c775a61","affectsGlobalScope":true},{"version":"7d94851f2e2797a812fdaaae6ba87e91e894be0198b107e544fb5a992eaa6b00","affectsGlobalScope":true}],"root":[[110,113]],"options":{"allowUnreachableCode":false,"declaration":true,"declarationMap":true,"esModuleInterop":true,"experimentalDecorators":true,"inlineSources":true,"jsx":2,"module":1,"noEmitOnError":false,"outDir":"../../../lib","rootDir":"../../../src","sourceMap":true,"strict":true,"target":4,"tsBuildInfoFile":"./ts_l9Fw4VUO.json","useUnknownInCatchVariables":false},"fileIdsList":[[92],[92,117],[92,114,123],[92,119,122],[65,91,92,99,107,108],[46,92],[49,92],[50,55,83,92],[51,62,63,70,80,91,92],[51,52,62,70,92],[53,92],[54,55,63,71,92],[55,80,88,92],[56,58,62,70,92],[57,92],[58,59,92],[62,92],[60,62,92],[62,63,64,80,91,92],[62,63,64,77,80,83,92],[92,96],[58,62,65,70,80,91,92],[62,63,65,66,70,80,88,91,92],[65,67,80,88,91,92],[46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98],[62,68,92],[69,91,92,96],[58,62,70,80,92],[71,92],[72,92],[49,73,92],[74,90,92,96],[75,92],[76,92],[62,77,78,92],[77,79,92,94],[50,62,80,81,82,83,92],[50,80,82,92],[80,81,92],[83,92],[84,92],[49,80,92],[62,86,87,92],[86,87,92],[55,70,80,88,92],[89,92],[70,90,92],[50,65,76,91,92],[55,92],[80,92,93],[69,92,94],[92,95],[50,55,62,64,73,80,91,92,94,96],[80,92,97],[92,115,121],[65,80,92,99],[92,119],[92,116,120],[92,118],[51,63,92,99],[92,99,100,101,102,103,105],[92,101],[80,92,99,100],[92,104],[51,92,100,101,106,109],[92,106,110],[92,110,111],[92,101,106,109,110],[101,106],[106],[110,111]],"referencedMap":[[115,1],[118,2],[117,1],[104,1],[124,3],[114,1],[123,4],[108,1],[109,5],[46,6],[47,6],[49,7],[50,8],[51,9],[52,10],[53,11],[54,12],[55,13],[56,14],[57,15],[58,16],[59,16],[61,17],[60,18],[62,17],[63,19],[64,20],[48,21],[98,1],[65,22],[66,23],[67,24],[99,25],[68,26],[69,27],[70,28],[71,29],[72,30],[73,31],[74,32],[75,33],[76,34],[77,35],[78,35],[79,36],[80,37],[82,38],[81,39],[83,40],[84,41],[85,42],[86,43],[87,44],[88,45],[89,46],[90,47],[91,48],[92,49],[93,50],[94,51],[95,52],[96,53],[97,54],[116,1],[122,55],[107,56],[120,57],[121,58],[119,59],[102,1],[44,1],[45,1],[9,1],[8,1],[2,1],[10,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[3,1],[18,1],[4,1],[19,1],[23,1],[20,1],[21,1],[22,1],[24,1],[25,1],[26,1],[5,1],[27,1],[28,1],[29,1],[30,1],[6,1],[34,1],[31,1],[32,1],[33,1],[35,1],[7,1],[36,1],[41,1],[42,1],[37,1],[38,1],[39,1],[40,1],[1,1],[43,1],[100,60],[106,61],[103,62],[101,63],[105,64],[110,65],[111,66],[112,67],[113,68]],"exportedModulesMap":[[115,1],[118,2],[117,1],[104,1],[124,3],[114,1],[123,4],[108,1],[109,5],[46,6],[47,6],[49,7],[50,8],[51,9],[52,10],[53,11],[54,12],[55,13],[56,14],[57,15],[58,16],[59,16],[61,17],[60,18],[62,17],[63,19],[64,20],[48,21],[98,1],[65,22],[66,23],[67,24],[99,25],[68,26],[69,27],[70,28],[71,29],[72,30],[73,31],[74,32],[75,33],[76,34],[77,35],[78,35],[79,36],[80,37],[82,38],[81,39],[83,40],[84,41],[85,42],[86,43],[87,44],[88,45],[89,46],[90,47],[91,48],[92,49],[93,50],[94,51],[95,52],[96,53],[97,54],[116,1],[122,55],[107,56],[120,57],[121,58],[119,59],[102,1],[44,1],[45,1],[9,1],[8,1],[2,1],[10,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[3,1],[18,1],[4,1],[19,1],[23,1],[20,1],[21,1],[22,1],[24,1],[25,1],[26,1],[5,1],[27,1],[28,1],[29,1],[30,1],[6,1],[34,1],[31,1],[32,1],[33,1],[35,1],[7,1],[36,1],[41,1],[42,1],[37,1],[38,1],[39,1],[40,1],[1,1],[43,1],[100,60],[106,61],[103,62],[101,63],[105,64],[110,69],[111,70],[112,71]],"semanticDiagnosticsPerFile":[115,118,117,104,124,114,123,108,109,46,47,49,50,51,52,53,54,55,56,57,58,59,61,60,62,63,64,48,98,65,66,67,99,68,69,70,71,72,73,74,75,76,77,78,79,80,82,81,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,116,122,107,120,121,119,102,44,45,9,8,2,10,11,12,13,14,15,16,17,3,18,4,19,23,20,21,22,24,25,26,5,27,28,29,30,6,34,31,32,33,35,7,36,41,42,37,38,39,40,1,43,100,106,103,101,105,110,111,112,113]},"version":"5.4.2"}
|
|
1
|
+
{"program":{"fileNames":["../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es5.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2015.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2016.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2017.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2018.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2019.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2020.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.decorators.d.ts","../../../../../common/temp/default/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/assert.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/assert/strict.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/globals.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/async_hooks.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/buffer.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/child_process.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/cluster.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/console.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/constants.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/crypto.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/dgram.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/diagnostics_channel.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/dns.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/dns/promises.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/domain.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/dom-events.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/events.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/fs.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/fs/promises.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/http.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/http2.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/https.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/inspector.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/module.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/net.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/os.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/path.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/perf_hooks.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/process.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/punycode.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/querystring.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/readline.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/readline/promises.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/repl.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/stream.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/stream/promises.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/stream/consumers.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/stream/web.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/string_decoder.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/test.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/timers.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/timers/promises.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/tls.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/trace_events.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/tty.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/url.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/util.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/v8.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/vm.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/wasi.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/worker_threads.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/zlib.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/globals.global.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node@18.17.15/node_modules/@types/node/index.d.ts","../../../../../libraries/node-core-library/dist/node-core-library.d.ts","../../../../../libraries/terminal/dist/terminal.d.ts","../../../../../common/temp/default/node_modules/.pnpm/tapable@2.2.1/node_modules/tapable/tapable.d.ts","../../../../../libraries/stream-collator/dist/stream-collator.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+argparse@1.0.38/node_modules/@types/argparse/index.d.ts","../../../../../libraries/ts-command-line/dist/ts-command-line.d.ts","../../../../../libraries/rush-sdk/dist/rush-lib.d.ts","../../../../../common/temp/default/node_modules/.pnpm/form-data@3.0.1/node_modules/form-data/index.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node-fetch@2.6.2/node_modules/@types/node-fetch/externals.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+node-fetch@2.6.2/node_modules/@types/node-fetch/index.d.ts","../../../src/HttpBuildCacheProvider.ts","../../../src/RushHttpBuildCachePlugin.ts","../../../src/index.ts","../../../src/test/HttpBuildCacheProvider.test.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+heft-jest@1.0.1/node_modules/@types/heft-jest/mocked.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@jest+expect-utils@29.7.0/node_modules/@jest/expect-utils/build/index.d.ts","../../../../../common/temp/default/node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/index.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@sinclair+typebox@0.27.8/node_modules/@sinclair/typebox/typebox.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@jest+schemas@29.6.3/node_modules/@jest/schemas/build/index.d.ts","../../../../../common/temp/default/node_modules/.pnpm/pretty-format@29.7.0/node_modules/pretty-format/build/index.d.ts","../../../../../common/temp/default/node_modules/.pnpm/jest-diff@29.7.0/node_modules/jest-diff/build/index.d.ts","../../../../../common/temp/default/node_modules/.pnpm/jest-matcher-utils@29.7.0/node_modules/jest-matcher-utils/build/index.d.ts","../../../../../common/temp/default/node_modules/.pnpm/expect@29.7.0/node_modules/expect/build/index.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+jest@29.2.5/node_modules/@types/jest/index.d.ts","../../../../../common/temp/default/node_modules/.pnpm/@types+heft-jest@1.0.1/node_modules/@types/heft-jest/index.d.ts"],"fileInfos":[{"version":"824cb491a40f7e8fdeb56f1df5edf91b23f3e3ee6b4cde84d4a99be32338faee","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4",{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"b20fe0eca9a4e405f1a5ae24a2b3290b37cf7f21eba6cbe4fc3fab979237d4f3","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"8073890e29d2f46fdbc19b8d6d2eb9ea58db9a2052f8640af20baff9afbc8640","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"ba8691cf6bea9d53e6bf6cbc22af964a9633a21793981a1be3dce65e7a714d8b","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"bce910d9164785c9f0d4dcea4be359f5f92130c7c7833dea6138ab1db310a1f9","affectsGlobalScope":true},"afddd0617cc7ef650f743c75b868df9d53f17f9ff0cccc255fb5f632e857be38",{"version":"7c387a02bf156d8d45667134d32518ac3ca1b99ca50ca9deff2c1a03eb6d1a81","affectsGlobalScope":true},"3719525a8f6ab731e3dfd585d9f87df55ec7d50d461df84f74eb4d68bb165244","f993522fd7d01ae1ead930091fe35130b8415720d6c2123dc2a7e8eb11bb3cba",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","b787b5b54349a24f07d089b612a9fb8ff024dbbe991ff52ea2b188a6b1230644","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","1cdcfc1f624d6c08aa12c73935f6e13f095919cd99edf95752951796eb225729","df6d4b6ba1e64f682091862faa30104e93891f9e7202d006bf5e7a88ab4a0dbe","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"c2fcbd6fad600e96fee8c5df1a62e908d477f5b47a9374b2bab7e74f52cfcc92","affectsGlobalScope":true},"dc15cb97f565e378faebd4e92699a56c28d2065f4535045f6c5550261fb83f3a","cc68e79b99f80e4dfd01967ec96be69efb0ff5bd7f779d9a2cc09dfe590ffd28","91d3d8f536f22dcaeeace0fc6f3544d3562e266a27cf3a2fe280b8051af5d006","9503113febdd737095465792cc074d541902c82c0aea3922f940de18784812ad","8d3c583a07e0c37e876908c2d5da575019f689df8d9fa4c081d99119d53dba22","7e5307e29dfd5d5b827203b85cb665d8d5bf932a6c6f393457da8e9ed1906761",{"version":"987b3a9098738f5f40efe9fee5734b55f4c8ac599a045922b1470bb325183ed6","affectsGlobalScope":true},"bcebb922784739bdb34c18ee51095d25a92b560c78ccd2eaacd6bd00f7443d83","7ee6ed878c4528215c82b664fe0cfe80e8b4da6c0d4cc80869367868774db8b1","b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30",{"version":"69e93290f59948789d5fce61cb0b89dde93747a4576744d0d6fae41ee3991646","affectsGlobalScope":true},{"version":"8d319604ab444d77b25dc531ace1811795c676834e564497e4b90ba1b77aafd5","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","b7998044b77ef376a39c07f038f317d875b3f51b5f8f733384d85ecd083182e7","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda",{"version":"a4a2a5596dd7e531ab0ce785ed1c8f6940e0632e5bcaa7e8c144bd0e41029297","affectsGlobalScope":true},{"version":"3c4ba1dd9b12ffa284b565063108f2f031d150ea15b8fafbdc17f5d2a07251f3","affectsGlobalScope":true},"e10177274a35a9d07c825615340b2fcde2f610f53f3fb40269fd196b4288dda6","1422cd9e705adcc09088fda85a900c2b70e3ad36ea85846f68bd1a884cdf4e2b","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"22d7b95cb63dead43834ae20ee492c9c8b6d90db3957d21665199f0efb1d3e26","affectsGlobalScope":true},{"version":"a9fc1469744055a3435f203123246b96c094e7ff8c4e1c3863829d9b705b7a34","affectsGlobalScope":true},"868831cab82b65dfe1d68180e898af1f2101e89ba9b754d1db6fb8cc2fac1921","5d842e3acce41c978af367a28163cef799170dadd06edf2111cc9ecab6eae968","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa",{"version":"52120bb7e4583612225bdf08e7c12559548170f11e660d33a33623bae9bbdbba","affectsGlobalScope":true},"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"d5be4343a9ace4611f04a6fffd91ceba91265fa15bfb0149306e0a6963e1a015","6cba2b2e7653cd3d7931f37062bdee34a791fdbc9d7b806754ce37d02ba5d614","ec6c9b88d41bbc793dbfd1910b9bf2c2d47ae390b56d310fc05466d419508d1c","cd74c8275483d3fe0d07a9b4bba28845a8a611f0aa399e961dbd40e5d46dd9ad","51deb9261c4607f2eaaf15144bf5fe42f74c8d250c62806e30f957cbd09ddff6","dc3b172ee27054dbcedcf5007b78c256021db936f6313a9ce9a3ecbb503fd646","6eafdea0269782008f431154714b966774fe9b9d81583facc6d921e70b145106","9ccc39f935d88b1c59fe98a689eeba876a661352e354709a78341c0d03d2a896","736097ddbb2903bef918bb3b5811ef1c9c5656f2a73bd39b22a91b9cc2525e50","3898e3dbe94b6fe529fbe8f0faee1309c1923100516d7a014b301955e52ece77","3663d1b50f356656a314e5df169bb51cb9d5fd75905fa703f75db6bb32030568",{"version":"cec090f526ca1c84900366ee85515de34171a5b3a646b83237ef0f7b7a2b135b","signature":"0ccb1a3f42371c8cb2b8daa90def17ac924c4abebd5dcdf09f80c3000b27eedd"},{"version":"f52b95eaf3a70b085fa07bcb257228b9d4612961bc78912cb158465e822732e7","signature":"f7ecb4bbbcbe53b6380a97a31ef07cfbd82dcfaa735047e31c217751d466df6b"},{"version":"033cb58bd671c0c95c9d0e6e6b9c3f05a07e32bba8a4a37c2a25f8aa4e56565a","signature":"e373fb948af094808ac33333ff6445614b4114a7ad3e250330ac683d99295adc"},{"version":"5773bd9bf7d74dbcc6bd036e10a3feee3f8cf6f3841535141b05d3cc91e7b44a","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"ef948381fb93e21b69bb6581851b1c1c15c9a9d59752fc3b30d223cb16539534","affectsGlobalScope":true},"cdcc132f207d097d7d3aa75615ab9a2e71d6a478162dde8b67f88ea19f3e54de","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","c085e9aa62d1ae1375794c1fb927a445fa105fed891a7e24edbb1c3300f7384a","f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","3e70a7e67c2cb16f8cd49097360c0309fe9d1e3210ff9222e9dac1f8df9d4fb6","ab68d2a3e3e8767c3fba8f80de099a1cfc18c0de79e42cb02ae66e22dfe14a66","d96cc6598148bf1a98fb2e8dcf01c63a4b3558bdaec6ef35e087fd0562eb40ec",{"version":"9aec3838773b6daece49517d7c04777c538ae9e9881ffb4e6d9aa8fc0c775a61","affectsGlobalScope":true},{"version":"7d94851f2e2797a812fdaaae6ba87e91e894be0198b107e544fb5a992eaa6b00","affectsGlobalScope":true}],"root":[[110,113]],"options":{"allowUnreachableCode":false,"declaration":true,"declarationMap":true,"esModuleInterop":true,"experimentalDecorators":true,"inlineSources":true,"jsx":2,"module":1,"noEmitOnError":false,"outDir":"../../../lib","rootDir":"../../../src","sourceMap":true,"strict":true,"target":4,"tsBuildInfoFile":"./ts_l9Fw4VUO.json","useUnknownInCatchVariables":false},"fileIdsList":[[92],[92,117],[92,114,123],[92,119,122],[65,91,92,99,107,108],[46,92],[49,92],[50,55,83,92],[51,62,63,70,80,91,92],[51,52,62,70,92],[53,92],[54,55,63,71,92],[55,80,88,92],[56,58,62,70,92],[57,92],[58,59,92],[62,92],[60,62,92],[62,63,64,80,91,92],[62,63,64,77,80,83,92],[92,96],[58,62,65,70,80,91,92],[62,63,65,66,70,80,88,91,92],[65,67,80,88,91,92],[46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98],[62,68,92],[69,91,92,96],[58,62,70,80,92],[71,92],[72,92],[49,73,92],[74,90,92,96],[75,92],[76,92],[62,77,78,92],[77,79,92,94],[50,62,80,81,82,83,92],[50,80,82,92],[80,81,92],[83,92],[84,92],[49,80,92],[62,86,87,92],[86,87,92],[55,70,80,88,92],[89,92],[70,90,92],[50,65,76,91,92],[55,92],[80,92,93],[69,92,94],[92,95],[50,55,62,64,73,80,91,92,94,96],[80,92,97],[92,115,121],[65,80,92,99],[92,119],[92,116,120],[92,118],[51,63,92,99],[92,99,100,101,102,103,105],[92,101],[80,92,99,100],[92,104],[51,92,100,101,106,109],[92,106,110],[92,110,111],[92,101,106,109,110],[101,106],[106],[110,111]],"referencedMap":[[115,1],[118,2],[117,1],[104,1],[124,3],[114,1],[123,4],[108,1],[109,5],[46,6],[47,6],[49,7],[50,8],[51,9],[52,10],[53,11],[54,12],[55,13],[56,14],[57,15],[58,16],[59,16],[61,17],[60,18],[62,17],[63,19],[64,20],[48,21],[98,1],[65,22],[66,23],[67,24],[99,25],[68,26],[69,27],[70,28],[71,29],[72,30],[73,31],[74,32],[75,33],[76,34],[77,35],[78,35],[79,36],[80,37],[82,38],[81,39],[83,40],[84,41],[85,42],[86,43],[87,44],[88,45],[89,46],[90,47],[91,48],[92,49],[93,50],[94,51],[95,52],[96,53],[97,54],[116,1],[122,55],[107,56],[120,57],[121,58],[119,59],[102,1],[44,1],[45,1],[9,1],[8,1],[2,1],[10,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[3,1],[18,1],[4,1],[19,1],[23,1],[20,1],[21,1],[22,1],[24,1],[25,1],[26,1],[5,1],[27,1],[28,1],[29,1],[30,1],[6,1],[34,1],[31,1],[32,1],[33,1],[35,1],[7,1],[36,1],[41,1],[42,1],[37,1],[38,1],[39,1],[40,1],[1,1],[43,1],[100,60],[106,61],[103,62],[101,63],[105,64],[110,65],[111,66],[112,67],[113,68]],"exportedModulesMap":[[115,1],[118,2],[117,1],[104,1],[124,3],[114,1],[123,4],[108,1],[109,5],[46,6],[47,6],[49,7],[50,8],[51,9],[52,10],[53,11],[54,12],[55,13],[56,14],[57,15],[58,16],[59,16],[61,17],[60,18],[62,17],[63,19],[64,20],[48,21],[98,1],[65,22],[66,23],[67,24],[99,25],[68,26],[69,27],[70,28],[71,29],[72,30],[73,31],[74,32],[75,33],[76,34],[77,35],[78,35],[79,36],[80,37],[82,38],[81,39],[83,40],[84,41],[85,42],[86,43],[87,44],[88,45],[89,46],[90,47],[91,48],[92,49],[93,50],[94,51],[95,52],[96,53],[97,54],[116,1],[122,55],[107,56],[120,57],[121,58],[119,59],[102,1],[44,1],[45,1],[9,1],[8,1],[2,1],[10,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[3,1],[18,1],[4,1],[19,1],[23,1],[20,1],[21,1],[22,1],[24,1],[25,1],[26,1],[5,1],[27,1],[28,1],[29,1],[30,1],[6,1],[34,1],[31,1],[32,1],[33,1],[35,1],[7,1],[36,1],[41,1],[42,1],[37,1],[38,1],[39,1],[40,1],[1,1],[43,1],[100,60],[106,61],[103,62],[101,63],[105,64],[110,69],[111,70],[112,71]],"semanticDiagnosticsPerFile":[115,118,117,104,124,114,123,108,109,46,47,49,50,51,52,53,54,55,56,57,58,59,61,60,62,63,64,48,98,65,66,67,99,68,69,70,71,72,73,74,75,76,77,78,79,80,82,81,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,116,122,107,120,121,119,102,44,45,9,8,2,10,11,12,13,14,15,16,17,3,18,4,19,23,20,21,22,24,25,26,5,27,28,29,30,6,34,31,32,33,35,7,36,41,42,37,38,39,40,1,43,100,106,103,101,105,110,111,112,113]},"version":"5.4.2"}
|