summaryrefslogtreecommitdiff
path: root/dist/workbox-v3.2.0/workbox-core.dev.js
diff options
context:
space:
mode:
authorschneefux <schneefux+commit@schneefux.xyz>2018-06-14 20:36:17 +0200
committerschneefux <schneefux+commit@schneefux.xyz>2018-12-13 17:09:19 +0100
commit76edc5bad88a2c97d79e689c5b20b8de8ca179ea (patch)
treea5d9b17f78c9b31c99b2b7b9f46397a6bc357888 /dist/workbox-v3.2.0/workbox-core.dev.js
parent2a8405769acd4f359d0a3f37423ddcaa7530b26e (diff)
downloadbrokentalents-76edc5bad88a2c97d79e689c5b20b8de8ca179ea.tar.gz
brokentalents-76edc5bad88a2c97d79e689c5b20b8de8ca179ea.zip
Remove PWA again
Diffstat (limited to 'dist/workbox-v3.2.0/workbox-core.dev.js')
-rw-r--r--dist/workbox-v3.2.0/workbox-core.dev.js1600
1 files changed, 0 insertions, 1600 deletions
diff --git a/dist/workbox-v3.2.0/workbox-core.dev.js b/dist/workbox-v3.2.0/workbox-core.dev.js
deleted file mode 100644
index 5387458..0000000
--- a/dist/workbox-v3.2.0/workbox-core.dev.js
+++ /dev/null
@@ -1,1600 +0,0 @@
-/* eslint-disable */
-// This is extracted from the Babel runtime (original source: https://github.com/babel/babel/blob/9e0f5235b1ca5167c368a576ad7c5af62d20b0e3/packages/babel-helpers/src/helpers.js#L240).
-// As part of the Rollup bundling process, it's injected once into workbox-core
-// and reused throughout all of the other modules, avoiding code duplication.
-// See https://github.com/GoogleChrome/workbox/pull/1048#issuecomment-344698046
-// for further background.
-self.babelHelpers = {
- asyncToGenerator: function(fn) {
- return function() {
- var gen = fn.apply(this, arguments);
- return new Promise(function(resolve, reject) {
- function step(key, arg) {
- try {
- var info = gen[key](arg);
- var value = info.value;
- } catch (error) {
- reject(error);
- return;
- }
-
- if (info.done) {
- resolve(value);
- } else {
- return Promise.resolve(value).then(function(value) {
- step('next', value);
- }, function(err) {
- step('throw', err);
- });
- }
- }
-
- return step('next');
- });
- };
- },
-};
-
-this.workbox = this.workbox || {};
-this.workbox.core = (function () {
-'use strict';
-
-try {
- self.workbox.v['workbox:core:3.2.0'] = 1;
-} catch (e) {} // eslint-disable-line
-
-/*
- Copyright 2017 Google Inc.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- https://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/**
- * The available log levels in Workbox: debug, log, warn, error and silent.
- *
- * @property {int} debug Prints all logs from Workbox. Useful for debugging.
- * @property {int} log Prints console log, warn, error and groups. Default for
- * debug builds.
- * @property {int} warn Prints console warn, error and groups. Default for
- * non-debug builds.
- * @property {int} error Print console error and groups.
- * @property {int} silent Force no logging from Workbox.
- *
- * @alias workbox.core.LOG_LEVELS
- */
-
-var LOG_LEVELS = {
- debug: 0,
- log: 1,
- warn: 2,
- error: 3,
- silent: 4
-};
-
-/*
- Copyright 2017 Google Inc.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- https://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-var messages = {
- 'invalid-value': ({ paramName, validValueDescription, value }) => {
- if (!paramName || !validValueDescription) {
- throw new Error(`Unexpected input to 'invalid-value' error.`);
- }
- return `The '${paramName}' parameter was given a value with an ` + `unexpected value. ${validValueDescription} Received a value of ` + `${JSON.stringify(value)}.`;
- },
-
- 'not-in-sw': ({ moduleName }) => {
- if (!moduleName) {
- throw new Error(`Unexpected input to 'not-in-sw' error.`);
- }
- return `The '${moduleName}' must be used in a service worker.`;
- },
-
- 'not-an-array': ({ moduleName, className, funcName, paramName }) => {
- if (!moduleName || !className || !funcName || !paramName) {
- throw new Error(`Unexpected input to 'not-an-array' error.`);
- }
- return `The parameter '${paramName}' passed into ` + `'${moduleName}.${className}.${funcName}()' must be an array.`;
- },
-
- 'incorrect-type': ({ expectedType, paramName, moduleName, className,
- funcName }) => {
- if (!expectedType || !paramName || !moduleName || !funcName) {
- throw new Error(`Unexpected input to 'incorrect-type' error.`);
- }
- return `The parameter '${paramName}' passed into ` + `'${moduleName}.${className ? className + '.' : ''}` + `${funcName}()' must be of type ${expectedType}.`;
- },
-
- 'incorrect-class': ({ expectedClass, paramName, moduleName, className,
- funcName, isReturnValueProblem }) => {
- if (!expectedClass || !moduleName || !funcName) {
- throw new Error(`Unexpected input to 'incorrect-class' error.`);
- }
-
- if (isReturnValueProblem) {
- return `The return value from ` + `'${moduleName}.${className ? className + '.' : ''}${funcName}()' ` + `must be an instance of class ${expectedClass.name}.`;
- }
-
- return `The parameter '${paramName}' passed into ` + `'${moduleName}.${className ? className + '.' : ''}${funcName}()' ` + `must be an instance of class ${expectedClass.name}.`;
- },
-
- 'missing-a-method': ({ expectedMethod, paramName, moduleName, className,
- funcName }) => {
- if (!expectedMethod || !paramName || !moduleName || !className || !funcName) {
- throw new Error(`Unexpected input to 'missing-a-method' error.`);
- }
- return `${moduleName}.${className}.${funcName}() expected the ` + `'${paramName}' parameter to expose a '${expectedMethod}' method.`;
- },
-
- 'add-to-cache-list-unexpected-type': ({ entry }) => {
- return `An unexpected entry was passed to ` + `'workbox-precaching.PrecacheController.addToCacheList()' The entry ` + `'${JSON.stringify(entry)}' isn't supported. You must supply an array of ` + `strings with one or more characters, objects with a url property or ` + `Request objects.`;
- },
-
- 'add-to-cache-list-conflicting-entries': ({ firstEntry, secondEntry }) => {
- if (!firstEntry || !secondEntry) {
- throw new Error(`Unexpected input to ` + `'add-to-cache-list-duplicate-entries' error.`);
- }
-
- return `Two of the entries passed to ` + `'workbox-precaching.PrecacheController.addToCacheList()' had matching ` + `URLs but different revision details. This means workbox-precaching ` + `is unable to determine cache the asset correctly. Please remove one ` + `of the entries.`;
- },
-
- 'plugin-error-request-will-fetch': ({ thrownError }) => {
- if (!thrownError) {
- throw new Error(`Unexpected input to ` + `'plugin-error-request-will-fetch', error.`);
- }
-
- return `An error was thrown by a plugins 'requestWillFetch()' method. ` + `The thrown error message was: '${thrownError.message}'.`;
- },
-
- 'invalid-cache-name': ({ cacheNameId, value }) => {
- if (!cacheNameId) {
- throw new Error(`Expected a 'cacheNameId' for error 'invalid-cache-name'`);
- }
-
- return `You must provide a name containing at least one character for ` + `setCacheDeatils({${cacheNameId}: '...'}). Received a value of ` + `'${JSON.stringify(value)}'`;
- },
-
- 'unregister-route-but-not-found-with-method': ({ method }) => {
- if (!method) {
- throw new Error(`Unexpected input to ` + `'unregister-route-but-not-found-with-method' error.`);
- }
-
- return `The route you're trying to unregister was not previously ` + `registered for the method type '${method}'.`;
- },
-
- 'unregister-route-route-not-registered': () => {
- return `The route you're trying to unregister was not previously ` + `registered.`;
- },
-
- 'queue-replay-failed': ({ name, count }) => {
- return `${count} requests failed, while trying to replay Queue: ${name}.`;
- },
-
- 'duplicate-queue-name': ({ name }) => {
- return `The Queue name '${name}' is already being used. ` + `All instances of backgroundSync.Queue must be given unique names.`;
- },
-
- 'expired-test-without-max-age': ({ methodName, paramName }) => {
- return `The '${methodName}()' method can only be used when the ` + `'${paramName}' is used in the constructor.`;
- },
-
- 'unsupported-route-type': ({ moduleName, className, funcName, paramName }) => {
- return `The supplied '${paramName}' parameter was an unsupported type. ` + `Please check the docs for ${moduleName}.${className}.${funcName} for ` + `valid input types.`;
- },
-
- 'not-array-of-class': ({ value, expectedClass,
- moduleName, className, funcName, paramName }) => {
- return `The supplied '${paramName}' parameter must be an array of ` + `'${expectedClass}' objects. Received '${JSON.stringify(value)},'. ` + `Please check the call to ${moduleName}.${className}.${funcName}() ` + `to fix the issue.`;
- },
-
- 'max-entries-or-age-required': ({ moduleName, className, funcName }) => {
- return `You must define either config.maxEntries or config.maxAgeSeconds` + `in ${moduleName}.${className}.${funcName}`;
- },
-
- 'statuses-or-headers-required': ({ moduleName, className, funcName }) => {
- return `You must define either config.statuses or config.headers` + `in ${moduleName}.${className}.${funcName}`;
- },
-
- 'invalid-string': ({ moduleName, className, funcName, paramName }) => {
- if (!paramName || !moduleName || !className || !funcName) {
- throw new Error(`Unexpected input to 'invalid-string' error.`);
- }
- return `When using strings, the '${paramName}' parameter must start with ` + `'http' (for cross-origin matches) or '/' (for same-origin matches). ` + `Please see the docs for ${moduleName}.${className}.${funcName}() for ` + `more info.`;
- },
- 'channel-name-required': () => {
- return `You must provide a channelName to construct a ` + `BroadcastCacheUpdate instance.`;
- },
- 'invalid-responses-are-same-args': () => {
- return `The arguments passed into responsesAreSame() appear to be ` + `invalid. Please ensure valid Responses are used.`;
- },
- 'expire-custom-caches-only': () => {
- return `You must provide a 'cacheName' property when using the ` + `expiration plugin with a runtime caching strategy.`;
- },
- 'unit-must-be-bytes': ({ normalizedRangeHeader }) => {
- if (!normalizedRangeHeader) {
- throw new Error(`Unexpected input to 'unit-must-be-bytes' error.`);
- }
- return `The 'unit' portion of the Range header must be set to 'bytes'. ` + `The Range header provided was "${normalizedRangeHeader}"`;
- },
- 'single-range-only': ({ normalizedRangeHeader }) => {
- if (!normalizedRangeHeader) {
- throw new Error(`Unexpected input to 'single-range-only' error.`);
- }
- return `Multiple ranges are not supported. Please use a single start ` + `value, and optional end value. The Range header provided was ` + `"${normalizedRangeHeader}"`;
- },
- 'invalid-range-values': ({ normalizedRangeHeader }) => {
- if (!normalizedRangeHeader) {
- throw new Error(`Unexpected input to 'invalid-range-values' error.`);
- }
- return `The Range header is missing both start and end values. At least ` + `one of those values is needed. The Range header provided was ` + `"${normalizedRangeHeader}"`;
- },
- 'no-range-header': () => {
- return `No Range header was found in the Request provided.`;
- },
- 'range-not-satisfiable': ({ size, start, end }) => {
- return `The start (${start}) and end (${end}) values in the Range are ` + `not satisfiable by the cached response, which is ${size} bytes.`;
- },
- 'attempt-to-cache-non-get-request': ({ url, method }) => {
- return `Unable to cache '${url}' because it is a '${method}' request and ` + `only 'GET' requests can be cached.`;
- },
- 'cache-put-with-no-response': ({ url }) => {
- return `There was an attempt to cache '${url}' but the response was not ` + `defined.`;
- }
-};
-
-/*
- Copyright 2017 Google Inc.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- https://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-const generatorFunction = (code, ...args) => {
- const message = messages[code];
- if (!message) {
- throw new Error(`Unable to find message for code '${code}'.`);
- }
-
- return message(...args);
-};
-
-const exportedValue = generatorFunction;
-
-/*
- Copyright 2017 Google Inc.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- https://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/**
- * Workbox errors should be thrown with this class.
- * This allows use to ensure the type easily in tests,
- * helps developers identify errors from workbox
- * easily and allows use to optimise error
- * messages correctly.
- *
- * @private
- */
-class WorkboxError extends Error {
- /**
- *
- * @param {string} errorCode The error code that
- * identifies this particular error.
- * @param {Object=} details Any relevant arguments
- * that will help developers identify issues should
- * be added as a key on the context object.
- */
- constructor(errorCode, details) {
- let message = exportedValue(errorCode, details);
-
- super(message);
-
- this.name = errorCode;
- this.details = details;
- }
-}
-
-/*
- Copyright 2017 Google Inc.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- https://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-const _cacheNameDetails = {
- prefix: 'workbox',
- suffix: self.registration.scope,
- googleAnalytics: 'googleAnalytics',
- precache: 'precache',
- runtime: 'runtime'
-};
-
-const _createCacheName = cacheName => {
- return [_cacheNameDetails.prefix, cacheName, _cacheNameDetails.suffix].filter(value => value.length > 0).join('-');
-};
-
-const cacheNames = {
- updateDetails: details => {
- Object.keys(_cacheNameDetails).forEach(key => {
- if (typeof details[key] !== 'undefined') {
- _cacheNameDetails[key] = details[key];
- }
- });
- },
- getGoogleAnalyticsName: userCacheName => {
- return userCacheName || _createCacheName(_cacheNameDetails.googleAnalytics);
- },
- getPrecacheName: userCacheName => {
- return userCacheName || _createCacheName(_cacheNameDetails.precache);
- },
- getRuntimeName: userCacheName => {
- return userCacheName || _createCacheName(_cacheNameDetails.runtime);
- }
-};
-
-/*
- Copyright 2017 Google Inc.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- https://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-// Safari doesn't print all console.groupCollapsed() arguments.
-// Related bug: https://bugs.webkit.org/show_bug.cgi?id=182754
-const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
-
-const GREY = `#7f8c8d`;
-const GREEN = `#2ecc71`;
-const YELLOW = `#f39c12`;
-const RED = `#c0392b`;
-const BLUE = `#3498db`;
-
-const getDefaultLogLevel = () => LOG_LEVELS.log;
-
-let logLevel = getDefaultLogLevel();
-const shouldPrint = minLevel => logLevel <= minLevel;
-const setLoggerLevel = newLogLevel => logLevel = newLogLevel;
-const getLoggerLevel = () => logLevel;
-
-// We always want groups to be logged unless logLevel is silent.
-const groupLevel = LOG_LEVELS.error;
-
-const _print = function (keyName, logArgs, levelColor) {
- const logLevel = keyName.indexOf('group') === 0 ? groupLevel : LOG_LEVELS[keyName];
- if (!shouldPrint(logLevel)) {
- return;
- }
-
- if (!levelColor || keyName === 'groupCollapsed' && isSafari) {
- console[keyName](...logArgs);
- return;
- }
-
- const logPrefix = ['%cworkbox', `background: ${levelColor}; color: white; padding: 2px 0.5em; ` + `border-radius: 0.5em;`];
- console[keyName](...logPrefix, ...logArgs);
-};
-
-const groupEnd = () => {
- if (shouldPrint(groupLevel)) {
- console.groupEnd();
- }
-};
-
-const defaultExport = {
- groupEnd,
- unprefixed: {
- groupEnd
- }
-};
-
-const setupLogs = (keyName, color) => {
- defaultExport[keyName] = (...args) => _print(keyName, args, color);
- defaultExport.unprefixed[keyName] = (...args) => _print(keyName, args);
-};
-
-const levelToColor = {
- debug: GREY,
- log: GREEN,
- warn: YELLOW,
- error: RED,
- groupCollapsed: BLUE
-};
-Object.keys(levelToColor).forEach(keyName => setupLogs(keyName, levelToColor[keyName]));
-
-/*
- Copyright 2017 Google Inc.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- https://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/*
- * This method returns true if the current context is a service worker.
- */
-const isSwEnv = moduleName => {
- if (!('ServiceWorkerGlobalScope' in self)) {
- throw new WorkboxError('not-in-sw', { moduleName });
- }
-};
-
-/*
- * This method throws if the supplied value is not an array.
- * The destructed values are required to produce a meaningful error for users.
- * The destructed and restructured object is so it's clear what is
- * needed.
- */
-const isArray = (value, { moduleName, className, funcName, paramName }) => {
- if (!Array.isArray(value)) {
- throw new WorkboxError('not-an-array', {
- moduleName,
- className,
- funcName,
- paramName
- });
- }
-};
-
-const hasMethod = (object, expectedMethod, { moduleName, className, funcName, paramName }) => {
- const type = typeof object[expectedMethod];
- if (type !== 'function') {
- throw new WorkboxError('missing-a-method', { paramName, expectedMethod,
- moduleName, className, funcName });
- }
-};
-
-const isType = (object, expectedType, { moduleName, className, funcName, paramName }) => {
- if (typeof object !== expectedType) {
- throw new WorkboxError('incorrect-type', { paramName, expectedType,
- moduleName, className, funcName });
- }
-};
-
-const isInstance = (object, expectedClass, { moduleName, className, funcName,
- paramName, isReturnValueProblem }) => {
- if (!(object instanceof expectedClass)) {
- throw new WorkboxError('incorrect-class', { paramName, expectedClass,
- moduleName, className, funcName, isReturnValueProblem });
- }
-};
-
-const isOneOf = (value, validValues, { paramName }) => {
- if (!validValues.includes(value)) {
- throw new WorkboxError('invalid-value', {
- paramName,
- value,
- validValueDescription: `Valid values are ${JSON.stringify(validValues)}.`
- });
- }
-};
-
-const isArrayOfClass = (value, expectedClass, { moduleName, className, funcName, paramName }) => {
- const error = new WorkboxError('not-array-of-class', {
- value, expectedClass,
- moduleName, className, funcName, paramName
- });
- if (!Array.isArray(value)) {
- throw error;
- }
-
- for (let item of value) {
- if (!(item instanceof expectedClass)) {
- throw error;
- }
- }
-};
-
-const finalAssertExports = {
- hasMethod,
- isArray,
- isInstance,
- isOneOf,
- isSwEnv,
- isType,
- isArrayOfClass
-};
-
-/*
- Copyright 2017 Google Inc.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- https://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/**
- * Logs a warning to the user recommending changing
- * to max-age=0 or no-cache.
- *
- * @param {string} cacheControlHeader
- *
- * @private
- */
-function showWarning(cacheControlHeader) {
- const docsUrl = 'https://developers.google.com/web/tools/workbox/guides/service-worker-checklist#cache-control_of_your_service_worker_file';
- defaultExport.warn(`You are setting a 'cache-control' header of ` + `'${cacheControlHeader}' on your service worker file. This should be ` + `set to 'max-age=0' or 'no-cache' to ensure the latest service worker ` + `is served to your users. Learn more here: ${docsUrl}`);
-}
-
-/**
- * Checks for cache-control header on SW file and
- * warns the developer if it exists with a value
- * other than max-age=0 or no-cache.
- *
- * @private
- */
-function checkSWFileCacheHeaders() {
- // This is wrapped as an iife to allow async/await while making
- // rollup exclude it in builds.
- babelHelpers.asyncToGenerator(function* () {
- try {
- const swFile = self.location.href;
- const response = yield fetch(swFile);
- if (!response.ok) {
- // Response failed so nothing we can check;
- return;
- }
-
- if (!response.headers.has('cache-control')) {
- // No cache control header.
- return;
- }
-
- const cacheControlHeader = response.headers.get('cache-control');
- const maxAgeResult = /max-age\s*=\s*(\d*)/g.exec(cacheControlHeader);
- if (maxAgeResult) {
- if (parseInt(maxAgeResult[1], 10) === 0) {
- return;
- }
- }
-
- if (cacheControlHeader.indexOf('no-cache') !== -1) {
- return;
- }
-
- if (cacheControlHeader.indexOf('no-store') !== -1) {
- return;
- }
-
- showWarning(cacheControlHeader);
- } catch (err) {
- // NOOP
- }
- })();
-}
-
-const finalCheckSWFileCacheHeaders = checkSWFileCacheHeaders;
-
-/*
- Copyright 2017 Google Inc.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- https://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/**
- * This class is never exposed publicly. Inidividual methods are exposed
- * using jsdoc alias commands.
- *
- * @memberof workbox.core
- * @private
- */
-class WorkboxCore {
- /**
- * You should not instantiate this object directly.
- *
- * @private
- */
- constructor() {
- // Give our version strings something to hang off of.
- try {
- self.workbox.v = self.workbox.v || {};
- } catch (err) {}
- // NOOP
-
-
- // A WorkboxCore instance must be exported before we can use the logger.
- // This is so it can get the current log level.
- {
- const padding = ' ';
- defaultExport.groupCollapsed('Welcome to Workbox!');
- defaultExport.unprefixed.log(`You are currently using a development build. ` + `By default this will switch to prod builds when not on localhost. ` + `You can force this with workbox.setConfig({debug: true|false}).`);
- defaultExport.unprefixed.log(`📖 Read the guides and documentation\n` + `${padding}https://developers.google.com/web/tools/workbox/`);
- defaultExport.unprefixed.log(`❓ Use the [workbox] tag on Stack Overflow to ask questions\n` + `${padding}https://stackoverflow.com/questions/ask?tags=workbox`);
- defaultExport.unprefixed.log(`🐛 Found a bug? Report it on GitHub\n` + `${padding}https://github.com/GoogleChrome/workbox/issues/new`);
- defaultExport.groupEnd();
-
- if (typeof finalCheckSWFileCacheHeaders === 'function') {
- finalCheckSWFileCacheHeaders();
- }
- }
- }
-
- /**
- * Get the current cache names used by Workbox.
- *
- * `cacheNames.precache` is used for precached assets,
- * `cacheNames.googleAnalytics` is used by `workbox-google-analytics` to
- * store `analytics.js`,
- * and `cacheNames.runtime` is used for everything else.
- *
- * @return {Object} An object with `precache` and `runtime` cache names.
- *
- * @alias workbox.core.cacheNames
- */
- get cacheNames() {
- return {
- googleAnalytics: cacheNames.getGoogleAnalyticsName(),
- precache: cacheNames.getPrecacheName(),
- runtime: cacheNames.getRuntimeName()
- };
- }
-
- /**
- * You can alter the default cache names used by the Workbox modules by
- * changing the cache name details.
- *
- * Cache names are generated as `<prefix>-<Cache Name>-<suffix>`.
- *
- * @param {Object} details
- * @param {Object} details.prefix The string to add to the beginning of
- * the precache and runtime cache names.
- * @param {Object} details.suffix The string to add to the end of
- * the precache and runtime cache names.
- * @param {Object} details.precache The cache name to use for precache
- * caching.
- * @param {Object} details.runtime The cache name to use for runtime caching.
- * @param {Object} details.googleAnalytics The cache name to use for
- * `workbox-google-analytics` caching.
- *
- * @alias workbox.core.setCacheNameDetails
- */
- setCacheNameDetails(details) {
- {
- Object.keys(details).forEach(key => {
- finalAssertExports.isType(details[key], 'string', {
- moduleName: 'workbox-core',
- className: 'WorkboxCore',
- funcName: 'setCacheNameDetails',
- paramName: `details.${key}`
- });
- });
-
- if ('precache' in details && details.precache.length === 0) {
- throw new WorkboxError('invalid-cache-name', {
- cacheNameId: 'precache',
- value: details.precache
- });
- }
-
- if ('runtime' in details && details.runtime.length === 0) {
- throw new WorkboxError('invalid-cache-name', {
- cacheNameId: 'runtime',
- value: details.runtime
- });
- }
-
- if ('googleAnalytics' in details && details.googleAnalytics.length === 0) {
- throw new WorkboxError('invalid-cache-name', {
- cacheNameId: 'googleAnalytics',
- value: details.googleAnalytics
- });
- }
- }
-
- cacheNames.updateDetails(details);
- }
-
- /**
- * Get the current log level.
- *
- * @return {number}.
- *
- * @alias workbox.core.logLevel
- */
- get logLevel() {
- return getLoggerLevel();
- }
-
- /**
- * Set the current log level passing in one of the values from
- * [LOG_LEVELS]{@link module:workbox-core.LOG_LEVELS}.
- *
- * @param {number} newLevel The new log level to use.
- *
- * @alias workbox.core.setLogLevel
- */
- setLogLevel(newLevel) {
- {
- finalAssertExports.isType(newLevel, 'number', {
- moduleName: 'workbox-core',
- className: 'WorkboxCore',
- funcName: 'logLevel [setter]',
- paramName: `logLevel`
- });
- }
-
- if (newLevel > LOG_LEVELS.silent || newLevel < LOG_LEVELS.debug) {
- throw new WorkboxError('invalid-value', {
- paramName: 'logLevel',
- validValueDescription: `Please use a value from LOG_LEVELS, i.e ` + `'logLevel = workbox.core.LOG_LEVELS.debug'.`,
- value: newLevel
- });
- }
-
- setLoggerLevel(newLevel);
- }
-}
-
-var defaultExport$1 = new WorkboxCore();
-
-/*
- Copyright 2017 Google Inc.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- https://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-const getFriendlyURL = url => {
- const urlObj = new URL(url, location);
- if (urlObj.origin === location.origin) {
- return urlObj.pathname;
- }
- return urlObj.href;
-};
-
-/*
- Copyright 2017 Google Inc.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- https://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-var pluginEvents = {
- CACHE_DID_UPDATE: 'cacheDidUpdate',
- CACHE_WILL_UPDATE: 'cacheWillUpdate',
- CACHED_RESPONSE_WILL_BE_USED: 'cachedResponseWillBeUsed',
- FETCH_DID_FAIL: 'fetchDidFail',
- REQUEST_WILL_FETCH: 'requestWillFetch'
-};
-
-/*
- Copyright 2017 Google Inc.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- https://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-var pluginUtils = {
- filter: (plugins, callbackname) => {
- return plugins.filter(plugin => callbackname in plugin);
- }
-};
-
-/*
- Copyright 2017 Google Inc.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- https://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/**
- * Wrapper around cache.put().
- *
- * Will call `cacheDidUpdate` on plugins if the cache was updated.
- *
- * @param {string} cacheName
- * @param {Request} request
- * @param {Response} response
- * @param {Array<Object>} [plugins]
- *
- * @private
- * @memberof module:workbox-core
- */
-const putWrapper = (() => {
- var _ref = babelHelpers.asyncToGenerator(function* (cacheName, request, response, plugins = []) {
- if (!response) {
- {
- defaultExport.error(`Cannot cache non-existant response for ` + `'${getFriendlyURL(request.url)}'.`);
- }
-
- throw new WorkboxError('cache-put-with-no-response', {
- url: getFriendlyURL(request.url)
- });
- }
-
- let responseToCache = yield _isResponseSafeToCache(request, response, plugins);
-
- if (!responseToCache) {
- {
- defaultExport.debug(`Response '${getFriendlyURL(request.url)}' will not be ` + `cached.`, responseToCache);
- }
- return;
- }
-
- {
- if (responseToCache.method && responseToCache.method !== 'GET') {
- throw new WorkboxError('attempt-to-cache-non-get-request', {
- url: getFriendlyURL(request.url),
- method: responseToCache.method
- });
- }
- }
-
- const cache = yield caches.open(cacheName);
-
- const updatePlugins = pluginUtils.filter(plugins, pluginEvents.CACHE_DID_UPDATE);
-
- let oldResponse = updatePlugins.length > 0 ? yield matchWrapper(cacheName, request) : null;
-
- {
- defaultExport.debug(`Updating the '${cacheName}' cache with a new Response for ` + `${getFriendlyURL(request.url)}.`);
- }
-
- // Regardless of whether or not we'll end up invoking
- // cacheDidUpdate, wait until the cache is updated.
- yield cache.put(request, responseToCache);
-
- for (let plugin of updatePlugins) {
- yield plugin[pluginEvents.CACHE_DID_UPDATE].call(plugin, {
- cacheName,
- request,
- oldResponse,
- newResponse: responseToCache
- });
- }
- });
-
- return function putWrapper(_x, _x2, _x3) {
- return _ref.apply(this, arguments);
- };
-})();
-
-/**
- * This is a wrapper around cache.match().
- *
- * @param {string} cacheName Name of the cache to match against.
- * @param {Request} request The Request that will be used to look up cache
- * entries.
- * @param {Object} matchOptions Options passed to cache.match().
- * @param {Array<Object>} [plugins] Array of plugins.
- * @return {Response} A cached response if available.
- *
- * @private
- * @memberof module:workbox-core
- */
-const matchWrapper = (() => {
- var _ref2 = babelHelpers.asyncToGenerator(function* (cacheName, request, matchOptions, plugins = []) {
- const cache = yield caches.open(cacheName);
- let cachedResponse = yield cache.match(request, matchOptions);
- {
- if (cachedResponse) {
- defaultExport.debug(`Found a cached response in '${cacheName}'.`);
- } else {
- defaultExport.debug(`No cached response found in '${cacheName}'.`);
- }
- }
- for (let plugin of plugins) {
- if (pluginEvents.CACHED_RESPONSE_WILL_BE_USED in plugin) {
- cachedResponse = yield plugin[pluginEvents.CACHED_RESPONSE_WILL_BE_USED].call(plugin, {
- cacheName,
- request,
- matchOptions,
- cachedResponse
- });
- {
- if (cachedResponse) {
- finalAssertExports.isInstance(cachedResponse, Response, {
- moduleName: 'Plugin',
- funcName: pluginEvents.CACHED_RESPONSE_WILL_BE_USED,
- isReturnValueProblem: true
- });
- }
- }
- }
- }
- return cachedResponse;
- });
-
- return function matchWrapper(_x4, _x5, _x6) {
- return _ref2.apply(this, arguments);
- };
-})();
-
-/**
- * This method will call cacheWillUpdate on the available plugins (or use
- * response.ok) to determine if the Response is safe and valid to cache.
- *
- * @param {Request} request
- * @param {Response} response
- * @param {Array<Object>} plugins
- * @return {Promise<Response>}
- *
- * @private
- * @memberof module:workbox-core
- */
-const _isResponseSafeToCache = (() => {
- var _ref3 = babelHelpers.asyncToGenerator(function* (request, response, plugins) {
- let responseToCache = response;
- let pluginsUsed = false;
- for (let plugin of plugins) {
- if (pluginEvents.CACHE_WILL_UPDATE in plugin) {
- pluginsUsed = true;
- responseToCache = yield plugin[pluginEvents.CACHE_WILL_UPDATE].call(plugin, {
- request,
- response: responseToCache
- });
-
- {
- if (responseToCache) {
- finalAssertExports.isInstance(responseToCache, Response, {
- moduleName: 'Plugin',
- funcName: pluginEvents.CACHE_WILL_UPDATE,
- isReturnValueProblem: true
- });
- }
- }
-
- if (!responseToCache) {
- break;
- }
- }
- }
-
- if (!pluginsUsed) {
- {
- if (!responseToCache.ok) {
- if (responseToCache.status === 0) {
- defaultExport.warn(`The response for '${request.url}' is an opaque ` + `response. The caching strategy that you're using will not ` + `cache opaque responses by default.`);
- } else {
- defaultExport.debug(`The response for '${request.url}' returned ` + `a status code of '${response.status}' and won't be cached as a ` + `result.`);
- }
- }
- }
- responseToCache = responseToCache.ok ? responseToCache : null;
- }
-
- return responseToCache ? responseToCache : null;
- });
-
- return function _isResponseSafeToCache(_x7, _x8, _x9) {
- return _ref3.apply(this, arguments);
- };
-})();
-
-const cacheWrapper = {
- put: putWrapper,
- match: matchWrapper
-};
-
-/*
- Copyright 2017 Google Inc.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- https://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/**
- * Wrapper around the fetch API.
- *
- * Will call requestWillFetch on available plugins.
- *
- * @param {Request|string} request
- * @param {Object} fetchOptions
- * @param {Array<Object>} [plugins]
- * @return {Promise<Response>}
- *
- * @private
- * @memberof module:workbox-core
- */
-const wrappedFetch = (() => {
- var _ref = babelHelpers.asyncToGenerator(function* (request, fetchOptions, plugins = []) {
- if (typeof request === 'string') {
- request = new Request(request);
- }
-
- {
- finalAssertExports.isInstance(request, Request, {
- paramName: request,
- expectedClass: 'Request',
- moduleName: 'workbox-core',
- className: 'fetchWrapper',
- funcName: 'wrappedFetch'
- });
- }
-
- const failedFetchPlugins = pluginUtils.filter(plugins, pluginEvents.FETCH_DID_FAIL);
-
- // If there is a fetchDidFail plugin, we need to save a clone of the
- // original request before it's either modified by a requestWillFetch
- // plugin or before the original request's body is consumed via fetch().
- const originalRequest = failedFetchPlugins.length > 0 ? request.clone() : null;
-
- try {
- for (let plugin of plugins) {
- if (pluginEvents.REQUEST_WILL_FETCH in plugin) {
- request = yield plugin[pluginEvents.REQUEST_WILL_FETCH].call(plugin, {
- request: request.clone()
- });
-
- {
- if (request) {
- finalAssertExports.isInstance(request, Request, {
- moduleName: 'Plugin',
- funcName: pluginEvents.CACHED_RESPONSE_WILL_BE_USED,
- isReturnValueProblem: true
- });
- }
- }
- }
- }
- } catch (err) {
- throw new WorkboxError('plugin-error-request-will-fetch', {
- thrownError: err
- });
- }
-
- // The request can be altered by plugins with `requestWillFetch` making
- // the original request (Most likely from a `fetch` event) to be different
- // to the Request we make. Pass both to `fetchDidFail` to aid debugging.
- const pluginFilteredRequest = request.clone();
-
- try {
- const response = yield fetch(request, fetchOptions);
- {
- defaultExport.debug(`Network request for ` + `'${getFriendlyURL(request.url)}' returned a response with ` + `status '${response.status}'.`);
- }
- return response;
- } catch (err) {
- {
- defaultExport.error(`Network request for ` + `'${getFriendlyURL(request.url)}' threw an error.`, err);
- }
-
- for (let plugin of failedFetchPlugins) {
- yield plugin[pluginEvents.FETCH_DID_FAIL].call(plugin, {
- originalRequest: originalRequest.clone(),
- request: pluginFilteredRequest.clone()
- });
- }
-
- throw err;
- }
- });
-
- return function wrappedFetch(_x, _x2) {
- return _ref.apply(this, arguments);
- };
-})();
-
-const fetchWrapper = {
- fetch: wrappedFetch
-};
-
-/*
- Copyright 2017 Google Inc.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- https://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/**
- * A class that wraps common IndexedDB functionality in a promise-based API.
- * It exposes all the underlying power and functionality of IndexedDB, but
- * wraps the most commonly used features in a way that's much simpler to use.
- *
- * @private
- */
-class DBWrapper {
- /**
- * @param {string} name
- * @param {number} version
- * @param {Object=} [callback]
- * @param {function(this:DBWrapper, Event)} [callbacks.onupgradeneeded]
- * @param {function(this:DBWrapper, Event)} [callbacks.onversionchange]
- * Defaults to DBWrapper.prototype._onversionchange when not specified.
- */
- constructor(name, version, {
- onupgradeneeded,
- onversionchange = this._onversionchange
- } = {}) {
- this._name = name;
- this._version = version;
- this._onupgradeneeded = onupgradeneeded;
- this._onversionchange = onversionchange;
-
- // If this is null, it means the database isn't open.
- this._db = null;
- }
-
- /**
- * Opens a connected to an IDBDatabase, invokes any onupgradedneeded
- * callback, and added an onversionchange callback to the database.
- *
- * @return {IDBDatabase}
- *
- * @private
- */
- open() {
- var _this = this;
-
- return babelHelpers.asyncToGenerator(function* () {
- if (_this._db) return;
-
- _this._db = yield new Promise(function (resolve, reject) {
- // This flag is flipped to true if the timeout callback runs prior
- // to the request failing or succeeding. Note: we use a timeout instead
- // of an onblocked handler since there are cases where onblocked will
- // never never run. A timeout better handles all possible scenarios:
- // https://github.com/w3c/IndexedDB/issues/223
- let openRequestTimedOut = false;
- setTimeout(function () {
- openRequestTimedOut = true;
- reject(new Error('The open request was blocked and timed out'));
- }, _this.OPEN_TIMEOUT);
-
- const openRequest = indexedDB.open(_this._name, _this._version);
- openRequest.onerror = function (evt) {
- return reject(openRequest.error);
- };
- openRequest.onupgradeneeded = function (evt) {
- if (openRequestTimedOut) {
- openRequest.transaction.abort();
- evt.target.result.close();
- } else if (_this._onupgradeneeded) {
- _this._onupgradeneeded(evt);
- }
- };
- openRequest.onsuccess = function (evt) {
- const db = evt.target.result;
- if (openRequestTimedOut) {
- db.close();
- } else {
- db.onversionchange = _this._onversionchange;
- resolve(db);
- }
- };
- });
-
- return _this;
- })();
- }
-
- /**
- * Delegates to the native `get()` method for the object store.
- *
- * @param {string} storeName The name of the object store to put the value.
- * @param {...*} args The values passed to the delegated method.
- * @return {*} The key of the entry.
- *
- * @private
- */
- get(storeName, ...args) {
- var _this2 = this;
-
- return babelHelpers.asyncToGenerator(function* () {
- return yield _this2._call('get', storeName, 'readonly', ...args);
- })();
- }
-
- /**
- * Delegates to the native `add()` method for the object store.
- *
- * @param {string} storeName The name of the object store to put the value.
- * @param {...*} args The values passed to the delegated method.
- * @return {*} The key of the entry.
- *
- * @private
- */
- add(storeName, ...args) {
- var _this3 = this;
-
- return babelHelpers.asyncToGenerator(function* () {
- return yield _this3._call('add', storeName, 'readwrite', ...args);
- })();
- }
-
- /**
- * Delegates to the native `put()` method for the object store.
- *
- * @param {string} storeName The name of the object store to put the value.
- * @param {...*} args The values passed to the delegated method.
- * @return {*} The key of the entry.
- *
- * @private
- */
- put(storeName, ...args) {
- var _this4 = this;
-
- return babelHelpers.asyncToGenerator(function* () {
- return yield _this4._call('put', storeName, 'readwrite', ...args);
- })();
- }
-
- /**
- * Delegates to the native `delete()` method for the object store.
- *
- * @param {string} storeName
- * @param {...*} args The values passed to the delegated method.
- *
- * @private
- */
- delete(storeName, ...args) {
- var _this5 = this;
-
- return babelHelpers.asyncToGenerator(function* () {
- yield _this5._call('delete', storeName, 'readwrite', ...args);
- })();
- }
-
- /**
- * Delegates to the native `getAll()` or polyfills it via the `find()`
- * method in older browsers.
- *
- * @param {string} storeName
- * @param {*} query
- * @param {number} count
- * @return {Array}
- *
- * @private
- */
- getAll(storeName, query, count) {
- var _this6 = this;
-
- return babelHelpers.asyncToGenerator(function* () {
- if ('getAll' in IDBObjectStore.prototype) {
- return yield _this6._call('getAll', storeName, 'readonly', query, count);
- } else {
- return yield _this6.getAllMatching(storeName, { query, count });
- }
- })();
- }
-
- /**
- * Supports flexible lookup in an object store by specifying an index,
- * query, direction, and count. This method returns an array of objects
- * with the signature .
- *
- * @param {string} storeName
- * @param {Object} [opts]
- * @param {IDBCursorDirection} [opts.direction]
- * @param {*} [opts.query]
- * @param {string} [opts.index] The index to use (if specified).
- * @param {number} [opts.count] The max number of results to return.
- * @param {boolean} [opts.includeKeys] When true, the structure of the
- * returned objects is changed from an array of values to an array of
- * objects in the form {key, primaryKey, value}.
- * @return {Array}
- *
- * @private
- */
- getAllMatching(storeName, opts = {}) {
- var _this7 = this;
-
- return babelHelpers.asyncToGenerator(function* () {
- return yield _this7.transaction([storeName], 'readonly', function (stores, done) {
- const store = stores[storeName];
- const target = opts.index ? store.index(opts.index) : store;
- const results = [];
-
- target.openCursor(opts.query, opts.direction).onsuccess = function (evt) {
- const cursor = evt.target.result;
- if (cursor) {
- const { primaryKey, key, value } = cursor;
- results.push(opts.includeKeys ? { primaryKey, key, value } : value);
- if (opts.count && results.length >= opts.count) {
- done(results);
- } else {
- cursor.continue();
- }
- } else {
- done(results);
- }
- };
- });
- })();
- }
-
- /**
- * Accepts a list of stores, a transaction type, and a callback and
- * performs a transaction. A promise is returned that resolves to whatever
- * value the callback chooses. The callback holds all the transaction logic
- * and is invoked with three arguments:
- * 1. An object mapping object store names to IDBObjectStore values.
- * 2. A `done` function, that's used to resolve the promise when
- * when the transaction is done.
- * 3. An `abort` function that can be called to abort the transaction
- * at any time.
- *
- * @param {Array<string>} storeNames An array of object store names
- * involved in the transaction.
- * @param {string} type Can be `readonly` or `readwrite`.
- * @param {function(Object, function(), function(*)):?IDBRequest} callback
- * @return {*} The result of the transaction ran by the callback.
- *
- * @private
- */
- transaction(storeNames, type, callback) {
- var _this8 = this;
-
- return babelHelpers.asyncToGenerator(function* () {
- yield _this8.open();
- const result = yield new Promise(function (resolve, reject) {
- const txn = _this8._db.transaction(storeNames, type);
- const done = function (value) {
- return resolve(value);
- };
- const abort = function () {
- reject(new Error('The transaction was manually aborted'));
- txn.abort();
- };
- txn.onerror = function (evt) {
- return reject(evt.target.error);
- };
- txn.onabort = function (evt) {
- return reject(evt.target.error);
- };
- txn.oncomplete = function () {
- return resolve();
- };
-
- const stores = {};
- for (const storeName of storeNames) {
- stores[storeName] = txn.objectStore(storeName);
- }
- callback(stores, done, abort);
- });
- return result;
- })();
- }
-
- /**
- * Delegates async to a native IDBObjectStore method.
- *
- * @param {string} method The method name.
- * @param {string} storeName The object store name.
- * @param {string} type Can be `readonly` or `readwrite`.
- * @param {...*} args The list of args to pass to the native method.
- * @return {*} The result of the transaction.
- *
- * @private
- */
- _call(method, storeName, type, ...args) {
- var _this9 = this;
-
- return babelHelpers.asyncToGenerator(function* () {
- yield _this9.open();
- const callback = function (stores, done) {
- stores[storeName][method](...args).onsuccess = function (evt) {
- done(evt.target.result);
- };
- };
-
- return yield _this9.transaction([storeName], type, callback);
- })();
- }
-
- /**
- * The default onversionchange handler, which closes the database so other
- * connections can open without being blocked.
- *
- * @param {Event} evt
- *
- * @private
- */
- _onversionchange(evt) {
- this.close();
- }
-
- /**
- * Closes the connection opened by `DBWrapper.open()`. Generally this method
- * doesn't need to be called since:
- * 1. It's usually better to keep a connection open since opening
- * a new connection is somewhat slow.
- * 2. Connections are automatically closed when the reference is
- * garbage collected.
- * The primary use case for needing to close a connection is when another
- * reference (typically in another tab) needs to upgrade it and would be
- * blocked by the current, open connection.
- *
- * @private
- */
- close() {
- if (this._db) this._db.close();
- }
-}
-
-// Exposed to let users modify the default timeout on a per-instance
-// or global basis.
-DBWrapper.prototype.OPEN_TIMEOUT = 2000;
-
-/*
- Copyright 2017 Google Inc.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- https://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-
-var _private = Object.freeze({
- logger: defaultExport,
- assert: finalAssertExports,
- cacheNames: cacheNames,
- cacheWrapper: cacheWrapper,
- fetchWrapper: fetchWrapper,
- WorkboxError: WorkboxError,
- DBWrapper: DBWrapper,
- getFriendlyURL: getFriendlyURL
-});
-
-/*
- Copyright 2017 Google Inc.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- https://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-const finalExports = Object.assign(defaultExport$1, {
- LOG_LEVELS,
- _private
-});
-
-return finalExports;
-
-}());
-
-//# sourceMappingURL=workbox-core.dev.js.map