You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

1 lines
85 KiB

{"version":3,"file":"workbox-f88dbe3b.js","sources":["node_modules/workbox-core/_version.js","node_modules/workbox-core/_private/logger.js","node_modules/workbox-core/models/messages/messages.js","node_modules/workbox-core/models/messages/messageGenerator.js","node_modules/workbox-core/_private/WorkboxError.js","node_modules/workbox-core/_private/assert.js","node_modules/workbox-routing/_version.js","node_modules/workbox-routing/utils/constants.js","node_modules/workbox-routing/utils/normalizeHandler.js","node_modules/workbox-routing/Route.js","node_modules/workbox-routing/RegExpRoute.js","node_modules/workbox-core/_private/getFriendlyURL.js","node_modules/workbox-routing/Router.js","node_modules/workbox-routing/utils/getOrCreateDefaultRouter.js","node_modules/workbox-routing/registerRoute.js","node_modules/workbox-core/utils/pluginUtils.js","node_modules/workbox-core/_private/fetchWrapper.js","node_modules/workbox-strategies/_version.js","node_modules/workbox-strategies/utils/messages.js","node_modules/workbox-strategies/NetworkOnly.js","node_modules/workbox-core/skipWaiting.js","node_modules/workbox-core/clientsClaim.js"],"sourcesContent":["\"use strict\";\n// @ts-ignore\ntry {\n self['workbox:core:5.1.4'] && _();\n}\ncatch (e) { }\n","/*\n Copyright 2019 Google LLC\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nconst logger = (process.env.NODE_ENV === 'production' ? null : (() => {\n // Don't overwrite this value if it's already set.\n // See https://github.com/GoogleChrome/workbox/pull/2284#issuecomment-560470923\n if (!('__WB_DISABLE_DEV_LOGS' in self)) {\n self.__WB_DISABLE_DEV_LOGS = false;\n }\n let inGroup = false;\n const methodToColorMap = {\n debug: `#7f8c8d`,\n log: `#2ecc71`,\n warn: `#f39c12`,\n error: `#c0392b`,\n groupCollapsed: `#3498db`,\n groupEnd: null,\n };\n const print = function (method, args) {\n if (self.__WB_DISABLE_DEV_LOGS) {\n return;\n }\n if (method === 'groupCollapsed') {\n // Safari doesn't print all console.groupCollapsed() arguments:\n // https://bugs.webkit.org/show_bug.cgi?id=182754\n if (/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n console[method](...args);\n return;\n }\n }\n const styles = [\n `background: ${methodToColorMap[method]}`,\n `border-radius: 0.5em`,\n `color: white`,\n `font-weight: bold`,\n `padding: 2px 0.5em`,\n ];\n // When in a group, the workbox prefix is not displayed.\n const logPrefix = inGroup ? [] : ['%cworkbox', styles.join(';')];\n console[method](...logPrefix, ...args);\n if (method === 'groupCollapsed') {\n inGroup = true;\n }\n if (method === 'groupEnd') {\n inGroup = false;\n }\n };\n const api = {};\n const loggerMethods = Object.keys(methodToColorMap);\n for (const key of loggerMethods) {\n const method = key;\n api[method] = (...args) => {\n print(method, args);\n };\n }\n return api;\n})());\nexport { logger };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../../_version.js';\nexport const messages = {\n 'invalid-value': ({ paramName, validValueDescription, value }) => {\n if (!paramName || !validValueDescription) {\n throw new Error(`Unexpected input to 'invalid-value' error.`);\n }\n return `The '${paramName}' parameter was given a value with an ` +\n `unexpected value. ${validValueDescription} Received a value of ` +\n `${JSON.stringify(value)}.`;\n },\n 'not-an-array': ({ moduleName, className, funcName, paramName }) => {\n if (!moduleName || !className || !funcName || !paramName) {\n throw new Error(`Unexpected input to 'not-an-array' error.`);\n }\n return `The parameter '${paramName}' passed into ` +\n `'${moduleName}.${className}.${funcName}()' must be an array.`;\n },\n 'incorrect-type': ({ expectedType, paramName, moduleName, className, funcName }) => {\n if (!expectedType || !paramName || !moduleName || !funcName) {\n throw new Error(`Unexpected input to 'incorrect-type' error.`);\n }\n return `The parameter '${paramName}' passed into ` +\n `'${moduleName}.${className ? (className + '.') : ''}` +\n `${funcName}()' must be of type ${expectedType}.`;\n },\n 'incorrect-class': ({ expectedClass, paramName, moduleName, className, funcName, isReturnValueProblem }) => {\n if (!expectedClass || !moduleName || !funcName) {\n throw new Error(`Unexpected input to 'incorrect-class' error.`);\n }\n if (isReturnValueProblem) {\n return `The return value from ` +\n `'${moduleName}.${className ? (className + '.') : ''}${funcName}()' ` +\n `must be an instance of class ${expectedClass.name}.`;\n }\n return `The parameter '${paramName}' passed into ` +\n `'${moduleName}.${className ? (className + '.') : ''}${funcName}()' ` +\n `must be an instance of class ${expectedClass.name}.`;\n },\n 'missing-a-method': ({ expectedMethod, paramName, moduleName, className, funcName }) => {\n if (!expectedMethod || !paramName || !moduleName || !className\n || !funcName) {\n throw new Error(`Unexpected input to 'missing-a-method' error.`);\n }\n return `${moduleName}.${className}.${funcName}() expected the ` +\n `'${paramName}' parameter to expose a '${expectedMethod}' method.`;\n },\n 'add-to-cache-list-unexpected-type': ({ entry }) => {\n return `An unexpected entry was passed to ` +\n `'workbox-precaching.PrecacheController.addToCacheList()' The entry ` +\n `'${JSON.stringify(entry)}' isn't supported. You must supply an array of ` +\n `strings with one or more characters, objects with a url property or ` +\n `Request objects.`;\n },\n 'add-to-cache-list-conflicting-entries': ({ firstEntry, secondEntry }) => {\n if (!firstEntry || !secondEntry) {\n throw new Error(`Unexpected input to ` +\n `'add-to-cache-list-duplicate-entries' error.`);\n }\n return `Two of the entries passed to ` +\n `'workbox-precaching.PrecacheController.addToCacheList()' had the URL ` +\n `${firstEntry._entryId} but different revision details. Workbox is ` +\n `unable to cache and version the asset correctly. Please remove one ` +\n `of the entries.`;\n },\n 'plugin-error-request-will-fetch': ({ thrownError }) => {\n if (!thrownError) {\n throw new Error(`Unexpected input to ` +\n `'plugin-error-request-will-fetch', error.`);\n }\n return `An error was thrown by a plugins 'requestWillFetch()' method. ` +\n `The thrown error message was: '${thrownError.message}'.`;\n },\n 'invalid-cache-name': ({ cacheNameId, value }) => {\n if (!cacheNameId) {\n throw new Error(`Expected a 'cacheNameId' for error 'invalid-cache-name'`);\n }\n return `You must provide a name containing at least one character for ` +\n `setCacheDetails({${cacheNameId}: '...'}). Received a value of ` +\n `'${JSON.stringify(value)}'`;\n },\n 'unregister-route-but-not-found-with-method': ({ method }) => {\n if (!method) {\n throw new Error(`Unexpected input to ` +\n `'unregister-route-but-not-found-with-method' error.`);\n }\n return `The route you're trying to unregister was not previously ` +\n `registered for the method type '${method}'.`;\n },\n 'unregister-route-route-not-registered': () => {\n return `The route you're trying to unregister was not previously ` +\n `registered.`;\n },\n 'queue-replay-failed': ({ name }) => {\n return `Replaying the background sync queue '${name}' failed.`;\n },\n 'duplicate-queue-name': ({ name }) => {\n return `The Queue name '${name}' is already being used. ` +\n `All instances of backgroundSync.Queue must be given unique names.`;\n },\n 'expired-test-without-max-age': ({ methodName, paramName }) => {\n return `The '${methodName}()' method can only be used when the ` +\n `'${paramName}' is used in the constructor.`;\n },\n 'unsupported-route-type': ({ moduleName, className, funcName, paramName }) => {\n return `The supplied '${paramName}' parameter was an unsupported type. ` +\n `Please check the docs for ${moduleName}.${className}.${funcName} for ` +\n `valid input types.`;\n },\n 'not-array-of-class': ({ value, expectedClass, moduleName, className, funcName, paramName }) => {\n return `The supplied '${paramName}' parameter must be an array of ` +\n `'${expectedClass}' objects. Received '${JSON.stringify(value)},'. ` +\n `Please check the call to ${moduleName}.${className}.${funcName}() ` +\n `to fix the issue.`;\n },\n 'max-entries-or-age-required': ({ moduleName, className, funcName }) => {\n return `You must define either config.maxEntries or config.maxAgeSeconds` +\n `in ${moduleName}.${className}.${funcName}`;\n },\n 'statuses-or-headers-required': ({ moduleName, className, funcName }) => {\n return `You must define either config.statuses or config.headers` +\n `in ${moduleName}.${className}.${funcName}`;\n },\n 'invalid-string': ({ moduleName, funcName, paramName }) => {\n if (!paramName || !moduleName || !funcName) {\n throw new Error(`Unexpected input to 'invalid-string' error.`);\n }\n return `When using strings, the '${paramName}' parameter must start with ` +\n `'http' (for cross-origin matches) or '/' (for same-origin matches). ` +\n `Please see the docs for ${moduleName}.${funcName}() for ` +\n `more info.`;\n },\n 'channel-name-required': () => {\n return `You must provide a channelName to construct a ` +\n `BroadcastCacheUpdate instance.`;\n },\n 'invalid-responses-are-same-args': () => {\n return `The arguments passed into responsesAreSame() appear to be ` +\n `invalid. Please ensure valid Responses are used.`;\n },\n 'expire-custom-caches-only': () => {\n return `You must provide a 'cacheName' property when using the ` +\n `expiration plugin with a runtime caching strategy.`;\n },\n 'unit-must-be-bytes': ({ normalizedRangeHeader }) => {\n if (!normalizedRangeHeader) {\n throw new Error(`Unexpected input to 'unit-must-be-bytes' error.`);\n }\n return `The 'unit' portion of the Range header must be set to 'bytes'. ` +\n `The Range header provided was \"${normalizedRangeHeader}\"`;\n },\n 'single-range-only': ({ normalizedRangeHeader }) => {\n if (!normalizedRangeHeader) {\n throw new Error(`Unexpected input to 'single-range-only' error.`);\n }\n return `Multiple ranges are not supported. Please use a single start ` +\n `value, and optional end value. The Range header provided was ` +\n `\"${normalizedRangeHeader}\"`;\n },\n 'invalid-range-values': ({ normalizedRangeHeader }) => {\n if (!normalizedRangeHeader) {\n throw new Error(`Unexpected input to 'invalid-range-values' error.`);\n }\n return `The Range header is missing both start and end values. At least ` +\n `one of those values is needed. The Range header provided was ` +\n `\"${normalizedRangeHeader}\"`;\n },\n 'no-range-header': () => {\n return `No Range header was found in the Request provided.`;\n },\n 'range-not-satisfiable': ({ size, start, end }) => {\n return `The start (${start}) and end (${end}) values in the Range are ` +\n `not satisfiable by the cached response, which is ${size} bytes.`;\n },\n 'attempt-to-cache-non-get-request': ({ url, method }) => {\n return `Unable to cache '${url}' because it is a '${method}' request and ` +\n `only 'GET' requests can be cached.`;\n },\n 'cache-put-with-no-response': ({ url }) => {\n return `There was an attempt to cache '${url}' but the response was not ` +\n `defined.`;\n },\n 'no-response': ({ url, error }) => {\n let message = `The strategy could not generate a response for '${url}'.`;\n if (error) {\n message += ` The underlying error is ${error}.`;\n }\n return message;\n },\n 'bad-precaching-response': ({ url, status }) => {\n return `The precaching request for '${url}' failed with an HTTP ` +\n `status of ${status}.`;\n },\n 'non-precached-url': ({ url }) => {\n return `createHandlerBoundToURL('${url}') was called, but that URL is ` +\n `not precached. Please pass in a URL that is precached instead.`;\n },\n 'add-to-cache-list-conflicting-integrities': ({ url }) => {\n return `Two of the entries passed to ` +\n `'workbox-precaching.PrecacheController.addToCacheList()' had the URL ` +\n `${url} with different integrity values. Please remove one of them.`;\n },\n 'missing-precache-entry': ({ cacheName, url }) => {\n return `Unable to find a precached response in ${cacheName} for ${url}.`;\n },\n};\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { messages } from './messages.js';\nimport '../../_version.js';\nconst fallback = (code, ...args) => {\n let msg = code;\n if (args.length > 0) {\n msg += ` :: ${JSON.stringify(args)}`;\n }\n return msg;\n};\nconst generatorFunction = (code, details = {}) => {\n const message = messages[code];\n if (!message) {\n throw new Error(`Unable to find message for code '${code}'.`);\n }\n return message(details);\n};\nexport const messageGenerator = (process.env.NODE_ENV === 'production') ?\n fallback : generatorFunction;\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { messageGenerator } from '../models/messages/messageGenerator.js';\nimport '../_version.js';\n/**\n * Workbox errors should be thrown with this class.\n * This allows use to ensure the type easily in tests,\n * helps developers identify errors from workbox\n * easily and allows use to optimise error\n * messages correctly.\n *\n * @private\n */\nclass WorkboxError extends Error {\n /**\n *\n * @param {string} errorCode The error code that\n * identifies this particular error.\n * @param {Object=} details Any relevant arguments\n * that will help developers identify issues should\n * be added as a key on the context object.\n */\n constructor(errorCode, details) {\n const message = messageGenerator(errorCode, details);\n super(message);\n this.name = errorCode;\n this.details = details;\n }\n}\nexport { WorkboxError };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { WorkboxError } from '../_private/WorkboxError.js';\nimport '../_version.js';\n/*\n * This method throws if the supplied value is not an array.\n * The destructed values are required to produce a meaningful error for users.\n * The destructed and restructured object is so it's clear what is\n * needed.\n */\nconst isArray = (value, details) => {\n if (!Array.isArray(value)) {\n throw new WorkboxError('not-an-array', details);\n }\n};\nconst hasMethod = (object, expectedMethod, details) => {\n const type = typeof object[expectedMethod];\n if (type !== 'function') {\n details['expectedMethod'] = expectedMethod;\n throw new WorkboxError('missing-a-method', details);\n }\n};\nconst isType = (object, expectedType, details) => {\n if (typeof object !== expectedType) {\n details['expectedType'] = expectedType;\n throw new WorkboxError('incorrect-type', details);\n }\n};\nconst isInstance = (object, expectedClass, details) => {\n if (!(object instanceof expectedClass)) {\n details['expectedClass'] = expectedClass;\n throw new WorkboxError('incorrect-class', details);\n }\n};\nconst isOneOf = (value, validValues, details) => {\n if (!validValues.includes(value)) {\n details['validValueDescription'] =\n `Valid values are ${JSON.stringify(validValues)}.`;\n throw new WorkboxError('invalid-value', details);\n }\n};\nconst isArrayOfClass = (value, expectedClass, details) => {\n const error = new WorkboxError('not-array-of-class', details);\n if (!Array.isArray(value)) {\n throw error;\n }\n for (const item of value) {\n if (!(item instanceof expectedClass)) {\n throw error;\n }\n }\n};\nconst finalAssertExports = process.env.NODE_ENV === 'production' ? null : {\n hasMethod,\n isArray,\n isInstance,\n isOneOf,\n isType,\n isArrayOfClass,\n};\nexport { finalAssertExports as assert };\n","\"use strict\";\n// @ts-ignore\ntry {\n self['workbox:routing:5.1.4'] && _();\n}\ncatch (e) { }\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * The default HTTP method, 'GET', used when there's no specific method\n * configured for a route.\n *\n * @type {string}\n *\n * @private\n */\nexport const defaultMethod = 'GET';\n/**\n * The list of valid HTTP methods associated with requests that could be routed.\n *\n * @type {Array<string>}\n *\n * @private\n */\nexport const validMethods = [\n 'DELETE',\n 'GET',\n 'HEAD',\n 'PATCH',\n 'POST',\n 'PUT',\n];\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport '../_version.js';\n/**\n * @param {function()|Object} handler Either a function, or an object with a\n * 'handle' method.\n * @return {Object} An object with a handle method.\n *\n * @private\n */\nexport const normalizeHandler = (handler) => {\n if (handler && typeof handler === 'object') {\n if (process.env.NODE_ENV !== 'production') {\n assert.hasMethod(handler, 'handle', {\n moduleName: 'workbox-routing',\n className: 'Route',\n funcName: 'constructor',\n paramName: 'handler',\n });\n }\n return handler;\n }\n else {\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(handler, 'function', {\n moduleName: 'workbox-routing',\n className: 'Route',\n funcName: 'constructor',\n paramName: 'handler',\n });\n }\n return { handle: handler };\n }\n};\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { defaultMethod, validMethods } from './utils/constants.js';\nimport { normalizeHandler } from './utils/normalizeHandler.js';\nimport './_version.js';\n/**\n * A `Route` consists of a pair of callback functions, \"match\" and \"handler\".\n * The \"match\" callback determine if a route should be used to \"handle\" a\n * request by returning a non-falsy value if it can. The \"handler\" callback\n * is called when there is a match and should return a Promise that resolves\n * to a `Response`.\n *\n * @memberof module:workbox-routing\n */\nclass Route {\n /**\n * Constructor for Route class.\n *\n * @param {module:workbox-routing~matchCallback} match\n * A callback function that determines whether the route matches a given\n * `fetch` event by returning a non-falsy value.\n * @param {module:workbox-routing~handlerCallback} handler A callback\n * function that returns a Promise resolving to a Response.\n * @param {string} [method='GET'] The HTTP method to match the Route\n * against.\n */\n constructor(match, handler, method = defaultMethod) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(match, 'function', {\n moduleName: 'workbox-routing',\n className: 'Route',\n funcName: 'constructor',\n paramName: 'match',\n });\n if (method) {\n assert.isOneOf(method, validMethods, { paramName: 'method' });\n }\n }\n // These values are referenced directly by Router so cannot be\n // altered by minificaton.\n this.handler = normalizeHandler(handler);\n this.match = match;\n this.method = method;\n }\n}\nexport { Route };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { Route } from './Route.js';\nimport './_version.js';\n/**\n * RegExpRoute makes it easy to create a regular expression based\n * [Route]{@link module:workbox-routing.Route}.\n *\n * For same-origin requests the RegExp only needs to match part of the URL. For\n * requests against third-party servers, you must define a RegExp that matches\n * the start of the URL.\n *\n * [See the module docs for info.]{@link https://developers.google.com/web/tools/workbox/modules/workbox-routing}\n *\n * @memberof module:workbox-routing\n * @extends module:workbox-routing.Route\n */\nclass RegExpRoute extends Route {\n /**\n * If the regular expression contains\n * [capture groups]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#grouping-back-references},\n * the captured values will be passed to the\n * [handler's]{@link module:workbox-routing~handlerCallback} `params`\n * argument.\n *\n * @param {RegExp} regExp The regular expression to match against URLs.\n * @param {module:workbox-routing~handlerCallback} handler A callback\n * function that returns a Promise resulting in a Response.\n * @param {string} [method='GET'] The HTTP method to match the Route\n * against.\n */\n constructor(regExp, handler, method) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(regExp, RegExp, {\n moduleName: 'workbox-routing',\n className: 'RegExpRoute',\n funcName: 'constructor',\n paramName: 'pattern',\n });\n }\n const match = ({ url }) => {\n const result = regExp.exec(url.href);\n // Return immediately if there's no match.\n if (!result) {\n return;\n }\n // Require that the match start at the first character in the URL string\n // if it's a cross-origin request.\n // See https://github.com/GoogleChrome/workbox/issues/281 for the context\n // behind this behavior.\n if ((url.origin !== location.origin) && (result.index !== 0)) {\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`The regular expression '${regExp}' only partially matched ` +\n `against the cross-origin URL '${url}'. RegExpRoute's will only ` +\n `handle cross-origin requests if they match the entire URL.`);\n }\n return;\n }\n // If the route matches, but there aren't any capture groups defined, then\n // this will return [], which is truthy and therefore sufficient to\n // indicate a match.\n // If there are capture groups, then it will return their values.\n return result.slice(1);\n };\n super(match, handler, method);\n }\n}\nexport { RegExpRoute };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nconst getFriendlyURL = (url) => {\n const urlObj = new URL(String(url), location.href);\n // See https://github.com/GoogleChrome/workbox/issues/2323\n // We want to include everything, except for the origin if it's same-origin.\n return urlObj.href.replace(new RegExp(`^${location.origin}`), '');\n};\nexport { getFriendlyURL };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { normalizeHandler } from './utils/normalizeHandler.js';\nimport './_version.js';\n/**\n * The Router can be used to process a FetchEvent through one or more\n * [Routes]{@link module:workbox-routing.Route} responding with a Request if\n * a matching route exists.\n *\n * If no route matches a given a request, the Router will use a \"default\"\n * handler if one is defined.\n *\n * Should the matching Route throw an error, the Router will use a \"catch\"\n * handler if one is defined to gracefully deal with issues and respond with a\n * Request.\n *\n * If a request matches multiple routes, the **earliest** registered route will\n * be used to respond to the request.\n *\n * @memberof module:workbox-routing\n */\nclass Router {\n /**\n * Initializes a new Router.\n */\n constructor() {\n this._routes = new Map();\n }\n /**\n * @return {Map<string, Array<module:workbox-routing.Route>>} routes A `Map` of HTTP\n * method name ('GET', etc.) to an array of all the corresponding `Route`\n * instances that are registered.\n */\n get routes() {\n return this._routes;\n }\n /**\n * Adds a fetch event listener to respond to events when a route matches\n * the event's request.\n */\n addFetchListener() {\n // See https://github.com/Microsoft/TypeScript/issues/28357#issuecomment-436484705\n self.addEventListener('fetch', ((event) => {\n const { request } = event;\n const responsePromise = this.handleRequest({ request, event });\n if (responsePromise) {\n event.respondWith(responsePromise);\n }\n }));\n }\n /**\n * Adds a message event listener for URLs to cache from the window.\n * This is useful to cache resources loaded on the page prior to when the\n * service worker started controlling it.\n *\n * The format of the message data sent from the window should be as follows.\n * Where the `urlsToCache` array may consist of URL strings or an array of\n * URL string + `requestInit` object (the same as you'd pass to `fetch()`).\n *\n * ```\n * {\n * type: 'CACHE_URLS',\n * payload: {\n * urlsToCache: [\n * './script1.js',\n * './script2.js',\n * ['./script3.js', {mode: 'no-cors'}],\n * ],\n * },\n * }\n * ```\n */\n addCacheListener() {\n // See https://github.com/Microsoft/TypeScript/issues/28357#issuecomment-436484705\n self.addEventListener('message', ((event) => {\n if (event.data && event.data.type === 'CACHE_URLS') {\n const { payload } = event.data;\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`Caching URLs from the window`, payload.urlsToCache);\n }\n const requestPromises = Promise.all(payload.urlsToCache.map((entry) => {\n if (typeof entry === 'string') {\n entry = [entry];\n }\n const request = new Request(...entry);\n return this.handleRequest({ request });\n // TODO(philipwalton): TypeScript errors without this typecast for\n // some reason (probably a bug). The real type here should work but\n // doesn't: `Array<Promise<Response> | undefined>`.\n })); // TypeScript\n event.waitUntil(requestPromises);\n // If a MessageChannel was used, reply to the message on success.\n if (event.ports && event.ports[0]) {\n requestPromises.then(() => event.ports[0].postMessage(true));\n }\n }\n }));\n }\n /**\n * Apply the routing rules to a FetchEvent object to get a Response from an\n * appropriate Route's handler.\n *\n * @param {Object} options\n * @param {Request} options.request The request to handle (this is usually\n * from a fetch event, but it does not have to be).\n * @param {FetchEvent} [options.event] The event that triggered the request,\n * if applicable.\n * @return {Promise<Response>|undefined} A promise is returned if a\n * registered route can handle the request. If there is no matching\n * route and there's no `defaultHandler`, `undefined` is returned.\n */\n handleRequest({ request, event }) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(request, Request, {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'handleRequest',\n paramName: 'options.request',\n });\n }\n const url = new URL(request.url, location.href);\n if (!url.protocol.startsWith('http')) {\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`Workbox Router only supports URLs that start with 'http'.`);\n }\n return;\n }\n const { params, route } = this.findMatchingRoute({ url, request, event });\n let handler = route && route.handler;\n const debugMessages = [];\n if (process.env.NODE_ENV !== 'production') {\n if (handler) {\n debugMessages.push([\n `Found a route to handle this request:`, route,\n ]);\n if (params) {\n debugMessages.push([\n `Passing the following params to the route's handler:`, params,\n ]);\n }\n }\n }\n // If we don't have a handler because there was no matching route, then\n // fall back to defaultHandler if that's defined.\n if (!handler && this._defaultHandler) {\n if (process.env.NODE_ENV !== 'production') {\n debugMessages.push(`Failed to find a matching route. Falling ` +\n `back to the default handler.`);\n }\n handler = this._defaultHandler;\n }\n if (!handler) {\n if (process.env.NODE_ENV !== 'production') {\n // No handler so Workbox will do nothing. If logs is set of debug\n // i.e. verbose, we should print out this information.\n logger.debug(`No route found for: ${getFriendlyURL(url)}`);\n }\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // We have a handler, meaning Workbox is going to handle the route.\n // print the routing details to the console.\n logger.groupCollapsed(`Router is responding to: ${getFriendlyURL(url)}`);\n debugMessages.forEach((msg) => {\n if (Array.isArray(msg)) {\n logger.log(...msg);\n }\n else {\n logger.log(msg);\n }\n });\n logger.groupEnd();\n }\n // Wrap in try and catch in case the handle method throws a synchronous\n // error. It should still callback to the catch handler.\n let responsePromise;\n try {\n responsePromise = handler.handle({ url, request, event, params });\n }\n catch (err) {\n responsePromise = Promise.reject(err);\n }\n if (responsePromise instanceof Promise && this._catchHandler) {\n responsePromise = responsePromise.catch((err) => {\n if (process.env.NODE_ENV !== 'production') {\n // Still include URL here as it will be async from the console group\n // and may not make sense without the URL\n logger.groupCollapsed(`Error thrown when responding to: ` +\n ` ${getFriendlyURL(url)}. Falling back to Catch Handler.`);\n logger.error(`Error thrown by:`, route);\n logger.error(err);\n logger.groupEnd();\n }\n return this._catchHandler.handle({ url, request, event });\n });\n }\n return responsePromise;\n }\n /**\n * Checks a request and URL (and optionally an event) against the list of\n * registered routes, and if there's a match, returns the corresponding\n * route along with any params generated by the match.\n *\n * @param {Object} options\n * @param {URL} options.url\n * @param {Request} options.request The request to match.\n * @param {Event} [options.event] The corresponding event (unless N/A).\n * @return {Object} An object with `route` and `params` properties.\n * They are populated if a matching route was found or `undefined`\n * otherwise.\n */\n findMatchingRoute({ url, request, event }) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(url, URL, {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'findMatchingRoute',\n paramName: 'options.url',\n });\n assert.isInstance(request, Request, {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'findMatchingRoute',\n paramName: 'options.request',\n });\n }\n const routes = this._routes.get(request.method) || [];\n for (const route of routes) {\n let params;\n const matchResult = route.match({ url, request, event });\n if (matchResult) {\n // See https://github.com/GoogleChrome/workbox/issues/2079\n params = matchResult;\n if (Array.isArray(matchResult) && matchResult.length === 0) {\n // Instead of passing an empty array in as params, use undefined.\n params = undefined;\n }\n else if ((matchResult.constructor === Object &&\n Object.keys(matchResult).length === 0)) {\n // Instead of passing an empty object in as params, use undefined.\n params = undefined;\n }\n else if (typeof matchResult === 'boolean') {\n // For the boolean value true (rather than just something truth-y),\n // don't set params.\n // See https://github.com/GoogleChrome/workbox/pull/2134#issuecomment-513924353\n params = undefined;\n }\n // Return early if have a match.\n return { route, params };\n }\n }\n // If no match was found above, return and empty object.\n return {};\n }\n /**\n * Define a default `handler` that's called when no routes explicitly\n * match the incoming request.\n *\n * Without a default handler, unmatched requests will go against the\n * network as if there were no service worker present.\n *\n * @param {module:workbox-routing~handlerCallback} handler A callback\n * function that returns a Promise resulting in a Response.\n */\n setDefaultHandler(handler) {\n this._defaultHandler = normalizeHandler(handler);\n }\n /**\n * If a Route throws an error while handling a request, this `handler`\n * will be called and given a chance to provide a response.\n *\n * @param {module:workbox-routing~handlerCallback} handler A callback\n * function that returns a Promise resulting in a Response.\n */\n setCatchHandler(handler) {\n this._catchHandler = normalizeHandler(handler);\n }\n /**\n * Registers a route with the router.\n *\n * @param {module:workbox-routing.Route} route The route to register.\n */\n registerRoute(route) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(route, 'object', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route',\n });\n assert.hasMethod(route, 'match', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route',\n });\n assert.isType(route.handler, 'object', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route',\n });\n assert.hasMethod(route.handler, 'handle', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route.handler',\n });\n assert.isType(route.method, 'string', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route.method',\n });\n }\n if (!this._routes.has(route.method)) {\n this._routes.set(route.method, []);\n }\n // Give precedence to all of the earlier routes by adding this additional\n // route to the end of the array.\n this._routes.get(route.method).push(route);\n }\n /**\n * Unregisters a route with the router.\n *\n * @param {module:workbox-routing.Route} route The route to unregister.\n */\n unregisterRoute(route) {\n if (!this._routes.has(route.method)) {\n throw new WorkboxError('unregister-route-but-not-found-with-method', {\n method: route.method,\n });\n }\n const routeIndex = this._routes.get(route.method).indexOf(route);\n if (routeIndex > -1) {\n this._routes.get(route.method).splice(routeIndex, 1);\n }\n else {\n throw new WorkboxError('unregister-route-route-not-registered');\n }\n }\n}\nexport { Router };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { Router } from '../Router.js';\nimport '../_version.js';\nlet defaultRouter;\n/**\n * Creates a new, singleton Router instance if one does not exist. If one\n * does already exist, that instance is returned.\n *\n * @private\n * @return {Router}\n */\nexport const getOrCreateDefaultRouter = () => {\n if (!defaultRouter) {\n defaultRouter = new Router();\n // The helpers that use the default Router assume these listeners exist.\n defaultRouter.addFetchListener();\n defaultRouter.addCacheListener();\n }\n return defaultRouter;\n};\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { Route } from './Route.js';\nimport { RegExpRoute } from './RegExpRoute.js';\nimport { getOrCreateDefaultRouter } from './utils/getOrCreateDefaultRouter.js';\nimport './_version.js';\n/**\n * Easily register a RegExp, string, or function with a caching\n * strategy to a singleton Router instance.\n *\n * This method will generate a Route for you if needed and\n * call [registerRoute()]{@link module:workbox-routing.Router#registerRoute}.\n *\n * @param {RegExp|string|module:workbox-routing.Route~matchCallback|module:workbox-routing.Route} capture\n * If the capture param is a `Route`, all other arguments will be ignored.\n * @param {module:workbox-routing~handlerCallback} [handler] A callback\n * function that returns a Promise resulting in a Response. This parameter\n * is required if `capture` is not a `Route` object.\n * @param {string} [method='GET'] The HTTP method to match the Route\n * against.\n * @return {module:workbox-routing.Route} The generated `Route`(Useful for\n * unregistering).\n *\n * @memberof module:workbox-routing\n */\nfunction registerRoute(capture, handler, method) {\n let route;\n if (typeof capture === 'string') {\n const captureUrl = new URL(capture, location.href);\n if (process.env.NODE_ENV !== 'production') {\n if (!(capture.startsWith('/') || capture.startsWith('http'))) {\n throw new WorkboxError('invalid-string', {\n moduleName: 'workbox-routing',\n funcName: 'registerRoute',\n paramName: 'capture',\n });\n }\n // We want to check if Express-style wildcards are in the pathname only.\n // TODO: Remove this log message in v4.\n const valueToCheck = capture.startsWith('http') ?\n captureUrl.pathname : capture;\n // See https://github.com/pillarjs/path-to-regexp#parameters\n const wildcards = '[*:?+]';\n if ((new RegExp(`${wildcards}`)).exec(valueToCheck)) {\n logger.debug(`The '$capture' parameter contains an Express-style wildcard ` +\n `character (${wildcards}). Strings are now always interpreted as ` +\n `exact matches; use a RegExp for partial or wildcard matches.`);\n }\n }\n const matchCallback = ({ url }) => {\n if (process.env.NODE_ENV !== 'production') {\n if ((url.pathname === captureUrl.pathname) &&\n (url.origin !== captureUrl.origin)) {\n logger.debug(`${capture} only partially matches the cross-origin URL ` +\n `${url}. This route will only handle cross-origin requests ` +\n `if they match the entire URL.`);\n }\n }\n return url.href === captureUrl.href;\n };\n // If `capture` is a string then `handler` and `method` must be present.\n route = new Route(matchCallback, handler, method);\n }\n else if (capture instanceof RegExp) {\n // If `capture` is a `RegExp` then `handler` and `method` must be present.\n route = new RegExpRoute(capture, handler, method);\n }\n else if (typeof capture === 'function') {\n // If `capture` is a function then `handler` and `method` must be present.\n route = new Route(capture, handler, method);\n }\n else if (capture instanceof Route) {\n route = capture;\n }\n else {\n throw new WorkboxError('unsupported-route-type', {\n moduleName: 'workbox-routing',\n funcName: 'registerRoute',\n paramName: 'capture',\n });\n }\n const defaultRouter = getOrCreateDefaultRouter();\n defaultRouter.registerRoute(route);\n return route;\n}\nexport { registerRoute };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nexport const pluginUtils = {\n filter: (plugins, callbackName) => {\n return plugins.filter((plugin) => callbackName in plugin);\n },\n};\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { WorkboxError } from './WorkboxError.js';\nimport { logger } from './logger.js';\nimport { assert } from './assert.js';\nimport { getFriendlyURL } from '../_private/getFriendlyURL.js';\nimport { pluginUtils } from '../utils/pluginUtils.js';\nimport '../_version.js';\n/**\n * Wrapper around the fetch API.\n *\n * Will call requestWillFetch on available plugins.\n *\n * @param {Object} options\n * @param {Request|string} options.request\n * @param {Object} [options.fetchOptions]\n * @param {ExtendableEvent} [options.event]\n * @param {Array<Object>} [options.plugins=[]]\n * @return {Promise<Response>}\n *\n * @private\n * @memberof module:workbox-core\n */\nconst wrappedFetch = async ({ request, fetchOptions, event, plugins = [], }) => {\n if (typeof request === 'string') {\n request = new Request(request);\n }\n // We *should* be able to call `await event.preloadResponse` even if it's\n // undefined, but for some reason, doing so leads to errors in our Node unit\n // tests. To work around that, explicitly check preloadResponse's value first.\n if (event instanceof FetchEvent && event.preloadResponse) {\n const possiblePreloadResponse = await event.preloadResponse;\n if (possiblePreloadResponse) {\n if (process.env.NODE_ENV !== 'production') {\n logger.log(`Using a preloaded navigation response for ` +\n `'${getFriendlyURL(request.url)}'`);\n }\n return possiblePreloadResponse;\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(request, Request, {\n paramName: 'request',\n expectedClass: Request,\n moduleName: 'workbox-core',\n className: 'fetchWrapper',\n funcName: 'wrappedFetch',\n });\n }\n const failedFetchPlugins = pluginUtils.filter(plugins, \"fetchDidFail\" /* FETCH_DID_FAIL */);\n // If there is a fetchDidFail plugin, we need to save a clone of the\n // original request before it's either modified by a requestWillFetch\n // plugin or before the original request's body is consumed via fetch().\n const originalRequest = failedFetchPlugins.length > 0 ?\n request.clone() : null;\n try {\n for (const plugin of plugins) {\n if (\"requestWillFetch\" /* REQUEST_WILL_FETCH */ in plugin) {\n const pluginMethod = plugin[\"requestWillFetch\" /* REQUEST_WILL_FETCH */];\n const requestClone = request.clone();\n request = await pluginMethod.call(plugin, {\n request: requestClone,\n event,\n });\n if (process.env.NODE_ENV !== 'production') {\n if (request) {\n assert.isInstance(request, Request, {\n moduleName: 'Plugin',\n funcName: \"cachedResponseWillBeUsed\" /* CACHED_RESPONSE_WILL_BE_USED */,\n isReturnValueProblem: true,\n });\n }\n }\n }\n }\n }\n catch (err) {\n throw new WorkboxError('plugin-error-request-will-fetch', {\n thrownError: err,\n });\n }\n // The request can be altered by plugins with `requestWillFetch` making\n // the original request (Most likely from a `fetch` event) to be different\n // to the Request we make. Pass both to `fetchDidFail` to aid debugging.\n const pluginFilteredRequest = request.clone();\n try {\n let fetchResponse;\n // See https://github.com/GoogleChrome/workbox/issues/1796\n if (request.mode === 'navigate') {\n fetchResponse = await fetch(request);\n }\n else {\n fetchResponse = await fetch(request, fetchOptions);\n }\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`Network request for ` +\n `'${getFriendlyURL(request.url)}' returned a response with ` +\n `status '${fetchResponse.status}'.`);\n }\n for (const plugin of plugins) {\n if (\"fetchDidSucceed\" /* FETCH_DID_SUCCEED */ in plugin) {\n fetchResponse = await plugin[\"fetchDidSucceed\" /* FETCH_DID_SUCCEED */]\n .call(plugin, {\n event,\n request: pluginFilteredRequest,\n response: fetchResponse,\n });\n if (process.env.NODE_ENV !== 'production') {\n if (fetchResponse) {\n assert.isInstance(fetchResponse, Response, {\n moduleName: 'Plugin',\n funcName: \"fetchDidSucceed\" /* FETCH_DID_SUCCEED */,\n isReturnValueProblem: true,\n });\n }\n }\n }\n }\n return fetchResponse;\n }\n catch (error) {\n if (process.env.NODE_ENV !== 'production') {\n logger.error(`Network request for ` +\n `'${getFriendlyURL(request.url)}' threw an error.`, error);\n }\n for (const plugin of failedFetchPlugins) {\n await plugin[\"fetchDidFail\" /* FETCH_DID_FAIL */].call(plugin, {\n error,\n event,\n originalRequest: originalRequest.clone(),\n request: pluginFilteredRequest.clone(),\n });\n }\n throw error;\n }\n};\nconst fetchWrapper = {\n fetch: wrappedFetch,\n};\nexport { fetchWrapper };\n","\"use strict\";\n// @ts-ignore\ntry {\n self['workbox:strategies:5.1.4'] && _();\n}\ncatch (e) { }\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport '../_version.js';\nexport const messages = {\n strategyStart: (strategyName, request) => `Using ${strategyName} to respond to '${getFriendlyURL(request.url)}'`,\n printFinalResponse: (response) => {\n if (response) {\n logger.groupCollapsed(`View the final response here.`);\n logger.log(response || '[No response returned]');\n logger.groupEnd();\n }\n },\n};\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { fetchWrapper } from 'workbox-core/_private/fetchWrapper.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { messages } from './utils/messages.js';\nimport './_version.js';\n/**\n * An implementation of a\n * [network-only]{@link https://developers.google.com/web/fundamentals/instant-and-offline/offline-cookbook/#network-only}\n * request strategy.\n *\n * This class is useful if you want to take advantage of any\n * [Workbox plugins]{@link https://developers.google.com/web/tools/workbox/guides/using-plugins}.\n *\n * If the network request fails, this will throw a `WorkboxError` exception.\n *\n * @memberof module:workbox-strategies\n */\nclass NetworkOnly {\n /**\n * @param {Object} options\n * @param {string} options.cacheName Cache name to store and retrieve\n * requests. Defaults to cache names provided by\n * [workbox-core]{@link module:workbox-core.cacheNames}.\n * @param {Array<Object>} options.plugins [Plugins]{@link https://developers.google.com/web/tools/workbox/guides/using-plugins}\n * to use in conjunction with this caching strategy.\n * @param {Object} options.fetchOptions Values passed along to the\n * [`init`](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters)\n * of all fetch() requests made by this strategy.\n */\n constructor(options = {}) {\n this._plugins = options.plugins || [];\n this._fetchOptions = options.fetchOptions;\n }\n /**\n * This method will perform a request strategy and follows an API that\n * will work with the\n * [Workbox Router]{@link module:workbox-routing.Router}.\n *\n * @param {Object} options\n * @param {Request|string} options.request The request to run this strategy for.\n * @param {Event} [options.event] The event that triggered the request.\n * @return {Promise<Response>}\n */\n async handle({ event, request }) {\n if (typeof request === 'string') {\n request = new Request(request);\n }\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(request, Request, {\n moduleName: 'workbox-strategies',\n className: 'NetworkOnly',\n funcName: 'handle',\n paramName: 'request',\n });\n }\n let error;\n let response;\n try {\n response = await fetchWrapper.fetch({\n request,\n event,\n fetchOptions: this._fetchOptions,\n plugins: this._plugins,\n });\n }\n catch (err) {\n error = err;\n }\n if (process.env.NODE_ENV !== 'production') {\n logger.groupCollapsed(messages.strategyStart('NetworkOnly', request));\n if (response) {\n logger.log(`Got response from network.`);\n }\n else {\n logger.log(`Unable to get a response from the network.`);\n }\n messages.printFinalResponse(response);\n logger.groupEnd();\n }\n if (!response) {\n throw new WorkboxError('no-response', { url: request.url, error });\n }\n return response;\n }\n}\nexport { NetworkOnly };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport './_version.js';\n/**\n * Force a service worker to activate immediately, instead of\n * [waiting](https://developers.google.com/web/fundamentals/primers/service-workers/lifecycle#waiting)\n * for existing clients to close.\n *\n * @memberof module:workbox-core\n */\nfunction skipWaiting() {\n // We need to explicitly call `self.skipWaiting()` here because we're\n // shadowing `skipWaiting` with this local function.\n self.addEventListener('install', () => self.skipWaiting());\n}\nexport { skipWaiting };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport './_version.js';\n/**\n * Claim any currently available clients once the service worker\n * becomes active. This is normally used in conjunction with `skipWaiting()`.\n *\n * @memberof module:workbox-core\n */\nfunction clientsClaim() {\n self.addEventListener('activate', () => self.clients.claim());\n}\nexport { clientsClaim };\n"],"names":["self","_","e","logger","__WB_DISABLE_DEV_LOGS","inGroup","methodToColorMap","debug","log","warn","error","groupCollapsed","groupEnd","print","method","args","test","navigator","userAgent","console","styles","logPrefix","join","api","loggerMethods","Object","keys","key","messages","paramName","validValueDescription","value","Error","JSON","stringify","moduleName","className","funcName","expectedType","expectedClass","isReturnValueProblem","name","expectedMethod","entry","firstEntry","secondEntry","_entryId","thrownError","message","cacheNameId","methodName","normalizedRangeHeader","size","start","end","url","status","cacheName","generatorFunction","code","details","messageGenerator","WorkboxError","constructor","errorCode","isArray","Array","hasMethod","object","type","isType","isInstance","isOneOf","validValues","includes","isArrayOfClass","item","finalAssertExports","defaultMethod","validMethods","normalizeHandler","handler","assert","handle","Route","match","RegExpRoute","regExp","RegExp","result","exec","href","origin","location","index","slice","getFriendlyURL","urlObj","URL","String","replace","Router","_routes","Map","routes","addFetchListener","addEventListener","event","request","responsePromise","handleRequest","respondWith","addCacheListener","data","payload","urlsToCache","requestPromises","Promise","all","map","Request","waitUntil","ports","then","postMessage","protocol","startsWith","params","route","findMatchingRoute","debugMessages","push","_defaultHandler","forEach","msg","err","reject","_catchHandler","catch","get","matchResult","length","undefined","setDefaultHandler","setCatchHandler","registerRoute","has","set","unregisterRoute","routeIndex","indexOf","splice","defaultRouter","getOrCreateDefaultRouter","capture","captureUrl","valueToCheck","pathname","wildcards","matchCallback","pluginUtils","filter","plugins","callbackName","plugin","wrappedFetch","fetchOptions","FetchEvent","preloadResponse","possiblePreloadResponse","failedFetchPlugins","originalRequest","clone","pluginMethod","requestClone","call","pluginFilteredRequest","fetchResponse","mode","fetch","response","Response","fetchWrapper","strategyStart","strategyName","printFinalResponse","NetworkOnly","options","_plugins","_fetchOptions","skipWaiting","clientsClaim","clients","claim"],"mappings":"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"}