serwist 9.0.0-preview.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +1 -0
- package/dist/NavigationRoute.d.ts +57 -0
- package/dist/NavigationRoute.d.ts.map +1 -0
- package/dist/PrecacheRoute.d.ts +17 -0
- package/dist/PrecacheRoute.d.ts.map +1 -0
- package/dist/PrecacheStrategy.d.ts +66 -0
- package/dist/PrecacheStrategy.d.ts.map +1 -0
- package/dist/RegExpRoute.d.ts +24 -0
- package/dist/RegExpRoute.d.ts.map +1 -0
- package/dist/Route.d.ts +33 -0
- package/dist/Route.d.ts.map +1 -0
- package/dist/Serwist.d.ts +331 -0
- package/dist/Serwist.d.ts.map +1 -0
- package/dist/cacheNames.d.ts +20 -0
- package/dist/cacheNames.d.ts.map +1 -0
- package/dist/chunks/NetworkOnly.js +599 -0
- package/dist/chunks/PrecacheFallbackPlugin.js +634 -0
- package/dist/chunks/Serwist.js +1034 -0
- package/dist/chunks/registerQuotaErrorCallback.js +17 -0
- package/dist/chunks/resultingClientExists.js +32 -0
- package/dist/chunks/timeout.js +400 -0
- package/dist/chunks/waitUntil.js +24 -0
- package/dist/cleanupOutdatedCaches.d.ts +6 -0
- package/dist/cleanupOutdatedCaches.d.ts.map +1 -0
- package/dist/clientsClaim.d.ts +6 -0
- package/dist/clientsClaim.d.ts.map +1 -0
- package/dist/constants.d.ts +15 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/copyResponse.d.ts +20 -0
- package/dist/copyResponse.d.ts.map +1 -0
- package/dist/disableDevLogs.d.ts +7 -0
- package/dist/disableDevLogs.d.ts.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.internal.d.ts +16 -0
- package/dist/index.internal.d.ts.map +1 -0
- package/dist/index.internal.js +24 -0
- package/dist/index.js +27 -0
- package/dist/index.legacy.d.ts +32 -0
- package/dist/index.legacy.d.ts.map +1 -0
- package/dist/index.legacy.js +640 -0
- package/dist/index.plugins.d.ts +41 -0
- package/dist/index.plugins.d.ts.map +1 -0
- package/dist/index.plugins.js +669 -0
- package/dist/index.strategies.d.ts +22 -0
- package/dist/index.strategies.d.ts.map +1 -0
- package/dist/index.strategies.js +144 -0
- package/dist/legacy/PrecacheController.d.ts +146 -0
- package/dist/legacy/PrecacheController.d.ts.map +1 -0
- package/dist/legacy/PrecacheFallbackPlugin.d.ts +62 -0
- package/dist/legacy/PrecacheFallbackPlugin.d.ts.map +1 -0
- package/dist/legacy/PrecacheRoute.d.ts +19 -0
- package/dist/legacy/PrecacheRoute.d.ts.map +1 -0
- package/dist/legacy/Router.d.ts +151 -0
- package/dist/legacy/Router.d.ts.map +1 -0
- package/dist/legacy/addPlugins.d.ts +9 -0
- package/dist/legacy/addPlugins.d.ts.map +1 -0
- package/dist/legacy/addRoute.d.ts +16 -0
- package/dist/legacy/addRoute.d.ts.map +1 -0
- package/dist/legacy/createHandlerBoundToURL.d.ts +18 -0
- package/dist/legacy/createHandlerBoundToURL.d.ts.map +1 -0
- package/dist/legacy/fallbacks.d.ts +59 -0
- package/dist/legacy/fallbacks.d.ts.map +1 -0
- package/dist/legacy/getCacheKeyForURL.d.ts +20 -0
- package/dist/legacy/getCacheKeyForURL.d.ts.map +1 -0
- package/dist/legacy/handlePrecaching.d.ts +54 -0
- package/dist/legacy/handlePrecaching.d.ts.map +1 -0
- package/dist/legacy/installSerwist.d.ts +15 -0
- package/dist/legacy/installSerwist.d.ts.map +1 -0
- package/dist/legacy/matchPrecache.d.ts +15 -0
- package/dist/legacy/matchPrecache.d.ts.map +1 -0
- package/dist/legacy/precache.d.ts +20 -0
- package/dist/legacy/precache.d.ts.map +1 -0
- package/dist/legacy/precacheAndRoute.d.ts +15 -0
- package/dist/legacy/precacheAndRoute.d.ts.map +1 -0
- package/dist/legacy/registerRoute.d.ts +16 -0
- package/dist/legacy/registerRoute.d.ts.map +1 -0
- package/dist/legacy/registerRuntimeCaching.d.ts +11 -0
- package/dist/legacy/registerRuntimeCaching.d.ts.map +1 -0
- package/dist/legacy/setCatchHandler.d.ts +10 -0
- package/dist/legacy/setCatchHandler.d.ts.map +1 -0
- package/dist/legacy/setDefaultHandler.d.ts +13 -0
- package/dist/legacy/setDefaultHandler.d.ts.map +1 -0
- package/dist/legacy/singletonPrecacheController.d.ts +34 -0
- package/dist/legacy/singletonPrecacheController.d.ts.map +1 -0
- package/dist/legacy/singletonRouter.d.ts +41 -0
- package/dist/legacy/singletonRouter.d.ts.map +1 -0
- package/dist/legacy/unregisterRoute.d.ts +9 -0
- package/dist/legacy/unregisterRoute.d.ts.map +1 -0
- package/dist/legacy/utils/PrecacheCacheKeyPlugin.d.ts +16 -0
- package/dist/legacy/utils/PrecacheCacheKeyPlugin.d.ts.map +1 -0
- package/dist/legacy/utils/getCacheKeyForURL.d.ts +14 -0
- package/dist/legacy/utils/getCacheKeyForURL.d.ts.map +1 -0
- package/dist/models/messages/messageGenerator.d.ts +4 -0
- package/dist/models/messages/messageGenerator.d.ts.map +1 -0
- package/dist/models/messages/messages.d.ts +44 -0
- package/dist/models/messages/messages.d.ts.map +1 -0
- package/dist/models/pluginEvents.d.ts +10 -0
- package/dist/models/pluginEvents.d.ts.map +1 -0
- package/dist/models/quotaErrorCallbacks.d.ts +3 -0
- package/dist/models/quotaErrorCallbacks.d.ts.map +1 -0
- package/dist/navigationPreload.d.ts +24 -0
- package/dist/navigationPreload.d.ts.map +1 -0
- package/dist/parseRoute.d.ts +16 -0
- package/dist/parseRoute.d.ts.map +1 -0
- package/dist/plugins/backgroundSync/BackgroundSyncPlugin.d.ts +23 -0
- package/dist/plugins/backgroundSync/BackgroundSyncPlugin.d.ts.map +1 -0
- package/dist/plugins/backgroundSync/Queue.d.ts +166 -0
- package/dist/plugins/backgroundSync/Queue.d.ts.map +1 -0
- package/dist/plugins/backgroundSync/QueueDb.d.ts +90 -0
- package/dist/plugins/backgroundSync/QueueDb.d.ts.map +1 -0
- package/dist/plugins/backgroundSync/QueueStore.d.ts +75 -0
- package/dist/plugins/backgroundSync/QueueStore.d.ts.map +1 -0
- package/dist/plugins/backgroundSync/StorableRequest.d.ts +51 -0
- package/dist/plugins/backgroundSync/StorableRequest.d.ts.map +1 -0
- package/dist/plugins/broadcastUpdate/BroadcastCacheUpdate.d.ts +45 -0
- package/dist/plugins/broadcastUpdate/BroadcastCacheUpdate.d.ts.map +1 -0
- package/dist/plugins/broadcastUpdate/BroadcastUpdatePlugin.d.ts +27 -0
- package/dist/plugins/broadcastUpdate/BroadcastUpdatePlugin.d.ts.map +1 -0
- package/dist/plugins/broadcastUpdate/constants.d.ts +5 -0
- package/dist/plugins/broadcastUpdate/constants.d.ts.map +1 -0
- package/dist/plugins/broadcastUpdate/responsesAreSame.d.ts +11 -0
- package/dist/plugins/broadcastUpdate/responsesAreSame.d.ts.map +1 -0
- package/dist/plugins/broadcastUpdate/types.d.ts +34 -0
- package/dist/plugins/broadcastUpdate/types.d.ts.map +1 -0
- package/dist/plugins/cacheableResponse/CacheableResponse.d.ts +40 -0
- package/dist/plugins/cacheableResponse/CacheableResponse.d.ts.map +1 -0
- package/dist/plugins/cacheableResponse/CacheableResponsePlugin.d.ts +27 -0
- package/dist/plugins/cacheableResponse/CacheableResponsePlugin.d.ts.map +1 -0
- package/dist/plugins/expiration/CacheExpiration.d.ts +66 -0
- package/dist/plugins/expiration/CacheExpiration.d.ts.map +1 -0
- package/dist/plugins/expiration/ExpirationPlugin.d.ts +116 -0
- package/dist/plugins/expiration/ExpirationPlugin.d.ts.map +1 -0
- package/dist/plugins/expiration/models/CacheTimestampsModel.d.ts +73 -0
- package/dist/plugins/expiration/models/CacheTimestampsModel.d.ts.map +1 -0
- package/dist/plugins/googleAnalytics/constants.d.ts +10 -0
- package/dist/plugins/googleAnalytics/constants.d.ts.map +1 -0
- package/dist/plugins/googleAnalytics/initialize.d.ts +30 -0
- package/dist/plugins/googleAnalytics/initialize.d.ts.map +1 -0
- package/dist/plugins/precaching/PrecacheFallbackPlugin.d.ts +53 -0
- package/dist/plugins/precaching/PrecacheFallbackPlugin.d.ts.map +1 -0
- package/dist/plugins/rangeRequests/RangeRequestsPlugin.d.ts +19 -0
- package/dist/plugins/rangeRequests/RangeRequestsPlugin.d.ts.map +1 -0
- package/dist/plugins/rangeRequests/createPartialResponse.d.ts +18 -0
- package/dist/plugins/rangeRequests/createPartialResponse.d.ts.map +1 -0
- package/dist/plugins/rangeRequests/utils/calculateEffectiveBoundaries.d.ts +14 -0
- package/dist/plugins/rangeRequests/utils/calculateEffectiveBoundaries.d.ts.map +1 -0
- package/dist/plugins/rangeRequests/utils/parseRangeHeader.d.ts +12 -0
- package/dist/plugins/rangeRequests/utils/parseRangeHeader.d.ts.map +1 -0
- package/dist/registerQuotaErrorCallback.d.ts +8 -0
- package/dist/registerQuotaErrorCallback.d.ts.map +1 -0
- package/dist/setCacheNameDetails.d.ts +9 -0
- package/dist/setCacheNameDetails.d.ts.map +1 -0
- package/dist/strategies/CacheFirst.d.ts +23 -0
- package/dist/strategies/CacheFirst.d.ts.map +1 -0
- package/dist/strategies/CacheOnly.d.ts +20 -0
- package/dist/strategies/CacheOnly.d.ts.map +1 -0
- package/dist/strategies/NetworkFirst.d.ts +61 -0
- package/dist/strategies/NetworkFirst.d.ts.map +1 -0
- package/dist/strategies/NetworkOnly.d.ts +32 -0
- package/dist/strategies/NetworkOnly.d.ts.map +1 -0
- package/dist/strategies/StaleWhileRevalidate.d.ts +35 -0
- package/dist/strategies/StaleWhileRevalidate.d.ts.map +1 -0
- package/dist/strategies/Strategy.d.ts +83 -0
- package/dist/strategies/Strategy.d.ts.map +1 -0
- package/dist/strategies/StrategyHandler.d.ts +189 -0
- package/dist/strategies/StrategyHandler.d.ts.map +1 -0
- package/dist/strategies/plugins/cacheOkAndOpaquePlugin.d.ts +3 -0
- package/dist/strategies/plugins/cacheOkAndOpaquePlugin.d.ts.map +1 -0
- package/dist/strategies/utils/messages.d.ts +5 -0
- package/dist/strategies/utils/messages.d.ts.map +1 -0
- package/dist/types.d.ts +317 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/utils/Deferred.d.ts +19 -0
- package/dist/utils/Deferred.d.ts.map +1 -0
- package/dist/utils/PrecacheCacheKeyPlugin.d.ts +16 -0
- package/dist/utils/PrecacheCacheKeyPlugin.d.ts.map +1 -0
- package/dist/utils/PrecacheInstallReportPlugin.d.ts +14 -0
- package/dist/utils/PrecacheInstallReportPlugin.d.ts.map +1 -0
- package/dist/utils/SerwistError.d.ts +24 -0
- package/dist/utils/SerwistError.d.ts.map +1 -0
- package/dist/utils/assert.d.ts +11 -0
- package/dist/utils/assert.d.ts.map +1 -0
- package/dist/utils/cacheMatchIgnoreParams.d.ts +15 -0
- package/dist/utils/cacheMatchIgnoreParams.d.ts.map +1 -0
- package/dist/utils/cacheNames.d.ts +40 -0
- package/dist/utils/cacheNames.d.ts.map +1 -0
- package/dist/utils/canConstructReadableStream.d.ts +12 -0
- package/dist/utils/canConstructReadableStream.d.ts.map +1 -0
- package/dist/utils/canConstructResponseFromBodyStream.d.ts +11 -0
- package/dist/utils/canConstructResponseFromBodyStream.d.ts.map +1 -0
- package/dist/utils/createCacheKey.d.ts +16 -0
- package/dist/utils/createCacheKey.d.ts.map +1 -0
- package/dist/utils/deleteOutdatedCaches.d.ts +18 -0
- package/dist/utils/deleteOutdatedCaches.d.ts.map +1 -0
- package/dist/utils/dontWaitFor.d.ts +7 -0
- package/dist/utils/dontWaitFor.d.ts.map +1 -0
- package/dist/utils/executeQuotaErrorCallbacks.d.ts +8 -0
- package/dist/utils/executeQuotaErrorCallbacks.d.ts.map +1 -0
- package/dist/utils/generateURLVariations.d.ts +12 -0
- package/dist/utils/generateURLVariations.d.ts.map +1 -0
- package/dist/utils/getFriendlyURL.d.ts +3 -0
- package/dist/utils/getFriendlyURL.d.ts.map +1 -0
- package/dist/utils/logger.d.ts +24 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/normalizeHandler.d.ts +10 -0
- package/dist/utils/normalizeHandler.d.ts.map +1 -0
- package/dist/utils/pluginUtils.d.ts +5 -0
- package/dist/utils/pluginUtils.d.ts.map +1 -0
- package/dist/utils/printCleanupDetails.d.ts +6 -0
- package/dist/utils/printCleanupDetails.d.ts.map +1 -0
- package/dist/utils/printInstallDetails.d.ts +7 -0
- package/dist/utils/printInstallDetails.d.ts.map +1 -0
- package/dist/utils/removeIgnoredSearchParams.d.ts +12 -0
- package/dist/utils/removeIgnoredSearchParams.d.ts.map +1 -0
- package/dist/utils/resultingClientExists.d.ts +12 -0
- package/dist/utils/resultingClientExists.d.ts.map +1 -0
- package/dist/utils/timeout.d.ts +10 -0
- package/dist/utils/timeout.d.ts.map +1 -0
- package/dist/utils/waitUntil.d.ts +11 -0
- package/dist/utils/waitUntil.d.ts.map +1 -0
- package/dist/utils/welcome.d.ts +2 -0
- package/dist/utils/welcome.d.ts.map +1 -0
- package/package.json +85 -0
- package/src/NavigationRoute.ts +119 -0
- package/src/PrecacheRoute.ts +46 -0
- package/src/PrecacheStrategy.ts +239 -0
- package/src/RegExpRoute.ts +74 -0
- package/src/Route.ts +67 -0
- package/src/Serwist.ts +920 -0
- package/src/cacheNames.ts +39 -0
- package/src/cleanupOutdatedCaches.ts +32 -0
- package/src/clientsClaim.ts +18 -0
- package/src/constants.ts +24 -0
- package/src/copyResponse.ts +60 -0
- package/src/disableDevLogs.ts +10 -0
- package/src/index.internal.ts +33 -0
- package/src/index.legacy.ts +66 -0
- package/src/index.plugins.ts +95 -0
- package/src/index.strategies.ts +26 -0
- package/src/index.ts +39 -0
- package/src/legacy/PrecacheController.ts +337 -0
- package/src/legacy/PrecacheFallbackPlugin.ts +93 -0
- package/src/legacy/PrecacheRoute.ts +48 -0
- package/src/legacy/Router.ts +484 -0
- package/src/legacy/addPlugins.ts +21 -0
- package/src/legacy/addRoute.ts +29 -0
- package/src/legacy/createHandlerBoundToURL.ts +30 -0
- package/src/legacy/fallbacks.ts +94 -0
- package/src/legacy/getCacheKeyForURL.ts +32 -0
- package/src/legacy/handlePrecaching.ts +86 -0
- package/src/legacy/installSerwist.ts +19 -0
- package/src/legacy/matchPrecache.ts +26 -0
- package/src/legacy/precache.ts +31 -0
- package/src/legacy/precacheAndRoute.ts +28 -0
- package/src/legacy/registerRoute.ts +27 -0
- package/src/legacy/registerRuntimeCaching.ts +17 -0
- package/src/legacy/setCatchHandler.ts +21 -0
- package/src/legacy/setDefaultHandler.ts +24 -0
- package/src/legacy/singletonPrecacheController.ts +53 -0
- package/src/legacy/singletonRouter.ts +70 -0
- package/src/legacy/unregisterRoute.ts +12 -0
- package/src/legacy/utils/PrecacheCacheKeyPlugin.ts +33 -0
- package/src/legacy/utils/getCacheKeyForURL.ts +36 -0
- package/src/models/messages/messageGenerator.ts +29 -0
- package/src/models/messages/messages.ts +233 -0
- package/src/models/pluginEvents.ts +17 -0
- package/src/models/quotaErrorCallbacks.ts +13 -0
- package/src/navigationPreload.ts +68 -0
- package/src/parseRoute.ts +78 -0
- package/src/plugins/backgroundSync/BackgroundSyncPlugin.ts +38 -0
- package/src/plugins/backgroundSync/Queue.ts +440 -0
- package/src/plugins/backgroundSync/QueueDb.ts +176 -0
- package/src/plugins/backgroundSync/QueueStore.ts +160 -0
- package/src/plugins/backgroundSync/StorableRequest.ts +142 -0
- package/src/plugins/broadcastUpdate/BroadcastCacheUpdate.ts +161 -0
- package/src/plugins/broadcastUpdate/BroadcastUpdatePlugin.ts +42 -0
- package/src/plugins/broadcastUpdate/constants.ts +12 -0
- package/src/plugins/broadcastUpdate/responsesAreSame.ts +49 -0
- package/src/plugins/broadcastUpdate/types.ts +37 -0
- package/src/plugins/cacheableResponse/CacheableResponse.ts +144 -0
- package/src/plugins/cacheableResponse/CacheableResponsePlugin.ts +45 -0
- package/src/plugins/expiration/CacheExpiration.ts +193 -0
- package/src/plugins/expiration/ExpirationPlugin.ts +300 -0
- package/src/plugins/expiration/models/CacheTimestampsModel.ts +184 -0
- package/src/plugins/googleAnalytics/constants.ts +22 -0
- package/src/plugins/googleAnalytics/initialize.ts +209 -0
- package/src/plugins/precaching/PrecacheFallbackPlugin.ts +83 -0
- package/src/plugins/rangeRequests/RangeRequestsPlugin.ts +38 -0
- package/src/plugins/rangeRequests/createPartialResponse.ts +93 -0
- package/src/plugins/rangeRequests/utils/calculateEffectiveBoundaries.ts +59 -0
- package/src/plugins/rangeRequests/utils/parseRangeHeader.ts +55 -0
- package/src/registerQuotaErrorCallback.ts +34 -0
- package/src/setCacheNameDetails.ts +53 -0
- package/src/strategies/CacheFirst.ts +88 -0
- package/src/strategies/CacheOnly.ts +59 -0
- package/src/strategies/NetworkFirst.ts +229 -0
- package/src/strategies/NetworkOnly.ts +98 -0
- package/src/strategies/StaleWhileRevalidate.ts +110 -0
- package/src/strategies/Strategy.ts +204 -0
- package/src/strategies/StrategyHandler.ts +554 -0
- package/src/strategies/plugins/cacheOkAndOpaquePlugin.ts +26 -0
- package/src/strategies/utils/messages.ts +21 -0
- package/src/types.ts +358 -0
- package/src/utils/Deferred.ts +33 -0
- package/src/utils/PrecacheCacheKeyPlugin.ts +33 -0
- package/src/utils/PrecacheInstallReportPlugin.ts +47 -0
- package/src/utils/SerwistError.ts +41 -0
- package/src/utils/assert.ts +89 -0
- package/src/utils/cacheMatchIgnoreParams.ts +54 -0
- package/src/utils/cacheNames.ts +87 -0
- package/src/utils/canConstructReadableStream.ts +34 -0
- package/src/utils/canConstructResponseFromBodyStream.ts +37 -0
- package/src/utils/createCacheKey.ts +68 -0
- package/src/utils/deleteOutdatedCaches.ts +40 -0
- package/src/utils/dontWaitFor.ts +16 -0
- package/src/utils/executeQuotaErrorCallbacks.ts +33 -0
- package/src/utils/generateURLVariations.ts +55 -0
- package/src/utils/getFriendlyURL.ts +16 -0
- package/src/utils/logger.ts +95 -0
- package/src/utils/normalizeHandler.ts +40 -0
- package/src/utils/pluginUtils.ts +15 -0
- package/src/utils/printCleanupDetails.ts +38 -0
- package/src/utils/printInstallDetails.ts +53 -0
- package/src/utils/removeIgnoredSearchParams.ts +29 -0
- package/src/utils/resultingClientExists.ts +58 -0
- package/src/utils/timeout.ts +19 -0
- package/src/utils/waitUntil.ts +21 -0
- package/src/utils/welcome.ts +19 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { StrategyOptions } from "./Strategy.js";
|
|
2
|
+
import { Strategy } from "./Strategy.js";
|
|
3
|
+
import type { StrategyHandler } from "./StrategyHandler.js";
|
|
4
|
+
/**
|
|
5
|
+
* An implementation of the
|
|
6
|
+
* [stale-while-revalidate](https://developer.chrome.com/docs/workbox/caching-strategies-overview/#stale-while-revalidate)
|
|
7
|
+
* request strategy.
|
|
8
|
+
*
|
|
9
|
+
* Resources are requested from both the cache and the network in parallel.
|
|
10
|
+
* The strategy will respond with the cached version if available, otherwise
|
|
11
|
+
* wait for the network response. The cache is updated with the network response
|
|
12
|
+
* with each successful request.
|
|
13
|
+
*
|
|
14
|
+
* By default, this strategy will cache responses with a 200 status code as
|
|
15
|
+
* well as [opaque responses](https://developer.chrome.com/docs/workbox/caching-resources-during-runtime/#opaque-responses).
|
|
16
|
+
* Opaque responses are cross-origin requests where the response doesn't
|
|
17
|
+
* support [CORS](https://enable-cors.org/).
|
|
18
|
+
*
|
|
19
|
+
* If the network request fails, and there is no cache match, this will throw
|
|
20
|
+
* a `SerwistError` exception.
|
|
21
|
+
*/
|
|
22
|
+
export declare class StaleWhileRevalidate extends Strategy {
|
|
23
|
+
/**
|
|
24
|
+
* @param options
|
|
25
|
+
*/
|
|
26
|
+
constructor(options?: StrategyOptions);
|
|
27
|
+
/**
|
|
28
|
+
* @private
|
|
29
|
+
* @param request A request to run this strategy for.
|
|
30
|
+
* @param handler The event that triggered the request.
|
|
31
|
+
* @returns
|
|
32
|
+
*/
|
|
33
|
+
_handle(request: Request, handler: StrategyHandler): Promise<Response>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=StaleWhileRevalidate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StaleWhileRevalidate.d.ts","sourceRoot":"","sources":["../../src/strategies/StaleWhileRevalidate.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI5D;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,oBAAqB,SAAQ,QAAQ;IAChD;;OAEG;gBACS,OAAO,GAAE,eAAoB;IAUzC;;;;;OAKG;IACG,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;CAsD7E"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { HandlerCallbackOptions, RouteHandlerObject, SerwistPlugin } from "../types.js";
|
|
2
|
+
import { StrategyHandler } from "./StrategyHandler.js";
|
|
3
|
+
export interface StrategyOptions {
|
|
4
|
+
/**
|
|
5
|
+
* Cache name to store and retrieve requests. Defaults to Serwist's default cache names.
|
|
6
|
+
*/
|
|
7
|
+
cacheName?: string;
|
|
8
|
+
/**
|
|
9
|
+
* [Plugins](https://developer.chrome.com/docs/workbox/using-plugins)
|
|
10
|
+
* to use in conjunction with this caching strategy.
|
|
11
|
+
*/
|
|
12
|
+
plugins?: SerwistPlugin[];
|
|
13
|
+
/**
|
|
14
|
+
* Values passed along to the [`init`](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters)
|
|
15
|
+
* of [non-navigation](https://github.com/GoogleChrome/workbox/issues/1796) `fetch()` requests made by this strategy.
|
|
16
|
+
*/
|
|
17
|
+
fetchOptions?: RequestInit;
|
|
18
|
+
/**
|
|
19
|
+
* The [`CacheQueryOptions`](https://w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions)
|
|
20
|
+
* for any `cache.match()` or `cache.put()` calls made by this strategy.
|
|
21
|
+
*/
|
|
22
|
+
matchOptions?: CacheQueryOptions;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Classes extending the `Strategy` based class should implement this method,
|
|
26
|
+
* and leverage `serwist/strategies`'s `StrategyHandler` arg to perform all
|
|
27
|
+
* fetching and cache logic, which will ensure all relevant cache, cache options,
|
|
28
|
+
* fetch options and plugins are used (per the current strategy instance).
|
|
29
|
+
*/
|
|
30
|
+
export declare abstract class Strategy implements RouteHandlerObject {
|
|
31
|
+
cacheName: string;
|
|
32
|
+
plugins: SerwistPlugin[];
|
|
33
|
+
fetchOptions?: RequestInit;
|
|
34
|
+
matchOptions?: CacheQueryOptions;
|
|
35
|
+
protected abstract _handle(request: Request, handler: StrategyHandler): Promise<Response | undefined>;
|
|
36
|
+
/**
|
|
37
|
+
* Creates a new instance of the strategy and sets all documented option
|
|
38
|
+
* properties as public instance properties.
|
|
39
|
+
*
|
|
40
|
+
* Note: if a custom strategy class extends the base Strategy class and does
|
|
41
|
+
* not need more than these properties, it does not need to define its own
|
|
42
|
+
* constructor.
|
|
43
|
+
*
|
|
44
|
+
* @param options
|
|
45
|
+
*/
|
|
46
|
+
constructor(options?: StrategyOptions);
|
|
47
|
+
/**
|
|
48
|
+
* Perform a request strategy and returns a `Promise` that will resolve with
|
|
49
|
+
* a `Response`, invoking all relevant plugin callbacks.
|
|
50
|
+
*
|
|
51
|
+
* When a strategy instance is registered with a `Route`, this method is automatically
|
|
52
|
+
* called when the route matches.
|
|
53
|
+
*
|
|
54
|
+
* Alternatively, this method can be used in a standalone `FetchEvent`
|
|
55
|
+
* listener by passing it to `event.respondWith()`.
|
|
56
|
+
*
|
|
57
|
+
* @param options A `FetchEvent` or an object with the properties listed below.
|
|
58
|
+
* @param options.request A request to run this strategy for.
|
|
59
|
+
* @param options.event The event associated with the request.
|
|
60
|
+
* @param options.url
|
|
61
|
+
* @param options.params
|
|
62
|
+
*/
|
|
63
|
+
handle(options: FetchEvent | HandlerCallbackOptions): Promise<Response>;
|
|
64
|
+
/**
|
|
65
|
+
* Similar to `serwist/strategies`'s `Strategy.handle`, but
|
|
66
|
+
* instead of just returning a `Promise` that resolves to a `Response` it
|
|
67
|
+
* it will return an tuple of `[response, done]` promises, where the former
|
|
68
|
+
* (`response`) is equivalent to what `handle()` returns, and the latter is a
|
|
69
|
+
* Promise that will resolve once any promises that were added to
|
|
70
|
+
* `event.waitUntil()` as part of performing the strategy have completed.
|
|
71
|
+
*
|
|
72
|
+
* You can await the `done` promise to ensure any extra work performed by
|
|
73
|
+
* the strategy (usually caching responses) completes successfully.
|
|
74
|
+
*
|
|
75
|
+
* @param options A `FetchEvent` or `HandlerCallbackOptions` object.
|
|
76
|
+
* @returns A tuple of [response, done] promises that can be used to determine when the response resolves as
|
|
77
|
+
* well as when the handler has completed all its work.
|
|
78
|
+
*/
|
|
79
|
+
handleAll(options: FetchEvent | HandlerCallbackOptions): [Promise<Response>, Promise<void>];
|
|
80
|
+
_getResponse(handler: StrategyHandler, request: Request, event: ExtendableEvent): Promise<Response>;
|
|
81
|
+
_awaitComplete(responseDone: Promise<Response>, handler: StrategyHandler, request: Request, event: ExtendableEvent): Promise<void>;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=Strategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Strategy.d.ts","sourceRoot":"","sources":["../../src/strategies/Strategy.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAK7F,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B;;;OAGG;IACH,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B;;;OAGG;IACH,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAClC;AAED;;;;;GAKG;AACH,8BAAsB,QAAS,YAAW,kBAAkB;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,YAAY,CAAC,EAAE,iBAAiB,CAAC;IAEjC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAErG;;;;;;;;;OASG;gBACS,OAAO,GAAE,eAAoB;IAOzC;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,OAAO,EAAE,UAAU,GAAG,sBAAsB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAKvE;;;;;;;;;;;;;;OAcG;IACH,SAAS,CAAC,OAAO,EAAE,UAAU,GAAG,sBAAsB,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAqBrF,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;IAyCnG,cAAc,CAAC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CAqCzI"}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import type { HandlerCallbackOptions, MapLikeObject, SerwistPlugin, SerwistPluginCallbackParam } from "../types.js";
|
|
2
|
+
import type { Strategy } from "./Strategy.js";
|
|
3
|
+
/**
|
|
4
|
+
* A class created every time a Strategy instance instance calls `Strategy.handle` or
|
|
5
|
+
* `Strategy.handleAll` that wraps all fetch and cache actions around plugin callbacks
|
|
6
|
+
* and keeps track of when the strategy is "done" (i.e. all added `event.waitUntil()` promises
|
|
7
|
+
* have resolved).
|
|
8
|
+
*/
|
|
9
|
+
export declare class StrategyHandler {
|
|
10
|
+
/**
|
|
11
|
+
* The event associated with this request.
|
|
12
|
+
*/
|
|
13
|
+
event: ExtendableEvent;
|
|
14
|
+
/**
|
|
15
|
+
* The request the strategy is performing (passed to the strategy's
|
|
16
|
+
* `handle()` or `handleAll()` method).
|
|
17
|
+
*/
|
|
18
|
+
request: Request;
|
|
19
|
+
/**
|
|
20
|
+
* A `URL` instance of `request.url` (if passed to the strategy's
|
|
21
|
+
* `handle()` or `handleAll()` method).
|
|
22
|
+
* Note: the `url` param will be present if the strategy was invoked
|
|
23
|
+
* from a `Route` object.
|
|
24
|
+
*/
|
|
25
|
+
url?: URL;
|
|
26
|
+
/**
|
|
27
|
+
* A `param` value (if passed to the strategy's
|
|
28
|
+
* `handle()` or `handleAll()` method).
|
|
29
|
+
* Note: the `param` param will be present if the strategy was invoked
|
|
30
|
+
* from a `Route` object and the `serwist/strategies.matchCallback`
|
|
31
|
+
* returned a truthy value (it will be that value).
|
|
32
|
+
*/
|
|
33
|
+
params?: string[] | MapLikeObject;
|
|
34
|
+
private _cacheKeys;
|
|
35
|
+
private readonly _strategy;
|
|
36
|
+
private readonly _handlerDeferred;
|
|
37
|
+
private readonly _extendLifetimePromises;
|
|
38
|
+
private readonly _plugins;
|
|
39
|
+
private readonly _pluginStateMap;
|
|
40
|
+
/**
|
|
41
|
+
* Creates a new instance associated with the passed strategy and event
|
|
42
|
+
* that's handling the request.
|
|
43
|
+
*
|
|
44
|
+
* The constructor also initializes the state that will be passed to each of
|
|
45
|
+
* the plugins handling this request.
|
|
46
|
+
*
|
|
47
|
+
* @param strategy
|
|
48
|
+
* @param options
|
|
49
|
+
*/
|
|
50
|
+
constructor(strategy: Strategy, options: HandlerCallbackOptions & {
|
|
51
|
+
request: HandlerCallbackOptions["request"] & Request;
|
|
52
|
+
});
|
|
53
|
+
/**
|
|
54
|
+
* Fetches a given request (and invokes any applicable plugin callback
|
|
55
|
+
* methods) using the `fetchOptions` (for non-navigation requests) and
|
|
56
|
+
* `plugins` defined on the `Strategy` object.
|
|
57
|
+
*
|
|
58
|
+
* The following plugin lifecycle methods are invoked when using this method:
|
|
59
|
+
* - `requestWillFetch()`
|
|
60
|
+
* - `fetchDidSucceed()`
|
|
61
|
+
* - `fetchDidFail()`
|
|
62
|
+
*
|
|
63
|
+
* @param input The URL or request to fetch.
|
|
64
|
+
* @returns
|
|
65
|
+
*/
|
|
66
|
+
fetch(input: RequestInfo): Promise<Response>;
|
|
67
|
+
/**
|
|
68
|
+
* Calls `this.fetch()` and (in the background) runs `this.cachePut()` on
|
|
69
|
+
* the response generated by `this.fetch()`.
|
|
70
|
+
*
|
|
71
|
+
* The call to `this.cachePut()` automatically invokes `this.waitUntil()`,
|
|
72
|
+
* so you do not have to manually call `waitUntil()` on the event.
|
|
73
|
+
*
|
|
74
|
+
* @param input The request or URL to fetch and cache.
|
|
75
|
+
* @returns
|
|
76
|
+
*/
|
|
77
|
+
fetchAndCachePut(input: RequestInfo): Promise<Response>;
|
|
78
|
+
/**
|
|
79
|
+
* Matches a request from the cache (and invokes any applicable plugin
|
|
80
|
+
* callback methods) using the `cacheName`, `matchOptions`, and `plugins`
|
|
81
|
+
* defined on the strategy object.
|
|
82
|
+
*
|
|
83
|
+
* The following plugin lifecycle methods are invoked when using this method:
|
|
84
|
+
* - cacheKeyWillByUsed()
|
|
85
|
+
* - cachedResponseWillByUsed()
|
|
86
|
+
*
|
|
87
|
+
* @param key The Request or URL to use as the cache key.
|
|
88
|
+
* @returns A matching response, if found.
|
|
89
|
+
*/
|
|
90
|
+
cacheMatch(key: RequestInfo): Promise<Response | undefined>;
|
|
91
|
+
/**
|
|
92
|
+
* Puts a request/response pair in the cache (and invokes any applicable
|
|
93
|
+
* plugin callback methods) using the `cacheName` and `plugins` defined on
|
|
94
|
+
* the strategy object.
|
|
95
|
+
*
|
|
96
|
+
* The following plugin lifecycle methods are invoked when using this method:
|
|
97
|
+
* - cacheKeyWillByUsed()
|
|
98
|
+
* - cacheWillUpdate()
|
|
99
|
+
* - cacheDidUpdate()
|
|
100
|
+
*
|
|
101
|
+
* @param key The request or URL to use as the cache key.
|
|
102
|
+
* @param response The response to cache.
|
|
103
|
+
* @returns `false` if a cacheWillUpdate caused the response
|
|
104
|
+
* not be cached, and `true` otherwise.
|
|
105
|
+
*/
|
|
106
|
+
cachePut(key: RequestInfo, response: Response): Promise<boolean>;
|
|
107
|
+
/**
|
|
108
|
+
* Checks the list of plugins for the `cacheKeyWillBeUsed` callback, and
|
|
109
|
+
* executes any of those callbacks found in sequence. The final `Request`
|
|
110
|
+
* object returned by the last plugin is treated as the cache key for cache
|
|
111
|
+
* reads and/or writes. If no `cacheKeyWillBeUsed` plugin callbacks have
|
|
112
|
+
* been registered, the passed request is returned unmodified
|
|
113
|
+
*
|
|
114
|
+
* @param request
|
|
115
|
+
* @param mode
|
|
116
|
+
* @returns
|
|
117
|
+
*/
|
|
118
|
+
getCacheKey(request: Request, mode: "read" | "write"): Promise<Request>;
|
|
119
|
+
/**
|
|
120
|
+
* Returns true if the strategy has at least one plugin with the given
|
|
121
|
+
* callback.
|
|
122
|
+
*
|
|
123
|
+
* @param name The name of the callback to check for.
|
|
124
|
+
* @returns
|
|
125
|
+
*/
|
|
126
|
+
hasCallback<C extends keyof SerwistPlugin>(name: C): boolean;
|
|
127
|
+
/**
|
|
128
|
+
* Runs all plugin callbacks matching the given name, in order, passing the
|
|
129
|
+
* given param object (merged ith the current plugin state) as the only
|
|
130
|
+
* argument.
|
|
131
|
+
*
|
|
132
|
+
* Note: since this method runs all plugins, it's not suitable for cases
|
|
133
|
+
* where the return value of a callback needs to be applied prior to calling
|
|
134
|
+
* the next callback. See `serwist/strategies.iterateCallbacks` for how to handle that case.
|
|
135
|
+
*
|
|
136
|
+
* @param name The name of the callback to run within each plugin.
|
|
137
|
+
* @param param The object to pass as the first (and only) param when executing each callback. This object will be merged with the
|
|
138
|
+
* current plugin state prior to callback execution.
|
|
139
|
+
*/
|
|
140
|
+
runCallbacks<C extends keyof NonNullable<SerwistPlugin>>(name: C, param: Omit<SerwistPluginCallbackParam[C], "state">): Promise<void>;
|
|
141
|
+
/**
|
|
142
|
+
* Accepts a callback and returns an iterable of matching plugin callbacks,
|
|
143
|
+
* where each callback is wrapped with the current handler state (i.e. when
|
|
144
|
+
* you call each callback, whatever object parameter you pass it will
|
|
145
|
+
* be merged with the plugin's current state).
|
|
146
|
+
*
|
|
147
|
+
* @param name The name fo the callback to run
|
|
148
|
+
* @returns
|
|
149
|
+
*/
|
|
150
|
+
iterateCallbacks<C extends keyof SerwistPlugin>(name: C): Generator<NonNullable<SerwistPlugin[C]>>;
|
|
151
|
+
/**
|
|
152
|
+
* Adds a promise to the
|
|
153
|
+
* [extend lifetime promises](https://w3c.github.io/ServiceWorker/#extendableevent-extend-lifetime-promises)
|
|
154
|
+
* of the event event associated with the request being handled (usually a `FetchEvent`).
|
|
155
|
+
*
|
|
156
|
+
* Note: you can await
|
|
157
|
+
* `serwist/strategies.StrategyHandler.doneWaiting`
|
|
158
|
+
* to know when all added promises have settled.
|
|
159
|
+
*
|
|
160
|
+
* @param promise A promise to add to the extend lifetime promises of
|
|
161
|
+
* the event that triggered the request.
|
|
162
|
+
*/
|
|
163
|
+
waitUntil<T>(promise: Promise<T>): Promise<T>;
|
|
164
|
+
/**
|
|
165
|
+
* Returns a promise that resolves once all promises passed to
|
|
166
|
+
* `serwist/strategies.StrategyHandler.waitUntil` have settled.
|
|
167
|
+
*
|
|
168
|
+
* Note: any work done after `doneWaiting()` settles should be manually
|
|
169
|
+
* passed to an event's `waitUntil()` method (not this handler's
|
|
170
|
+
* `waitUntil()` method), otherwise the service worker thread my be killed
|
|
171
|
+
* prior to your work completing.
|
|
172
|
+
*/
|
|
173
|
+
doneWaiting(): Promise<void>;
|
|
174
|
+
/**
|
|
175
|
+
* Stops running the strategy and immediately resolves any pending
|
|
176
|
+
* `waitUntil()` promises.
|
|
177
|
+
*/
|
|
178
|
+
destroy(): void;
|
|
179
|
+
/**
|
|
180
|
+
* This method will call `cacheWillUpdate` on the available plugins (or use
|
|
181
|
+
* status === 200) to determine if the response is safe and valid to cache.
|
|
182
|
+
*
|
|
183
|
+
* @param response
|
|
184
|
+
* @returns
|
|
185
|
+
* @private
|
|
186
|
+
*/
|
|
187
|
+
_ensureResponseSafeToCache(response: Response): Promise<Response | undefined>;
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=StrategyHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StrategyHandler.d.ts","sourceRoot":"","sources":["../../src/strategies/StrategyHandler.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,sBAAsB,EAAE,aAAa,EAAE,aAAa,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AASpH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAM9C;;;;;GAKG;AACH,qBAAa,eAAe;IAC1B;;OAEG;IACI,KAAK,EAAE,eAAe,CAAC;IAC9B;;;OAGG;IACI,OAAO,EAAE,OAAO,CAAC;IACxB;;;;;OAKG;IACI,GAAG,CAAC,EAAE,GAAG,CAAC;IACjB;;;;;;OAMG;IACI,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC;IAEzC,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAiB;IACzD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoC;IAEpE;;;;;;;;;OASG;gBAED,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,sBAAsB,GAAG;QAChC,OAAO,EAAE,sBAAsB,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;KACtD;IAsCH;;;;;;;;;;;;OAYG;IACG,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;IAyElD;;;;;;;;;OASG;IACG,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;IAS7D;;;;;;;;;;;OAWG;IACG,UAAU,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IA+BjE;;;;;;;;;;;;;;OAcG;IACG,QAAQ,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IA8FtE;;;;;;;;;;OAUG;IACG,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAqB7E;;;;;;OAMG;IACH,WAAW,CAAC,CAAC,SAAS,MAAM,aAAa,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO;IAS5D;;;;;;;;;;;;OAYG;IACG,YAAY,CAAC,CAAC,SAAS,MAAM,WAAW,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3I;;;;;;;;OAQG;IACF,gBAAgB,CAAC,CAAC,SAAS,MAAM,aAAa,EAAE,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAgBnG;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAK7C;;;;;;;;OAQG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAOlC;;;OAGG;IACH,OAAO,IAAI,IAAI;IAIf;;;;;;;OAOG;IACG,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;CAuCpF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cacheOkAndOpaquePlugin.d.ts","sourceRoot":"","sources":["../../../src/strategies/plugins/cacheOkAndOpaquePlugin.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,eAAO,MAAM,sBAAsB,EAAE,aAepC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/strategies/utils/messages.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,QAAQ;kCACW,MAAM,WAAW,OAAO,KAAG,MAAM;oCAC/B,QAAQ,KAAG,IAAI;CAOhD,CAAC"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
import type { HTTPMethod } from "./constants.js";
|
|
2
|
+
export type PromiseOrNot<T> = T | Promise<T>;
|
|
3
|
+
export interface MapLikeObject {
|
|
4
|
+
[key: string]: any;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Using a plain `MapLikeObject` for now, but could extend/restrict this
|
|
8
|
+
* in the future.
|
|
9
|
+
*/
|
|
10
|
+
export type PluginState = MapLikeObject;
|
|
11
|
+
/**
|
|
12
|
+
* Options passed to a `RouteMatchCallback` function.
|
|
13
|
+
*/
|
|
14
|
+
export interface RouteMatchCallbackOptions {
|
|
15
|
+
event: ExtendableEvent;
|
|
16
|
+
request: Request;
|
|
17
|
+
sameOrigin: boolean;
|
|
18
|
+
url: URL;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* The "match" callback is used to determine if a `Route` should apply for a
|
|
22
|
+
* particular URL and request. When matching occurs in response to a fetch
|
|
23
|
+
* event from the client, the `event` object is also supplied. However, since
|
|
24
|
+
* the match callback can be invoked outside of a fetch event, matching logic
|
|
25
|
+
* should not assume the `event` object will always be available.
|
|
26
|
+
* If the match callback returns a truthy value, the matching route's
|
|
27
|
+
* `RouteHandlerCallback` will be invoked immediately. If the value returned
|
|
28
|
+
* is a non-empty array or object, that value will be set on the handler's
|
|
29
|
+
* `options.params` argument.
|
|
30
|
+
*/
|
|
31
|
+
export type RouteMatchCallback = (options: RouteMatchCallbackOptions) => any;
|
|
32
|
+
/**
|
|
33
|
+
* Options passed to a `RouteHandlerCallback` function.
|
|
34
|
+
*/
|
|
35
|
+
export interface RouteHandlerCallbackOptions {
|
|
36
|
+
/**
|
|
37
|
+
* The event associated with the request.
|
|
38
|
+
*/
|
|
39
|
+
event: ExtendableEvent;
|
|
40
|
+
/**
|
|
41
|
+
* A request to run this strategy for.
|
|
42
|
+
*/
|
|
43
|
+
request: Request;
|
|
44
|
+
url: URL;
|
|
45
|
+
params?: string[] | MapLikeObject;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Options passed to a `ManualHandlerCallback` function.
|
|
49
|
+
*/
|
|
50
|
+
export interface ManualHandlerCallbackOptions {
|
|
51
|
+
/**
|
|
52
|
+
* The event associated with the request.
|
|
53
|
+
*/
|
|
54
|
+
event: ExtendableEvent;
|
|
55
|
+
/**
|
|
56
|
+
* A request to run this strategy for.
|
|
57
|
+
*/
|
|
58
|
+
request: Request | string;
|
|
59
|
+
url?: never;
|
|
60
|
+
/**
|
|
61
|
+
* The return value from `serwist.matchCallback` (if applicable).
|
|
62
|
+
*/
|
|
63
|
+
params?: never;
|
|
64
|
+
}
|
|
65
|
+
export type HandlerCallbackOptions = RouteHandlerCallbackOptions | ManualHandlerCallbackOptions;
|
|
66
|
+
/**
|
|
67
|
+
* The "handler" callback is invoked whenever a `Router` matches a URL/Request
|
|
68
|
+
* to a `Route` via its `RouteMatchCallback`. This handler callback should
|
|
69
|
+
* return a `Promise` that resolves with a `Response`.
|
|
70
|
+
*
|
|
71
|
+
* If a non-empty array or object is returned by the `RouteMatchCallback` it
|
|
72
|
+
* will be passed in as this handler's `options.params` argument.
|
|
73
|
+
*/
|
|
74
|
+
export type RouteHandlerCallback = (options: RouteHandlerCallbackOptions) => Promise<Response>;
|
|
75
|
+
/**
|
|
76
|
+
* The "handler" callback is invoked whenever a `Router` matches a URL/Request
|
|
77
|
+
* to a `Route` via its `RouteMatchCallback`. This handler callback should
|
|
78
|
+
* return a `Promise` that resolves with a `Response`.
|
|
79
|
+
*
|
|
80
|
+
* If a non-empty array or object is returned by the `RouteMatchCallback` it
|
|
81
|
+
* will be passed in as this handler's `options.params` argument.
|
|
82
|
+
*/
|
|
83
|
+
export type ManualHandlerCallback = (options: ManualHandlerCallbackOptions) => Promise<Response>;
|
|
84
|
+
/**
|
|
85
|
+
* An object with a `handle` method of type `RouteHandlerCallback`.
|
|
86
|
+
*
|
|
87
|
+
* A `Route` object can be created with either an `RouteHandlerCallback`
|
|
88
|
+
* function or this `RouteHandler` object. The benefit of the `RouteHandler`
|
|
89
|
+
* is it can be extended (as is done by the `serwist/strategies` package).
|
|
90
|
+
*/
|
|
91
|
+
export interface RouteHandlerObject {
|
|
92
|
+
handle: RouteHandlerCallback;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Either a `RouteHandlerCallback` or a `RouteHandlerObject`.
|
|
96
|
+
* Most APIs that accept route handlers take either.
|
|
97
|
+
*/
|
|
98
|
+
export type RouteHandler = RouteHandlerCallback | RouteHandlerObject;
|
|
99
|
+
export interface HandlerWillStartCallbackParam {
|
|
100
|
+
request: Request;
|
|
101
|
+
event: ExtendableEvent;
|
|
102
|
+
state?: PluginState;
|
|
103
|
+
}
|
|
104
|
+
export type HandlerWillStartCallback = (param: HandlerWillStartCallbackParam) => Promise<any>;
|
|
105
|
+
export interface CacheDidUpdateCallbackParam {
|
|
106
|
+
/**
|
|
107
|
+
* Name of the cache the responses belong to. This is included in the
|
|
108
|
+
* broadcast message.
|
|
109
|
+
*/
|
|
110
|
+
cacheName: string;
|
|
111
|
+
/**
|
|
112
|
+
* Possibly updated response to compare.
|
|
113
|
+
*/
|
|
114
|
+
newResponse: Response;
|
|
115
|
+
/**
|
|
116
|
+
* The `Request` object for the cached entry.
|
|
117
|
+
*/
|
|
118
|
+
request: Request;
|
|
119
|
+
/**
|
|
120
|
+
* The event that triggered this possible cache update.
|
|
121
|
+
*/
|
|
122
|
+
event: ExtendableEvent;
|
|
123
|
+
/**
|
|
124
|
+
* Cached response to compare.
|
|
125
|
+
*/
|
|
126
|
+
oldResponse?: Response | null;
|
|
127
|
+
state?: PluginState;
|
|
128
|
+
}
|
|
129
|
+
export type CacheDidUpdateCallback = (param: CacheDidUpdateCallbackParam) => PromiseOrNot<any>;
|
|
130
|
+
export interface CacheKeyWillBeUsedCallbackParam {
|
|
131
|
+
mode: string;
|
|
132
|
+
request: Request;
|
|
133
|
+
event: ExtendableEvent;
|
|
134
|
+
params?: any;
|
|
135
|
+
state?: PluginState;
|
|
136
|
+
}
|
|
137
|
+
export type CacheKeyWillBeUsedCallback = (param: CacheKeyWillBeUsedCallbackParam) => PromiseOrNot<Request | string>;
|
|
138
|
+
export interface CacheWillUpdateCallbackParam {
|
|
139
|
+
request: Request;
|
|
140
|
+
response: Response;
|
|
141
|
+
event: ExtendableEvent;
|
|
142
|
+
state?: PluginState;
|
|
143
|
+
}
|
|
144
|
+
export type CacheWillUpdateCallback = (param: CacheWillUpdateCallbackParam) => PromiseOrNot<any>;
|
|
145
|
+
export interface CachedResponseWillBeUsedCallbackParam {
|
|
146
|
+
/**
|
|
147
|
+
* Name of the cache the response is in.
|
|
148
|
+
*/
|
|
149
|
+
cacheName: string;
|
|
150
|
+
/**
|
|
151
|
+
* The original request, which may or may not
|
|
152
|
+
* contain a Range: header.
|
|
153
|
+
*/
|
|
154
|
+
request: Request;
|
|
155
|
+
/**
|
|
156
|
+
* The complete cached `Response` object that's been read
|
|
157
|
+
* from a cache and whose freshness should be checked.
|
|
158
|
+
*/
|
|
159
|
+
cachedResponse?: Response;
|
|
160
|
+
event: ExtendableEvent;
|
|
161
|
+
matchOptions?: CacheQueryOptions;
|
|
162
|
+
state?: PluginState;
|
|
163
|
+
}
|
|
164
|
+
export type CachedResponseWillBeUsedCallback = (param: CachedResponseWillBeUsedCallbackParam) => PromiseOrNot<any>;
|
|
165
|
+
export interface FetchDidFailCallbackParam {
|
|
166
|
+
error: Error;
|
|
167
|
+
originalRequest: Request;
|
|
168
|
+
request: Request;
|
|
169
|
+
event: ExtendableEvent;
|
|
170
|
+
state?: PluginState;
|
|
171
|
+
}
|
|
172
|
+
export type FetchDidFailCallback = (param: FetchDidFailCallbackParam) => PromiseOrNot<any>;
|
|
173
|
+
export interface FetchDidSucceedCallbackParam {
|
|
174
|
+
request: Request;
|
|
175
|
+
response: Response;
|
|
176
|
+
event: ExtendableEvent;
|
|
177
|
+
state?: PluginState;
|
|
178
|
+
}
|
|
179
|
+
export type FetchDidSucceedCallback = (param: FetchDidSucceedCallbackParam) => PromiseOrNot<Response>;
|
|
180
|
+
export interface RequestWillFetchCallbackParam {
|
|
181
|
+
request: Request;
|
|
182
|
+
event: ExtendableEvent;
|
|
183
|
+
state?: PluginState;
|
|
184
|
+
}
|
|
185
|
+
export type RequestWillFetchCallback = (param: RequestWillFetchCallbackParam) => PromiseOrNot<Request>;
|
|
186
|
+
export interface HandlerWillRespondCallbackParam {
|
|
187
|
+
request: Request;
|
|
188
|
+
response: Response;
|
|
189
|
+
event: ExtendableEvent;
|
|
190
|
+
state?: PluginState;
|
|
191
|
+
}
|
|
192
|
+
export type HandlerWillRespondCallback = (param: HandlerWillRespondCallbackParam) => PromiseOrNot<Response>;
|
|
193
|
+
export interface HandlerDidErrorCallbackParam {
|
|
194
|
+
request: Request;
|
|
195
|
+
event: ExtendableEvent;
|
|
196
|
+
error: Error;
|
|
197
|
+
state?: PluginState;
|
|
198
|
+
}
|
|
199
|
+
export type HandlerDidErrorCallback = (param: HandlerDidErrorCallbackParam) => PromiseOrNot<Response | undefined>;
|
|
200
|
+
export interface HandlerDidRespondCallbackParam {
|
|
201
|
+
request: Request;
|
|
202
|
+
event: ExtendableEvent;
|
|
203
|
+
response?: Response;
|
|
204
|
+
state?: PluginState;
|
|
205
|
+
}
|
|
206
|
+
export type HandlerDidRespondCallback = (param: HandlerDidRespondCallbackParam) => PromiseOrNot<any>;
|
|
207
|
+
export interface HandlerDidCompleteCallbackParam {
|
|
208
|
+
request: Request;
|
|
209
|
+
error?: Error;
|
|
210
|
+
event: ExtendableEvent;
|
|
211
|
+
response?: Response;
|
|
212
|
+
state?: PluginState;
|
|
213
|
+
}
|
|
214
|
+
export type HandlerDidCompleteCallback = (param: HandlerDidCompleteCallbackParam) => PromiseOrNot<any>;
|
|
215
|
+
/**
|
|
216
|
+
* An object with optional lifecycle callback properties for the fetch and
|
|
217
|
+
* cache operations.
|
|
218
|
+
*/
|
|
219
|
+
export declare interface SerwistPlugin {
|
|
220
|
+
cacheDidUpdate?: CacheDidUpdateCallback;
|
|
221
|
+
cachedResponseWillBeUsed?: CachedResponseWillBeUsedCallback;
|
|
222
|
+
cacheKeyWillBeUsed?: CacheKeyWillBeUsedCallback;
|
|
223
|
+
cacheWillUpdate?: CacheWillUpdateCallback;
|
|
224
|
+
fetchDidFail?: FetchDidFailCallback;
|
|
225
|
+
fetchDidSucceed?: FetchDidSucceedCallback;
|
|
226
|
+
handlerDidComplete?: HandlerDidCompleteCallback;
|
|
227
|
+
handlerDidError?: HandlerDidErrorCallback;
|
|
228
|
+
handlerDidRespond?: HandlerDidRespondCallback;
|
|
229
|
+
handlerWillRespond?: HandlerWillRespondCallback;
|
|
230
|
+
handlerWillStart?: HandlerWillStartCallback;
|
|
231
|
+
requestWillFetch?: RequestWillFetchCallback;
|
|
232
|
+
}
|
|
233
|
+
export interface SerwistPluginCallbackParam {
|
|
234
|
+
cacheDidUpdate: CacheDidUpdateCallbackParam;
|
|
235
|
+
cachedResponseWillBeUsed: CachedResponseWillBeUsedCallbackParam;
|
|
236
|
+
cacheKeyWillBeUsed: CacheKeyWillBeUsedCallbackParam;
|
|
237
|
+
cacheWillUpdate: CacheWillUpdateCallbackParam;
|
|
238
|
+
fetchDidFail: FetchDidFailCallbackParam;
|
|
239
|
+
fetchDidSucceed: FetchDidSucceedCallbackParam;
|
|
240
|
+
handlerDidComplete: HandlerDidCompleteCallbackParam;
|
|
241
|
+
handlerDidError: HandlerDidErrorCallbackParam;
|
|
242
|
+
handlerDidRespond: HandlerDidRespondCallbackParam;
|
|
243
|
+
handlerWillRespond: HandlerWillRespondCallbackParam;
|
|
244
|
+
handlerWillStart: HandlerWillStartCallbackParam;
|
|
245
|
+
requestWillFetch: RequestWillFetchCallbackParam;
|
|
246
|
+
}
|
|
247
|
+
export interface SerwistGlobalConfig {
|
|
248
|
+
/**
|
|
249
|
+
* Whether Serwist should disable development logging.
|
|
250
|
+
*
|
|
251
|
+
* @default false
|
|
252
|
+
*/
|
|
253
|
+
__WB_DISABLE_DEV_LOGS: boolean;
|
|
254
|
+
}
|
|
255
|
+
export interface RuntimeCaching {
|
|
256
|
+
/**
|
|
257
|
+
* The HTTP method to match against. The default value of `'GET'` is normally
|
|
258
|
+
* sufficient, unless you explicitly need to match `'POST'`, `'PUT'`, or
|
|
259
|
+
* another type of request.
|
|
260
|
+
* @default "GET"
|
|
261
|
+
*/
|
|
262
|
+
method?: HTTPMethod;
|
|
263
|
+
/**
|
|
264
|
+
* This match criteria determines whether the configured handler will
|
|
265
|
+
* generate a response for any requests that don't match one of the precached
|
|
266
|
+
* URLs. If multiple `RuntimeCaching` routes are defined, then the first one
|
|
267
|
+
* whose `matcher` matches will be the one that responds.
|
|
268
|
+
*
|
|
269
|
+
* This value directly maps to the first parameter passed to
|
|
270
|
+
* `Serwist.registerRoute`. It's recommended to use a
|
|
271
|
+
* `serwist.RouteMatchCallback` function for greatest flexibility.
|
|
272
|
+
*/
|
|
273
|
+
matcher: RegExp | string | RouteMatchCallback;
|
|
274
|
+
/**
|
|
275
|
+
* This determines how the runtime route will generate a response. It
|
|
276
|
+
* can be a `serwist.RouteHandler` callback function with custom
|
|
277
|
+
* response logic.
|
|
278
|
+
*/
|
|
279
|
+
handler: RouteHandler;
|
|
280
|
+
}
|
|
281
|
+
export interface InstallResult {
|
|
282
|
+
updatedURLs: string[];
|
|
283
|
+
notUpdatedURLs: string[];
|
|
284
|
+
}
|
|
285
|
+
export interface CleanupResult {
|
|
286
|
+
deletedCacheRequests: string[];
|
|
287
|
+
}
|
|
288
|
+
export declare interface PrecacheEntry {
|
|
289
|
+
integrity?: string;
|
|
290
|
+
url: string;
|
|
291
|
+
revision?: string | null;
|
|
292
|
+
}
|
|
293
|
+
export interface PrecacheRouteOptions {
|
|
294
|
+
/**
|
|
295
|
+
* The `directoryIndex` will check cache entries for a URL ending with '/'
|
|
296
|
+
* to see if there is a hit when appending the `directoryIndex` value.
|
|
297
|
+
*/
|
|
298
|
+
directoryIndex?: string | null;
|
|
299
|
+
/**
|
|
300
|
+
* An array of RegExp's to remove search params when looking for a cache match.
|
|
301
|
+
*/
|
|
302
|
+
ignoreURLParametersMatching?: RegExp[];
|
|
303
|
+
/**
|
|
304
|
+
* The `cleanURLs` option will check the cache for the URL with a `.html` added
|
|
305
|
+
* to the end of the end.
|
|
306
|
+
*/
|
|
307
|
+
cleanURLs?: boolean;
|
|
308
|
+
/**
|
|
309
|
+
* This is a function that should take a URL and return an array of
|
|
310
|
+
* alternative URLs that should be checked for precache matches.
|
|
311
|
+
*/
|
|
312
|
+
urlManipulation?: UrlManipulation;
|
|
313
|
+
}
|
|
314
|
+
export type UrlManipulation = ({ url }: {
|
|
315
|
+
url: URL;
|
|
316
|
+
}) => URL[];
|
|
317
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|