serwist 9.0.12 → 10.0.0-preview.1

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 (151) hide show
  1. package/dist/Serwist.d.ts +74 -52
  2. package/dist/Serwist.d.ts.map +1 -1
  3. package/dist/chunks/resultingClientExists.js +426 -2
  4. package/dist/{legacy/utils → controllers/PrecacheController}/PrecacheCacheKeyPlugin.d.ts +4 -4
  5. package/dist/controllers/PrecacheController/PrecacheCacheKeyPlugin.d.ts.map +1 -0
  6. package/dist/{legacy → controllers/PrecacheController}/PrecacheController.d.ts +73 -64
  7. package/dist/controllers/PrecacheController/PrecacheController.d.ts.map +1 -0
  8. package/dist/controllers/PrecacheController/PrecacheInstallReportPlugin.d.ts +14 -0
  9. package/dist/controllers/PrecacheController/PrecacheInstallReportPlugin.d.ts.map +1 -0
  10. package/dist/{PrecacheRoute.d.ts → controllers/PrecacheController/PrecacheRoute.d.ts} +4 -5
  11. package/dist/controllers/PrecacheController/PrecacheRoute.d.ts.map +1 -0
  12. package/dist/{lib/strategies → controllers/PrecacheController}/PrecacheStrategy.d.ts +6 -6
  13. package/dist/controllers/PrecacheController/PrecacheStrategy.d.ts.map +1 -0
  14. package/dist/controllers/PrecacheController/parsePrecacheOptions.d.ts +25 -0
  15. package/dist/controllers/PrecacheController/parsePrecacheOptions.d.ts.map +1 -0
  16. package/dist/controllers/RuntimeCacheController.d.ts +65 -0
  17. package/dist/controllers/RuntimeCacheController.d.ts.map +1 -0
  18. package/dist/index.d.ts +4 -3
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.internal.js +25 -3
  21. package/dist/index.js +1868 -211
  22. package/dist/lib/backgroundSync/BackgroundSyncPlugin.d.ts +2 -2
  23. package/dist/lib/backgroundSync/BackgroundSyncPlugin.d.ts.map +1 -1
  24. package/dist/lib/broadcastUpdate/BroadcastUpdatePlugin.d.ts +2 -2
  25. package/dist/lib/broadcastUpdate/BroadcastUpdatePlugin.d.ts.map +1 -1
  26. package/dist/lib/cacheableResponse/CacheableResponsePlugin.d.ts +3 -3
  27. package/dist/lib/cacheableResponse/CacheableResponsePlugin.d.ts.map +1 -1
  28. package/dist/lib/expiration/ExpirationPlugin.d.ts +2 -2
  29. package/dist/lib/expiration/ExpirationPlugin.d.ts.map +1 -1
  30. package/dist/lib/precaching/PrecacheFallbackPlugin.d.ts +7 -7
  31. package/dist/lib/precaching/PrecacheFallbackPlugin.d.ts.map +1 -1
  32. package/dist/lib/rangeRequests/RangeRequestsPlugin.d.ts +3 -3
  33. package/dist/lib/rangeRequests/RangeRequestsPlugin.d.ts.map +1 -1
  34. package/dist/lib/strategies/Strategy.d.ts +3 -3
  35. package/dist/lib/strategies/Strategy.d.ts.map +1 -1
  36. package/dist/lib/strategies/StrategyHandler.d.ts +4 -4
  37. package/dist/lib/strategies/StrategyHandler.d.ts.map +1 -1
  38. package/dist/lib/strategies/plugins/cacheOkAndOpaquePlugin.d.ts +2 -2
  39. package/dist/lib/strategies/plugins/cacheOkAndOpaquePlugin.d.ts.map +1 -1
  40. package/dist/types.d.ts +16 -64
  41. package/dist/types.d.ts.map +1 -1
  42. package/dist/utils/pluginUtils.d.ts +2 -2
  43. package/dist/utils/pluginUtils.d.ts.map +1 -1
  44. package/package.json +5 -12
  45. package/src/Serwist.ts +157 -262
  46. package/src/{legacy/utils → controllers/PrecacheController}/PrecacheCacheKeyPlugin.ts +5 -6
  47. package/src/{legacy → controllers/PrecacheController}/PrecacheController.ts +143 -155
  48. package/src/{utils → controllers/PrecacheController}/PrecacheInstallReportPlugin.ts +5 -5
  49. package/src/{PrecacheRoute.ts → controllers/PrecacheController/PrecacheRoute.ts} +11 -12
  50. package/src/{lib/strategies → controllers/PrecacheController}/PrecacheStrategy.ts +7 -7
  51. package/src/controllers/PrecacheController/parsePrecacheOptions.ts +46 -0
  52. package/src/controllers/RuntimeCacheController.ts +119 -0
  53. package/src/index.ts +5 -2
  54. package/src/lib/backgroundSync/BackgroundSyncPlugin.ts +2 -2
  55. package/src/lib/broadcastUpdate/BroadcastUpdatePlugin.ts +2 -2
  56. package/src/lib/cacheableResponse/CacheableResponsePlugin.ts +3 -3
  57. package/src/lib/expiration/ExpirationPlugin.ts +2 -2
  58. package/src/lib/precaching/PrecacheFallbackPlugin.ts +10 -10
  59. package/src/lib/rangeRequests/RangeRequestsPlugin.ts +3 -3
  60. package/src/lib/strategies/Strategy.ts +3 -3
  61. package/src/lib/strategies/StrategyHandler.ts +9 -9
  62. package/src/lib/strategies/plugins/cacheOkAndOpaquePlugin.ts +2 -2
  63. package/src/types.ts +24 -67
  64. package/src/utils/pluginUtils.ts +2 -2
  65. package/dist/PrecacheRoute.d.ts.map +0 -1
  66. package/dist/chunks/printInstallDetails.js +0 -1601
  67. package/dist/chunks/waitUntil.js +0 -449
  68. package/dist/index.legacy.d.ts +0 -28
  69. package/dist/index.legacy.d.ts.map +0 -1
  70. package/dist/index.legacy.js +0 -790
  71. package/dist/legacy/PrecacheController.d.ts.map +0 -1
  72. package/dist/legacy/PrecacheFallbackPlugin.d.ts +0 -61
  73. package/dist/legacy/PrecacheFallbackPlugin.d.ts.map +0 -1
  74. package/dist/legacy/PrecacheRoute.d.ts +0 -19
  75. package/dist/legacy/PrecacheRoute.d.ts.map +0 -1
  76. package/dist/legacy/Router.d.ts +0 -151
  77. package/dist/legacy/Router.d.ts.map +0 -1
  78. package/dist/legacy/addPlugins.d.ts +0 -9
  79. package/dist/legacy/addPlugins.d.ts.map +0 -1
  80. package/dist/legacy/addRoute.d.ts +0 -14
  81. package/dist/legacy/addRoute.d.ts.map +0 -1
  82. package/dist/legacy/constants.d.ts +0 -10
  83. package/dist/legacy/constants.d.ts.map +0 -1
  84. package/dist/legacy/createHandlerBoundToURL.d.ts +0 -17
  85. package/dist/legacy/createHandlerBoundToURL.d.ts.map +0 -1
  86. package/dist/legacy/fallbacks.d.ts +0 -59
  87. package/dist/legacy/fallbacks.d.ts.map +0 -1
  88. package/dist/legacy/getCacheKeyForURL.d.ts +0 -20
  89. package/dist/legacy/getCacheKeyForURL.d.ts.map +0 -1
  90. package/dist/legacy/handlePrecaching.d.ts +0 -54
  91. package/dist/legacy/handlePrecaching.d.ts.map +0 -1
  92. package/dist/legacy/initializeGoogleAnalytics.d.ts +0 -38
  93. package/dist/legacy/initializeGoogleAnalytics.d.ts.map +0 -1
  94. package/dist/legacy/installSerwist.d.ts +0 -81
  95. package/dist/legacy/installSerwist.d.ts.map +0 -1
  96. package/dist/legacy/matchPrecache.d.ts +0 -15
  97. package/dist/legacy/matchPrecache.d.ts.map +0 -1
  98. package/dist/legacy/precache.d.ts +0 -20
  99. package/dist/legacy/precache.d.ts.map +0 -1
  100. package/dist/legacy/precacheAndRoute.d.ts +0 -14
  101. package/dist/legacy/precacheAndRoute.d.ts.map +0 -1
  102. package/dist/legacy/registerRoute.d.ts +0 -16
  103. package/dist/legacy/registerRoute.d.ts.map +0 -1
  104. package/dist/legacy/registerRuntimeCaching.d.ts +0 -11
  105. package/dist/legacy/registerRuntimeCaching.d.ts.map +0 -1
  106. package/dist/legacy/setCatchHandler.d.ts +0 -10
  107. package/dist/legacy/setCatchHandler.d.ts.map +0 -1
  108. package/dist/legacy/setDefaultHandler.d.ts +0 -13
  109. package/dist/legacy/setDefaultHandler.d.ts.map +0 -1
  110. package/dist/legacy/singletonPrecacheController.d.ts +0 -34
  111. package/dist/legacy/singletonPrecacheController.d.ts.map +0 -1
  112. package/dist/legacy/singletonRouter.d.ts +0 -41
  113. package/dist/legacy/singletonRouter.d.ts.map +0 -1
  114. package/dist/legacy/unregisterRoute.d.ts +0 -9
  115. package/dist/legacy/unregisterRoute.d.ts.map +0 -1
  116. package/dist/legacy/utils/PrecacheCacheKeyPlugin.d.ts.map +0 -1
  117. package/dist/legacy/utils/getCacheKeyForURL.d.ts +0 -14
  118. package/dist/legacy/utils/getCacheKeyForURL.d.ts.map +0 -1
  119. package/dist/lib/strategies/PrecacheStrategy.d.ts.map +0 -1
  120. package/dist/utils/PrecacheCacheKeyPlugin.d.ts +0 -16
  121. package/dist/utils/PrecacheCacheKeyPlugin.d.ts.map +0 -1
  122. package/dist/utils/PrecacheInstallReportPlugin.d.ts +0 -14
  123. package/dist/utils/PrecacheInstallReportPlugin.d.ts.map +0 -1
  124. package/dist/utils/parsePrecacheOptions.d.ts +0 -26
  125. package/dist/utils/parsePrecacheOptions.d.ts.map +0 -1
  126. package/src/index.legacy.ts +0 -62
  127. package/src/legacy/PrecacheFallbackPlugin.ts +0 -92
  128. package/src/legacy/PrecacheRoute.ts +0 -48
  129. package/src/legacy/Router.ts +0 -484
  130. package/src/legacy/addPlugins.ts +0 -21
  131. package/src/legacy/addRoute.ts +0 -27
  132. package/src/legacy/constants.ts +0 -22
  133. package/src/legacy/createHandlerBoundToURL.ts +0 -30
  134. package/src/legacy/fallbacks.ts +0 -94
  135. package/src/legacy/getCacheKeyForURL.ts +0 -32
  136. package/src/legacy/handlePrecaching.ts +0 -86
  137. package/src/legacy/initializeGoogleAnalytics.ts +0 -218
  138. package/src/legacy/installSerwist.ts +0 -170
  139. package/src/legacy/matchPrecache.ts +0 -27
  140. package/src/legacy/precache.ts +0 -33
  141. package/src/legacy/precacheAndRoute.ts +0 -27
  142. package/src/legacy/registerRoute.ts +0 -28
  143. package/src/legacy/registerRuntimeCaching.ts +0 -17
  144. package/src/legacy/setCatchHandler.ts +0 -21
  145. package/src/legacy/setDefaultHandler.ts +0 -24
  146. package/src/legacy/singletonPrecacheController.ts +0 -53
  147. package/src/legacy/singletonRouter.ts +0 -70
  148. package/src/legacy/unregisterRoute.ts +0 -13
  149. package/src/legacy/utils/getCacheKeyForURL.ts +0 -36
  150. package/src/utils/PrecacheCacheKeyPlugin.ts +0 -33
  151. package/src/utils/parsePrecacheOptions.ts +0 -47
@@ -1,53 +0,0 @@
1
- /*
2
- Copyright 2019 Google LLC
3
-
4
- Use of this source code is governed by an MIT-style
5
- license that can be found in the LICENSE file or at
6
- https://opensource.org/licenses/MIT.
7
- */
8
-
9
- import { PrecacheController } from "./PrecacheController.js";
10
-
11
- let defaultPrecacheController: PrecacheController | undefined = undefined;
12
-
13
- /**
14
- * Creates a new, singleton {@linkcode PrecacheController} if one does not exist. If one does
15
- * already exist, that instance is returned. This instance is used by Serwist's
16
- * {@linkcode PrecacheController}-dependent functions and classes unless you provide a different
17
- * {@linkcode PrecacheController} to them.
18
- *
19
- * @returns The singleton {@linkcode PrecacheController}.
20
- * @deprecated
21
- */
22
- export const getSingletonPrecacheController = (): PrecacheController => {
23
- if (!defaultPrecacheController) {
24
- defaultPrecacheController = new PrecacheController();
25
- }
26
- return defaultPrecacheController;
27
- };
28
-
29
- /**
30
- * Changes the singleton {@linkcode PrecacheController} to a different instance. This is meant for when you do not
31
- * want to pass your own {@linkcode PrecacheController} to every one of Serwist's {@linkcode PrecacheController}-dependent
32
- * functions and classes.
33
- *
34
- * It is highly recommended that you call this before anything else, if you plan on doing so.
35
- *
36
- * @example
37
- * ```js
38
- * import { PrecacheController, setSingletonPrecacheController } from "serwist/legacy";
39
- *
40
- * const controller = new PrecacheController();
41
- *
42
- * setSingletonPrecacheController(controller);
43
- *
44
- * // Do something with your controller...
45
- * ```
46
- * @param router
47
- * @returns The new singleton {@linkcode PrecacheController}.
48
- * @deprecated
49
- */
50
- export const setSingletonPrecacheController = (precacheController: PrecacheController): PrecacheController => {
51
- defaultPrecacheController = precacheController;
52
- return defaultPrecacheController;
53
- };
@@ -1,70 +0,0 @@
1
- /*
2
- Copyright 2019 Google LLC
3
-
4
- Use of this source code is governed by an MIT-style
5
- license that can be found in the LICENSE file or at
6
- https://opensource.org/licenses/MIT.
7
- */
8
-
9
- import { Router } from "./Router.js";
10
-
11
- let defaultRouter: Router | undefined = undefined;
12
-
13
- /**
14
- * Creates a new, singleton {@linkcode Router} if one does not exist. If one does
15
- * already exist, that instance is returned. This instance is used by
16
- * Serwist's {@linkcode Router}-dependent functions and classes unless you provide
17
- * a different {@linkcode Router} to them.
18
- *
19
- * @returns The singleton {@linkcode Router}.
20
- * @deprecated
21
- */
22
- export const getSingletonRouter = (): Router => {
23
- if (!defaultRouter) {
24
- defaultRouter = new Router();
25
-
26
- // The helpers that use the default Router assume these listeners exist.
27
- defaultRouter.addFetchListener();
28
- defaultRouter.addCacheListener();
29
- }
30
- return defaultRouter;
31
- };
32
-
33
- /**
34
- * Changes the singleton {@linkcode Router} to a different instance. This is meant for when you do not
35
- * want to pass your own {@linkcode Router} to every one of Serwist's {@linkcode Router}-dependent functions and classes.
36
- * If this or {@linkcode getSingletonRouter} has been called before, it removes the listeners of the
37
- * previous singleton {@linkcode Router}. It also adds those of the new one, so you need not do that yourself.
38
- *
39
- * It is highly recommended that you call this before anything else, if you plan on doing so.
40
- *
41
- * @example
42
- * ```js
43
- * import { Router, setSingletonRouter } from "serwist/legacy";
44
- *
45
- * const router = new Router();
46
- *
47
- * setSingletonRouter(router);
48
- *
49
- * router.registerRoute(
50
- * new Route(
51
- * /\/api\/.*\/*.json/,
52
- * new NetworkOnly(),
53
- * "POST",
54
- * ),
55
- * );
56
- * ```
57
- * @param router
58
- * @returns The new singleton {@linkcode Router}.
59
- * @deprecated
60
- */
61
- export const setSingletonRouter = (router: Router): Router => {
62
- if (defaultRouter) {
63
- defaultRouter.removeFetchListener();
64
- defaultRouter.removeCacheListener();
65
- }
66
- defaultRouter = router;
67
- defaultRouter.addFetchListener();
68
- defaultRouter.addCacheListener();
69
- return defaultRouter;
70
- };
@@ -1,13 +0,0 @@
1
- import type { Route } from "../Route.js";
2
- import type { Router } from "./Router.js";
3
- import { getSingletonRouter } from "./singletonRouter.js";
4
-
5
- /**
6
- * Unregisters a route from the singleton {@linkcode Router} instance.
7
- *
8
- * @param route The route to unregister.
9
- * @deprecated
10
- */
11
- export const unregisterRoute = (route: Route): void => {
12
- getSingletonRouter().unregisterRoute(route);
13
- };
@@ -1,36 +0,0 @@
1
- /*
2
- Copyright 2019 Google LLC
3
-
4
- Use of this source code is governed by an MIT-style
5
- license that can be found in the LICENSE file or at
6
- https://opensource.org/licenses/MIT.
7
- */
8
-
9
- import type { PrecacheRouteOptions } from "../../types.js";
10
- import { generateURLVariations } from "../../utils/generateURLVariations.js";
11
- import { getSingletonPrecacheController } from "../singletonPrecacheController.js";
12
-
13
- /**
14
- * This function will take the request URL and manipulate it based on the
15
- * configuration options.
16
- *
17
- * @param url
18
- * @param options
19
- * @returns Returns the URL in the cache that matches the request,
20
- * if possible.
21
- *
22
- * @private
23
- */
24
- export const getCacheKeyForURL = (url: string, options: PrecacheRouteOptions): string | undefined => {
25
- const precacheController = getSingletonPrecacheController();
26
-
27
- const urlsToCacheKeys = precacheController.getURLsToCacheKeys();
28
- for (const possibleURL of generateURLVariations(url, options)) {
29
- const possibleCacheKey = urlsToCacheKeys.get(possibleURL);
30
- if (possibleCacheKey) {
31
- return possibleCacheKey;
32
- }
33
- }
34
-
35
- return undefined;
36
- };
@@ -1,33 +0,0 @@
1
- /*
2
- Copyright 2020 Google LLC
3
-
4
- Use of this source code is governed by an MIT-style
5
- license that can be found in the LICENSE file or at
6
- https://opensource.org/licenses/MIT.
7
- */
8
-
9
- import type { Serwist } from "../Serwist.js";
10
- import type { SerwistPlugin, SerwistPluginCallbackParam } from "../types.js";
11
-
12
- /**
13
- * A plugin, designed to be used with PrecacheController, to translate URLs into
14
- * the corresponding cache key, based on the current revision info.
15
- *
16
- * @private
17
- */
18
- export class PrecacheCacheKeyPlugin implements SerwistPlugin {
19
- private readonly _precacheController: Serwist;
20
-
21
- constructor({ precacheController }: { precacheController: Serwist }) {
22
- this._precacheController = precacheController;
23
- }
24
-
25
- cacheKeyWillBeUsed: SerwistPlugin["cacheKeyWillBeUsed"] = async ({ request, params }: SerwistPluginCallbackParam["cacheKeyWillBeUsed"]) => {
26
- // Params is type any, can't change right now.
27
- /* eslint-disable */
28
- const cacheKey = params?.cacheKey || this._precacheController.getPrecacheKeyForUrl(request.url);
29
- /* eslint-enable */
30
-
31
- return cacheKey ? new Request(cacheKey, { headers: request.headers }) : request;
32
- };
33
- }
@@ -1,47 +0,0 @@
1
- import { privateCacheNames } from "../index.internal.js";
2
- import type { PrecacheStrategyOptions } from "../lib/strategies/PrecacheStrategy.js";
3
- import type { Serwist } from "../Serwist.js";
4
- import type { PrecacheOptions, PrecacheRouteOptions } from "../types.js";
5
- import { PrecacheCacheKeyPlugin } from "./PrecacheCacheKeyPlugin.js";
6
-
7
- export const parsePrecacheOptions = (serwist: Serwist, precacheOptions: PrecacheOptions = {}) => {
8
- const {
9
- cacheName: precacheCacheName,
10
- plugins: precachePlugins = [],
11
- fetchOptions: precacheFetchOptions,
12
- matchOptions: precacheMatchOptions,
13
- fallbackToNetwork: precacheFallbackToNetwork,
14
- directoryIndex: precacheDirectoryIndex,
15
- ignoreURLParametersMatching: precacheIgnoreUrls,
16
- cleanURLs: precacheCleanUrls,
17
- urlManipulation: precacheUrlManipulation,
18
- cleanupOutdatedCaches,
19
- concurrency = 10,
20
- navigateFallback,
21
- navigateFallbackAllowlist,
22
- navigateFallbackDenylist,
23
- } = precacheOptions ?? {};
24
-
25
- return {
26
- precacheStrategyOptions: {
27
- cacheName: privateCacheNames.getPrecacheName(precacheCacheName),
28
- plugins: [...precachePlugins, new PrecacheCacheKeyPlugin({ precacheController: serwist })],
29
- fetchOptions: precacheFetchOptions,
30
- matchOptions: precacheMatchOptions,
31
- fallbackToNetwork: precacheFallbackToNetwork,
32
- } satisfies PrecacheStrategyOptions,
33
- precacheRouteOptions: {
34
- directoryIndex: precacheDirectoryIndex,
35
- ignoreURLParametersMatching: precacheIgnoreUrls,
36
- cleanURLs: precacheCleanUrls,
37
- urlManipulation: precacheUrlManipulation,
38
- } satisfies PrecacheRouteOptions,
39
- precacheMiscOptions: {
40
- cleanupOutdatedCaches,
41
- concurrency,
42
- navigateFallback,
43
- navigateFallbackAllowlist,
44
- navigateFallbackDenylist,
45
- },
46
- };
47
- };