UNPKG

serwist

Version:

A Swiss Army knife for service workers.

892 lines (891 loc) 30.3 kB
import { B as RouteHandler, E as InstallResult, G as RouteMatchCallbackOptions, H as RouteHandlerCallbackOptions, J as SerwistPlugin, K as RuntimeCaching, M as PrecacheEntry, P as PrecacheRouteOptions, Q as Strategy, V as RouteHandlerCallback, W as RouteMatchCallback, l as CleanupResult, tt as HTTPMethod, v as HandlerDidErrorCallbackParam } from "./chunks/types-CKER0KBv.js"; import { t as Route } from "./chunks/Route-wAAof_Tq.js"; //#region src/legacy/addPlugins.d.ts /** * Adds plugins to the precaching strategy. * * @param plugins * @deprecated */ declare const addPlugins: (plugins: SerwistPlugin[]) => void; //#endregion //#region src/legacy/addRoute.d.ts /** * Add a `fetch` listener that will * respond to [network requests](https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers#Custom_responses_to_requests) * with precached assets to the service worker. * * As for requests for assets that aren't precached, the `fetch` event will not be * responded to, allowing the event to fall through to other `fetch` event listeners. * * @param options See {@linkcode PrecacheRouteOptions}. * @deprecated */ declare const addRoute: (options?: PrecacheRouteOptions) => void; //#endregion //#region src/legacy/createHandlerBoundToURL.d.ts /** * Helper function that calls {@linkcode PrecacheController.createHandlerBoundToURL} * on the default {@linkcode PrecacheController} instance. * * If you are creating your own {@linkcode PrecacheController}, then call the * {@linkcode PrecacheController.createHandlerBoundToURL} function on that instance * instead of using this function. * * @param url The precached URL which will be used to look up the response. * @param fallbackToNetwork Whether to attempt to get the * response from the network if there's a precache miss. * @return * @deprecated */ declare const createHandlerBoundToURL: (url: string) => RouteHandlerCallback; //#endregion //#region src/legacy/PrecacheController.d.ts interface PrecacheControllerOptions { /** * The cache to use for precaching. */ cacheName?: string; /** * Plugins to use when precaching as well as responding to fetch * events for precached assets. */ plugins?: SerwistPlugin[]; /** * Whether to attempt to get the response from the network if there's * a precache miss. */ fallbackToNetwork?: boolean; /** * The number of precache requests that should be made concurrently. * * @default 1 */ concurrentPrecaching?: number; } /** * Performs efficient precaching of assets. * @deprecated */ declare class PrecacheController { private _installAndActiveListenersAdded?; private _concurrentPrecaching; private readonly _strategy; private readonly _urlsToCacheKeys; private readonly _urlsToCacheModes; private readonly _cacheKeysToIntegrities; /** * Create a new PrecacheController. * * @param options */ constructor({ cacheName, plugins, fallbackToNetwork, concurrentPrecaching }?: PrecacheControllerOptions); /** * The strategy created by this controller and * used to cache assets and respond to `fetch` events. */ get strategy(): Strategy; /** * Adds items to the precache list, removing any duplicates and * stores the files in the precache cache when the service * worker installs. * * This method can be called multiple times. * * @param entries Array of entries to precache. */ precache(entries: (PrecacheEntry | string)[]): void; /** * This method will add items to the precache list, removing duplicates * and ensuring the information is valid. * * @param entries Array of entries to precache. */ addToCacheList(entries: (PrecacheEntry | string)[]): void; /** * Precaches new and updated assets. Call this method from the service worker * install event. * * Note: this method calls `event.waitUntil()` for you, so you do not need * to call it yourself in your event handlers. * * @param event * @returns */ install(event: ExtendableEvent): Promise<InstallResult>; /** * Deletes assets that are no longer present in the current precache manifest. * Call this method from the service worker activate event. * * Note: this method calls `event.waitUntil()` for you, so you do not need * to call it yourself in your event handlers. * * @param event * @returns */ activate(event: ExtendableEvent): Promise<CleanupResult>; /** * Returns a mapping of a precached URL to the corresponding cache key, taking * into account the revision information for the URL. * * @returns A URL to cache key mapping. */ getURLsToCacheKeys(): Map<string, string>; /** * Returns a list of all the URLs that have been precached by the current * service worker. * * @returns The precached URLs. */ getCachedURLs(): string[]; /** * Returns the cache key used for storing a given URL. If that URL is * unversioned, like `/index.html', then the cache key will be the original * URL with a search parameter appended to it. * * @param url A URL whose cache key you want to look up. * @returns The versioned URL that corresponds to a cache key * for the original URL, or undefined if that URL isn't precached. */ getCacheKeyForURL(url: string): string | undefined; /** * @param url A cache key whose SRI you want to look up. * @returns The subresource integrity associated with the cache key, * or undefined if it's not set. */ getIntegrityForCacheKey(cacheKey: string): string | undefined; /** * This acts as a drop-in replacement for * [`cache.match()`](https://developer.mozilla.org/en-US/docs/Web/API/Cache/match) * with the following differences: * * - It knows what the name of the precache is, and only checks in that cache. * - It allows you to pass in an "original" URL without versioning parameters, * and it will automatically look up the correct cache key for the currently * active revision of that URL. * * E.g., `matchPrecache('index.html')` will find the correct precached * response for the currently active service worker, even if the actual cache * key is `'/index.html?__WB_REVISION__=1234abcd'`. * * @param request The key (without revisioning parameters) * to look up in the precache. * @returns */ matchPrecache(request: string | Request): Promise<Response | undefined>; /** * Returns a function that looks up `url` in the precache (taking into * account revision information), and returns the corresponding `Response`. * * @param url The precached URL which will be used to lookup the response. * @return */ createHandlerBoundToURL(url: string): RouteHandlerCallback; } //#endregion //#region src/legacy/PrecacheFallbackPlugin.d.ts /** * @deprecated */ interface PrecacheFallbackEntry { /** * A function that checks whether the fallback entry can be used * for a request. */ matcher: (param: HandlerDidErrorCallbackParam) => boolean; /** * A precached URL to be used as a fallback. */ url: string; } /** * @deprecated */ interface PrecacheFallbackPluginOptions { /** * Precached URLs to be used as the fallback * if the associated strategy can't generate a response. */ fallbackUrls: (string | PrecacheFallbackEntry)[]; /** * An optional {@linkcode PrecacheController} instance. If not provided, * the default {@linkcode PrecacheController} will be used. */ precacheController?: PrecacheController; } /** * A class that allows you to specify offline fallbacks * to be used when a given strategy is unable to generate a response. * * It does this by intercepting the `handlerDidError` plugin callback * and returning a precached response, taking the expected revision parameter * into account automatically. * * Unless you explicitly pass in a {@linkcode PrecacheController} instance to the * constructor, the default instance will be used. * * @deprecated */ declare class PrecacheFallbackPlugin implements SerwistPlugin { private readonly _fallbackUrls; private readonly _precacheController; /** * Constructs a new instance with the associated `fallbackUrls`. * * @param config */ constructor({ fallbackUrls, precacheController }: PrecacheFallbackPluginOptions); /** * @returns The precache response for one of the fallback URLs, or `undefined` if * nothing satisfies the conditions. * @private */ handlerDidError(param: HandlerDidErrorCallbackParam): Promise<Response | undefined>; } //#endregion //#region src/legacy/Router.d.ts /** * A class that can be used to process a `fetch` event using one or more route(s), responding with a response * if a matching route exists. * * If no route matches given a request, the router will use the default handler if one is defined. * * Should the matching route throw an error, the router will use the catch handler if one is defined to * gracefully deal with issues and respond with a response. * * If a request matches multiple routes, the earliest registered route will be used to respond to the it. * @deprecated */ declare class Router { private readonly _routes; private readonly _defaultHandlerMap; private _fetchListenerHandler; private _cacheListenerHandler; private _catchHandler?; /** * Initializes a new Router. */ constructor(); /** * @returns routes A `Map` of HTTP method name (`'GET'`, etc.) to an array of all * the corresponding {@linkcode Route} instances that are registered. */ get routes(): Map<HTTPMethod, Route[]>; /** * Adds a `fetch` event listener to respond to events when a route matches * the event's request. Effectively no-op if `addFetchListener` has been * called, but `removeFetchListener` has not. */ addFetchListener(): void; /** * Removes `fetch` event listener added by `addFetchListener`. * Effectively no-op if either `addFetchListener` has not been called or, * if it has, so has `removeFetchListener`. */ removeFetchListener(): void; /** * Adds a `message` event listener for URLs to cache from the window. * This is useful to cache resources loaded on the page prior to when the * service worker started controlling it. Effectively no-op if `addCacheListener` * has been called, but `removeCacheListener` hasn't. * * The format of the message data sent from the window should be as follows. * Where the `urlsToCache` array may consist of URL strings or an array of * URL string + `requestInit` object (the same as you'd pass to `fetch()`). * * ``` * { * type: 'CACHE_URLS', * payload: { * urlsToCache: [ * './script1.js', * './script2.js', * ['./script3.js', {mode: 'no-cors'}], * ], * }, * } * ``` */ addCacheListener(): void; /** * Removes the `message` event listener added by `addCacheListener`. * Effectively no-op if either `addCacheListener` has not been called or, * if it has, so has `removeCacheListener`. */ removeCacheListener(): void; /** * Apply the routing rules to a `fetch` event to get a response from an * appropriate route. * * @param options * @returns A promise is returned if a registered route can handle the request. * If there is no matching route and there's no `defaultHandler`, `undefined` * is returned. */ handleRequest({ request, event }: { /** * The request to handle. */ request: Request; /** * The event that triggered the request. */ event: ExtendableEvent; }): Promise<Response> | undefined; /** * Checks a request and URL (and optionally an event) against the list of * registered routes, and if there's a match, returns the corresponding * route along with any params generated by the match. * * @param options * @returns An object with `route` and `params` properties. They are populated * if a matching route was found or `undefined` otherwise. */ findMatchingRoute({ url, sameOrigin, request, event }: RouteMatchCallbackOptions): { route?: Route; params?: RouteHandlerCallbackOptions["params"]; }; /** * Define a default handler that's called when no routes explicitly * match the incoming request. * * Each HTTP method (`'GET'`, `'POST'`, etc.) gets its own default handler. * * Without a default handler, unmatched requests will go against the * network as if there were no service worker present. * * @param handler A callback function that returns a promise resulting in a response. * @param method The HTTP method to associate with this default handler. Each method * has its own default. Defaults to `'GET'`. */ setDefaultHandler(handler: RouteHandler, method?: HTTPMethod): void; /** * If a `Route` throws an error while handling a request, this `handler` * will be called and given a chance to provide a response. * * @param handler A callback function that returns a Promise resulting * in a Response. */ setCatchHandler(handler: RouteHandler): void; /** * Registers a `RegExp`, string, or function with a caching * strategy to the router. * * @param capture If the capture param is a {@linkcode Route} object, all other arguments will be ignored. * @param handler A callback function that returns a promise resulting in a response. * This parameter is required if `capture` is not a {@linkcode Route} object. * @param method The HTTP method to match the route against. Defaults to `'GET'`. * @returns The generated {@linkcode Route} object. */ registerCapture(capture: RegExp | string | RouteMatchCallback | Route, handler?: RouteHandler, method?: HTTPMethod): Route; /** * Registers a route with the router. * * @param route The route to register. */ registerRoute(route: Route): void; /** * Unregisters a route from the router. * * @param route The route to unregister. */ unregisterRoute(route: Route): void; } //#endregion //#region src/legacy/fallbacks.d.ts interface FallbackEntry extends PrecacheFallbackEntry { /** * The revision used for precaching. */ revision: string; } interface FallbacksOptions { /** * A list of fallback entries. */ entries: FallbackEntry[]; /** * Precache options that will be used for your * fallback entries. */ precacheOptions?: PrecacheRouteOptions; } interface FallbacksOptions { /** * An optional {@linkcode PrecacheController} instance. If not provided, the singleton * {@linkcode PrecacheController} will be used. */ precacheController?: PrecacheController; /** * An optional {@linkcode Router} instance. If not provided, the singleton {@linkcode Router} * will be used. */ router?: Router; /** * Your previous list of caching strategies. */ runtimeCaching: RuntimeCaching[]; /** * A list of fallback entries. */ entries: FallbackEntry[]; /** * Precache options that will be used for your * fallback entries. */ precacheOptions?: PrecacheRouteOptions; } /** * Precaches routes so that they can be used as a fallback when * a Strategy fails to generate a response. * * Note: This function mutates `runtimeCaching`. It also precaches the URLs * defined in `entries`, so you must NOT precache any of them beforehand. * * @param options * @returns The modified `runtimeCaching` array. * @deprecated */ declare const fallbacks$1: ({ precacheController, router, runtimeCaching, entries, precacheOptions }: FallbacksOptions) => RuntimeCaching[]; //#endregion //#region src/legacy/getCacheKeyForURL.d.ts /** * Takes in a URL, and returns the corresponding URL that could be used to * lookup the entry in the precache. * * If a relative URL is provided, the location of the service worker file will * be used as the base. * * For precached entries without revision information, the cache key will be the * same as the original URL. * * For precached entries with revision information, the cache key will be the * original URL with the addition of a query parameter used for keeping track of * the revision info. * * @param url The URL whose cache key to look up. * @returns The cache key that corresponds to that URL. * @deprecated */ declare const getCacheKeyForURL: (url: string) => string | undefined; //#endregion //#region src/legacy/handlePrecaching.d.ts /** * @deprecated */ interface HandlePrecachingOptions { /** * An optional {@linkcode PrecacheController} instance. If not provided, the singleton * {@linkcode PrecacheController} will be used. */ precacheController?: PrecacheController; /** * An optional {@linkcode Router} instance. If not provided, the singleton {@linkcode Router} * will be used. */ router?: Router; /** * A list of URLs that should be cached. */ precacheEntries?: (PrecacheEntry | string)[]; /** * Options to customize how Serwist precaches the URLs. */ precacheOptions?: PrecacheRouteOptions; /** * Whether outdated caches should be removed. * * @default false */ cleanupOutdatedCaches?: boolean; /** * An URL that should point to a HTML file with which navigation requests for URLs that aren't * precached will be fulfilled. */ navigateFallback?: string; /** * URLs that should be allowed to use the `navigateFallback` handler. */ navigateFallbackAllowlist?: RegExp[]; /** * URLs that should not be allowed to use the `navigateFallback` handler. This takes precedence * over `navigateFallbackAllowlist`. */ navigateFallbackDenylist?: RegExp[]; } /** * Handles a list of precache entries and cleans up outdated caches. * * @param options * @deprecated */ declare const handlePrecaching: ({ precacheController, router, precacheEntries, precacheOptions, cleanupOutdatedCaches, navigateFallback, navigateFallbackAllowlist, navigateFallbackDenylist }: HandlePrecachingOptions) => void; //#endregion //#region src/legacy/initializeGoogleAnalytics.d.ts /** * @deprecated */ interface GoogleAnalyticsInitializeOptions { /** * An optional {@linkcode Router} instance. If not provided, the singleton {@linkcode Router} * will be used. */ router?: Router; /** * The cache name to store and retrieve analytics.js. Defaults to Serwist's default cache names. */ cacheName?: string; /** * [Measurement Protocol parameters](https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters), * expressed as key/value pairs, to be added to replayed Google Analytics * requests. This can be used to, e.g., set a custom dimension indicating * that the request was replayed. */ parameterOverrides?: { [paramName: string]: string; }; /** * A function that allows you to modify the hit parameters prior to replaying * the hit. The function is invoked with the original hit's URLSearchParams * object as its only argument. */ hitFilter?: (params: URLSearchParams) => void; } /** * Initialize Serwist's offline Google Analytics v3 support. * * @param options * @deprecated Use `serwist.initializeGoogleAnalytics` instead. */ declare const initializeGoogleAnalytics: ({ router, cacheName, ...options }?: GoogleAnalyticsInitializeOptions) => void; //#endregion //#region src/legacy/installSerwist.d.ts /** * Options for {@linkcode installSerwist}. * * @deprecated */ interface InstallSerwistOptions extends Omit<HandlePrecachingOptions, "precacheController" | "router"> { /** * An optional {@linkcode PrecacheController} instance. If not provided, the singleton * {@linkcode PrecacheController} will be used. */ precacheController?: PrecacheController; /** * An optional {@linkcode Router} instance. If not provided, the singleton {@linkcode Router} * will be used. */ router?: Router; /** * Forces the waiting service worker to become the active one. * * @see https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerGlobalScope/skipWaiting */ skipWaiting?: boolean; /** * Imports external scripts. They are executed in the order they * are passed. * * @see https://developer.mozilla.org/en-US/docs/Web/API/WorkerGlobalScope/importScripts */ importScripts?: string[]; /** * Enables navigation preloading if it is supported. * * @see https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration/navigationPreload */ navigationPreload?: boolean; /** * Modifies the prefix of the default cache names used by Serwist packages. */ cacheId?: string | undefined; /** * Claims any currently available clients once the service worker * becomes active. This is normally used in conjunction with `skipWaiting()`. * * @default false */ clientsClaim?: boolean; /** * A list of caching strategies. */ runtimeCaching?: RuntimeCaching[]; /** * Your configuration for `@serwist/google-analytics`. This plugin is * only initialized when this option is not `undefined` or `false`. */ offlineAnalyticsConfig?: GoogleAnalyticsInitializeOptions | boolean; /** * Disables Serwist's logging in development mode. * * @default false */ disableDevLogs?: boolean; /** * Precaches routes so that they can be used as a fallback when * a Strategy fails to generate a response. */ fallbacks?: Pick<FallbacksOptions, "entries">; } /** * Abstracts away the core APIs of Serwist. * * @param options - `installSerwist` options. * @deprecated */ declare const installSerwist: ({ precacheController, router, precacheEntries, precacheOptions, cleanupOutdatedCaches, navigateFallback, navigateFallbackAllowlist, navigateFallbackDenylist, skipWaiting, importScripts, navigationPreload, cacheId, clientsClaim, runtimeCaching, offlineAnalyticsConfig, disableDevLogs, fallbacks }: InstallSerwistOptions) => void; //#endregion //#region src/legacy/matchPrecache.d.ts /** * Helper function that calls {@linkcode PrecacheController.matchPrecache} * on the default {@linkcode PrecacheController} instance. * * If you are creating your own {@linkcode PrecacheController}, then call * the {@linkcode PrecacheController.matchPrecache} function on that instance * instead of using this function. * * @param request The key (without revisioning parameters) * to look up in the precache. * @returns * @deprecated */ declare const matchPrecache: (request: string | Request) => Promise<Response | undefined>; //#endregion //#region src/legacy/PrecacheRoute.d.ts /** * A subclass of {@linkcode Route} that takes a {@linkcode PrecacheController} * instance and uses it to match incoming requests and handle fetching * responses from the precache. * @deprecated */ declare class PrecacheRoute extends Route { /** * @param precacheController A {@linkcode PrecacheController} * instance used to both match requests and respond to `fetch` events. * @param options Options to control how requests are matched * against the list of precached URLs. */ constructor(precacheController: PrecacheController, options?: PrecacheRouteOptions); } //#endregion //#region src/legacy/precache.d.ts /** * Adds items to the precache list, removing any duplicates and * stores the files in the precache cache when the service * worker installs. * * This method can be called multiple times. * * Please note: This method **will not** serve any of the cached files for you. * It only precaches files. To respond to a network request you call * {@linkcode addRoute}. * * If you have a single array of files to precache, you can just call * {@linkcode precacheAndRoute}. * * @param entries Array of entries to precache. * @deprecated */ declare const precache: (entries: (PrecacheEntry | string)[]) => void; //#endregion //#region src/legacy/precacheAndRoute.d.ts /** * This method will add entries to the precache list and add a route to * respond to `fetch` events. * * This is a convenience method that will call * {@linkcode precache} and {@linkcode addRoute} in a single call. * * @param entries Array of entries to precache. * @param options See the {@linkcode PrecacheRouteOptions} options. * @deprecated */ declare const precacheAndRoute: (entries: (PrecacheEntry | string)[], options?: PrecacheRouteOptions) => void; //#endregion //#region src/legacy/registerRoute.d.ts /** * Registers a `RegExp`, string, or function with a caching * strategy to a singleton {@linkcode Router} instance. * * @param capture If the capture param is a {@linkcode Route}, all other arguments will be ignored. * @param handler A callback function that returns a promise resulting in a response. * This parameter is required if `capture` is not a {@linkcode Route} object. * @param method The HTTP method to match the route against. Defaults to `'GET'`. * @returns The generated {@linkcode Route} object, which can then be provided to {@linkcode unregisterRoute} if needed. * @deprecated */ declare const registerRoute: (capture: RegExp | string | RouteMatchCallback | Route, handler?: RouteHandler, method?: HTTPMethod) => Route; //#endregion //#region src/legacy/registerRuntimeCaching.d.ts /** * Registers caching strategies to a singleton Router instance. It is a simple * syntatic sugar for {@linkcode registerRoute}. * * @param runtimeCachingList * @returns * @deprecated */ declare const registerRuntimeCaching: (...runtimeCachingList: RuntimeCaching[]) => void; //#endregion //#region src/legacy/setCatchHandler.d.ts /** * If a route throws an error while handling a request, this handler * will be called and given a chance to provide a response. * * @param handler A callback function that returns a promise resulting in a response. * @deprecated */ declare const setCatchHandler: (handler: RouteHandler) => void; //#endregion //#region src/legacy/setDefaultHandler.d.ts /** * Defines a default handler that's called when no routes explicitly * match the incoming request. * * Without a default handler, unmatched requests will go against the * network as if there were no service worker present. * * @param handler A callback function that returns a promise resulting in a response. * @deprecated */ declare const setDefaultHandler: (handler: RouteHandler) => void; //#endregion //#region src/legacy/singletonPrecacheController.d.ts /** * Creates a new, singleton {@linkcode PrecacheController} if one does not exist. If one does * already exist, that instance is returned. This instance is used by Serwist's * {@linkcode PrecacheController}-dependent functions and classes unless you provide a different * {@linkcode PrecacheController} to them. * * @returns The singleton {@linkcode PrecacheController}. * @deprecated */ declare const getSingletonPrecacheController: () => PrecacheController; /** * Changes the singleton {@linkcode PrecacheController} to a different instance. This is meant for when you do not * want to pass your own {@linkcode PrecacheController} to every one of Serwist's {@linkcode PrecacheController}-dependent * functions and classes. * * It is highly recommended that you call this before anything else, if you plan on doing so. * * @example * ```js * import { PrecacheController, setSingletonPrecacheController } from "serwist/legacy"; * * const controller = new PrecacheController(); * * setSingletonPrecacheController(controller); * * // Do something with your controller... * ``` * @param router * @returns The new singleton {@linkcode PrecacheController}. * @deprecated */ declare const setSingletonPrecacheController: (precacheController: PrecacheController) => PrecacheController; //#endregion //#region src/legacy/singletonRouter.d.ts /** * Creates a new, singleton {@linkcode Router} if one does not exist. If one does * already exist, that instance is returned. This instance is used by * Serwist's {@linkcode Router}-dependent functions and classes unless you provide * a different {@linkcode Router} to them. * * @returns The singleton {@linkcode Router}. * @deprecated */ declare const getSingletonRouter: () => Router; /** * Changes the singleton {@linkcode Router} to a different instance. This is meant for when you do not * want to pass your own {@linkcode Router} to every one of Serwist's {@linkcode Router}-dependent functions and classes. * If this or {@linkcode getSingletonRouter} has been called before, it removes the listeners of the * previous singleton {@linkcode Router}. It also adds those of the new one, so you need not do that yourself. * * It is highly recommended that you call this before anything else, if you plan on doing so. * * @example * ```js * import { Router, setSingletonRouter } from "serwist/legacy"; * * const router = new Router(); * * setSingletonRouter(router); * * router.registerRoute( * new Route( * /\/api\/.*\/*.json/, * new NetworkOnly(), * "POST", * ), * ); * ``` * @param router * @returns The new singleton {@linkcode Router}. * @deprecated */ declare const setSingletonRouter: (router: Router) => Router; //#endregion //#region src/legacy/unregisterRoute.d.ts /** * Unregisters a route from the singleton {@linkcode Router} instance. * * @param route The route to unregister. * @deprecated */ declare const unregisterRoute: (route: Route) => void; //#endregion export { type FallbackEntry, type FallbacksOptions, type GoogleAnalyticsInitializeOptions, type HandlePrecachingOptions, type InstallSerwistOptions, PrecacheController, type PrecacheFallbackEntry, PrecacheFallbackPlugin, type PrecacheFallbackPluginOptions, PrecacheRoute, Router, addPlugins, addRoute, createHandlerBoundToURL, fallbacks$1 as fallbacks, getCacheKeyForURL, getSingletonPrecacheController, getSingletonRouter, handlePrecaching, initializeGoogleAnalytics, installSerwist, matchPrecache, precache, precacheAndRoute, registerRoute, registerRuntimeCaching, setCatchHandler, setDefaultHandler, setSingletonPrecacheController, setSingletonRouter, unregisterRoute }; //# sourceMappingURL=index.legacy.d.mts.map