@rushstack/rush-http-build-cache-plugin 5.124.3 → 5.124.5

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.
Files changed (27) hide show
  1. package/.rush/temp/operation/_phase_build/all.log +2 -2
  2. package/.rush/temp/operation/_phase_build/state.json +1 -1
  3. package/.rush/temp/operation/_phase_test/all.log +3 -3
  4. package/.rush/temp/operation/_phase_test/state.json +1 -1
  5. package/.rush/temp/{rushstack+rush-http-build-cache-plugin-_phase_build-ee77b4aad193721d4873dcd8e15a062f6cfe13d1.tar.log → rushstack+rush-http-build-cache-plugin-_phase_build-627a8f28c4c7bd903aa56ccd41d3efecad4d8016.tar.log} +2 -2
  6. package/.rush/temp/{rushstack+rush-http-build-cache-plugin-_phase_test-68fa3a31816410a3a32c7e42eec0db1e659dfe3d.tar.log → rushstack+rush-http-build-cache-plugin-_phase_test-b716c4abe9cf8a1e4485fbee14bce1353210528c.tar.log} +2 -2
  7. package/coverage/HttpBuildCacheProvider.ts.html +29 -20
  8. package/coverage/RushHttpBuildCachePlugin.ts.html +1 -1
  9. package/coverage/cobertura-coverage.xml +107 -104
  10. package/coverage/index.html +11 -11
  11. package/coverage/index.ts.html +1 -1
  12. package/coverage/junit.xml +4 -4
  13. package/lib/HttpBuildCacheProvider.d.ts +3 -3
  14. package/lib/HttpBuildCacheProvider.d.ts.map +1 -1
  15. package/lib/HttpBuildCacheProvider.js +10 -10
  16. package/lib/HttpBuildCacheProvider.js.map +1 -1
  17. package/package.json +6 -6
  18. package/rush-logs/rush-http-build-cache-plugin._phase_build.cache.log +1 -1
  19. package/rush-logs/rush-http-build-cache-plugin._phase_build.log +2 -2
  20. package/rush-logs/rush-http-build-cache-plugin._phase_test.cache.log +1 -1
  21. package/rush-logs/rush-http-build-cache-plugin._phase_test.log +3 -3
  22. package/src/HttpBuildCacheProvider.ts +17 -14
  23. package/temp/build/lint/_eslint-it73M-Rx.json +1 -1
  24. package/temp/build/typescript/ts_l9Fw4VUO.json +1 -1
  25. package/temp/test/jest/haste-map-8bff56e236187dbf28a94cdea7ee2158-1f8f3a8b20228094c245723445dd2c9a-e95bfd62c357a87bf3c5f47c6c3a2910 +0 -0
  26. package/temp/test/jest/jest-transform-cache-8bff56e236187dbf28a94cdea7ee2158-79ef2876fae7ca75eedb2aa53dc48338/{57/package_5765918f8221ebc0bbeecd20e0eb8f37 → 93/package_933933949482e810ae543c522df4d5fa} +2 -2
  27. package/temp/test/jest/perf-cache-8bff56e236187dbf28a94cdea7ee2158-da39a3ee5e6b4b0d3255bfef95601890 +1 -1
@@ -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-15T01:16:56.364Z
94
+ at 2024-05-15T23:41:28.581Z
95
95
  </div>
96
96
  <script src="prettify.js"></script>
97
97
  <script>
@@ -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="2.232">
3
- <testsuite name="HttpBuildCacheProvider" errors="0" failures="0" skipped="0" timestamp="2024-05-15T01:16:53" time="1.582" tests="2">
4
- <testcase classname="HttpBuildCacheProvider tryGetCacheEntryBufferByIdAsync &gt; " name="prints warning if read credentials are not available (lib/test/HttpBuildCacheProvider.test.js)" time="0.037">
2
+ <testsuites name="jest tests" tests="2" failures="0" errors="0" time="1.558">
3
+ <testsuite name="HttpBuildCacheProvider" errors="0" failures="0" skipped="0" timestamp="2024-05-15T23:41:26" time="1.239" tests="2">
4
+ <testcase classname="HttpBuildCacheProvider tryGetCacheEntryBufferByIdAsync &gt; " name="prints warning if read credentials are not available (lib/test/HttpBuildCacheProvider.test.js)" time="0.017">
5
5
  </testcase>
6
- <testcase classname="HttpBuildCacheProvider tryGetCacheEntryBufferByIdAsync &gt; " name="attempts up to 3 times to download a cache entry (lib/test/HttpBuildCacheProvider.test.js)" time="0.013">
6
+ <testcase classname="HttpBuildCacheProvider tryGetCacheEntryBufferByIdAsync &gt; " name="attempts up to 3 times to download a cache entry (lib/test/HttpBuildCacheProvider.test.js)" time="0.018">
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 _http;
43
- private _tryGetCredentials;
44
- private _tryGetCredentialsFromCache;
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,KAAK;YAgFL,kBAAkB;YAgClB,2BAA2B;IAoBzC,OAAO,CAAC,eAAe;IA+CvB,OAAO,CAAC,cAAc;CA4CvB"}
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._http({
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._http({
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 _http(options) {
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._tryGetCredentials(safeCredentialOptions);
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._http(Object.assign(Object.assign({}, options), { credentialOptions: CredentialsOptions.Required }));
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.sleep(retryDelay);
177
- return await this._http(Object.assign(Object.assign({}, options), { maxAttempts: options.maxAttempts - 1 }));
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 _tryGetCredentials(options) {
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._tryGetCredentialsFromCache();
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 _tryGetCredentialsFromCache() {
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":";AAAA,4FAA4F;AAC5F,2DAA2D;;;;;;AAE3D,oEAAiE;AAEjE,kDAM6B;AAC7B,4DAAiE;AAGjE,IAAK,kBAIJ;AAJD,WAAK,kBAAkB;IACrB,mEAAQ,CAAA;IACR,mEAAQ,CAAA;IACR,2DAAI,CAAA;AACN,CAAC,EAJI,kBAAkB,KAAlB,kBAAkB,QAItB;AAED,IAAK,WAMJ;AAND,WAAK,WAAW;IACd,6CAAI,CAAA;IACJ,+DAAa,CAAA;IACb,mDAAO,CAAA;IACP,+CAAK,CAAA;IACL,iEAAc,CAAA;AAChB,CAAC,EANI,WAAW,KAAX,WAAW,QAMf;AAsBD,MAAM,uBAAuB,GAAW,CAAC,CAAC;AAC1C,MAAM,+BAA+B,GAAW,IAAI,CAAC;AAErD,MAAa,sBAAsB;IAajC,IAAW,mBAAmB;;QAC5B,OAAO,MAAA,mCAAwB,CAAC,sBAAsB,mCAAI,IAAI,CAAC,mCAAmC,CAAC;IACrG,CAAC;IAED,YAAmB,OAAuC,EAAE,WAAwB;;QAClF,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;QACtC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC;QAE/C,IAAI,CAAC,sBAAsB,GAAG,mCAAwB,CAAC,oBAAoB,CAAC;QAC5E,IAAI,CAAC,mCAAmC,GAAG,OAAO,CAAC,mBAAmB,CAAC;QACvE,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;QACjF,IAAI,CAAC,aAAa,GAAG,MAAA,OAAO,CAAC,YAAY,mCAAI,KAAK,CAAC;QACnD,IAAI,CAAC,QAAQ,GAAG,MAAA,OAAO,CAAC,OAAO,mCAAI,EAAE,CAAC;QACtC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;QAC1C,IAAI,CAAC,eAAe,GAAG,MAAA,OAAO,CAAC,cAAc,mCAAI,EAAE,CAAC;QACpD,IAAI,CAAC,oBAAoB,GAAG,MAAA,OAAO,CAAC,mBAAmB,mCAAI,+BAA+B,CAAC;IAC7F,CAAC;IAEM,KAAK,CAAC,+BAA+B,CAC1C,QAAmB,EACnB,OAAe;QAEf,IAAI,CAAC;YACH,MAAM,MAAM,GAAqB,MAAM,IAAI,CAAC,KAAK,CAAC;gBAChD,QAAQ,EAAE,QAAQ;gBAClB,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,GAAG,OAAO,EAAE;gBAC3C,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,2BAA2B;gBACxC,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,uBAAuB;aACrC,CAAC,CAAC;YAEH,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QACtD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,QAAQ,CAAC,gBAAgB,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;YAC7D,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,2BAA2B,CACtC,QAAmB,EACnB,OAAe,EACf,YAAoB;QAEpB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,QAAQ,CAAC,cAAc,CAAC,+DAA+D,CAAC,CAAC;YACzF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,QAAQ,CAAC,cAAc,CAAC,iCAAiC,EAAE,OAAO,CAAC,CAAC;QAEpE,IAAI,CAAC;YACH,MAAM,MAAM,GAAqB,MAAM,IAAI,CAAC,KAAK,CAAC;gBAChD,QAAQ,EAAE,QAAQ;gBAClB,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,GAAG,OAAO,EAAE;gBAC3C,MAAM,EAAE,IAAI,CAAC,aAAa;gBAC1B,IAAI,EAAE,YAAY;gBAClB,WAAW,EAAE,6BAA6B;gBAC1C,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,uBAAuB;aACrC,CAAC,CAAC;YAEH,OAAO,MAAM,KAAK,KAAK,CAAC;QAC1B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,QAAQ,CAAC,gBAAgB,CAAC,gCAAgC,CAAC,EAAE,CAAC,CAAC;YAC/D,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,2BAA2B,CAAC,QAAmB,EAAE,UAAkB;QAC9E,MAAM,0BAAe,CAAC,UAAU,CAC9B;YACE,cAAc,EAAE,IAAI;SACrB,EACD,KAAK,EAAE,gBAAiC,EAAE,EAAE;YAC1C,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,EAAE;gBACtD,UAAU,EAAE,UAAU;aACvB,CAAC,CAAC;YACH,MAAM,gBAAgB,CAAC,mBAAmB,EAAE,CAAC;QAC/C,CAAC,CACF,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,sCAAsC,CAAC,QAAmB;QACrE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACb,6DAA6D;gBAC3D,iEAAiE,IAAI,CAAC,WAAW,4FAA4F;gBAC7K,mGAAmG;gBACnG,sCAAsC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CACzD,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAW,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9F,QAAQ,CAAC,gBAAgB,CAAC,YAAY,GAAG,sBAAsB,CAAC,CAAC;QACjE,MAAM,MAAM,GAA6B,8BAAU,CAAC,SAAS,CAC3D,IAAI,CAAC,aAAa,CAAC,IAAI,EACvB,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE,EAC7B;YACE,uBAAuB,EAAE,IAAI,CAAC,gBAAgB;SAC/C,CACF,CAAC;QAEF,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEvC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,8CAA8C,GAAG,WAAW,CAAC,CAAC;QAChF,CAAC;QAED,MAAM,UAAU,GAAW,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAChD,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;QAE7C,MAAM,IAAI,CAAC,2BAA2B,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAE7D,QAAQ,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;IAClD,CAAC;IAEM,KAAK,CAAC,4BAA4B,CAAC,QAAmB;QAC3D,MAAM,0BAAe,CAAC,UAAU,CAC9B;YACE,cAAc,EAAE,IAAI;SACrB,EACD,KAAK,EAAE,gBAAiC,EAAE,EAAE;YAC1C,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC3D,MAAM,gBAAgB,CAAC,mBAAmB,EAAE,CAAC;QAC/C,CAAC,CACF,CAAC;IACJ,CAAC;IAED,IAAY,kBAAkB;QAC5B,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,MAAM,YAAY,GAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEhD,IAAI,IAAI,CAAC,mCAAmC,EAAE,CAAC;gBAC7C,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACzC,CAAC;YAED,IAAI,CAAC,mBAAmB,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAEO,KAAK,CAAC,KAAK,CAAC,OASnB;QACC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC;QAC7F,MAAM,qBAAqB,GAAuB,iBAAiB,aAAjB,iBAAiB,cAAjB,iBAAiB,GAAI,kBAAkB,CAAC,QAAQ,CAAC;QACnG,MAAM,WAAW,GAAuB,MAAM,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;QAC7F,MAAM,GAAG,GAAW,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;QAEpD,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACpC,OAAO,CAAC,aAAa,GAAG,WAAW,CAAC;QACtC,CAAC;QAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACvB,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAuB,CAAC,IAA2B,aAA3B,IAAI,uBAAJ,IAAI,CAAyB,MAAM,KAAI,SAAS,CAAC;QAEzF,QAAQ,CAAC,cAAc,CAAC,+BAA+B,MAAM,IAAI,GAAG,IAAI,UAAU,QAAQ,CAAC,CAAC;QAE5F,MAAM,QAAQ,GAAa,MAAM,IAAA,oBAAK,EAAC,GAAG,EAAE;YAC1C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,uBAAuB,GAAY,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC;YAEzF,IACE,CAAC,uBAAuB;gBACxB,OAAO,WAAW,KAAK,QAAQ;gBAC/B,qBAAqB,KAAK,kBAAkB,CAAC,QAAQ,EACrD,CAAC;gBACD,kFAAkF;gBAClF,iFAAiF;gBACjF,qEAAqE;gBACrE,EAAE;gBACF,wFAAwF;gBACxF,OAAO,MAAM,IAAI,CAAC,KAAK,iCAAM,OAAO,KAAE,iBAAiB,EAAE,kBAAkB,CAAC,QAAQ,IAAG,CAAC;YAC1F,CAAC;YAED,IAAI,OAAO,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;gBAC5B,yDAAyD;gBACzD,sFAAsF;gBACtF,gGAAgG;gBAChG,MAAM,MAAM,GAAW,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,sCAAsC;gBAClF,MAAM,UAAU,GAAW,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBAE1E,MAAM,yBAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAE9B,OAAO,MAAM,IAAI,CAAC,KAAK,iCAAM,OAAO,KAAE,WAAW,EAAE,OAAO,CAAC,WAAW,GAAG,CAAC,IAAG,CAAC;YAChF,CAAC;YAED,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;YACpE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,MAAM,GAAqB,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE7F,QAAQ,CAAC,cAAc,CACrB,uCAAuC,QAAQ,CAAC,MAAM,IAAI,GAAG,IAC3D,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MACpC,QAAQ,CACT,CAAC;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC;IAMO,KAAK,CAAC,kBAAkB,CAAC,OAA2B;QAC1D,IAAI,OAAO,KAAK,kBAAkB,CAAC,IAAI,EAAE,CAAC;YACxC,OAAO;QACT,CAAC;QAED,IAAI,WAAW,GAAuB,IAAI,CAAC,sBAAsB,CAAC;QAElE,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,WAAW,GAAG,MAAM,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACzD,CAAC;QAED,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,OAAO,KAAK,kBAAkB,CAAC,QAAQ,EAAE,CAAC;YAC/E,MAAM,IAAI,KAAK,CACb;gBACE,mBAAmB,IAAI,CAAC,IAAI,CAAC,IAAI,0BAA0B;gBAC3D,6FAA6F;gBAC7F,EAAE;gBACF,4BAA4B;gBAC5B,EAAE;gBACF,iDAAiD;gBACjD,EAAE;aACH,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;QACJ,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,2BAA2B;;QACvC,IAAI,UAA6C,CAAC;QAElD,MAAM,0BAAe,CAAC,UAAU,CAC9B;YACE,cAAc,EAAE,KAAK;SACtB,EACD,CAAC,gBAAiC,EAAE,EAAE;YACpC,UAAU,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC1E,CAAC,CACF,CAAC;QAEF,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,cAAc,GAAuB,MAAA,UAAU,CAAC,OAAO,0CAAE,OAAO,EAAE,CAAC;YACzE,IAAI,CAAC,cAAc,IAAI,cAAc,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBACpD,OAAO,UAAU,CAAC,UAAU,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,aAAqB,EAAE,QAAkB,EAAE,UAAmB;QACpF,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,OAAO,WAAW,CAAC,IAAI,CAAC;QAC1B,CAAC;QAED,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;YACxB,KAAK,GAAG,CAAC,CAAC,CAAC;gBACT,+EAA+E;gBAC/E,4DAA4D;gBAC5D,EAAE;gBACF,4EAA4E;gBAC5E,0EAA0E;gBAC1E,gCAAgC;gBAEhC,kEAAkE;gBAClE,OAAO,WAAW,CAAC,aAAa,CAAC;YACnC,CAAC;YAED,KAAK,GAAG,CAAC;YACT,KAAK,GAAG,CAAC;YACT,KAAK,GAAG,CAAC,CAAC,CAAC;gBACT,IAAI,aAAa,KAAK,KAAK,IAAI,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBACnE,+CAA+C;oBAC/C,qHAAqH;oBACrH,6HAA6H;oBAC7H,qGAAqG;oBACrG,mEAAmE;oBACnE,2GAA2G;oBAC3G,qFAAqF;oBACrF,OAAO,WAAW,CAAC,IAAI,CAAC;gBAC1B,CAAC;gBAED,OAAO,WAAW,CAAC,cAAc,CAAC;YACpC,CAAC;YAED,KAAK,GAAG,CAAC,CAAC,CAAC;gBACT,IAAI,aAAa,KAAK,KAAK,EAAE,CAAC;oBAC5B,+CAA+C;oBAC/C,OAAO,WAAW,CAAC,IAAI,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QAED,+CAA+C;QAC/C,OAAO,WAAW,CAAC,OAAO,CAAC;IAC7B,CAAC;IAEO,cAAc,CACpB,QAAmB,EACnB,aAAqB,EACrB,QAAkB,EAClB,UAAmB,EACnB,OAAe;QAEf,QAAQ,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;YAClE,OAAO,CAAC,CAAC,CAAC;gBACR,QAAQ,CAAC,cAAc,CAAC,GAAG,OAAO,UAAU,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;gBACvF,MAAM;YACR,CAAC;YAED,KAAK,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;gBACzB,QAAQ,CAAC,gBAAgB,CAAC,GAAG,OAAO,UAAU,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;gBACzF,MAAM;YACR,CAAC;YAED,KAAK,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;gBAC/B,QAAQ,CAAC,SAAS,CAAC,GAAG,OAAO,UAAU,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;gBAClF,MAAM;YACR,CAAC;YAED,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtB,QAAQ,CAAC,cAAc,CAAC,GAAG,OAAO,UAAU,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;gBACvF,MAAM;YACR,CAAC;YAED,KAAK,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;gBAChC,MAAM,IAAI,KAAK,CACb;oBACE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,mBAAmB,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,GAAG;oBAC9E,mDAAmD;oBACnD,6FAA6F;oBAC7F,EAAE;oBACF,4BAA4B;oBAC5B,EAAE;oBACF,iDAAiD;oBACjD,EAAE;iBACH,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;CACF;AA5XD,wDA4XC","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",
3
+ "version": "5.124.5",
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/node-core-library": "4.2.1",
18
- "@rushstack/rush-sdk": "5.124.3"
17
+ "@rushstack/rush-sdk": "5.124.5",
18
+ "@rushstack/node-core-library": "4.3.0"
19
19
  },
20
20
  "devDependencies": {
21
21
  "@types/node-fetch": "2.6.2",
22
- "@microsoft/rush-lib": "5.124.3",
23
- "@rushstack/terminal": "0.10.3",
24
- "@rushstack/heft": "0.66.6",
22
+ "@microsoft/rush-lib": "5.124.5",
23
+ "@rushstack/terminal": "0.11.0",
24
+ "@rushstack/heft": "0.66.8",
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-ee77b4aad193721d4873dcd8e15a062f6cfe13d1
3
+ Cache key: rushstack+rush-http-build-cache-plugin-_phase_build-627a8f28c4c7bd903aa56ccd41d3efecad4d8016
@@ -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 (9.118s) ----
7
- -------------------- Finished (9.147s) --------------------
6
+ ---- build finished (8.531s) ----
7
+ -------------------- Finished (8.554s) --------------------
@@ -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-68fa3a31816410a3a32c7e42eec0db1e659dfe3d
3
+ Cache key: rushstack+rush-http-build-cache-plugin-_phase_test-b716c4abe9cf8a1e4485fbee14bce1353210528c
@@ -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: 1.582s, 2 passed, 0 failed)
8
+ [test:jest] PASS lib/test/HttpBuildCacheProvider.test.js (duration: 1.239s, 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 (4.236s) ----
15
- -------------------- Finished (4.244s) --------------------
14
+ ---- test finished (2.974s) ----
15
+ -------------------- Finished (3.017s) --------------------
@@ -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._http({
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._http({
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 _http(options: {
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._tryGetCredentials(safeCredentialOptions);
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._http({ ...options, credentialOptions: CredentialsOptions.Required });
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.sleep(retryDelay);
273
+ await Async.sleepAsync(retryDelay);
271
274
 
272
- return await this._http({ ...options, maxAttempts: options.maxAttempts - 1 });
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 _tryGetCredentials(options: CredentialsOptions.Required): Promise<string>;
291
- private async _tryGetCredentials(options: CredentialsOptions.Optional): Promise<string | undefined>;
292
- private async _tryGetCredentials(options: CredentialsOptions.Omit): Promise<undefined>;
293
- private async _tryGetCredentials(options: CredentialsOptions): Promise<string | undefined>;
294
- private async _tryGetCredentials(options: CredentialsOptions): Promise<string | undefined> {
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._tryGetCredentialsFromCache();
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 _tryGetCredentialsFromCache(): Promise<string | undefined> {
325
+ private async _tryGetCredentialsFromCacheAsync(): Promise<string | undefined> {
323
326
  let cacheEntry: ICredentialCacheEntry | undefined;
324
327
 
325
328
  await CredentialCache.usingAsync(
@@ -3,7 +3,7 @@
3
3
  "fileVersions": [
4
4
  [
5
5
  "HttpBuildCacheProvider.ts",
6
- "af90097ec27d1471f818d8edcfdb5b1b143afe98ae5c07451dfae19579b75df1"
6
+ "cec090f526ca1c84900366ee85515de34171a5b3a646b83237ef0f7b7a2b135b"
7
7
  ],
8
8
  [
9
9
  "RushHttpBuildCachePlugin.ts",
@@ -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"}