@serwist/precaching 9.0.0-preview.5 → 9.0.0-preview.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,12 +16,20 @@ interface PrecacheControllerOptions {
16
16
  * a precache miss.
17
17
  */
18
18
  fallbackToNetwork?: boolean;
19
+ /**
20
+ * A number of how many precache requests should be made concurrently.
21
+ * By default, this value is set to 1, but this can be overriden by
22
+ * setting this option or `self.__WB_CONCURRENT_PRECACHING`. The former takes
23
+ * precedence over the latter.
24
+ */
25
+ concurrentPrecaching?: number;
19
26
  }
20
27
  /**
21
28
  * Performs efficient precaching of assets.
22
29
  */
23
- declare class PrecacheController {
30
+ export declare class PrecacheController {
24
31
  private _installAndActiveListenersAdded?;
32
+ private _concurrentPrecaching;
25
33
  private readonly _strategy;
26
34
  private readonly _urlsToCacheKeys;
27
35
  private readonly _urlsToCacheModes;
@@ -31,7 +39,7 @@ declare class PrecacheController {
31
39
  *
32
40
  * @param options
33
41
  */
34
- constructor({ cacheName, plugins, fallbackToNetwork }?: PrecacheControllerOptions);
42
+ constructor({ cacheName, plugins, fallbackToNetwork, concurrentPrecaching }?: PrecacheControllerOptions);
35
43
  /**
36
44
  * The strategy created by this controller and
37
45
  * used to cache assets and respond to fetch events.
@@ -134,5 +142,5 @@ declare class PrecacheController {
134
142
  */
135
143
  createHandlerBoundToURL(url: string): RouteHandlerCallback;
136
144
  }
137
- export { PrecacheController };
145
+ export {};
138
146
  //# sourceMappingURL=PrecacheController.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PrecacheController.d.ts","sourceRoot":"","sources":["../src/PrecacheController.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAU/E,UAAU,yBAAyB;IACjC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,cAAM,kBAAkB;IACtB,OAAO,CAAC,+BAA+B,CAAC,CAAU;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkC;IACnE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA6G;IAC/I,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAkC;IAE1E;;;;OAIG;gBACS,EAAE,SAAS,EAAE,OAAY,EAAE,iBAAwB,EAAE,GAAE,yBAA8B;IAYjG;;;OAGG;IACH,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,aAAa,GAAG,MAAM,CAAC,EAAE,GAAG,IAAI;IAUnD;;;;;OAKG;IACH,cAAc,CAAC,OAAO,EAAE,CAAC,aAAa,GAAG,MAAM,CAAC,EAAE,GAAG,IAAI;IAwDzD;;;;;;;;;OASG;IACH,OAAO,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC;IAsCvD;;;;;;;;;OASG;IACH,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC;IAwBxD;;;;;OAKG;IACH,kBAAkB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAIzC;;;;;OAKG;IACH,aAAa,IAAI,MAAM,EAAE;IAIzB;;;;;;;;OAQG;IACH,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAKlD;;;;OAIG;IACH,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI7D;;;;;;;;;;;;;;;;;OAiBG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAU7E;;;;;;OAMG;IACH,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB;CAY3D;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"PrecacheController.d.ts","sourceRoot":"","sources":["../src/PrecacheController.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAIpD,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAU/E,UAAU,yBAAyB;IACjC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,+BAA+B,CAAC,CAAU;IAClD,OAAO,CAAC,qBAAqB,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkC;IACnE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA6G;IAC/I,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAkC;IAE1E;;;;OAIG;gBACS,EAAE,SAAS,EAAE,OAAY,EAAE,iBAAwB,EAAE,oBAAoB,EAAE,GAAE,yBAA8B;IAavH;;;OAGG;IACH,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,aAAa,GAAG,MAAM,CAAC,EAAE,GAAG,IAAI;IAUnD;;;;;OAKG;IACH,cAAc,CAAC,OAAO,EAAE,CAAC,aAAa,GAAG,MAAM,CAAC,EAAE,GAAG,IAAI;IAwDzD;;;;;;;;;OASG;IACH,OAAO,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC;IA2CvD;;;;;;;;;OASG;IACH,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC;IAuBxD;;;;;OAKG;IACH,kBAAkB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAIzC;;;;;OAKG;IACH,aAAa,IAAI,MAAM,EAAE;IAIzB;;;;;;;;OAQG;IACH,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAKlD;;;;OAIG;IACH,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI7D;;;;;;;;;;;;;;;;;OAiBG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAU7E;;;;;;OAMG;IACH,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB;CAY3D"}
@@ -11,6 +11,5 @@ import type { PrecacheRouteOptions } from "./_types.js";
11
11
  *
12
12
  * @param options See the `@serwist/precaching.PrecacheRoute` options.
13
13
  */
14
- declare function addRoute(options?: PrecacheRouteOptions): void;
15
- export { addRoute };
14
+ export declare const addRoute: (options?: PrecacheRouteOptions) => void;
16
15
  //# sourceMappingURL=addRoute.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"addRoute.d.ts","sourceRoot":"","sources":["../src/addRoute.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGxD;;;;;;;;;;;GAWG;AACH,iBAAS,QAAQ,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAKtD;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"addRoute.d.ts","sourceRoot":"","sources":["../src/addRoute.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGxD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,QAAQ,aAAc,oBAAoB,KAAG,IAKzD,CAAC"}
package/dist/index.js CHANGED
@@ -3,6 +3,32 @@ import { copyResponse } from '@serwist/core';
3
3
  import { Strategy } from '@serwist/strategies';
4
4
  import { Route, registerRoute } from '@serwist/routing';
5
5
 
6
+ const parallel = async (limit, array, func)=>{
7
+ const work = array.map((item, index)=>({
8
+ index,
9
+ item
10
+ }));
11
+ const processor = async (res)=>{
12
+ const results = [];
13
+ while(true){
14
+ const next = work.pop();
15
+ if (!next) {
16
+ return res(results);
17
+ }
18
+ const result = await func(next.item);
19
+ results.push({
20
+ result: result,
21
+ index: next.index
22
+ });
23
+ }
24
+ };
25
+ const queues = Array.from({
26
+ length: limit
27
+ }, ()=>new Promise(processor));
28
+ const results = (await Promise.all(queues)).flat().sort((a, b)=>a.index < b.index ? -1 : 1).map((res)=>res.result);
29
+ return results;
30
+ };
31
+
6
32
  class PrecacheStrategy extends Strategy {
7
33
  _fallbackToNetwork;
8
34
  static defaultPrecacheCacheabilityPlugin = {
@@ -225,11 +251,12 @@ function printInstallDetails(urlsToPrecache, urlsAlreadyPrecached) {
225
251
 
226
252
  class PrecacheController {
227
253
  _installAndActiveListenersAdded;
254
+ _concurrentPrecaching;
228
255
  _strategy;
229
256
  _urlsToCacheKeys = new Map();
230
257
  _urlsToCacheModes = new Map();
231
258
  _cacheKeysToIntegrities = new Map();
232
- constructor({ cacheName, plugins = [], fallbackToNetwork = true } = {}){
259
+ constructor({ cacheName, plugins = [], fallbackToNetwork = true, concurrentPrecaching } = {}){
233
260
  this._strategy = new PrecacheStrategy({
234
261
  cacheName: privateCacheNames.getPrecacheName(cacheName),
235
262
  plugins: [
@@ -240,6 +267,7 @@ class PrecacheController {
240
267
  ],
241
268
  fallbackToNetwork
242
269
  });
270
+ this._concurrentPrecaching = concurrentPrecaching;
243
271
  this.install = this.install.bind(this);
244
272
  this.activate = this.activate.bind(this);
245
273
  }
@@ -302,7 +330,14 @@ class PrecacheController {
302
330
  return waitUntil(event, async ()=>{
303
331
  const installReportPlugin = new PrecacheInstallReportPlugin();
304
332
  this.strategy.plugins.push(installReportPlugin);
305
- for (const [url, cacheKey] of this._urlsToCacheKeys){
333
+ let concurrents = this._concurrentPrecaching;
334
+ if (concurrents === undefined) {
335
+ if (!("__WB_CONCURRENT_PRECACHING" in globalThis)) {
336
+ self.__WB_CONCURRENT_PRECACHING = 1;
337
+ }
338
+ concurrents = self.__WB_CONCURRENT_PRECACHING;
339
+ }
340
+ await parallel(concurrents, Array.from(this._urlsToCacheKeys.entries()), async ([url, cacheKey])=>{
306
341
  const integrity = this._cacheKeysToIntegrities.get(cacheKey);
307
342
  const cacheMode = this._urlsToCacheModes.get(url);
308
343
  const request = new Request(url, {
@@ -317,7 +352,7 @@ class PrecacheController {
317
352
  request,
318
353
  event
319
354
  }));
320
- }
355
+ });
321
356
  const { updatedURLs, notUpdatedURLs } = installReportPlugin;
322
357
  if (process.env.NODE_ENV !== "production") {
323
358
  printInstallDetails(updatedURLs, notUpdatedURLs);
@@ -333,18 +368,18 @@ class PrecacheController {
333
368
  const cache = await self.caches.open(this.strategy.cacheName);
334
369
  const currentlyCachedRequests = await cache.keys();
335
370
  const expectedCacheKeys = new Set(this._urlsToCacheKeys.values());
336
- const deletedURLs = [];
371
+ const deletedCacheRequests = [];
337
372
  for (const request of currentlyCachedRequests){
338
373
  if (!expectedCacheKeys.has(request.url)) {
339
374
  await cache.delete(request);
340
- deletedURLs.push(request.url);
375
+ deletedCacheRequests.push(request.url);
341
376
  }
342
377
  }
343
378
  if (process.env.NODE_ENV !== "production") {
344
- printCleanupDetails(deletedURLs);
379
+ printCleanupDetails(deletedCacheRequests);
345
380
  }
346
381
  return {
347
- deletedURLs
382
+ deletedCacheRequests
348
383
  };
349
384
  });
350
385
  }
@@ -491,11 +526,11 @@ function addPlugins(plugins) {
491
526
  precacheController.strategy.plugins.push(...plugins);
492
527
  }
493
528
 
494
- function addRoute(options) {
529
+ const addRoute = (options)=>{
495
530
  const precacheController = getOrCreatePrecacheController();
496
531
  const precacheRoute = new PrecacheRoute(precacheController, options);
497
532
  registerRoute(precacheRoute);
498
- }
533
+ };
499
534
 
500
535
  const SUBSTRING_TO_FIND = "-precache-";
501
536
  const deleteOutdatedCaches = async (currentPrecacheName, substringToFind = SUBSTRING_TO_FIND)=>{
@@ -535,14 +570,14 @@ function matchPrecache(request) {
535
570
  return precacheController.matchPrecache(request);
536
571
  }
537
572
 
538
- function precache(entries) {
573
+ const precache = (entries)=>{
539
574
  const precacheController = getOrCreatePrecacheController();
540
575
  precacheController.precache(entries);
541
- }
576
+ };
542
577
 
543
- function precacheAndRoute(entries, options) {
578
+ const precacheAndRoute = (entries, options)=>{
544
579
  precache(entries);
545
580
  addRoute(options);
546
- }
581
+ };
547
582
 
548
583
  export { PrecacheController, PrecacheFallbackPlugin, PrecacheRoute, PrecacheStrategy, addPlugins, addRoute, cleanupOutdatedCaches, createHandlerBoundToURL, getCacheKeyForURL, matchPrecache, precache, precacheAndRoute };
@@ -15,6 +15,5 @@ import type { PrecacheEntry } from "./_types.js";
15
15
  *
16
16
  * @param entries Array of entries to precache.
17
17
  */
18
- declare function precache(entries: (PrecacheEntry | string)[]): void;
19
- export { precache };
18
+ export declare const precache: (entries: (PrecacheEntry | string)[]) => void;
20
19
  //# sourceMappingURL=precache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"precache.d.ts","sourceRoot":"","sources":["../src/precache.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD;;;;;;;;;;;;;;;GAeG;AACH,iBAAS,QAAQ,CAAC,OAAO,EAAE,CAAC,aAAa,GAAG,MAAM,CAAC,EAAE,GAAG,IAAI,CAG3D;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"precache.d.ts","sourceRoot":"","sources":["../src/precache.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,QAAQ,YAAa,CAAC,aAAa,GAAG,MAAM,CAAC,EAAE,KAAG,IAG9D,CAAC"}
@@ -10,6 +10,5 @@ import type { PrecacheEntry, PrecacheRouteOptions } from "./_types.js";
10
10
  * @param entries Array of entries to precache.
11
11
  * @param options See the `@serwist/precaching.PrecacheRoute` options.
12
12
  */
13
- declare function precacheAndRoute(entries: (PrecacheEntry | string)[], options?: PrecacheRouteOptions): void;
14
- export { precacheAndRoute };
13
+ export declare const precacheAndRoute: (entries: (PrecacheEntry | string)[], options?: PrecacheRouteOptions) => void;
15
14
  //# sourceMappingURL=precacheAndRoute.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"precacheAndRoute.d.ts","sourceRoot":"","sources":["../src/precacheAndRoute.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAIvE;;;;;;;;;;GAUG;AACH,iBAAS,gBAAgB,CAAC,OAAO,EAAE,CAAC,aAAa,GAAG,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAGnG;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"precacheAndRoute.d.ts","sourceRoot":"","sources":["../src/precacheAndRoute.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAIvE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,YAAa,CAAC,aAAa,GAAG,MAAM,CAAC,EAAE,YAAY,oBAAoB,KAAG,IAGtG,CAAC"}
@@ -0,0 +1 @@
1
+ {"program":{"fileNames":["../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.webworker.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../core/dist/cacheNames.d.ts","../../core/dist/clientsClaim.d.ts","../../core/dist/copyResponse.d.ts","../../core/dist/registerQuotaErrorCallback.d.ts","../../core/dist/_private/cacheNames.d.ts","../../core/dist/setCacheNameDetails.d.ts","../../core/dist/types.d.ts","../../core/dist/index.d.ts","../globals.d.ts","../../../node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.d.ts","../../../node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/modules/index.d.ts","../../core/dist/_private/Deferred.d.ts","../../core/dist/models/messages/messages.d.ts","../../core/dist/_private/SerwistError.d.ts","../../core/dist/_private/assert.d.ts","../../core/dist/_private/cacheMatchIgnoreParams.d.ts","../../core/dist/_private/canConstructReadableStream.d.ts","../../core/dist/_private/canConstructResponseFromBodyStream.d.ts","../../core/dist/_private/dontWaitFor.d.ts","../../core/dist/_private/executeQuotaErrorCallbacks.d.ts","../../core/dist/_private/getFriendlyURL.d.ts","../../core/dist/_private/logger.d.ts","../../core/dist/_private/resultingClientExists.d.ts","../../core/dist/_private/timeout.d.ts","../../core/dist/_private/waitUntil.d.ts","../../core/dist/index.internal.d.ts","../../strategies/dist/StrategyHandler.d.ts","../../strategies/dist/Strategy.d.ts","../../strategies/dist/CacheFirst.d.ts","../../strategies/dist/CacheOnly.d.ts","../../strategies/dist/NetworkFirst.d.ts","../../strategies/dist/NetworkOnly.d.ts","../../strategies/dist/StaleWhileRevalidate.d.ts","../../strategies/dist/index.d.ts","../../utils/src/nonNullable.ts","../../utils/src/parallel.ts","../../utils/src/types.ts","../../utils/src/index.ts","../src/PrecacheStrategy.ts","../src/_types.ts","../src/utils/PrecacheCacheKeyPlugin.ts","../src/utils/PrecacheInstallReportPlugin.ts","../src/utils/createCacheKey.ts","../src/utils/printCleanupDetails.ts","../src/utils/printInstallDetails.ts","../src/PrecacheController.ts","../src/utils/getOrCreatePrecacheController.ts","../src/PrecacheFallbackPlugin.ts","../../routing/dist/utils/constants.d.ts","../../routing/dist/Route.d.ts","../../routing/dist/NavigationRoute.d.ts","../../routing/dist/RegExpRoute.d.ts","../../routing/dist/Router.d.ts","../../routing/dist/registerRoute.d.ts","../../routing/dist/setCatchHandler.d.ts","../../routing/dist/setDefaultHandler.d.ts","../../routing/dist/unregisterRoute.d.ts","../../routing/dist/index.d.ts","../src/utils/removeIgnoredSearchParams.ts","../src/utils/generateURLVariations.ts","../src/PrecacheRoute.ts","../src/addPlugins.ts","../src/addRoute.ts","../src/utils/deleteOutdatedCaches.ts","../src/cleanupOutdatedCaches.ts","../src/createHandlerBoundToURL.ts","../src/getCacheKeyForURL.ts","../src/matchPrecache.ts","../src/precache.ts","../src/precacheAndRoute.ts","../src/index.ts","../src/utils/getCacheKeyForURL.ts","../../../node_modules/.pnpm/@types+eslint@8.44.5/node_modules/@types/eslint/helpers.d.ts","../../../node_modules/.pnpm/@types+estree@1.0.5/node_modules/@types/estree/index.d.ts","../../../node_modules/.pnpm/@types+json-schema@7.0.14/node_modules/@types/json-schema/index.d.ts","../../../node_modules/.pnpm/@types+eslint@8.44.5/node_modules/@types/eslint/index.d.ts","../../../node_modules/.pnpm/@types+eslint-scope@3.7.6/node_modules/@types/eslint-scope/index.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/buffer@5.7.1/node_modules/buffer/index.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/header.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/readable.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/file.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/fetch.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/formdata.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/connector.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/client.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/errors.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/pool.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/handlers.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/agent.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/api.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/cookies.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/patch.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/filereader.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/websocket.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/content-type.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/cache.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/index.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/dom-events.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/globals.global.d.ts","../../../node_modules/.pnpm/@types+node@20.11.16/node_modules/@types/node/index.d.ts","../../../node_modules/.pnpm/@types+shell-quote@1.7.5/node_modules/@types/shell-quote/index.d.ts"],"fileInfos":[{"version":"f33e5332b24c3773e930e212cbb8b6867c8ba3ec4492064ea78e55a524d57450","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"26f2f787e82c4222710f3b676b4d83eb5ad0a72fa7b746f03449e7a026ce5073","impliedFormat":1},{"version":"9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"21e41a76098aa7a191028256e52a726baafd45a925ea5cf0222eb430c96c1d83","affectsGlobalScope":true,"impliedFormat":1},{"version":"5746fca0ef5189a855357e258108524603574457c811ce8143e3279efde9f5b6","affectsGlobalScope":true,"impliedFormat":1},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true,"impliedFormat":1},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true,"impliedFormat":1},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true,"impliedFormat":1},{"version":"e0275cd0e42990dc3a16f0b7c8bca3efe87f1c8ad404f80c6db1c7c0b828c59f","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true,"impliedFormat":1},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true,"impliedFormat":1},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true,"impliedFormat":1},{"version":"acae90d417bee324b1372813b5a00829d31c7eb670d299cd7f8f9a648ac05688","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true,"impliedFormat":1},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"7d2521dd735894a4d0032bd70796ca6512b11326a53fdbd6ec5eb1163409bd16","impliedFormat":99},{"version":"c5a34f4b64ab0dde69222575958260bc9bfacd4bea56bb7e58433e3375d17778","impliedFormat":99},{"version":"471f6a08e110c73e1344f5eebf196f2a2b87603d068652dfb2d9b31018e20e19","impliedFormat":99},{"version":"fd391a1b2475d719f0eae71f6f1edcd4abcc62e4bd2a4d526965fc37c718b44f","impliedFormat":99},{"version":"b24f6d1a0b1a9e3ab526c28bf7ebf99d852d6c2b14ba0a8c50a7e318f7d0a2a4","impliedFormat":99},{"version":"bd4029a50f09a4da98a2c69c9ac5b829ceef8993f3c985193826fc1cc1c75a96","impliedFormat":99},{"version":"26a28e23c3783bff6e0c13cbe98c65a011df503c09ad41304101b4f60e3d8e7a","impliedFormat":99},{"version":"9cdf7ca0e809b461e72c5601bb9bf06bcf47929fe09db62bb44cc2b470ecdbb4","impliedFormat":99},{"version":"f57f77adf83e29937174ac772430479d6725175607f46cb14a89a84b2ff49708","affectsGlobalScope":true,"impliedFormat":99},{"version":"7a1971efcba559ea9002ada4c4e3c925004fb67a755300d53b5edf9399354900","impliedFormat":1},{"version":"31973b272be35eab5ecf20a38ea54bec84cdc0317117590cb813c72fe0ef75b3","impliedFormat":99},{"version":"a574de9fe4eec4516a0a63f59772b144f4dc222757202fa82cf09f4ec35174b8","impliedFormat":99},{"version":"33c39a5e907f4a0c263847587282d059323a074798854377e346e093b4503f57","impliedFormat":99},{"version":"ca0aa97ab3504c6c8c7430683f13d1177b8f1e5be20307cfc759513da5242e6b","impliedFormat":99},{"version":"e191ca66a6c47aaaab833c74e312403abb28aa183bb0c55d721852e1ed5c096e","impliedFormat":99},{"version":"47fd2862d4c9aa31710807c224013ddb420525ab5550f25cf4eab4136f668577","impliedFormat":99},{"version":"c1cb3fe7f5ed410f76b5b4eca8cf38de1732782dea26385d215769634a360530","impliedFormat":99},{"version":"646db342752e9fb179a5acf452356612546817069530437751e36a6d81ba0b6d","impliedFormat":99},{"version":"8cd15d7695bb2bc46b4e313bca98a7837746174ee2a653557775862f530e43ad","impliedFormat":99},{"version":"54504ce2503ada08b9de131a103fcceefcf461622ff3ce897909792c47fb0e84","impliedFormat":99},{"version":"ddd6d77fb7964285c00ca59ead133259fa852af96f51e8d64e2efab10ee228d4","impliedFormat":99},{"version":"5aaf0209dc4b2bda29dd8d5d53afcfde26976273d95b461466423bdf5906bc75","affectsGlobalScope":true,"impliedFormat":99},{"version":"91d58c34a52dc7d5a0c9ed69e9235fa38918c53010351bc9281ec42f6f0fd627","impliedFormat":99},{"version":"da8fc4713215519d6ce1adae4c439cf50b5ec500647d3a0a27bb7a84b69b82a9","impliedFormat":99},{"version":"03fe00d8f8ac400537003a5261ab2479548a1ed8fe14ba042b727fab81fdbf8d","impliedFormat":99},{"version":"7ef06548457a4841c16164f827a6818de39c6812bbf8b8d9e02d1007221f3320","impliedFormat":99},{"version":"e72838616b8b2f314d36480907fd6fced4d74687a8a2bfca1d749002786846d9","impliedFormat":99},{"version":"5678a23ef719ac68390ecb08f38d82d6fa5d3af87fd05011ef2f43edd1299d0d","impliedFormat":99},{"version":"92cc80f3120876586e29b17ed85dc350ce7dad08aa37534756ee0a1180523603","impliedFormat":99},{"version":"ad921e47115091493265aa048ef468b29427c87ec473704d49e1dd2e10adbaf5","impliedFormat":99},{"version":"a7a1d0ce64c3ea812a77028082af5a4ddbc5a281afa193fe90e74cc13e4ca8a5","impliedFormat":99},{"version":"7caa5d8c83a8fffa358ce440d272288684e45df7244157f4e917c3e4e79d488d","impliedFormat":99},{"version":"6230139be77130cb5cf0ef508c9bc9ca5f8594b7c1f9969dd9e624eb82ec0943","impliedFormat":99},{"version":"acb0543a898267efdeb26f2f7b1a6a13e094434d198b0b4b1678f39df83c884b","affectsGlobalScope":true,"impliedFormat":99},{"version":"1cbacb0105811e6013c22cd8900b6b6721f4d9f7f4b7f0abde37c80c751c3c42","impliedFormat":99},{"version":"4049dec34d97cc83e4b47f0c5ea47e2547b9bcb5ae596ff5b4f0432038391054","impliedFormat":99},{"version":"3e9b9868a2e9231fbc333bf8f3ef742879e8255e90eef61ba04bb0f1ddaaca48","impliedFormat":99},{"version":"38333fbf3053c9686e00084c391258c40cd0f7920ce345327b5c51c1d8d3106e","impliedFormat":99},{"version":"314eb4abd0303c1281fafa92cedb77b082cb675675d567e56a05e7508001aec8","impliedFormat":99},{"version":"a5458a1c9a6a98622cc90fa7156500d64bc2c831d02723d201def5ec8f811ab7","impliedFormat":99},{"version":"0ad30e8f67d564b4bdda7048ff40af87827be2524980bbaa2666cd45fd8d6ca3","impliedFormat":99},{"version":"451c48a0faed395aac8459e817352ac8830a6423264aa6c0b43c73313c5cbf84","impliedFormat":99},{"version":"601081b8f6a4e657de32d566412c9e73e7a1d476d7681ea263c98b74f70d3fbc","impliedFormat":99},{"version":"a266006d3bc3490a2e57b424bdeeadd5169c8c0852534d2a1bb134363092cce3","impliedFormat":99},{"version":"a9697d9b767cadc7c5aade0ef5edb72beb081cf85c5e33b0a08bb86abedf94be","impliedFormat":99},{"version":"ca620a9649d665dcdc96fca02ed02f5b5f7e7126ea81e96dcd81ff8d68f5df44","impliedFormat":99},{"version":"e56c9dfd87a133bffbcb3e7b6a9baff97d732b5264a6370b6795203950edee89","impliedFormat":99},{"version":"07caa90c06b8b1945672ae4bfc5266b910536f3581b542acb62851a5cfa01e48","impliedFormat":99},{"version":"bb261f523a12bc3f8d5079dc16b9bc2cc32c18ba2100a8387be82d47ddeb779a","impliedFormat":99},{"version":"b7e63fb02adb5a2d0e2885cd8fbfe549bd8e524b1783f7366cd58b6737cad008","impliedFormat":99},{"version":"ca49fdc79748eff42725e396089faf8580cacb0196cfe1fd005f97bb78f2f8b0","impliedFormat":99},{"version":"92b56ac1434d3ea14ed984c08421e4cd77dfebdca3a18074f800b0929a6f52d3","impliedFormat":99},{"version":"1636ed4d4471a67d646a877dd47d8fa40004647a21cc9712700eefd96c49acbd","impliedFormat":99},{"version":"ce43c8f5e21d5b475ecc5a729139d5733154c43be109fb63e930f5c469633430","impliedFormat":99},{"version":"556f4f7f722c3435cec743ca2f4f80f1fb04428461b0ec01d3204b1322df0105","impliedFormat":99},{"version":"51325251b674ef05303e414543a687f9fc561556cd1e8a8aac427785699bb4ad","impliedFormat":99},{"version":"2ea24cc3c727e2eaa5fda5b05fcc34249b0141666ab78a84797297d83b819679","impliedFormat":99},{"version":"10c066c8fd1e4172565fa1818bb994e1e6002c4719a2c0207a18b34738fd0f72","impliedFormat":99},{"version":"8eb9f97183d1d2ac391bdebd237f4197c264d61810961fba7c6c47cfd48edaae","impliedFormat":99},{"version":"dd5be0019bd2c7cc61628a93a1a30838110a3fac615330499971d7df3fcf6a86","impliedFormat":99},{"version":"20e903012c06adc6942d6d9df80501218adafdddcba6363e823b72632c737243","impliedFormat":99},{"version":"02e2456b79e94666ee985d0230ec8d910a9fa8b139ade80a331c22a8d2cc6282","impliedFormat":99},{"version":"a336d5e14e2b70b1ef86d53775f9e0a4597a9adf3e6b59d424da245a9573ce95","impliedFormat":99},{"version":"dd9cecf4794577e9d05f593aec0fecadb93d3f4ed671764d806584563891bfa3","impliedFormat":99},{"version":"e646f50843bc9bfd3123cbba855ccbdddddae9d16a64b9b011f2110ab9885a35","impliedFormat":99},{"version":"9f5e4ae2e982166998ca6a7911cb7715d88ee5c0303331c823446451f4fb1662","impliedFormat":99},{"version":"b2c09aae076a9455d614cce842445bab89cf959b2899e8bc774ef52f9efbd3e4","impliedFormat":99},{"version":"c6db02f7f6948a7f90cada7928e28a6c30009fdaf2cbfb3de3a4f1110686735f","impliedFormat":99},{"version":"4106868c2af4bbceee831d4dd6c9d1a9d1ca4d157ac275689216a69bda6cff86","impliedFormat":99},{"version":"59518ccc85d24ae4590f9df84b6ffcc90e559d500f01c649ca395e988d6b3da8","impliedFormat":99},{"version":"34c20f04fa7b6f77631100419331664f421a8cc70b18343b58e5452684d57742","impliedFormat":99},{"version":"184f39a8b06bf852a0d49a3078c1bd1ed88f9c3b577311bbd5b2086f672438a6","impliedFormat":99},{"version":"64d4b35c5456adf258d2cf56c341e203a073253f229ef3208fc0d5020253b241","affectsGlobalScope":true,"impliedFormat":1},{"version":"ee7d8894904b465b072be0d2e4b45cf6b887cdba16a467645c4e200982ece7ea","impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"df95e00612c1faa5e0e7ef0dba589b18665bbeb3221db2b6cee1fe4d0e61921f","impliedFormat":1},{"version":"1f68ab0e055994eb337b67aa87d2a15e0200951e9664959b3866ee6f6b11a0fe","impliedFormat":1},{"version":"efc7d584a33fe3422847783d228f315c4cd1afe74bd7cf8e3f0e4c1125129fef","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","impliedFormat":1},{"version":"3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","impliedFormat":1},{"version":"e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","impliedFormat":1},{"version":"471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","impliedFormat":1},{"version":"c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","impliedFormat":1},{"version":"40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","impliedFormat":1},{"version":"339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","impliedFormat":1},{"version":"9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","impliedFormat":1},{"version":"8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","impliedFormat":1},{"version":"4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1","impliedFormat":1},{"version":"a14ed46fa3f5ffc7a8336b497cd07b45c2084213aaca933a22443fcb2eef0d07","affectsGlobalScope":true,"impliedFormat":1},{"version":"cce1f5f86974c1e916ec4a8cab6eec9aa8e31e8148845bf07fbaa8e1d97b1a2c","impliedFormat":1},{"version":"e2eb1ce13a9c0fa7ab62c63909d81973ef4b707292667c64f1e25e6e53fa7afa","affectsGlobalScope":true,"impliedFormat":1},{"version":"16d74fe4d8e183344d3beb15d48b123c5980ff32ff0cc8c3b96614ddcdf9b239","impliedFormat":1},{"version":"7b43160a49cf2c6082da0465876c4a0b164e160b81187caeb0a6ca7a281e85ba","impliedFormat":1},{"version":"41fb2a1c108fbf46609ce5a451b7ec78eb9b5ada95fd5b94643e4b26397de0b3","affectsGlobalScope":true,"impliedFormat":1},{"version":"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","impliedFormat":1},{"version":"a1d2988ad9d2aef7b9915a22b5e52c165c83a878f2851c35621409046bbe3c05","affectsGlobalScope":true,"impliedFormat":1},{"version":"bd3f5d05b6b5e4bfcea7739a45f3ffb4a7f4a3442ba7baf93e0200799285b8f1","impliedFormat":1},{"version":"4c775c2fccabf49483c03cd5e3673f87c1ffb6079d98e7b81089c3def79e29c6","impliedFormat":1},{"version":"8806ae97308ef26363bd7ec8071bca4d07fb575f905ee3d8a91aff226df6d618","impliedFormat":1},{"version":"af5bf1db6f1804fb0069039ae77a05d60133c77a2158d9635ea27b6bb2828a8f","impliedFormat":1},{"version":"b7fe70be794e13d1b7940e318b8770cd1fb3eced7707805318a2e3aaac2c3e9e","impliedFormat":1},{"version":"2c71199d1fc83bf17636ad5bf63a945633406b7b94887612bba4ef027c662b3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ae9dc7dbb58cd843065639707815df85c044babaa0947116f97bdb824d07204","affectsGlobalScope":true,"impliedFormat":1},{"version":"fe1fd6afdfe77976d4c702f3746c05fb05a7e566845c890e0e970fe9376d6a90","impliedFormat":1},{"version":"313a0b063f5188037db113509de1b934a0e286f14e9479af24fada241435e707","impliedFormat":1},{"version":"f1ace2d2f98429e007d017c7a445efad2aaebf8233135abdb2c88b8c0fef91ab","impliedFormat":1},{"version":"87ef1a23caa071b07157c72077fa42b86d30568f9dc9e31eed24d5d14fc30ba8","impliedFormat":1},{"version":"396a8939b5e177542bdf9b5262b4eee85d29851b2d57681fa9d7eae30e225830","impliedFormat":1},{"version":"21773f5ac69ddf5a05636ba1f50b5239f4f2d27e4420db147fc2f76a5ae598ac","impliedFormat":1},{"version":"ea455cc68871b049bcecd9f56d4cf27b852d6dafd5e3b54468ca87cc11604e4d","affectsGlobalScope":true,"impliedFormat":1},{"version":"440aa12c483d9dcd62b8cad2ddf4549ef3e54926c2aa6c78d520dcd320ba4980","impliedFormat":1},{"version":"45b1053e691c5af9bfe85060a3e1542835f8d84a7e6e2e77ca305251eda0cb3c","impliedFormat":1},{"version":"0f05c06ff6196958d76b865ae17245b52d8fe01773626ac3c43214a2458ea7b7","impliedFormat":1},{"version":"ae5507fc333d637dec9f37c6b3f4d423105421ea2820a64818de55db85214d66","affectsGlobalScope":true,"impliedFormat":1},{"version":"0666f4c99b8688c7be5956df8fecf5d1779d3b22f8f2a88258ae7072c7b6026f","affectsGlobalScope":true,"impliedFormat":1},{"version":"8abd0566d2854c4bd1c5e48e05df5c74927187f1541e6770001d9637ac41542e","impliedFormat":1},{"version":"54e854615c4eafbdd3fd7688bd02a3aafd0ccf0e87c98f79d3e9109f047ce6b8","impliedFormat":1},{"version":"d8dba11dc34d50cb4202de5effa9a1b296d7a2f4a029eec871f894bddfb6430d","impliedFormat":1},{"version":"8b71dd18e7e63b6f991b511a201fad7c3bf8d1e0dd98acb5e3d844f335a73634","impliedFormat":1},{"version":"01d8e1419c84affad359cc240b2b551fb9812b450b4d3d456b64cda8102d4f60","impliedFormat":1},{"version":"8221b00f271cf7f535a8eeec03b0f80f0929c7a16116e2d2df089b41066de69b","impliedFormat":1},{"version":"269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","impliedFormat":1},{"version":"93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","impliedFormat":1},{"version":"7424817d5eb498771e6d1808d726ec38f75d2eaf3fa359edd5c0c540c52725c1","impliedFormat":1},{"version":"9a9634296cca836c3308923ba7aa094fa6ed76bb1e366d8ddcf5c65888ab1024","impliedFormat":1},{"version":"bddce945d552a963c9733db106b17a25474eefcab7fc990157a2134ef55d4954","affectsGlobalScope":true,"impliedFormat":1},{"version":"7052b7b0c3829df3b4985bab2fd74531074b4835d5a7b263b75c82f0916ad62f","affectsGlobalScope":true,"impliedFormat":1},{"version":"aa34c3aa493d1c699601027c441b9664547c3024f9dbab1639df7701d63d18fa","impliedFormat":1},{"version":"4b55240c2a03b2c71e98a7fc528b16136faa762211c92e781a01c37821915ea6","impliedFormat":1},{"version":"7c651f8dce91a927ab62925e73f190763574c46098f2b11fb8ddc1b147a6709a","impliedFormat":1},{"version":"7440ab60f4cb031812940cc38166b8bb6fbf2540cfe599f87c41c08011f0c1df","impliedFormat":1},{"version":"4d0405568cf6e0ff36a4861c4a77e641366feaefa751600b0a4d12a5e8f730a8","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5b5dc128973498b75f52b1b8c2d5f8629869104899733ae485100c2309b4c12","affectsGlobalScope":true,"impliedFormat":1},{"version":"e393915d3dc385e69c0e2390739c87b2d296a610662eb0b1cb85224e55992250","impliedFormat":1},{"version":"79bad8541d5779c85e82a9fb119c1fe06af77a71cc40f869d62ad379473d4b75","impliedFormat":1},{"version":"37dc027f781c75f0f546e329cfac7cf92a6b289f42458f47a9adc25e516b6839","impliedFormat":1},{"version":"629d20681ca284d9e38c0a019f647108f5fe02f9c59ac164d56f5694fc3faf4d","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7dbf5716d76846c7522e910896c5747b6df1abd538fee8f5291bdc843461795","impliedFormat":1},{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true,"impliedFormat":1},{"version":"b510d0a18e3db42ac9765d26711083ec1e8b4e21caaca6dc4d25ae6e8623f447","impliedFormat":1},{"version":"a315a141f52f92232e0e7756f77cfed8e3ecb031317166711fb5d906e404a2ac","impliedFormat":1}],"root":[55,[85,94],[105,118]],"options":{"allowSyntheticDefaultImports":true,"checkJs":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"importHelpers":true,"module":199,"noEmitHelpers":true,"noErrorTruncation":true,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","removeComments":false,"skipLibCheck":true,"sourceMap":false,"strict":true,"target":99},"fileIdsList":[[120,122],[119,120,121],[124],[160],[161,166,194],[162,173,174,181,191,202],[162,163,173,181],[164,203],[165,166,174,182],[166,191,199],[167,169,173,181],[160,168],[169,170],[173],[171,173],[160,173],[173,174,175,191,202],[173,174,175,188,191,194],[158,161,207],[169,173,176,181,191,202],[173,174,176,177,181,191,199,202],[176,178,191,199,202],[124,125,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209],[173,179],[180,202,207],[169,173,181,191],[182],[183],[160,184],[185,201,207],[186],[187],[173,188,189],[188,190,203,205],[161,173,191,192,193,194],[161,191,193],[191,192],[194],[195],[160,191],[173,197,198],[197,198],[166,181,191,199],[200],[181,201],[161,176,187,202],[166,203],[191,204],[180,205],[206],[161,166,173,175,184,191,202,205,207],[191,208],[56],[135,139,202],[135,191,202],[130],[132,135,199,202],[181,199],[210],[130,210],[132,135,181,202],[127,128,131,134,161,173,191,202],[127,133],[131,135,161,194,202,210],[161,210],[151,161,210],[129,130,210],[135],[129,130,131,132,133,134,135,136,137,139,140,141,142,143,144,145,146,147,148,149,150,152,153,154,155,156,157],[135,142,143],[133,135,143,144],[134],[127,130,135],[135,139,143,144],[139],[133,135,138,202],[127,132,133,135,139,142],[161,191],[130,135,151,161,207,210],[53,59],[53],[47,48,49,50,52,53],[51,58,60,61,62,63,64,65,66,67,68,69,70,71],[51],[54],[54,57,72,80,84,85,86,87,88,89,90,91],[54,57,92,93],[54,57,72,86,92,104,106],[54,57,72,80],[57],[54,57,93],[57,86,93,104,107],[57,72,110],[57,93],[57,85,86,92,94,107,108,109,111,112,113,114,115,116],[57,86,93],[57,86,109,115],[54,57,92],[54,57],[57,72,86],[57,86,105],[57,86,93,106],[57,92],[57,72],[54,96],[54,95,96],[54,95],[95,96,97,98,99,100,101,102,103],[96],[73,74],[54,73],[54,74],[73,74,75,76,77,78,79],[57,81,82,83]],"referencedMap":[[123,1],[122,2],[124,3],[125,3],[160,4],[161,5],[162,6],[163,7],[164,8],[165,9],[166,10],[167,11],[168,12],[169,13],[170,13],[172,14],[171,15],[173,16],[174,17],[175,18],[159,19],[176,20],[177,21],[178,22],[210,23],[179,24],[180,25],[181,26],[182,27],[183,28],[184,29],[185,30],[186,31],[187,32],[188,33],[189,33],[190,34],[191,35],[193,36],[192,37],[194,38],[195,39],[196,40],[197,41],[198,42],[199,43],[200,44],[201,45],[202,46],[203,47],[204,48],[205,49],[206,50],[207,51],[208,52],[57,53],[142,54],[149,55],[141,54],[156,56],[133,57],[132,58],[155,59],[150,60],[153,61],[135,62],[134,63],[130,64],[129,65],[152,66],[131,67],[136,68],[140,68],[158,69],[157,68],[144,70],[145,71],[147,72],[143,73],[146,74],[151,59],[138,75],[139,76],[148,77],[128,78],[154,79],[60,80],[61,81],[54,82],[72,83],[52,84],[55,85],[92,86],[94,87],[107,88],[85,89],[86,90],[108,91],[109,92],[111,93],[112,91],[113,94],[117,95],[114,94],[115,96],[116,97],[87,98],[88,99],[89,100],[110,90],[106,101],[118,102],[93,103],[90,104],[91,104],[105,90],[97,105],[98,106],[96,107],[99,106],[104,108],[100,106],[101,85],[102,85],[103,109],[75,110],[76,110],[77,110],[78,110],[79,110],[74,111],[73,112],[80,113],[84,114],[81,90],[82,90],[83,90]],"exportedModulesMap":[[123,1],[122,2],[124,3],[125,3],[160,4],[161,5],[162,6],[163,7],[164,8],[165,9],[166,10],[167,11],[168,12],[169,13],[170,13],[172,14],[171,15],[173,16],[174,17],[175,18],[159,19],[176,20],[177,21],[178,22],[210,23],[179,24],[180,25],[181,26],[182,27],[183,28],[184,29],[185,30],[186,31],[187,32],[188,33],[189,33],[190,34],[191,35],[193,36],[192,37],[194,38],[195,39],[196,40],[197,41],[198,42],[199,43],[200,44],[201,45],[202,46],[203,47],[204,48],[205,49],[206,50],[207,51],[208,52],[57,53],[142,54],[149,55],[141,54],[156,56],[133,57],[132,58],[155,59],[150,60],[153,61],[135,62],[134,63],[130,64],[129,65],[152,66],[131,67],[136,68],[140,68],[158,69],[157,68],[144,70],[145,71],[147,72],[143,73],[146,74],[151,59],[138,75],[139,76],[148,77],[128,78],[154,79],[60,80],[61,81],[54,82],[72,83],[52,84],[55,85],[92,86],[94,87],[107,88],[85,89],[86,90],[108,91],[109,92],[111,93],[112,91],[113,94],[117,95],[114,94],[115,96],[116,97],[87,98],[88,99],[89,100],[110,90],[106,101],[118,102],[93,103],[90,104],[91,104],[105,90],[97,105],[98,106],[96,107],[99,106],[104,108],[100,106],[101,85],[102,85],[103,109],[75,110],[76,110],[77,110],[78,110],[79,110],[74,111],[73,112],[80,113],[84,114],[81,90],[82,90],[83,90]],"semanticDiagnosticsPerFile":[123,119,122,120,121,124,125,160,161,162,163,164,165,166,167,168,169,170,172,171,173,174,175,159,209,176,177,178,210,179,180,181,182,183,184,185,186,187,188,189,190,191,193,192,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,211,126,57,56,45,46,8,11,10,2,12,13,14,15,16,17,18,19,3,4,20,24,21,22,23,25,26,27,5,28,29,30,31,6,35,32,33,34,36,7,37,42,43,38,39,40,41,1,44,9,142,149,141,156,133,132,155,150,153,135,134,130,129,152,131,136,137,140,127,158,157,144,145,147,143,146,151,138,139,148,128,154,58,60,61,62,51,63,64,65,66,67,68,69,70,71,47,48,49,54,72,59,50,52,53,55,92,94,107,85,86,108,109,111,112,113,117,114,115,116,87,88,89,110,106,118,93,90,91,105,97,98,96,99,104,100,101,102,103,95,75,76,77,78,79,74,73,80,84,81,82,83]},"version":"5.3.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serwist/precaching",
3
- "version": "9.0.0-preview.5",
3
+ "version": "9.0.0-preview.6",
4
4
  "type": "module",
5
5
  "description": "This module efficiently precaches assets.",
6
6
  "files": [
@@ -28,14 +28,15 @@
28
28
  "./package.json": "./package.json"
29
29
  },
30
30
  "dependencies": {
31
- "@serwist/core": "9.0.0-preview.5",
32
- "@serwist/routing": "9.0.0-preview.5",
33
- "@serwist/strategies": "9.0.0-preview.5"
31
+ "@serwist/core": "9.0.0-preview.6",
32
+ "@serwist/routing": "9.0.0-preview.6",
33
+ "@serwist/strategies": "9.0.0-preview.6"
34
34
  },
35
35
  "devDependencies": {
36
36
  "rollup": "4.9.6",
37
37
  "typescript": "5.4.0-dev.20240206",
38
- "@serwist/constants": "9.0.0-preview.5"
38
+ "@serwist/constants": "9.0.0-preview.6",
39
+ "@serwist/utils": "9.0.0-preview.6"
39
40
  },
40
41
  "peerDependencies": {
41
42
  "typescript": ">=5.0.0"
@@ -9,6 +9,7 @@
9
9
  import type { RouteHandlerCallback, SerwistPlugin } from "@serwist/core";
10
10
  import { assert, SerwistError, logger, privateCacheNames, waitUntil } from "@serwist/core/internal";
11
11
  import type { Strategy } from "@serwist/strategies";
12
+ import { parallel } from "@serwist/utils";
12
13
 
13
14
  import { PrecacheStrategy } from "./PrecacheStrategy.js";
14
15
  import type { CleanupResult, InstallResult, PrecacheEntry } from "./_types.js";
@@ -19,7 +20,7 @@ import { printCleanupDetails } from "./utils/printCleanupDetails.js";
19
20
  import { printInstallDetails } from "./utils/printInstallDetails.js";
20
21
 
21
22
  // Give TypeScript the correct global.
22
- declare let self: ServiceWorkerGlobalScope;
23
+ declare const self: ServiceWorkerGlobalScope;
23
24
 
24
25
  interface PrecacheControllerOptions {
25
26
  /**
@@ -36,13 +37,21 @@ interface PrecacheControllerOptions {
36
37
  * a precache miss.
37
38
  */
38
39
  fallbackToNetwork?: boolean;
40
+ /**
41
+ * A number of how many precache requests should be made concurrently.
42
+ * By default, this value is set to 1, but this can be overriden by
43
+ * setting this option or `self.__WB_CONCURRENT_PRECACHING`. The former takes
44
+ * precedence over the latter.
45
+ */
46
+ concurrentPrecaching?: number;
39
47
  }
40
48
 
41
49
  /**
42
50
  * Performs efficient precaching of assets.
43
51
  */
44
- class PrecacheController {
52
+ export class PrecacheController {
45
53
  private _installAndActiveListenersAdded?: boolean;
54
+ private _concurrentPrecaching: number | undefined;
46
55
  private readonly _strategy: Strategy;
47
56
  private readonly _urlsToCacheKeys: Map<string, string> = new Map();
48
57
  private readonly _urlsToCacheModes: Map<string, "reload" | "default" | "no-store" | "no-cache" | "force-cache" | "only-if-cached"> = new Map();
@@ -53,12 +62,13 @@ class PrecacheController {
53
62
  *
54
63
  * @param options
55
64
  */
56
- constructor({ cacheName, plugins = [], fallbackToNetwork = true }: PrecacheControllerOptions = {}) {
65
+ constructor({ cacheName, plugins = [], fallbackToNetwork = true, concurrentPrecaching }: PrecacheControllerOptions = {}) {
57
66
  this._strategy = new PrecacheStrategy({
58
67
  cacheName: privateCacheNames.getPrecacheName(cacheName),
59
68
  plugins: [...plugins, new PrecacheCacheKeyPlugin({ precacheController: this })],
60
69
  fallbackToNetwork,
61
70
  });
71
+ this._concurrentPrecaching = concurrentPrecaching;
62
72
 
63
73
  // Bind the install and activate methods to the instance.
64
74
  this.install = this.install.bind(this);
@@ -165,15 +175,20 @@ class PrecacheController {
165
175
  * @returns
166
176
  */
167
177
  install(event: ExtendableEvent): Promise<InstallResult> {
168
- // waitUntil returns Promise<any>
169
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
170
- return waitUntil(event, async () => {
178
+ return waitUntil<InstallResult>(event, async () => {
171
179
  const installReportPlugin = new PrecacheInstallReportPlugin();
172
180
  this.strategy.plugins.push(installReportPlugin);
173
181
 
174
- // Cache entries one at a time.
175
- // See https://github.com/GoogleChrome/workbox/issues/2528
176
- for (const [url, cacheKey] of this._urlsToCacheKeys) {
182
+ let concurrents = this._concurrentPrecaching;
183
+
184
+ if (concurrents === undefined) {
185
+ if (!("__WB_CONCURRENT_PRECACHING" in globalThis)) {
186
+ self.__WB_CONCURRENT_PRECACHING = 1;
187
+ }
188
+ concurrents = self.__WB_CONCURRENT_PRECACHING;
189
+ }
190
+
191
+ await parallel(concurrents, Array.from(this._urlsToCacheKeys.entries()), async ([url, cacheKey]) => {
177
192
  const integrity = this._cacheKeysToIntegrities.get(cacheKey);
178
193
  const cacheMode = this._urlsToCacheModes.get(url);
179
194
 
@@ -190,7 +205,7 @@ class PrecacheController {
190
205
  event,
191
206
  }),
192
207
  );
193
- }
208
+ });
194
209
 
195
210
  const { updatedURLs, notUpdatedURLs } = installReportPlugin;
196
211
 
@@ -213,26 +228,25 @@ class PrecacheController {
213
228
  * @returns
214
229
  */
215
230
  activate(event: ExtendableEvent): Promise<CleanupResult> {
216
- // waitUntil returns Promise<any>
217
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
218
- return waitUntil(event, async () => {
231
+ return waitUntil<CleanupResult>(event, async () => {
219
232
  const cache = await self.caches.open(this.strategy.cacheName);
220
233
  const currentlyCachedRequests = await cache.keys();
221
234
  const expectedCacheKeys = new Set(this._urlsToCacheKeys.values());
222
235
 
223
- const deletedURLs = [];
236
+ const deletedCacheRequests: string[] = [];
237
+
224
238
  for (const request of currentlyCachedRequests) {
225
239
  if (!expectedCacheKeys.has(request.url)) {
226
240
  await cache.delete(request);
227
- deletedURLs.push(request.url);
241
+ deletedCacheRequests.push(request.url);
228
242
  }
229
243
  }
230
244
 
231
245
  if (process.env.NODE_ENV !== "production") {
232
- printCleanupDetails(deletedURLs);
246
+ printCleanupDetails(deletedCacheRequests);
233
247
  }
234
248
 
235
- return { deletedURLs };
249
+ return { deletedCacheRequests };
236
250
  });
237
251
  }
238
252
 
@@ -327,5 +341,3 @@ class PrecacheController {
327
341
  };
328
342
  }
329
343
  }
330
-
331
- export { PrecacheController };
package/src/addRoute.ts CHANGED
@@ -23,11 +23,9 @@ import { getOrCreatePrecacheController } from "./utils/getOrCreatePrecacheContro
23
23
  *
24
24
  * @param options See the `@serwist/precaching.PrecacheRoute` options.
25
25
  */
26
- function addRoute(options?: PrecacheRouteOptions): void {
26
+ export const addRoute = (options?: PrecacheRouteOptions): void => {
27
27
  const precacheController = getOrCreatePrecacheController();
28
28
 
29
29
  const precacheRoute = new PrecacheRoute(precacheController, options);
30
30
  registerRoute(precacheRoute);
31
- }
32
-
33
- export { addRoute };
31
+ };
package/src/precache.ts CHANGED
@@ -25,9 +25,7 @@ import { getOrCreatePrecacheController } from "./utils/getOrCreatePrecacheContro
25
25
  *
26
26
  * @param entries Array of entries to precache.
27
27
  */
28
- function precache(entries: (PrecacheEntry | string)[]): void {
28
+ export const precache = (entries: (PrecacheEntry | string)[]): void => {
29
29
  const precacheController = getOrCreatePrecacheController();
30
30
  precacheController.precache(entries);
31
- }
32
-
33
- export { precache };
31
+ };
@@ -21,9 +21,7 @@ import { precache } from "./precache.js";
21
21
  * @param entries Array of entries to precache.
22
22
  * @param options See the `@serwist/precaching.PrecacheRoute` options.
23
23
  */
24
- function precacheAndRoute(entries: (PrecacheEntry | string)[], options?: PrecacheRouteOptions): void {
24
+ export const precacheAndRoute = (entries: (PrecacheEntry | string)[], options?: PrecacheRouteOptions): void => {
25
25
  precache(entries);
26
26
  addRoute(options);
27
- }
28
-
29
- export { precacheAndRoute };
27
+ };