2023-02-19 15:14:56 +08:00
/******/ ( ( ) => { // webpackBootstrap
/******/ "use strict" ;
/******/ var _ _webpack _modules _ _ = ( {
/***/ "./node_modules/workbox-core/_private/Deferred.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - core / _private / Deferred . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "Deferred" : ( ) => ( /* binding */ Deferred )
/* harmony export */ } ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ../_version.js */ "./node_modules/workbox-core/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ ) ;
/ *
Copyright 2018 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ * *
* The Deferred class composes Promises in a way that allows for them to be
* resolved or rejected from outside the constructor . In most cases promises
* should be used directly , but Deferreds can be necessary when the logic to
* resolve a promise must be separate .
*
* @ private
* /
class Deferred {
/ * *
* Creates a promise and exposes its resolve and reject functions as methods .
* /
constructor ( ) {
this . promise = new Promise ( ( resolve , reject ) => {
this . resolve = resolve ;
this . reject = reject ;
} ) ;
}
}
/***/ } ) ,
/***/ "./node_modules/workbox-core/_private/WorkboxError.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - core / _private / WorkboxError . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "WorkboxError" : ( ) => ( /* binding */ WorkboxError )
/* harmony export */ } ) ;
/* harmony import */ var _models _messages _messageGenerator _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ../models/messages/messageGenerator.js */ "./node_modules/workbox-core/models/messages/messageGenerator.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( /*! ../_version.js */ "./node_modules/workbox-core/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ ) ;
/ *
Copyright 2018 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ * *
* 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 ) {
const message = ( 0 , _models _messages _messageGenerator _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . messageGenerator ) ( errorCode , details ) ;
super ( message ) ;
this . name = errorCode ;
this . details = details ;
}
}
/***/ } ) ,
/***/ "./node_modules/workbox-core/_private/assert.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - core / _private / assert . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "assert" : ( ) => ( /* binding */ finalAssertExports )
/* harmony export */ } ) ;
/* harmony import */ var _private _WorkboxError _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ../_private/WorkboxError.js */ "./node_modules/workbox-core/_private/WorkboxError.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( /*! ../_version.js */ "./node_modules/workbox-core/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ ) ;
/ *
Copyright 2018 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ *
* 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 , details ) => {
if ( ! Array . isArray ( value ) ) {
throw new _private _WorkboxError _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . WorkboxError ( 'not-an-array' , details ) ;
}
} ;
const hasMethod = ( object , expectedMethod , details ) => {
const type = typeof object [ expectedMethod ] ;
if ( type !== 'function' ) {
details [ 'expectedMethod' ] = expectedMethod ;
throw new _private _WorkboxError _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . WorkboxError ( 'missing-a-method' , details ) ;
}
} ;
const isType = ( object , expectedType , details ) => {
if ( typeof object !== expectedType ) {
details [ 'expectedType' ] = expectedType ;
throw new _private _WorkboxError _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . WorkboxError ( 'incorrect-type' , details ) ;
}
} ;
const isInstance = ( object ,
// Need the general type to do the check later.
// eslint-disable-next-line @typescript-eslint/ban-types
expectedClass , details ) => {
if ( ! ( object instanceof expectedClass ) ) {
details [ 'expectedClassName' ] = expectedClass . name ;
throw new _private _WorkboxError _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . WorkboxError ( 'incorrect-class' , details ) ;
}
} ;
const isOneOf = ( value , validValues , details ) => {
if ( ! validValues . includes ( value ) ) {
details [ 'validValueDescription' ] = ` Valid values are ${ JSON . stringify ( validValues ) } . ` ;
throw new _private _WorkboxError _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . WorkboxError ( 'invalid-value' , details ) ;
}
} ;
const isArrayOfClass = ( value ,
// Need general type to do check later.
expectedClass , // eslint-disable-line
details ) => {
const error = new _private _WorkboxError _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . WorkboxError ( 'not-array-of-class' , details ) ;
if ( ! Array . isArray ( value ) ) {
throw error ;
}
for ( const item of value ) {
if ( ! ( item instanceof expectedClass ) ) {
throw error ;
}
}
} ;
const finalAssertExports = false
? 0
: {
hasMethod ,
isArray ,
isInstance ,
isOneOf ,
isType ,
isArrayOfClass ,
} ;
/***/ } ) ,
/***/ "./node_modules/workbox-core/_private/cacheMatchIgnoreParams.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - core / _private / cacheMatchIgnoreParams . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "cacheMatchIgnoreParams" : ( ) => ( /* binding */ cacheMatchIgnoreParams )
/* harmony export */ } ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ../_version.js */ "./node_modules/workbox-core/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ ) ;
/ *
Copyright 2020 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
function stripParams ( fullURL , ignoreParams ) {
const strippedURL = new URL ( fullURL ) ;
for ( const param of ignoreParams ) {
strippedURL . searchParams . delete ( param ) ;
}
return strippedURL . href ;
}
/ * *
* Matches an item in the cache , ignoring specific URL params . This is similar
* to the ` ignoreSearch ` option , but it allows you to ignore just specific
* params ( while continuing to match on the others ) .
*
* @ private
* @ param { Cache } cache
* @ param { Request } request
* @ param { Object } matchOptions
* @ param { Array < string > } ignoreParams
* @ return { Promise < Response | undefined > }
* /
async function cacheMatchIgnoreParams ( cache , request , ignoreParams , matchOptions ) {
const strippedRequestURL = stripParams ( request . url , ignoreParams ) ;
// If the request doesn't include any ignored params, match as normal.
if ( request . url === strippedRequestURL ) {
return cache . match ( request , matchOptions ) ;
}
// Otherwise, match by comparing keys
const keysOptions = Object . assign ( Object . assign ( { } , matchOptions ) , { ignoreSearch : true } ) ;
const cacheKeys = await cache . keys ( request , keysOptions ) ;
for ( const cacheKey of cacheKeys ) {
const strippedCacheKeyURL = stripParams ( cacheKey . url , ignoreParams ) ;
if ( strippedRequestURL === strippedCacheKeyURL ) {
return cache . match ( cacheKey , matchOptions ) ;
}
}
return ;
}
/***/ } ) ,
/***/ "./node_modules/workbox-core/_private/cacheNames.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - core / _private / cacheNames . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "cacheNames" : ( ) => ( /* binding */ cacheNames )
/* harmony export */ } ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ../_version.js */ "./node_modules/workbox-core/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ ) ;
/ *
Copyright 2018 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
const _cacheNameDetails = {
googleAnalytics : 'googleAnalytics' ,
precache : 'precache-v2' ,
prefix : 'workbox' ,
runtime : 'runtime' ,
suffix : typeof registration !== 'undefined' ? registration . scope : '' ,
} ;
const _createCacheName = ( cacheName ) => {
return [ _cacheNameDetails . prefix , cacheName , _cacheNameDetails . suffix ]
. filter ( ( value ) => value && value . length > 0 )
. join ( '-' ) ;
} ;
const eachCacheNameDetail = ( fn ) => {
for ( const key of Object . keys ( _cacheNameDetails ) ) {
fn ( key ) ;
}
} ;
const cacheNames = {
updateDetails : ( details ) => {
eachCacheNameDetail ( ( key ) => {
if ( typeof details [ key ] === 'string' ) {
_cacheNameDetails [ key ] = details [ key ] ;
}
} ) ;
} ,
getGoogleAnalyticsName : ( userCacheName ) => {
return userCacheName || _createCacheName ( _cacheNameDetails . googleAnalytics ) ;
} ,
getPrecacheName : ( userCacheName ) => {
return userCacheName || _createCacheName ( _cacheNameDetails . precache ) ;
} ,
getPrefix : ( ) => {
return _cacheNameDetails . prefix ;
} ,
getRuntimeName : ( userCacheName ) => {
return userCacheName || _createCacheName ( _cacheNameDetails . runtime ) ;
} ,
getSuffix : ( ) => {
return _cacheNameDetails . suffix ;
} ,
} ;
/***/ } ) ,
/***/ "./node_modules/workbox-core/_private/canConstructResponseFromBodyStream.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - core / _private / canConstructResponseFromBodyStream . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "canConstructResponseFromBodyStream" : ( ) => ( /* binding */ canConstructResponseFromBodyStream )
/* harmony export */ } ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ../_version.js */ "./node_modules/workbox-core/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ ) ;
/ *
Copyright 2019 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
let supportStatus ;
/ * *
* A utility function that determines whether the current browser supports
* constructing a new ` Response ` from a ` response.body ` stream .
*
* @ return { boolean } ` true ` , if the current browser can successfully
* construct a ` Response ` from a ` response.body ` stream , ` false ` otherwise .
*
* @ private
* /
function canConstructResponseFromBodyStream ( ) {
if ( supportStatus === undefined ) {
const testResponse = new Response ( '' ) ;
if ( 'body' in testResponse ) {
try {
new Response ( testResponse . body ) ;
supportStatus = true ;
}
catch ( error ) {
supportStatus = false ;
}
}
supportStatus = false ;
}
return supportStatus ;
}
/***/ } ) ,
/***/ "./node_modules/workbox-core/_private/executeQuotaErrorCallbacks.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - core / _private / executeQuotaErrorCallbacks . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "executeQuotaErrorCallbacks" : ( ) => ( /* binding */ executeQuotaErrorCallbacks )
/* harmony export */ } ) ;
/* harmony import */ var _private _logger _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ../_private/logger.js */ "./node_modules/workbox-core/_private/logger.js" ) ;
/* harmony import */ var _models _quotaErrorCallbacks _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( /*! ../models/quotaErrorCallbacks.js */ "./node_modules/workbox-core/models/quotaErrorCallbacks.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ = _ _webpack _require _ _ ( /*! ../_version.js */ "./node_modules/workbox-core/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ ) ;
/ *
Copyright 2018 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ * *
* Runs all of the callback functions , one at a time sequentially , in the order
* in which they were registered .
*
* @ memberof workbox - core
* @ private
* /
async function executeQuotaErrorCallbacks ( ) {
if ( true ) {
_private _logger _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . logger . log ( ` About to run ${ _models _quotaErrorCallbacks _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ . quotaErrorCallbacks . size } ` +
` callbacks to clean up caches. ` ) ;
}
for ( const callback of _models _quotaErrorCallbacks _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ . quotaErrorCallbacks ) {
await callback ( ) ;
if ( true ) {
_private _logger _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . logger . log ( callback , 'is complete.' ) ;
}
}
if ( true ) {
_private _logger _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . logger . log ( 'Finished running callbacks.' ) ;
}
}
/***/ } ) ,
/***/ "./node_modules/workbox-core/_private/getFriendlyURL.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - core / _private / getFriendlyURL . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "getFriendlyURL" : ( ) => ( /* binding */ getFriendlyURL )
/* harmony export */ } ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ../_version.js */ "./node_modules/workbox-core/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ ) ;
/ *
Copyright 2018 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
const getFriendlyURL = ( url ) => {
const urlObj = new URL ( String ( url ) , location . href ) ;
// See https://github.com/GoogleChrome/workbox/issues/2323
// We want to include everything, except for the origin if it's same-origin.
return urlObj . href . replace ( new RegExp ( ` ^ ${ location . origin } ` ) , '' ) ;
} ;
/***/ } ) ,
/***/ "./node_modules/workbox-core/_private/logger.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - core / _private / logger . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "logger" : ( ) => ( /* binding */ logger )
/* harmony export */ } ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ../_version.js */ "./node_modules/workbox-core/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ ) ;
/ *
Copyright 2019 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
const logger = ( false
? 0
: ( ( ) => {
// Don't overwrite this value if it's already set.
// See https://github.com/GoogleChrome/workbox/pull/2284#issuecomment-560470923
if ( ! ( '__WB_DISABLE_DEV_LOGS' in self ) ) {
self . _ _WB _DISABLE _DEV _LOGS = false ;
}
let inGroup = false ;
const methodToColorMap = {
debug : ` #7f8c8d ` ,
log : ` #2ecc71 ` ,
warn : ` #f39c12 ` ,
error : ` #c0392b ` ,
groupCollapsed : ` #3498db ` ,
groupEnd : null , // No colored prefix on groupEnd
} ;
const print = function ( method , args ) {
if ( self . _ _WB _DISABLE _DEV _LOGS ) {
return ;
}
if ( method === 'groupCollapsed' ) {
// Safari doesn't print all console.groupCollapsed() arguments:
// https://bugs.webkit.org/show_bug.cgi?id=182754
if ( /^((?!chrome|android).)*safari/i . test ( navigator . userAgent ) ) {
console [ method ] ( ... args ) ;
return ;
}
}
const styles = [
` background: ${ methodToColorMap [ method ] } ` ,
` border-radius: 0.5em ` ,
` color: white ` ,
` font-weight: bold ` ,
` padding: 2px 0.5em ` ,
] ;
// When in a group, the workbox prefix is not displayed.
const logPrefix = inGroup ? [ ] : [ '%cworkbox' , styles . join ( ';' ) ] ;
console [ method ] ( ... logPrefix , ... args ) ;
if ( method === 'groupCollapsed' ) {
inGroup = true ;
}
if ( method === 'groupEnd' ) {
inGroup = false ;
}
} ;
// eslint-disable-next-line @typescript-eslint/ban-types
const api = { } ;
const loggerMethods = Object . keys ( methodToColorMap ) ;
for ( const key of loggerMethods ) {
const method = key ;
api [ method ] = ( ... args ) => {
print ( method , args ) ;
} ;
}
return api ;
} ) ( ) ) ;
/***/ } ) ,
/***/ "./node_modules/workbox-core/_private/timeout.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - core / _private / timeout . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "timeout" : ( ) => ( /* binding */ timeout )
/* harmony export */ } ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ../_version.js */ "./node_modules/workbox-core/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ ) ;
/ *
Copyright 2019 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ * *
* Returns a promise that resolves and the passed number of milliseconds .
* This utility is an async / await - friendly version of ` setTimeout ` .
*
* @ param { number } ms
* @ return { Promise }
* @ private
* /
function timeout ( ms ) {
return new Promise ( ( resolve ) => setTimeout ( resolve , ms ) ) ;
}
/***/ } ) ,
/***/ "./node_modules/workbox-core/_private/waitUntil.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - core / _private / waitUntil . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "waitUntil" : ( ) => ( /* binding */ waitUntil )
/* harmony export */ } ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ../_version.js */ "./node_modules/workbox-core/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ ) ;
/ *
Copyright 2020 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ * *
* A utility method that makes it easier to use ` event.waitUntil ` with
* async functions and return the result .
*
* @ param { ExtendableEvent } event
* @ param { Function } asyncFn
* @ return { Function }
* @ private
* /
function waitUntil ( event , asyncFn ) {
const returnPromise = asyncFn ( ) ;
event . waitUntil ( returnPromise ) ;
return returnPromise ;
}
/***/ } ) ,
/***/ "./node_modules/workbox-core/_version.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - core / _version . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( ) => {
// @ts-ignore
try {
self [ 'workbox:core:6.5.3' ] && _ ( ) ;
}
catch ( e ) { }
/***/ } ) ,
/***/ "./node_modules/workbox-core/copyResponse.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - core / copyResponse . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "copyResponse" : ( ) => ( /* binding */ copyResponse )
/* harmony export */ } ) ;
/* harmony import */ var _private _canConstructResponseFromBodyStream _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ./_private/canConstructResponseFromBodyStream.js */ "./node_modules/workbox-core/_private/canConstructResponseFromBodyStream.js" ) ;
/* harmony import */ var _private _WorkboxError _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( /*! ./_private/WorkboxError.js */ "./node_modules/workbox-core/_private/WorkboxError.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ = _ _webpack _require _ _ ( /*! ./_version.js */ "./node_modules/workbox-core/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ ) ;
/ *
Copyright 2019 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ * *
* Allows developers to copy a response and modify its ` headers ` , ` status ` ,
* or ` statusText ` values ( the values settable via a
* [ ` ResponseInit ` ] { @ link https : //developer.mozilla.org/en-US/docs/Web/API/Response/Response#Syntax}
* object in the constructor ) .
* To modify these values , pass a function as the second argument . That
* function will be invoked with a single object with the response properties
* ` {headers, status, statusText} ` . The return value of this function will
* be used as the ` ResponseInit ` for the new ` Response ` . To change the values
* either modify the passed parameter ( s ) and return it , or return a totally
* new object .
*
* This method is intentionally limited to same - origin responses , regardless of
* whether CORS was used or not .
*
* @ param { Response } response
* @ param { Function } modifier
* @ memberof workbox - core
* /
async function copyResponse ( response , modifier ) {
let origin = null ;
// If response.url isn't set, assume it's cross-origin and keep origin null.
if ( response . url ) {
const responseURL = new URL ( response . url ) ;
origin = responseURL . origin ;
}
if ( origin !== self . location . origin ) {
throw new _private _WorkboxError _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ . WorkboxError ( 'cross-origin-copy-response' , { origin } ) ;
}
const clonedResponse = response . clone ( ) ;
// Create a fresh `ResponseInit` object by cloning the headers.
const responseInit = {
headers : new Headers ( clonedResponse . headers ) ,
status : clonedResponse . status ,
statusText : clonedResponse . statusText ,
} ;
// Apply any user modifications.
const modifiedResponseInit = modifier ? modifier ( responseInit ) : responseInit ;
// Create the new response from the body stream and `ResponseInit`
// modifications. Note: not all browsers support the Response.body stream,
// so fall back to reading the entire body into memory as a blob.
const body = ( 0 , _private _canConstructResponseFromBodyStream _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . canConstructResponseFromBodyStream ) ( )
? clonedResponse . body
: await clonedResponse . blob ( ) ;
return new Response ( body , modifiedResponseInit ) ;
}
/***/ } ) ,
/***/ "./node_modules/workbox-core/models/messages/messageGenerator.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - core / models / messages / messageGenerator . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "messageGenerator" : ( ) => ( /* binding */ messageGenerator )
/* harmony export */ } ) ;
/* harmony import */ var _messages _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ./messages.js */ "./node_modules/workbox-core/models/messages/messages.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( /*! ../../_version.js */ "./node_modules/workbox-core/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ ) ;
/ *
Copyright 2018 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
const fallback = ( code , ... args ) => {
let msg = code ;
if ( args . length > 0 ) {
msg += ` :: ${ JSON . stringify ( args ) } ` ;
}
return msg ;
} ;
const generatorFunction = ( code , details = { } ) => {
const message = _messages _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . messages [ code ] ;
if ( ! message ) {
throw new Error ( ` Unable to find message for code ' ${ code } '. ` ) ;
}
return message ( details ) ;
} ;
const messageGenerator = false ? 0 : generatorFunction ;
/***/ } ) ,
/***/ "./node_modules/workbox-core/models/messages/messages.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - core / models / messages / messages . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "messages" : ( ) => ( /* binding */ messages )
/* harmony export */ } ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ../../_version.js */ "./node_modules/workbox-core/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ ) ;
/ *
Copyright 2018 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
const 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-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. ` ) ;
}
const classNameStr = className ? ` ${ className } . ` : '' ;
return ( ` The parameter ' ${ paramName } ' passed into ` +
` ' ${ moduleName } . ${ classNameStr } ` +
` ${ funcName } ()' must be of type ${ expectedType } . ` ) ;
} ,
'incorrect-class' : ( { expectedClassName , paramName , moduleName , className , funcName , isReturnValueProblem , } ) => {
if ( ! expectedClassName || ! moduleName || ! funcName ) {
throw new Error ( ` Unexpected input to 'incorrect-class' error. ` ) ;
}
const classNameStr = className ? ` ${ className } . ` : '' ;
if ( isReturnValueProblem ) {
return ( ` The return value from ` +
` ' ${ moduleName } . ${ classNameStr } ${ funcName } ()' ` +
` must be an instance of class ${ expectedClassName } . ` ) ;
}
return ( ` The parameter ' ${ paramName } ' passed into ` +
` ' ${ moduleName } . ${ classNameStr } ${ funcName } ()' ` +
` must be an instance of class ${ expectedClassName } . ` ) ;
} ,
'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 the URL ` +
` ${ firstEntry } but different revision details. Workbox is ` +
` unable to cache and version the asset correctly. Please remove one ` +
` of the entries. ` ) ;
} ,
'plugin-error-request-will-fetch' : ( { thrownErrorMessage } ) => {
if ( ! thrownErrorMessage ) {
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: ' ${ thrownErrorMessage } '. ` ) ;
} ,
'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 ` +
` setCacheDetails({ ${ 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 } ) => {
return ` Replaying the background sync queue ' ${ name } ' failed. ` ;
} ,
'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 , funcName , paramName } ) => {
if ( ! paramName || ! moduleName || ! 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 } . ${ 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. ` ) ;
} ,
'no-response' : ( { url , error } ) => {
let message = ` The strategy could not generate a response for ' ${ url } '. ` ;
if ( error ) {
message += ` The underlying error is ${ error } . ` ;
}
return message ;
} ,
'bad-precaching-response' : ( { url , status } ) => {
return ( ` The precaching request for ' ${ url } ' failed ` +
( status ? ` with an HTTP status of ${ status } . ` : ` . ` ) ) ;
} ,
'non-precached-url' : ( { url } ) => {
return ( ` createHandlerBoundToURL(' ${ url } ') was called, but that URL is ` +
` not precached. Please pass in a URL that is precached instead. ` ) ;
} ,
'add-to-cache-list-conflicting-integrities' : ( { url } ) => {
return ( ` Two of the entries passed to ` +
` 'workbox-precaching.PrecacheController.addToCacheList()' had the URL ` +
` ${ url } with different integrity values. Please remove one of them. ` ) ;
} ,
'missing-precache-entry' : ( { cacheName , url } ) => {
return ` Unable to find a precached response in ${ cacheName } for ${ url } . ` ;
} ,
'cross-origin-copy-response' : ( { origin } ) => {
return ( ` workbox-core.copyResponse() can only be used with same-origin ` +
` responses. It was passed a response with origin ${ origin } . ` ) ;
} ,
'opaque-streams-source' : ( { type } ) => {
const message = ` One of the workbox-streams sources resulted in an ` +
` ' ${ type } ' response. ` ;
if ( type === 'opaqueredirect' ) {
return ( ` ${ message } Please do not use a navigation request that results ` +
` in a redirect as a source. ` ) ;
}
return ` ${ message } Please ensure your sources are CORS-enabled. ` ;
} ,
} ;
/***/ } ) ,
/***/ "./node_modules/workbox-core/models/quotaErrorCallbacks.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - core / models / quotaErrorCallbacks . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "quotaErrorCallbacks" : ( ) => ( /* binding */ quotaErrorCallbacks )
/* harmony export */ } ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ../_version.js */ "./node_modules/workbox-core/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ ) ;
/ *
Copyright 2018 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
// Callbacks to be executed whenever there's a quota error.
// Can't change Function type right now.
// eslint-disable-next-line @typescript-eslint/ban-types
const quotaErrorCallbacks = new Set ( ) ;
/***/ } ) ,
/***/ "./node_modules/workbox-precaching/PrecacheController.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - precaching / PrecacheController . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "PrecacheController" : ( ) => ( /* binding */ PrecacheController )
/* harmony export */ } ) ;
/* harmony import */ var workbox _core _private _assert _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/assert.js */ "./node_modules/workbox-core/_private/assert.js" ) ;
/* harmony import */ var workbox _core _private _cacheNames _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/cacheNames.js */ "./node_modules/workbox-core/_private/cacheNames.js" ) ;
/* harmony import */ var workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/logger.js */ "./node_modules/workbox-core/_private/logger.js" ) ;
/* harmony import */ var workbox _core _private _WorkboxError _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/WorkboxError.js */ "./node_modules/workbox-core/_private/WorkboxError.js" ) ;
/* harmony import */ var workbox _core _private _waitUntil _js _ _WEBPACK _IMPORTED _MODULE _4 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/waitUntil.js */ "./node_modules/workbox-core/_private/waitUntil.js" ) ;
/* harmony import */ var _utils _createCacheKey _js _ _WEBPACK _IMPORTED _MODULE _5 _ _ = _ _webpack _require _ _ ( /*! ./utils/createCacheKey.js */ "./node_modules/workbox-precaching/utils/createCacheKey.js" ) ;
/* harmony import */ var _utils _PrecacheInstallReportPlugin _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ = _ _webpack _require _ _ ( /*! ./utils/PrecacheInstallReportPlugin.js */ "./node_modules/workbox-precaching/utils/PrecacheInstallReportPlugin.js" ) ;
/* harmony import */ var _utils _PrecacheCacheKeyPlugin _js _ _WEBPACK _IMPORTED _MODULE _7 _ _ = _ _webpack _require _ _ ( /*! ./utils/PrecacheCacheKeyPlugin.js */ "./node_modules/workbox-precaching/utils/PrecacheCacheKeyPlugin.js" ) ;
/* harmony import */ var _utils _printCleanupDetails _js _ _WEBPACK _IMPORTED _MODULE _8 _ _ = _ _webpack _require _ _ ( /*! ./utils/printCleanupDetails.js */ "./node_modules/workbox-precaching/utils/printCleanupDetails.js" ) ;
/* harmony import */ var _utils _printInstallDetails _js _ _WEBPACK _IMPORTED _MODULE _9 _ _ = _ _webpack _require _ _ ( /*! ./utils/printInstallDetails.js */ "./node_modules/workbox-precaching/utils/printInstallDetails.js" ) ;
/* harmony import */ var _PrecacheStrategy _js _ _WEBPACK _IMPORTED _MODULE _10 _ _ = _ _webpack _require _ _ ( /*! ./PrecacheStrategy.js */ "./node_modules/workbox-precaching/PrecacheStrategy.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _11 _ _ = _ _webpack _require _ _ ( /*! ./_version.js */ "./node_modules/workbox-precaching/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _11 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _11 _ _ ) ;
/ *
Copyright 2019 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ * *
* Performs efficient precaching of assets .
*
* @ memberof workbox - precaching
* /
class PrecacheController {
/ * *
* Create a new PrecacheController .
*
* @ param { Object } [ options ]
* @ param { string } [ options . cacheName ] The cache to use for precaching .
* @ param { string } [ options . plugins ] Plugins to use when precaching as well
* as responding to fetch events for precached assets .
* @ param { boolean } [ options . fallbackToNetwork = true ] Whether to attempt to
* get the response from the network if there ' s a precache miss .
* /
constructor ( { cacheName , plugins = [ ] , fallbackToNetwork = true , } = { } ) {
this . _urlsToCacheKeys = new Map ( ) ;
this . _urlsToCacheModes = new Map ( ) ;
this . _cacheKeysToIntegrities = new Map ( ) ;
this . _strategy = new _PrecacheStrategy _js _ _WEBPACK _IMPORTED _MODULE _10 _ _ . PrecacheStrategy ( {
cacheName : workbox _core _private _cacheNames _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ . cacheNames . getPrecacheName ( cacheName ) ,
plugins : [
... plugins ,
new _utils _PrecacheCacheKeyPlugin _js _ _WEBPACK _IMPORTED _MODULE _7 _ _ . PrecacheCacheKeyPlugin ( { precacheController : this } ) ,
] ,
fallbackToNetwork ,
} ) ;
// Bind the install and activate methods to the instance.
this . install = this . install . bind ( this ) ;
this . activate = this . activate . bind ( this ) ;
}
/ * *
* @ type { workbox - precaching . PrecacheStrategy } The strategy created by this controller and
* used to cache assets and respond to fetch events .
* /
get strategy ( ) {
return this . _strategy ;
}
/ * *
* Adds items to the precache list , removing any duplicates and
* stores the files in the
* { @ link workbox - core . cacheNames | "precache cache" } when the service
* worker installs .
*
* This method can be called multiple times .
*
* @ param { Array < Object | string > } [ entries = [ ] ] Array of entries to precache .
* /
precache ( entries ) {
this . addToCacheList ( entries ) ;
if ( ! this . _installAndActiveListenersAdded ) {
self . addEventListener ( 'install' , this . install ) ;
self . addEventListener ( 'activate' , this . activate ) ;
this . _installAndActiveListenersAdded = true ;
}
}
/ * *
* This method will add items to the precache list , removing duplicates
* and ensuring the information is valid .
*
* @ param { Array < workbox - precaching . PrecacheController . PrecacheEntry | string > } entries
* Array of entries to precache .
* /
addToCacheList ( entries ) {
if ( true ) {
workbox _core _private _assert _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . assert . isArray ( entries , {
moduleName : 'workbox-precaching' ,
className : 'PrecacheController' ,
funcName : 'addToCacheList' ,
paramName : 'entries' ,
} ) ;
}
const urlsToWarnAbout = [ ] ;
for ( const entry of entries ) {
// See https://github.com/GoogleChrome/workbox/issues/2259
if ( typeof entry === 'string' ) {
urlsToWarnAbout . push ( entry ) ;
}
else if ( entry && entry . revision === undefined ) {
urlsToWarnAbout . push ( entry . url ) ;
}
const { cacheKey , url } = ( 0 , _utils _createCacheKey _js _ _WEBPACK _IMPORTED _MODULE _5 _ _ . createCacheKey ) ( entry ) ;
const cacheMode = typeof entry !== 'string' && entry . revision ? 'reload' : 'default' ;
if ( this . _urlsToCacheKeys . has ( url ) &&
this . _urlsToCacheKeys . get ( url ) !== cacheKey ) {
throw new workbox _core _private _WorkboxError _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . WorkboxError ( 'add-to-cache-list-conflicting-entries' , {
firstEntry : this . _urlsToCacheKeys . get ( url ) ,
secondEntry : cacheKey ,
} ) ;
}
if ( typeof entry !== 'string' && entry . integrity ) {
if ( this . _cacheKeysToIntegrities . has ( cacheKey ) &&
this . _cacheKeysToIntegrities . get ( cacheKey ) !== entry . integrity ) {
throw new workbox _core _private _WorkboxError _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . WorkboxError ( 'add-to-cache-list-conflicting-integrities' , {
url ,
} ) ;
}
this . _cacheKeysToIntegrities . set ( cacheKey , entry . integrity ) ;
}
this . _urlsToCacheKeys . set ( url , cacheKey ) ;
this . _urlsToCacheModes . set ( url , cacheMode ) ;
if ( urlsToWarnAbout . length > 0 ) {
const warningMessage = ` Workbox is precaching URLs without revision ` +
` info: ${ urlsToWarnAbout . join ( ', ' ) } \n This is generally NOT safe. ` +
` Learn more at https://bit.ly/wb-precache ` ;
if ( false ) { }
else {
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ . logger . warn ( warningMessage ) ;
}
}
}
}
/ * *
* Precaches new and updated assets . Call this method from the service worker
* install event .
*
* Note : this method calls ` event.waitUntil() ` for you , so you do not need
* to call it yourself in your event handlers .
*
* @ param { ExtendableEvent } event
* @ return { Promise < workbox - precaching . InstallResult > }
* /
install ( event ) {
// waitUntil returns Promise<any>
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
return ( 0 , workbox _core _private _waitUntil _js _ _WEBPACK _IMPORTED _MODULE _4 _ _ . waitUntil ) ( event , async ( ) => {
const installReportPlugin = new _utils _PrecacheInstallReportPlugin _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . PrecacheInstallReportPlugin ( ) ;
this . strategy . plugins . push ( installReportPlugin ) ;
// Cache entries one at a time.
// See https://github.com/GoogleChrome/workbox/issues/2528
for ( const [ url , cacheKey ] of this . _urlsToCacheKeys ) {
const integrity = this . _cacheKeysToIntegrities . get ( cacheKey ) ;
const cacheMode = this . _urlsToCacheModes . get ( url ) ;
const request = new Request ( url , {
integrity ,
cache : cacheMode ,
credentials : 'same-origin' ,
} ) ;
await Promise . all ( this . strategy . handleAll ( {
params : { cacheKey } ,
request ,
event ,
} ) ) ;
}
const { updatedURLs , notUpdatedURLs } = installReportPlugin ;
if ( true ) {
( 0 , _utils _printInstallDetails _js _ _WEBPACK _IMPORTED _MODULE _9 _ _ . printInstallDetails ) ( updatedURLs , notUpdatedURLs ) ;
}
return { updatedURLs , notUpdatedURLs } ;
} ) ;
}
/ * *
* Deletes assets that are no longer present in the current precache manifest .
* Call this method from the service worker activate event .
*
* Note : this method calls ` event.waitUntil() ` for you , so you do not need
* to call it yourself in your event handlers .
*
* @ param { ExtendableEvent } event
* @ return { Promise < workbox - precaching . CleanupResult > }
* /
activate ( event ) {
// waitUntil returns Promise<any>
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
return ( 0 , workbox _core _private _waitUntil _js _ _WEBPACK _IMPORTED _MODULE _4 _ _ . waitUntil ) ( event , async ( ) => {
const cache = await self . caches . open ( this . strategy . cacheName ) ;
const currentlyCachedRequests = await cache . keys ( ) ;
const expectedCacheKeys = new Set ( this . _urlsToCacheKeys . values ( ) ) ;
const deletedURLs = [ ] ;
for ( const request of currentlyCachedRequests ) {
if ( ! expectedCacheKeys . has ( request . url ) ) {
await cache . delete ( request ) ;
deletedURLs . push ( request . url ) ;
}
}
if ( true ) {
( 0 , _utils _printCleanupDetails _js _ _WEBPACK _IMPORTED _MODULE _8 _ _ . printCleanupDetails ) ( deletedURLs ) ;
}
return { deletedURLs } ;
} ) ;
}
/ * *
* Returns a mapping of a precached URL to the corresponding cache key , taking
* into account the revision information for the URL .
*
* @ return { Map < string , string > } A URL to cache key mapping .
* /
getURLsToCacheKeys ( ) {
return this . _urlsToCacheKeys ;
}
/ * *
* Returns a list of all the URLs that have been precached by the current
* service worker .
*
* @ return { Array < string > } The precached URLs .
* /
getCachedURLs ( ) {
return [ ... this . _urlsToCacheKeys . keys ( ) ] ;
}
/ * *
* Returns the cache key used for storing a given URL . If that URL is
* unversioned , like ` /index.html', then the cache key will be the original
* URL with a search parameter appended to it .
*
* @ param { string } url A URL whose cache key you want to look up .
* @ return { string } The versioned URL that corresponds to a cache key
* for the original URL , or undefined if that URL isn ' t precached .
* /
getCacheKeyForURL ( url ) {
const urlObject = new URL ( url , location . href ) ;
return this . _urlsToCacheKeys . get ( urlObject . href ) ;
}
/ * *
* @ param { string } url A cache key whose SRI you want to look up .
* @ return { string } The subresource integrity associated with the cache key ,
* or undefined if it ' s not set .
* /
getIntegrityForCacheKey ( cacheKey ) {
return this . _cacheKeysToIntegrities . get ( cacheKey ) ;
}
/ * *
* This acts as a drop - in replacement for
* [ ` cache.match() ` ] ( https : //developer.mozilla.org/en-US/docs/Web/API/Cache/match)
* with the following differences :
*
* - It knows what the name of the precache is , and only checks in that cache .
* - It allows you to pass in an "original" URL without versioning parameters ,
* and it will automatically look up the correct cache key for the currently
* active revision of that URL .
*
* E . g . , ` matchPrecache('index.html') ` will find the correct precached
* response for the currently active service worker , even if the actual cache
* key is ` '/index.html?__WB_REVISION__=1234abcd' ` .
*
* @ param { string | Request } request The key ( without revisioning parameters )
* to look up in the precache .
* @ return { Promise < Response | undefined > }
* /
async matchPrecache ( request ) {
const url = request instanceof Request ? request . url : request ;
const cacheKey = this . getCacheKeyForURL ( url ) ;
if ( cacheKey ) {
const cache = await self . caches . open ( this . strategy . cacheName ) ;
return cache . match ( cacheKey ) ;
}
return undefined ;
}
/ * *
* Returns a function that looks up ` url ` in the precache ( taking into
* account revision information ) , and returns the corresponding ` Response ` .
*
* @ param { string } url The precached URL which will be used to lookup the
* ` Response ` .
* @ return { workbox - routing ~ handlerCallback }
* /
createHandlerBoundToURL ( url ) {
const cacheKey = this . getCacheKeyForURL ( url ) ;
if ( ! cacheKey ) {
throw new workbox _core _private _WorkboxError _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . WorkboxError ( 'non-precached-url' , { url } ) ;
}
return ( options ) => {
options . request = new Request ( url ) ;
options . params = Object . assign ( { cacheKey } , options . params ) ;
return this . strategy . handle ( options ) ;
} ;
}
}
/***/ } ) ,
/***/ "./node_modules/workbox-precaching/PrecacheFallbackPlugin.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - precaching / PrecacheFallbackPlugin . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "PrecacheFallbackPlugin" : ( ) => ( /* binding */ PrecacheFallbackPlugin )
/* harmony export */ } ) ;
/* harmony import */ var _utils _getOrCreatePrecacheController _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ./utils/getOrCreatePrecacheController.js */ "./node_modules/workbox-precaching/utils/getOrCreatePrecacheController.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( /*! ./_version.js */ "./node_modules/workbox-precaching/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ ) ;
/ *
Copyright 2020 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ * *
* ` PrecacheFallbackPlugin ` allows you to specify an "offline fallback"
* response to be used when a given strategy is unable to generate a response .
*
* It does this by intercepting the ` handlerDidError ` plugin callback
* and returning a precached response , taking the expected revision parameter
* into account automatically .
*
* Unless you explicitly pass in a ` PrecacheController ` instance to the
* constructor , the default instance will be used . Generally speaking , most
* developers will end up using the default .
*
* @ memberof workbox - precaching
* /
class PrecacheFallbackPlugin {
/ * *
* Constructs a new PrecacheFallbackPlugin with the associated fallbackURL .
*
* @ param { Object } config
* @ param { string } config . fallbackURL A precached URL to use as the fallback
* if the associated strategy can ' t generate a response .
* @ param { PrecacheController } [ config . precacheController ] An optional
* PrecacheController instance . If not provided , the default
* PrecacheController will be used .
* /
constructor ( { fallbackURL , precacheController , } ) {
/ * *
* @ return { Promise < Response > } The precache response for the fallback URL .
*
* @ private
* /
this . handlerDidError = ( ) => this . _precacheController . matchPrecache ( this . _fallbackURL ) ;
this . _fallbackURL = fallbackURL ;
this . _precacheController =
precacheController || ( 0 , _utils _getOrCreatePrecacheController _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . getOrCreatePrecacheController ) ( ) ;
}
}
/***/ } ) ,
/***/ "./node_modules/workbox-precaching/PrecacheRoute.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - precaching / PrecacheRoute . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "PrecacheRoute" : ( ) => ( /* binding */ PrecacheRoute )
/* harmony export */ } ) ;
/* harmony import */ var workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/logger.js */ "./node_modules/workbox-core/_private/logger.js" ) ;
/* harmony import */ var workbox _core _private _getFriendlyURL _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/getFriendlyURL.js */ "./node_modules/workbox-core/_private/getFriendlyURL.js" ) ;
/* harmony import */ var workbox _routing _Route _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ = _ _webpack _require _ _ ( /*! workbox-routing/Route.js */ "./node_modules/workbox-routing/Route.js" ) ;
/* harmony import */ var _utils _generateURLVariations _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ = _ _webpack _require _ _ ( /*! ./utils/generateURLVariations.js */ "./node_modules/workbox-precaching/utils/generateURLVariations.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _4 _ _ = _ _webpack _require _ _ ( /*! ./_version.js */ "./node_modules/workbox-precaching/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _4 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _4 _ _ ) ;
/ *
Copyright 2020 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ * *
* A subclass of { @ link workbox - routing . Route } that takes a
* { @ link workbox - precaching . PrecacheController }
* instance and uses it to match incoming requests and handle fetching
* responses from the precache .
*
* @ memberof workbox - precaching
* @ extends workbox - routing . Route
* /
class PrecacheRoute extends workbox _routing _Route _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ . Route {
/ * *
* @ param { PrecacheController } precacheController A ` PrecacheController `
* instance used to both match requests and respond to fetch events .
* @ param { Object } [ options ] Options to control how requests are matched
* against the list of precached URLs .
* @ param { string } [ options . directoryIndex = index . html ] The ` directoryIndex ` will
* check cache entries for a URLs ending with '/' to see if there is a hit when
* appending the ` directoryIndex ` value .
* @ param { Array < RegExp > } [ options . ignoreURLParametersMatching = [ /^utm_/ , /^fbclid$/ ] ] An
* array of regex ' s to remove search params when looking for a cache match .
* @ param { boolean } [ options . cleanURLs = true ] The ` cleanURLs ` option will
* check the cache for the URL with a ` .html ` added to the end of the end .
* @ param { workbox - precaching ~ urlManipulation } [ options . urlManipulation ]
* This is a function that should take a URL and return an array of
* alternative URLs that should be checked for precache matches .
* /
constructor ( precacheController , options ) {
const match = ( { request , } ) => {
const urlsToCacheKeys = precacheController . getURLsToCacheKeys ( ) ;
for ( const possibleURL of ( 0 , _utils _generateURLVariations _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . generateURLVariations ) ( request . url , options ) ) {
const cacheKey = urlsToCacheKeys . get ( possibleURL ) ;
if ( cacheKey ) {
const integrity = precacheController . getIntegrityForCacheKey ( cacheKey ) ;
return { cacheKey , integrity } ;
}
}
if ( true ) {
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . logger . debug ( ` Precaching did not find a match for ` + ( 0 , workbox _core _private _getFriendlyURL _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ . getFriendlyURL ) ( request . url ) ) ;
}
return ;
} ;
super ( match , precacheController . strategy ) ;
}
}
/***/ } ) ,
/***/ "./node_modules/workbox-precaching/PrecacheStrategy.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - precaching / PrecacheStrategy . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "PrecacheStrategy" : ( ) => ( /* binding */ PrecacheStrategy )
/* harmony export */ } ) ;
/* harmony import */ var workbox _core _copyResponse _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! workbox-core/copyResponse.js */ "./node_modules/workbox-core/copyResponse.js" ) ;
/* harmony import */ var workbox _core _private _cacheNames _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/cacheNames.js */ "./node_modules/workbox-core/_private/cacheNames.js" ) ;
/* harmony import */ var workbox _core _private _getFriendlyURL _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/getFriendlyURL.js */ "./node_modules/workbox-core/_private/getFriendlyURL.js" ) ;
/* harmony import */ var workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/logger.js */ "./node_modules/workbox-core/_private/logger.js" ) ;
/* harmony import */ var workbox _core _private _WorkboxError _js _ _WEBPACK _IMPORTED _MODULE _4 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/WorkboxError.js */ "./node_modules/workbox-core/_private/WorkboxError.js" ) ;
/* harmony import */ var workbox _strategies _Strategy _js _ _WEBPACK _IMPORTED _MODULE _5 _ _ = _ _webpack _require _ _ ( /*! workbox-strategies/Strategy.js */ "./node_modules/workbox-strategies/Strategy.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ = _ _webpack _require _ _ ( /*! ./_version.js */ "./node_modules/workbox-precaching/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ ) ;
/ *
Copyright 2020 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ * *
* A { @ link workbox - strategies . Strategy } implementation
* specifically designed to work with
* { @ link workbox - precaching . PrecacheController }
* to both cache and fetch precached assets .
*
* Note : an instance of this class is created automatically when creating a
* ` PrecacheController ` ; it ' s generally not necessary to create this yourself .
*
* @ extends workbox - strategies . Strategy
* @ memberof workbox - precaching
* /
class PrecacheStrategy extends workbox _strategies _Strategy _js _ _WEBPACK _IMPORTED _MODULE _5 _ _ . Strategy {
/ * *
*
* @ param { Object } [ options ]
* @ param { string } [ options . cacheName ] Cache name to store and retrieve
* requests . Defaults to the cache names provided by
* { @ link workbox - core . cacheNames } .
* @ param { Array < Object > } [ options . plugins ] { @ link https : //developers.google.com/web/tools/workbox/guides/using-plugins|Plugins}
* to use in conjunction with this caching strategy .
* @ param { Object } [ options . fetchOptions ] Values passed along to the
* { @ link https : //developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters|init}
* of all fetch ( ) requests made by this strategy .
* @ param { Object } [ options . matchOptions ] The
* { @ link https : //w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions|CacheQueryOptions}
* for any ` cache.match() ` or ` cache.put() ` calls made by this strategy .
* @ param { boolean } [ options . fallbackToNetwork = true ] Whether to attempt to
* get the response from the network if there ' s a precache miss .
* /
constructor ( options = { } ) {
options . cacheName = workbox _core _private _cacheNames _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ . cacheNames . getPrecacheName ( options . cacheName ) ;
super ( options ) ;
this . _fallbackToNetwork =
options . fallbackToNetwork === false ? false : true ;
// Redirected responses cannot be used to satisfy a navigation request, so
// any redirected response must be "copied" rather than cloned, so the new
// response doesn't contain the `redirected` flag. See:
// https://bugs.chromium.org/p/chromium/issues/detail?id=669363&desc=2#c1
this . plugins . push ( PrecacheStrategy . copyRedirectedCacheableResponsesPlugin ) ;
}
/ * *
* @ private
* @ param { Request | string } request A request to run this strategy for .
* @ param { workbox - strategies . StrategyHandler } handler The event that
* triggered the request .
* @ return { Promise < Response > }
* /
async _handle ( request , handler ) {
const response = await handler . cacheMatch ( request ) ;
if ( response ) {
return response ;
}
// If this is an `install` event for an entry that isn't already cached,
// then populate the cache.
if ( handler . event && handler . event . type === 'install' ) {
return await this . _handleInstall ( request , handler ) ;
}
// Getting here means something went wrong. An entry that should have been
// precached wasn't found in the cache.
return await this . _handleFetch ( request , handler ) ;
}
async _handleFetch ( request , handler ) {
let response ;
const params = ( handler . params || { } ) ;
// Fall back to the network if we're configured to do so.
if ( this . _fallbackToNetwork ) {
if ( true ) {
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . logger . warn ( ` The precached response for ` +
` ${ ( 0 , workbox _core _private _getFriendlyURL _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ . getFriendlyURL ) ( request . url ) } in ${ this . cacheName } was not ` +
` found. Falling back to the network. ` ) ;
}
const integrityInManifest = params . integrity ;
const integrityInRequest = request . integrity ;
const noIntegrityConflict = ! integrityInRequest || integrityInRequest === integrityInManifest ;
// Do not add integrity if the original request is no-cors
// See https://github.com/GoogleChrome/workbox/issues/3096
response = await handler . fetch ( new Request ( request , {
integrity : request . mode !== 'no-cors'
? integrityInRequest || integrityInManifest
: undefined ,
} ) ) ;
// It's only "safe" to repair the cache if we're using SRI to guarantee
// that the response matches the precache manifest's expectations,
// and there's either a) no integrity property in the incoming request
// or b) there is an integrity, and it matches the precache manifest.
// See https://github.com/GoogleChrome/workbox/issues/2858
// Also if the original request users no-cors we don't use integrity.
// See https://github.com/GoogleChrome/workbox/issues/3096
if ( integrityInManifest &&
noIntegrityConflict &&
request . mode !== 'no-cors' ) {
this . _useDefaultCacheabilityPluginIfNeeded ( ) ;
const wasCached = await handler . cachePut ( request , response . clone ( ) ) ;
if ( true ) {
if ( wasCached ) {
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . logger . log ( ` A response for ${ ( 0 , workbox _core _private _getFriendlyURL _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ . getFriendlyURL ) ( request . url ) } ` +
` was used to "repair" the precache. ` ) ;
}
}
}
}
else {
// This shouldn't normally happen, but there are edge cases:
// https://github.com/GoogleChrome/workbox/issues/1441
throw new workbox _core _private _WorkboxError _js _ _WEBPACK _IMPORTED _MODULE _4 _ _ . WorkboxError ( 'missing-precache-entry' , {
cacheName : this . cacheName ,
url : request . url ,
} ) ;
}
if ( true ) {
const cacheKey = params . cacheKey || ( await handler . getCacheKey ( request , 'read' ) ) ;
// Workbox is going to handle the route.
// print the routing details to the console.
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . logger . groupCollapsed ( ` Precaching is responding to: ` + ( 0 , workbox _core _private _getFriendlyURL _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ . getFriendlyURL ) ( request . url ) ) ;
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . logger . log ( ` Serving the precached url: ${ ( 0 , workbox _core _private _getFriendlyURL _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ . getFriendlyURL ) ( cacheKey instanceof Request ? cacheKey . url : cacheKey ) } ` ) ;
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . logger . groupCollapsed ( ` View request details here. ` ) ;
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . logger . log ( request ) ;
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . logger . groupEnd ( ) ;
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . logger . groupCollapsed ( ` View response details here. ` ) ;
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . logger . log ( response ) ;
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . logger . groupEnd ( ) ;
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . logger . groupEnd ( ) ;
}
return response ;
}
async _handleInstall ( request , handler ) {
this . _useDefaultCacheabilityPluginIfNeeded ( ) ;
const response = await handler . fetch ( request ) ;
// Make sure we defer cachePut() until after we know the response
// should be cached; see https://github.com/GoogleChrome/workbox/issues/2737
const wasCached = await handler . cachePut ( request , response . clone ( ) ) ;
if ( ! wasCached ) {
// Throwing here will lead to the `install` handler failing, which
// we want to do if *any* of the responses aren't safe to cache.
throw new workbox _core _private _WorkboxError _js _ _WEBPACK _IMPORTED _MODULE _4 _ _ . WorkboxError ( 'bad-precaching-response' , {
url : request . url ,
status : response . status ,
} ) ;
}
return response ;
}
/ * *
* This method is complex , as there a number of things to account for :
*
* The ` plugins ` array can be set at construction , and / or it might be added to
* to at any time before the strategy is used .
*
* At the time the strategy is used ( i . e . during an ` install ` event ) , there
* needs to be at least one plugin that implements ` cacheWillUpdate ` in the
* array , other than ` copyRedirectedCacheableResponsesPlugin ` .
*
* - If this method is called and there are no suitable ` cacheWillUpdate `
* plugins , we need to add ` defaultPrecacheCacheabilityPlugin ` .
*
* - If this method is called and there is exactly one ` cacheWillUpdate ` , then
* we don ' t have to do anything ( this might be a previously added
* ` defaultPrecacheCacheabilityPlugin ` , or it might be a custom plugin ) .
*
* - If this method is called and there is more than one ` cacheWillUpdate ` ,
* then we need to check if one is ` defaultPrecacheCacheabilityPlugin ` . If so ,
* we need to remove it . ( This situation is unlikely , but it could happen if
* the strategy is used multiple times , the first without a ` cacheWillUpdate ` ,
* and then later on after manually adding a custom ` cacheWillUpdate ` . )
*
* See https : //github.com/GoogleChrome/workbox/issues/2737 for more context.
*
* @ private
* /
_useDefaultCacheabilityPluginIfNeeded ( ) {
let defaultPluginIndex = null ;
let cacheWillUpdatePluginCount = 0 ;
for ( const [ index , plugin ] of this . plugins . entries ( ) ) {
// Ignore the copy redirected plugin when determining what to do.
if ( plugin === PrecacheStrategy . copyRedirectedCacheableResponsesPlugin ) {
continue ;
}
// Save the default plugin's index, in case it needs to be removed.
if ( plugin === PrecacheStrategy . defaultPrecacheCacheabilityPlugin ) {
defaultPluginIndex = index ;
}
if ( plugin . cacheWillUpdate ) {
cacheWillUpdatePluginCount ++ ;
}
}
if ( cacheWillUpdatePluginCount === 0 ) {
this . plugins . push ( PrecacheStrategy . defaultPrecacheCacheabilityPlugin ) ;
}
else if ( cacheWillUpdatePluginCount > 1 && defaultPluginIndex !== null ) {
// Only remove the default plugin; multiple custom plugins are allowed.
this . plugins . splice ( defaultPluginIndex , 1 ) ;
}
// Nothing needs to be done if cacheWillUpdatePluginCount is 1
}
}
PrecacheStrategy . defaultPrecacheCacheabilityPlugin = {
async cacheWillUpdate ( { response } ) {
if ( ! response || response . status >= 400 ) {
return null ;
}
return response ;
} ,
} ;
PrecacheStrategy . copyRedirectedCacheableResponsesPlugin = {
async cacheWillUpdate ( { response } ) {
return response . redirected ? await ( 0 , workbox _core _copyResponse _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . copyResponse ) ( response ) : response ;
} ,
} ;
/***/ } ) ,
/***/ "./node_modules/workbox-precaching/_types.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - precaching / _types . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ./_version.js */ "./node_modules/workbox-precaching/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ ) ;
/ *
Copyright 2018 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
// * * * IMPORTANT! * * *
// ------------------------------------------------------------------------- //
// jdsoc type definitions cannot be declared above TypeScript definitions or
// they'll be stripped from the built `.js` files, and they'll only be in the
// `d.ts` files, which aren't read by the jsdoc generator. As a result we
// have to put declare them below.
/ * *
* @ typedef { Object } InstallResult
* @ property { Array < string > } updatedURLs List of URLs that were updated during
* installation .
* @ property { Array < string > } notUpdatedURLs List of URLs that were already up to
* date .
*
* @ memberof workbox - precaching
* /
/ * *
* @ typedef { Object } CleanupResult
* @ property { Array < string > } deletedCacheRequests List of URLs that were deleted
* while cleaning up the cache .
*
* @ memberof workbox - precaching
* /
/ * *
* @ typedef { Object } PrecacheEntry
* @ property { string } url URL to precache .
* @ property { string } [ revision ] Revision information for the URL .
* @ property { string } [ integrity ] Integrity metadata that will be used when
* making the network request for the URL .
*
* @ memberof workbox - precaching
* /
/ * *
* The "urlManipulation" callback can be used to determine if there are any
* additional permutations of a URL that should be used to check against
* the available precached files .
*
* For example , Workbox supports checking for '/index.html' when the URL
* '/' is provided . This callback allows additional , custom checks .
*
* @ callback ~ urlManipulation
* @ param { Object } context
* @ param { URL } context . url The request ' s URL .
* @ return { Array < URL > } To add additional urls to test , return an Array of
* URLs . Please note that these * * should not be strings * * , but URL objects .
*
* @ memberof workbox - precaching
* /
/***/ } ) ,
/***/ "./node_modules/workbox-precaching/_version.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - precaching / _version . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( ) => {
// @ts-ignore
try {
self [ 'workbox:precaching:6.5.3' ] && _ ( ) ;
}
catch ( e ) { }
/***/ } ) ,
/***/ "./node_modules/workbox-precaching/addPlugins.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - precaching / addPlugins . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "addPlugins" : ( ) => ( /* binding */ addPlugins )
/* harmony export */ } ) ;
/* harmony import */ var _utils _getOrCreatePrecacheController _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ./utils/getOrCreatePrecacheController.js */ "./node_modules/workbox-precaching/utils/getOrCreatePrecacheController.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( /*! ./_version.js */ "./node_modules/workbox-precaching/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ ) ;
/ *
Copyright 2019 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ * *
* Adds plugins to the precaching strategy .
*
* @ param { Array < Object > } plugins
*
* @ memberof workbox - precaching
* /
function addPlugins ( plugins ) {
const precacheController = ( 0 , _utils _getOrCreatePrecacheController _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . getOrCreatePrecacheController ) ( ) ;
precacheController . strategy . plugins . push ( ... plugins ) ;
}
/***/ } ) ,
/***/ "./node_modules/workbox-precaching/addRoute.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - precaching / addRoute . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "addRoute" : ( ) => ( /* binding */ addRoute )
/* harmony export */ } ) ;
/* harmony import */ var workbox _routing _registerRoute _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! workbox-routing/registerRoute.js */ "./node_modules/workbox-routing/registerRoute.js" ) ;
/* harmony import */ var _utils _getOrCreatePrecacheController _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( /*! ./utils/getOrCreatePrecacheController.js */ "./node_modules/workbox-precaching/utils/getOrCreatePrecacheController.js" ) ;
/* harmony import */ var _PrecacheRoute _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ = _ _webpack _require _ _ ( /*! ./PrecacheRoute.js */ "./node_modules/workbox-precaching/PrecacheRoute.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ = _ _webpack _require _ _ ( /*! ./_version.js */ "./node_modules/workbox-precaching/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ ) ;
/ *
Copyright 2019 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ * *
* Add a ` fetch ` listener to the service worker that will
* respond to
* [ network requests ] { @ link https : //developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers#Custom_responses_to_requests}
* with precached assets .
*
* Requests for assets that aren ' t precached , the ` FetchEvent ` will not be
* responded to , allowing the event to fall through to other ` fetch ` event
* listeners .
*
* @ param { Object } [ options ] See the { @ link workbox - precaching . PrecacheRoute }
* options .
*
* @ memberof workbox - precaching
* /
function addRoute ( options ) {
const precacheController = ( 0 , _utils _getOrCreatePrecacheController _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ . getOrCreatePrecacheController ) ( ) ;
const precacheRoute = new _PrecacheRoute _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ . PrecacheRoute ( precacheController , options ) ;
( 0 , workbox _routing _registerRoute _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . registerRoute ) ( precacheRoute ) ;
}
/***/ } ) ,
/***/ "./node_modules/workbox-precaching/cleanupOutdatedCaches.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - precaching / cleanupOutdatedCaches . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "cleanupOutdatedCaches" : ( ) => ( /* binding */ cleanupOutdatedCaches )
/* harmony export */ } ) ;
/* harmony import */ var workbox _core _private _cacheNames _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/cacheNames.js */ "./node_modules/workbox-core/_private/cacheNames.js" ) ;
/* harmony import */ var workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/logger.js */ "./node_modules/workbox-core/_private/logger.js" ) ;
/* harmony import */ var _utils _deleteOutdatedCaches _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ = _ _webpack _require _ _ ( /*! ./utils/deleteOutdatedCaches.js */ "./node_modules/workbox-precaching/utils/deleteOutdatedCaches.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ = _ _webpack _require _ _ ( /*! ./_version.js */ "./node_modules/workbox-precaching/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ ) ;
/ *
Copyright 2019 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ * *
* Adds an ` activate ` event listener which will clean up incompatible
* precaches that were created by older versions of Workbox .
*
* @ memberof workbox - precaching
* /
function cleanupOutdatedCaches ( ) {
// See https://github.com/Microsoft/TypeScript/issues/28357#issuecomment-436484705
self . addEventListener ( 'activate' , ( ( event ) => {
const cacheName = workbox _core _private _cacheNames _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . cacheNames . getPrecacheName ( ) ;
event . waitUntil ( ( 0 , _utils _deleteOutdatedCaches _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ . deleteOutdatedCaches ) ( cacheName ) . then ( ( cachesDeleted ) => {
if ( true ) {
if ( cachesDeleted . length > 0 ) {
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ . logger . log ( ` The following out-of-date precaches were cleaned up ` +
` automatically: ` , cachesDeleted ) ;
}
}
} ) ) ;
} ) ) ;
}
/***/ } ) ,
/***/ "./node_modules/workbox-precaching/createHandlerBoundToURL.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - precaching / createHandlerBoundToURL . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "createHandlerBoundToURL" : ( ) => ( /* binding */ createHandlerBoundToURL )
/* harmony export */ } ) ;
/* harmony import */ var _utils _getOrCreatePrecacheController _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ./utils/getOrCreatePrecacheController.js */ "./node_modules/workbox-precaching/utils/getOrCreatePrecacheController.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( /*! ./_version.js */ "./node_modules/workbox-precaching/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ ) ;
/ *
Copyright 2019 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ * *
* Helper function that calls
* { @ link PrecacheController # createHandlerBoundToURL } on the default
* { @ link PrecacheController } instance .
*
* If you are creating your own { @ link PrecacheController } , then call the
* { @ link PrecacheController # createHandlerBoundToURL } on that instance ,
* instead of using this function .
*
* @ param { string } url The precached URL which will be used to lookup the
* ` Response ` .
* @ param { boolean } [ fallbackToNetwork = true ] Whether to attempt to get the
* response from the network if there ' s a precache miss .
* @ return { workbox - routing ~ handlerCallback }
*
* @ memberof workbox - precaching
* /
function createHandlerBoundToURL ( url ) {
const precacheController = ( 0 , _utils _getOrCreatePrecacheController _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . getOrCreatePrecacheController ) ( ) ;
return precacheController . createHandlerBoundToURL ( url ) ;
}
/***/ } ) ,
/***/ "./node_modules/workbox-precaching/getCacheKeyForURL.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - precaching / getCacheKeyForURL . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "getCacheKeyForURL" : ( ) => ( /* binding */ getCacheKeyForURL )
/* harmony export */ } ) ;
/* harmony import */ var _utils _getOrCreatePrecacheController _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ./utils/getOrCreatePrecacheController.js */ "./node_modules/workbox-precaching/utils/getOrCreatePrecacheController.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( /*! ./_version.js */ "./node_modules/workbox-precaching/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ ) ;
/ *
Copyright 2019 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ * *
* Takes in a URL , and returns the corresponding URL that could be used to
* lookup the entry in the precache .
*
* If a relative URL is provided , the location of the service worker file will
* be used as the base .
*
* For precached entries without revision information , the cache key will be the
* same as the original URL .
*
* For precached entries with revision information , the cache key will be the
* original URL with the addition of a query parameter used for keeping track of
* the revision info .
*
* @ param { string } url The URL whose cache key to look up .
* @ return { string } The cache key that corresponds to that URL .
*
* @ memberof workbox - precaching
* /
function getCacheKeyForURL ( url ) {
const precacheController = ( 0 , _utils _getOrCreatePrecacheController _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . getOrCreatePrecacheController ) ( ) ;
return precacheController . getCacheKeyForURL ( url ) ;
}
/***/ } ) ,
/***/ "./node_modules/workbox-precaching/index.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - precaching / index . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "PrecacheController" : ( ) => ( /* reexport safe */ _PrecacheController _js _ _WEBPACK _IMPORTED _MODULE _8 _ _ . PrecacheController ) ,
/* harmony export */ "PrecacheFallbackPlugin" : ( ) => ( /* reexport safe */ _PrecacheFallbackPlugin _js _ _WEBPACK _IMPORTED _MODULE _11 _ _ . PrecacheFallbackPlugin ) ,
/* harmony export */ "PrecacheRoute" : ( ) => ( /* reexport safe */ _PrecacheRoute _js _ _WEBPACK _IMPORTED _MODULE _9 _ _ . PrecacheRoute ) ,
/* harmony export */ "PrecacheStrategy" : ( ) => ( /* reexport safe */ _PrecacheStrategy _js _ _WEBPACK _IMPORTED _MODULE _10 _ _ . PrecacheStrategy ) ,
/* harmony export */ "addPlugins" : ( ) => ( /* reexport safe */ _addPlugins _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . addPlugins ) ,
/* harmony export */ "addRoute" : ( ) => ( /* reexport safe */ _addRoute _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ . addRoute ) ,
/* harmony export */ "cleanupOutdatedCaches" : ( ) => ( /* reexport safe */ _cleanupOutdatedCaches _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ . cleanupOutdatedCaches ) ,
/* harmony export */ "createHandlerBoundToURL" : ( ) => ( /* reexport safe */ _createHandlerBoundToURL _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . createHandlerBoundToURL ) ,
/* harmony export */ "getCacheKeyForURL" : ( ) => ( /* reexport safe */ _getCacheKeyForURL _js _ _WEBPACK _IMPORTED _MODULE _4 _ _ . getCacheKeyForURL ) ,
/* harmony export */ "matchPrecache" : ( ) => ( /* reexport safe */ _matchPrecache _js _ _WEBPACK _IMPORTED _MODULE _5 _ _ . matchPrecache ) ,
/* harmony export */ "precache" : ( ) => ( /* reexport safe */ _precache _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . precache ) ,
/* harmony export */ "precacheAndRoute" : ( ) => ( /* reexport safe */ _precacheAndRoute _js _ _WEBPACK _IMPORTED _MODULE _7 _ _ . precacheAndRoute )
/* harmony export */ } ) ;
/* harmony import */ var _addPlugins _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ./addPlugins.js */ "./node_modules/workbox-precaching/addPlugins.js" ) ;
/* harmony import */ var _addRoute _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( /*! ./addRoute.js */ "./node_modules/workbox-precaching/addRoute.js" ) ;
/* harmony import */ var _cleanupOutdatedCaches _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ = _ _webpack _require _ _ ( /*! ./cleanupOutdatedCaches.js */ "./node_modules/workbox-precaching/cleanupOutdatedCaches.js" ) ;
/* harmony import */ var _createHandlerBoundToURL _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ = _ _webpack _require _ _ ( /*! ./createHandlerBoundToURL.js */ "./node_modules/workbox-precaching/createHandlerBoundToURL.js" ) ;
/* harmony import */ var _getCacheKeyForURL _js _ _WEBPACK _IMPORTED _MODULE _4 _ _ = _ _webpack _require _ _ ( /*! ./getCacheKeyForURL.js */ "./node_modules/workbox-precaching/getCacheKeyForURL.js" ) ;
/* harmony import */ var _matchPrecache _js _ _WEBPACK _IMPORTED _MODULE _5 _ _ = _ _webpack _require _ _ ( /*! ./matchPrecache.js */ "./node_modules/workbox-precaching/matchPrecache.js" ) ;
/* harmony import */ var _precache _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ = _ _webpack _require _ _ ( /*! ./precache.js */ "./node_modules/workbox-precaching/precache.js" ) ;
/* harmony import */ var _precacheAndRoute _js _ _WEBPACK _IMPORTED _MODULE _7 _ _ = _ _webpack _require _ _ ( /*! ./precacheAndRoute.js */ "./node_modules/workbox-precaching/precacheAndRoute.js" ) ;
/* harmony import */ var _PrecacheController _js _ _WEBPACK _IMPORTED _MODULE _8 _ _ = _ _webpack _require _ _ ( /*! ./PrecacheController.js */ "./node_modules/workbox-precaching/PrecacheController.js" ) ;
/* harmony import */ var _PrecacheRoute _js _ _WEBPACK _IMPORTED _MODULE _9 _ _ = _ _webpack _require _ _ ( /*! ./PrecacheRoute.js */ "./node_modules/workbox-precaching/PrecacheRoute.js" ) ;
/* harmony import */ var _PrecacheStrategy _js _ _WEBPACK _IMPORTED _MODULE _10 _ _ = _ _webpack _require _ _ ( /*! ./PrecacheStrategy.js */ "./node_modules/workbox-precaching/PrecacheStrategy.js" ) ;
/* harmony import */ var _PrecacheFallbackPlugin _js _ _WEBPACK _IMPORTED _MODULE _11 _ _ = _ _webpack _require _ _ ( /*! ./PrecacheFallbackPlugin.js */ "./node_modules/workbox-precaching/PrecacheFallbackPlugin.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _12 _ _ = _ _webpack _require _ _ ( /*! ./_version.js */ "./node_modules/workbox-precaching/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _12 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _12 _ _ ) ;
/* harmony import */ var _types _js _ _WEBPACK _IMPORTED _MODULE _13 _ _ = _ _webpack _require _ _ ( /*! ./_types.js */ "./node_modules/workbox-precaching/_types.js" ) ;
/ *
Copyright 2018 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ * *
* Most consumers of this module will want to use the
* { @ link workbox - precaching . precacheAndRoute }
* method to add assets to the cache and respond to network requests with these
* cached assets .
*
* If you require more control over caching and routing , you can use the
* { @ link workbox - precaching . PrecacheController }
* interface .
*
* @ module workbox - precaching
* /
/***/ } ) ,
/***/ "./node_modules/workbox-precaching/matchPrecache.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - precaching / matchPrecache . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "matchPrecache" : ( ) => ( /* binding */ matchPrecache )
/* harmony export */ } ) ;
/* harmony import */ var _utils _getOrCreatePrecacheController _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ./utils/getOrCreatePrecacheController.js */ "./node_modules/workbox-precaching/utils/getOrCreatePrecacheController.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( /*! ./_version.js */ "./node_modules/workbox-precaching/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ ) ;
/ *
Copyright 2019 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ * *
* Helper function that calls
* { @ link PrecacheController # matchPrecache } on the default
* { @ link PrecacheController } instance .
*
* If you are creating your own { @ link PrecacheController } , then call
* { @ link PrecacheController # matchPrecache } on that instance ,
* instead of using this function .
*
* @ param { string | Request } request The key ( without revisioning parameters )
* to look up in the precache .
* @ return { Promise < Response | undefined > }
*
* @ memberof workbox - precaching
* /
function matchPrecache ( request ) {
const precacheController = ( 0 , _utils _getOrCreatePrecacheController _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . getOrCreatePrecacheController ) ( ) ;
return precacheController . matchPrecache ( request ) ;
}
/***/ } ) ,
/***/ "./node_modules/workbox-precaching/precache.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - precaching / precache . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "precache" : ( ) => ( /* binding */ precache )
/* harmony export */ } ) ;
/* harmony import */ var _utils _getOrCreatePrecacheController _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ./utils/getOrCreatePrecacheController.js */ "./node_modules/workbox-precaching/utils/getOrCreatePrecacheController.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( /*! ./_version.js */ "./node_modules/workbox-precaching/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ ) ;
/ *
Copyright 2019 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ * *
* Adds items to the precache list , removing any duplicates and
* stores the files in the
* { @ link workbox - core . cacheNames | "precache cache" } when the service
* worker installs .
*
* This method can be called multiple times .
*
* Please note : This method * * will not * * serve any of the cached files for you .
* It only precaches files . To respond to a network request you call
* { @ link workbox - precaching . addRoute } .
*
* If you have a single array of files to precache , you can just call
* { @ link workbox - precaching . precacheAndRoute } .
*
* @ param { Array < Object | string > } [ entries = [ ] ] Array of entries to precache .
*
* @ memberof workbox - precaching
* /
function precache ( entries ) {
const precacheController = ( 0 , _utils _getOrCreatePrecacheController _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . getOrCreatePrecacheController ) ( ) ;
precacheController . precache ( entries ) ;
}
/***/ } ) ,
/***/ "./node_modules/workbox-precaching/precacheAndRoute.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - precaching / precacheAndRoute . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "precacheAndRoute" : ( ) => ( /* binding */ precacheAndRoute )
/* harmony export */ } ) ;
/* harmony import */ var _addRoute _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ./addRoute.js */ "./node_modules/workbox-precaching/addRoute.js" ) ;
/* harmony import */ var _precache _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( /*! ./precache.js */ "./node_modules/workbox-precaching/precache.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ = _ _webpack _require _ _ ( /*! ./_version.js */ "./node_modules/workbox-precaching/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ ) ;
/ *
Copyright 2019 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ * *
* This method will add entries to the precache list and add a route to
* respond to fetch events .
*
* This is a convenience method that will call
* { @ link workbox - precaching . precache } and
* { @ link workbox - precaching . addRoute } in a single call .
*
* @ param { Array < Object | string > } entries Array of entries to precache .
* @ param { Object } [ options ] See the
* { @ link workbox - precaching . PrecacheRoute } options .
*
* @ memberof workbox - precaching
* /
function precacheAndRoute ( entries , options ) {
( 0 , _precache _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ . precache ) ( entries ) ;
( 0 , _addRoute _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . addRoute ) ( options ) ;
}
/***/ } ) ,
/***/ "./node_modules/workbox-precaching/utils/PrecacheCacheKeyPlugin.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - precaching / utils / PrecacheCacheKeyPlugin . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "PrecacheCacheKeyPlugin" : ( ) => ( /* binding */ PrecacheCacheKeyPlugin )
/* harmony export */ } ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ../_version.js */ "./node_modules/workbox-precaching/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ ) ;
/ *
Copyright 2020 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ * *
* A plugin , designed to be used with PrecacheController , to translate URLs into
* the corresponding cache key , based on the current revision info .
*
* @ private
* /
class PrecacheCacheKeyPlugin {
constructor ( { precacheController } ) {
this . cacheKeyWillBeUsed = async ( { request , params , } ) => {
// Params is type any, can't change right now.
/* eslint-disable */
const cacheKey = ( params === null || params === void 0 ? void 0 : params . cacheKey ) ||
this . _precacheController . getCacheKeyForURL ( request . url ) ;
/* eslint-enable */
return cacheKey
? new Request ( cacheKey , { headers : request . headers } )
: request ;
} ;
this . _precacheController = precacheController ;
}
}
/***/ } ) ,
/***/ "./node_modules/workbox-precaching/utils/PrecacheInstallReportPlugin.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - precaching / utils / PrecacheInstallReportPlugin . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "PrecacheInstallReportPlugin" : ( ) => ( /* binding */ PrecacheInstallReportPlugin )
/* harmony export */ } ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ../_version.js */ "./node_modules/workbox-precaching/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ ) ;
/ *
Copyright 2020 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ * *
* A plugin , designed to be used with PrecacheController , to determine the
* of assets that were updated ( or not updated ) during the install event .
*
* @ private
* /
class PrecacheInstallReportPlugin {
constructor ( ) {
this . updatedURLs = [ ] ;
this . notUpdatedURLs = [ ] ;
this . handlerWillStart = async ( { request , state , } ) => {
// TODO: `state` should never be undefined...
if ( state ) {
state . originalRequest = request ;
}
} ;
this . cachedResponseWillBeUsed = async ( { event , state , cachedResponse , } ) => {
if ( event . type === 'install' ) {
if ( state &&
state . originalRequest &&
state . originalRequest instanceof Request ) {
// TODO: `state` should never be undefined...
const url = state . originalRequest . url ;
if ( cachedResponse ) {
this . notUpdatedURLs . push ( url ) ;
}
else {
this . updatedURLs . push ( url ) ;
}
}
}
return cachedResponse ;
} ;
}
}
/***/ } ) ,
/***/ "./node_modules/workbox-precaching/utils/createCacheKey.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - precaching / utils / createCacheKey . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "createCacheKey" : ( ) => ( /* binding */ createCacheKey )
/* harmony export */ } ) ;
/* harmony import */ var workbox _core _private _WorkboxError _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/WorkboxError.js */ "./node_modules/workbox-core/_private/WorkboxError.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( /*! ../_version.js */ "./node_modules/workbox-precaching/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ ) ;
/ *
Copyright 2018 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
// Name of the search parameter used to store revision info.
const REVISION _SEARCH _PARAM = '__WB_REVISION__' ;
/ * *
* Converts a manifest entry into a versioned URL suitable for precaching .
*
* @ param { Object | string } entry
* @ return { string } A URL with versioning info .
*
* @ private
* @ memberof workbox - precaching
* /
function createCacheKey ( entry ) {
if ( ! entry ) {
throw new workbox _core _private _WorkboxError _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . WorkboxError ( 'add-to-cache-list-unexpected-type' , { entry } ) ;
}
// If a precache manifest entry is a string, it's assumed to be a versioned
// URL, like '/app.abcd1234.js'. Return as-is.
if ( typeof entry === 'string' ) {
const urlObject = new URL ( entry , location . href ) ;
return {
cacheKey : urlObject . href ,
url : urlObject . href ,
} ;
}
const { revision , url } = entry ;
if ( ! url ) {
throw new workbox _core _private _WorkboxError _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . WorkboxError ( 'add-to-cache-list-unexpected-type' , { entry } ) ;
}
// If there's just a URL and no revision, then it's also assumed to be a
// versioned URL.
if ( ! revision ) {
const urlObject = new URL ( url , location . href ) ;
return {
cacheKey : urlObject . href ,
url : urlObject . href ,
} ;
}
// Otherwise, construct a properly versioned URL using the custom Workbox
// search parameter along with the revision info.
const cacheKeyURL = new URL ( url , location . href ) ;
const originalURL = new URL ( url , location . href ) ;
cacheKeyURL . searchParams . set ( REVISION _SEARCH _PARAM , revision ) ;
return {
cacheKey : cacheKeyURL . href ,
url : originalURL . href ,
} ;
}
/***/ } ) ,
/***/ "./node_modules/workbox-precaching/utils/deleteOutdatedCaches.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - precaching / utils / deleteOutdatedCaches . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "deleteOutdatedCaches" : ( ) => ( /* binding */ deleteOutdatedCaches )
/* harmony export */ } ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ../_version.js */ "./node_modules/workbox-precaching/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ ) ;
/ *
Copyright 2018 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
const SUBSTRING _TO _FIND = '-precache-' ;
/ * *
* Cleans up incompatible precaches that were created by older versions of
* Workbox , by a service worker registered under the current scope .
*
* This is meant to be called as part of the ` activate ` event .
*
* This should be safe to use as long as you don ' t include ` substringToFind `
* ( defaulting to ` -precache- ` ) in your non - precache cache names .
*
* @ param { string } currentPrecacheName The cache name currently in use for
* precaching . This cache won ' t be deleted .
* @ param { string } [ substringToFind = '-precache-' ] Cache names which include this
* substring will be deleted ( excluding ` currentPrecacheName ` ) .
* @ return { Array < string > } A list of all the cache names that were deleted .
*
* @ private
* @ memberof workbox - precaching
* /
const deleteOutdatedCaches = async ( currentPrecacheName , substringToFind = SUBSTRING _TO _FIND ) => {
const cacheNames = await self . caches . keys ( ) ;
const cacheNamesToDelete = cacheNames . filter ( ( cacheName ) => {
return ( cacheName . includes ( substringToFind ) &&
cacheName . includes ( self . registration . scope ) &&
cacheName !== currentPrecacheName ) ;
} ) ;
await Promise . all ( cacheNamesToDelete . map ( ( cacheName ) => self . caches . delete ( cacheName ) ) ) ;
return cacheNamesToDelete ;
} ;
/***/ } ) ,
/***/ "./node_modules/workbox-precaching/utils/generateURLVariations.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - precaching / utils / generateURLVariations . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "generateURLVariations" : ( ) => ( /* binding */ generateURLVariations )
/* harmony export */ } ) ;
/* harmony import */ var _removeIgnoredSearchParams _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ./removeIgnoredSearchParams.js */ "./node_modules/workbox-precaching/utils/removeIgnoredSearchParams.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( /*! ../_version.js */ "./node_modules/workbox-precaching/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ ) ;
/ *
Copyright 2019 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ * *
* Generator function that yields possible variations on the original URL to
* check , one at a time .
*
* @ param { string } url
* @ param { Object } options
*
* @ private
* @ memberof workbox - precaching
* /
function * generateURLVariations ( url , { ignoreURLParametersMatching = [ /^utm_/ , /^fbclid$/ ] , directoryIndex = 'index.html' , cleanURLs = true , urlManipulation , } = { } ) {
const urlObject = new URL ( url , location . href ) ;
urlObject . hash = '' ;
yield urlObject . href ;
const urlWithoutIgnoredParams = ( 0 , _removeIgnoredSearchParams _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . removeIgnoredSearchParams ) ( urlObject , ignoreURLParametersMatching ) ;
yield urlWithoutIgnoredParams . href ;
if ( directoryIndex && urlWithoutIgnoredParams . pathname . endsWith ( '/' ) ) {
const directoryURL = new URL ( urlWithoutIgnoredParams . href ) ;
directoryURL . pathname += directoryIndex ;
yield directoryURL . href ;
}
if ( cleanURLs ) {
const cleanURL = new URL ( urlWithoutIgnoredParams . href ) ;
cleanURL . pathname += '.html' ;
yield cleanURL . href ;
}
if ( urlManipulation ) {
const additionalURLs = urlManipulation ( { url : urlObject } ) ;
for ( const urlToAttempt of additionalURLs ) {
yield urlToAttempt . href ;
}
}
}
/***/ } ) ,
/***/ "./node_modules/workbox-precaching/utils/getOrCreatePrecacheController.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - precaching / utils / getOrCreatePrecacheController . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "getOrCreatePrecacheController" : ( ) => ( /* binding */ getOrCreatePrecacheController )
/* harmony export */ } ) ;
/* harmony import */ var _PrecacheController _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ../PrecacheController.js */ "./node_modules/workbox-precaching/PrecacheController.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( /*! ../_version.js */ "./node_modules/workbox-precaching/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ ) ;
/ *
Copyright 2019 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
let precacheController ;
/ * *
* @ return { PrecacheController }
* @ private
* /
const getOrCreatePrecacheController = ( ) => {
if ( ! precacheController ) {
precacheController = new _PrecacheController _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . PrecacheController ( ) ;
}
return precacheController ;
} ;
/***/ } ) ,
/***/ "./node_modules/workbox-precaching/utils/printCleanupDetails.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - precaching / utils / printCleanupDetails . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "printCleanupDetails" : ( ) => ( /* binding */ printCleanupDetails )
/* harmony export */ } ) ;
/* harmony import */ var workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/logger.js */ "./node_modules/workbox-core/_private/logger.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( /*! ../_version.js */ "./node_modules/workbox-precaching/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ ) ;
/ *
Copyright 2018 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ * *
* @ param { string } groupTitle
* @ param { Array < string > } deletedURLs
*
* @ private
* /
const logGroup = ( groupTitle , deletedURLs ) => {
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . logger . groupCollapsed ( groupTitle ) ;
for ( const url of deletedURLs ) {
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . logger . log ( url ) ;
}
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . logger . groupEnd ( ) ;
} ;
/ * *
* @ param { Array < string > } deletedURLs
*
* @ private
* @ memberof workbox - precaching
* /
function printCleanupDetails ( deletedURLs ) {
const deletionCount = deletedURLs . length ;
if ( deletionCount > 0 ) {
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . logger . groupCollapsed ( ` During precaching cleanup, ` +
` ${ deletionCount } cached ` +
` request ${ deletionCount === 1 ? ' was' : 's were' } deleted. ` ) ;
logGroup ( 'Deleted Cache Requests' , deletedURLs ) ;
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . logger . groupEnd ( ) ;
}
}
/***/ } ) ,
/***/ "./node_modules/workbox-precaching/utils/printInstallDetails.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - precaching / utils / printInstallDetails . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "printInstallDetails" : ( ) => ( /* binding */ printInstallDetails )
/* harmony export */ } ) ;
/* harmony import */ var workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/logger.js */ "./node_modules/workbox-core/_private/logger.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( /*! ../_version.js */ "./node_modules/workbox-precaching/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ ) ;
/ *
Copyright 2018 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ * *
* @ param { string } groupTitle
* @ param { Array < string > } urls
*
* @ private
* /
function _nestedGroup ( groupTitle , urls ) {
if ( urls . length === 0 ) {
return ;
}
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . logger . groupCollapsed ( groupTitle ) ;
for ( const url of urls ) {
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . logger . log ( url ) ;
}
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . logger . groupEnd ( ) ;
}
/ * *
* @ param { Array < string > } urlsToPrecache
* @ param { Array < string > } urlsAlreadyPrecached
*
* @ private
* @ memberof workbox - precaching
* /
function printInstallDetails ( urlsToPrecache , urlsAlreadyPrecached ) {
const precachedCount = urlsToPrecache . length ;
const alreadyPrecachedCount = urlsAlreadyPrecached . length ;
if ( precachedCount || alreadyPrecachedCount ) {
let message = ` Precaching ${ precachedCount } file ${ precachedCount === 1 ? '' : 's' } . ` ;
if ( alreadyPrecachedCount > 0 ) {
message +=
` ${ alreadyPrecachedCount } ` +
` file ${ alreadyPrecachedCount === 1 ? ' is' : 's are' } already cached. ` ;
}
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . logger . groupCollapsed ( message ) ;
_nestedGroup ( ` View newly precached URLs. ` , urlsToPrecache ) ;
_nestedGroup ( ` View previously precached URLs. ` , urlsAlreadyPrecached ) ;
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . logger . groupEnd ( ) ;
}
}
/***/ } ) ,
/***/ "./node_modules/workbox-precaching/utils/removeIgnoredSearchParams.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - precaching / utils / removeIgnoredSearchParams . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "removeIgnoredSearchParams" : ( ) => ( /* binding */ removeIgnoredSearchParams )
/* harmony export */ } ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ../_version.js */ "./node_modules/workbox-precaching/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ ) ;
/ *
Copyright 2018 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ * *
* Removes any URL search parameters that should be ignored .
*
* @ param { URL } urlObject The original URL .
* @ param { Array < RegExp > } ignoreURLParametersMatching RegExps to test against
* each search parameter name . Matches mean that the search parameter should be
* ignored .
* @ return { URL } The URL with any ignored search parameters removed .
*
* @ private
* @ memberof workbox - precaching
* /
function removeIgnoredSearchParams ( urlObject , ignoreURLParametersMatching = [ ] ) {
// Convert the iterable into an array at the start of the loop to make sure
// deletion doesn't mess up iteration.
for ( const paramName of [ ... urlObject . searchParams . keys ( ) ] ) {
if ( ignoreURLParametersMatching . some ( ( regExp ) => regExp . test ( paramName ) ) ) {
urlObject . searchParams . delete ( paramName ) ;
}
}
return urlObject ;
}
/***/ } ) ,
/***/ "./node_modules/workbox-routing/RegExpRoute.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - routing / RegExpRoute . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "RegExpRoute" : ( ) => ( /* binding */ RegExpRoute )
/* harmony export */ } ) ;
/* harmony import */ var workbox _core _private _assert _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/assert.js */ "./node_modules/workbox-core/_private/assert.js" ) ;
/* harmony import */ var workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/logger.js */ "./node_modules/workbox-core/_private/logger.js" ) ;
/* harmony import */ var _Route _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ = _ _webpack _require _ _ ( /*! ./Route.js */ "./node_modules/workbox-routing/Route.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ = _ _webpack _require _ _ ( /*! ./_version.js */ "./node_modules/workbox-routing/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ ) ;
/ *
Copyright 2018 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ * *
* RegExpRoute makes it easy to create a regular expression based
* { @ link workbox - routing . Route } .
*
* For same - origin requests the RegExp only needs to match part of the URL . For
* requests against third - party servers , you must define a RegExp that matches
* the start of the URL .
*
* @ memberof workbox - routing
* @ extends workbox - routing . Route
* /
class RegExpRoute extends _Route _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ . Route {
/ * *
* If the regular expression contains
* [ capture groups ] { @ link https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#grouping-back-references},
* the captured values will be passed to the
* { @ link workbox - routing ~ handlerCallback } ` params `
* argument .
*
* @ param { RegExp } regExp The regular expression to match against URLs .
* @ param { workbox - routing ~ handlerCallback } handler A callback
* function that returns a Promise resulting in a Response .
* @ param { string } [ method = 'GET' ] The HTTP method to match the Route
* against .
* /
constructor ( regExp , handler , method ) {
if ( true ) {
workbox _core _private _assert _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . assert . isInstance ( regExp , RegExp , {
moduleName : 'workbox-routing' ,
className : 'RegExpRoute' ,
funcName : 'constructor' ,
paramName : 'pattern' ,
} ) ;
}
const match = ( { url } ) => {
const result = regExp . exec ( url . href ) ;
// Return immediately if there's no match.
if ( ! result ) {
return ;
}
// Require that the match start at the first character in the URL string
// if it's a cross-origin request.
// See https://github.com/GoogleChrome/workbox/issues/281 for the context
// behind this behavior.
if ( url . origin !== location . origin && result . index !== 0 ) {
if ( true ) {
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ . logger . debug ( ` The regular expression ' ${ regExp . toString ( ) } ' only partially matched ` +
` against the cross-origin URL ' ${ url . toString ( ) } '. RegExpRoute's will only ` +
` handle cross-origin requests if they match the entire URL. ` ) ;
}
return ;
}
// If the route matches, but there aren't any capture groups defined, then
// this will return [], which is truthy and therefore sufficient to
// indicate a match.
// If there are capture groups, then it will return their values.
return result . slice ( 1 ) ;
} ;
super ( match , handler , method ) ;
}
}
/***/ } ) ,
/***/ "./node_modules/workbox-routing/Route.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - routing / Route . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "Route" : ( ) => ( /* binding */ Route )
/* harmony export */ } ) ;
/* harmony import */ var workbox _core _private _assert _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/assert.js */ "./node_modules/workbox-core/_private/assert.js" ) ;
/* harmony import */ var _utils _constants _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( /*! ./utils/constants.js */ "./node_modules/workbox-routing/utils/constants.js" ) ;
/* harmony import */ var _utils _normalizeHandler _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ = _ _webpack _require _ _ ( /*! ./utils/normalizeHandler.js */ "./node_modules/workbox-routing/utils/normalizeHandler.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ = _ _webpack _require _ _ ( /*! ./_version.js */ "./node_modules/workbox-routing/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ ) ;
/ *
Copyright 2018 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ * *
* A ` Route ` consists of a pair of callback functions , "match" and "handler" .
* The "match" callback determine if a route should be used to "handle" a
* request by returning a non - falsy value if it can . The "handler" callback
* is called when there is a match and should return a Promise that resolves
* to a ` Response ` .
*
* @ memberof workbox - routing
* /
class Route {
/ * *
* Constructor for Route class .
*
* @ param { workbox - routing ~ matchCallback } match
* A callback function that determines whether the route matches a given
* ` fetch ` event by returning a non - falsy value .
* @ param { workbox - routing ~ handlerCallback } handler A callback
* function that returns a Promise resolving to a Response .
* @ param { string } [ method = 'GET' ] The HTTP method to match the Route
* against .
* /
constructor ( match , handler , method = _utils _constants _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ . defaultMethod ) {
if ( true ) {
workbox _core _private _assert _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . assert . isType ( match , 'function' , {
moduleName : 'workbox-routing' ,
className : 'Route' ,
funcName : 'constructor' ,
paramName : 'match' ,
} ) ;
if ( method ) {
workbox _core _private _assert _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . assert . isOneOf ( method , _utils _constants _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ . validMethods , { paramName : 'method' } ) ;
}
}
// These values are referenced directly by Router so cannot be
// altered by minificaton.
this . handler = ( 0 , _utils _normalizeHandler _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ . normalizeHandler ) ( handler ) ;
this . match = match ;
this . method = method ;
}
/ * *
*
* @ param { workbox - routing - handlerCallback } handler A callback
* function that returns a Promise resolving to a Response
* /
setCatchHandler ( handler ) {
this . catchHandler = ( 0 , _utils _normalizeHandler _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ . normalizeHandler ) ( handler ) ;
}
}
/***/ } ) ,
/***/ "./node_modules/workbox-routing/Router.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - routing / Router . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "Router" : ( ) => ( /* binding */ Router )
/* harmony export */ } ) ;
/* harmony import */ var workbox _core _private _assert _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/assert.js */ "./node_modules/workbox-core/_private/assert.js" ) ;
/* harmony import */ var workbox _core _private _getFriendlyURL _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/getFriendlyURL.js */ "./node_modules/workbox-core/_private/getFriendlyURL.js" ) ;
/* harmony import */ var _utils _constants _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ = _ _webpack _require _ _ ( /*! ./utils/constants.js */ "./node_modules/workbox-routing/utils/constants.js" ) ;
/* harmony import */ var workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/logger.js */ "./node_modules/workbox-core/_private/logger.js" ) ;
/* harmony import */ var _utils _normalizeHandler _js _ _WEBPACK _IMPORTED _MODULE _4 _ _ = _ _webpack _require _ _ ( /*! ./utils/normalizeHandler.js */ "./node_modules/workbox-routing/utils/normalizeHandler.js" ) ;
/* harmony import */ var workbox _core _private _WorkboxError _js _ _WEBPACK _IMPORTED _MODULE _5 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/WorkboxError.js */ "./node_modules/workbox-core/_private/WorkboxError.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ = _ _webpack _require _ _ ( /*! ./_version.js */ "./node_modules/workbox-routing/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ ) ;
/ *
Copyright 2018 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ * *
* The Router can be used to process a ` FetchEvent ` using one or more
* { @ link workbox - routing . Route } , responding with a ` Response ` if
* a matching route exists .
*
* If no route matches a given a request , the Router will use a "default"
* handler if one is defined .
*
* Should the matching Route throw an error , the Router will use a "catch"
* handler if one is defined to gracefully deal with issues and respond with a
* Request .
*
* If a request matches multiple routes , the * * earliest * * registered route will
* be used to respond to the request .
*
* @ memberof workbox - routing
* /
class Router {
/ * *
* Initializes a new Router .
* /
constructor ( ) {
this . _routes = new Map ( ) ;
this . _defaultHandlerMap = new Map ( ) ;
}
/ * *
* @ return { Map < string , Array < workbox - routing . Route >> } routes A ` Map ` of HTTP
* method name ( 'GET' , etc . ) to an array of all the corresponding ` Route `
* instances that are registered .
* /
get routes ( ) {
return this . _routes ;
}
/ * *
* Adds a fetch event listener to respond to events when a route matches
* the event ' s request .
* /
addFetchListener ( ) {
// See https://github.com/Microsoft/TypeScript/issues/28357#issuecomment-436484705
self . addEventListener ( 'fetch' , ( ( event ) => {
const { request } = event ;
const responsePromise = this . handleRequest ( { request , event } ) ;
if ( responsePromise ) {
event . respondWith ( responsePromise ) ;
}
} ) ) ;
}
/ * *
* Adds a message event listener for URLs to cache from the window .
* This is useful to cache resources loaded on the page prior to when the
* service worker started controlling it .
*
* The format of the message data sent from the window should be as follows .
* Where the ` urlsToCache ` array may consist of URL strings or an array of
* URL string + ` requestInit ` object ( the same as you ' d pass to ` fetch() ` ) .
*
* ` ` `
* {
* type : 'CACHE_URLS' ,
* payload : {
* urlsToCache : [
* './script1.js' ,
* './script2.js' ,
* [ './script3.js' , { mode : 'no-cors' } ] ,
* ] ,
* } ,
* }
* ` ` `
* /
addCacheListener ( ) {
// See https://github.com/Microsoft/TypeScript/issues/28357#issuecomment-436484705
self . addEventListener ( 'message' , ( ( event ) => {
// event.data is type 'any'
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
if ( event . data && event . data . type === 'CACHE_URLS' ) {
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
const { payload } = event . data ;
if ( true ) {
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . logger . debug ( ` Caching URLs from the window ` , payload . urlsToCache ) ;
}
const requestPromises = Promise . all ( payload . urlsToCache . map ( ( entry ) => {
if ( typeof entry === 'string' ) {
entry = [ entry ] ;
}
const request = new Request ( ... entry ) ;
return this . handleRequest ( { request , event } ) ;
// TODO(philipwalton): TypeScript errors without this typecast for
// some reason (probably a bug). The real type here should work but
// doesn't: `Array<Promise<Response> | undefined>`.
} ) ) ; // TypeScript
event . waitUntil ( requestPromises ) ;
// If a MessageChannel was used, reply to the message on success.
if ( event . ports && event . ports [ 0 ] ) {
void requestPromises . then ( ( ) => event . ports [ 0 ] . postMessage ( true ) ) ;
}
}
} ) ) ;
}
/ * *
* Apply the routing rules to a FetchEvent object to get a Response from an
* appropriate Route ' s handler .
*
* @ param { Object } options
* @ param { Request } options . request The request to handle .
* @ param { ExtendableEvent } options . event The event that triggered the
* request .
* @ return { Promise < Response > | undefined } A promise is returned if a
* registered route can handle the request . If there is no matching
* route and there ' s no ` defaultHandler ` , ` undefined ` is returned .
* /
handleRequest ( { request , event , } ) {
if ( true ) {
workbox _core _private _assert _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . assert . isInstance ( request , Request , {
moduleName : 'workbox-routing' ,
className : 'Router' ,
funcName : 'handleRequest' ,
paramName : 'options.request' ,
} ) ;
}
const url = new URL ( request . url , location . href ) ;
if ( ! url . protocol . startsWith ( 'http' ) ) {
if ( true ) {
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . logger . debug ( ` Workbox Router only supports URLs that start with 'http'. ` ) ;
}
return ;
}
const sameOrigin = url . origin === location . origin ;
const { params , route } = this . findMatchingRoute ( {
event ,
request ,
sameOrigin ,
url ,
} ) ;
let handler = route && route . handler ;
const debugMessages = [ ] ;
if ( true ) {
if ( handler ) {
debugMessages . push ( [ ` Found a route to handle this request: ` , route ] ) ;
if ( params ) {
debugMessages . push ( [
` Passing the following params to the route's handler: ` ,
params ,
] ) ;
}
}
}
// If we don't have a handler because there was no matching route, then
// fall back to defaultHandler if that's defined.
const method = request . method ;
if ( ! handler && this . _defaultHandlerMap . has ( method ) ) {
if ( true ) {
debugMessages . push ( ` Failed to find a matching route. Falling ` +
` back to the default handler for ${ method } . ` ) ;
}
handler = this . _defaultHandlerMap . get ( method ) ;
}
if ( ! handler ) {
if ( true ) {
// No handler so Workbox will do nothing. If logs is set of debug
// i.e. verbose, we should print out this information.
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . logger . debug ( ` No route found for: ${ ( 0 , workbox _core _private _getFriendlyURL _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ . getFriendlyURL ) ( url ) } ` ) ;
}
return ;
}
if ( true ) {
// We have a handler, meaning Workbox is going to handle the route.
// print the routing details to the console.
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . logger . groupCollapsed ( ` Router is responding to: ${ ( 0 , workbox _core _private _getFriendlyURL _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ . getFriendlyURL ) ( url ) } ` ) ;
debugMessages . forEach ( ( msg ) => {
if ( Array . isArray ( msg ) ) {
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . logger . log ( ... msg ) ;
}
else {
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . logger . log ( msg ) ;
}
} ) ;
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . logger . groupEnd ( ) ;
}
// Wrap in try and catch in case the handle method throws a synchronous
// error. It should still callback to the catch handler.
let responsePromise ;
try {
responsePromise = handler . handle ( { url , request , event , params } ) ;
}
catch ( err ) {
responsePromise = Promise . reject ( err ) ;
}
// Get route's catch handler, if it exists
const catchHandler = route && route . catchHandler ;
if ( responsePromise instanceof Promise &&
( this . _catchHandler || catchHandler ) ) {
responsePromise = responsePromise . catch ( async ( err ) => {
// If there's a route catch handler, process that first
if ( catchHandler ) {
if ( true ) {
// Still include URL here as it will be async from the console group
// and may not make sense without the URL
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . logger . groupCollapsed ( ` Error thrown when responding to: ` +
` ${ ( 0 , workbox _core _private _getFriendlyURL _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ . getFriendlyURL ) ( url ) } . Falling back to route's Catch Handler. ` ) ;
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . logger . error ( ` Error thrown by: ` , route ) ;
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . logger . error ( err ) ;
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . logger . groupEnd ( ) ;
}
try {
return await catchHandler . handle ( { url , request , event , params } ) ;
}
catch ( catchErr ) {
if ( catchErr instanceof Error ) {
err = catchErr ;
}
}
}
if ( this . _catchHandler ) {
if ( true ) {
// Still include URL here as it will be async from the console group
// and may not make sense without the URL
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . logger . groupCollapsed ( ` Error thrown when responding to: ` +
` ${ ( 0 , workbox _core _private _getFriendlyURL _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ . getFriendlyURL ) ( url ) } . Falling back to global Catch Handler. ` ) ;
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . logger . error ( ` Error thrown by: ` , route ) ;
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . logger . error ( err ) ;
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . logger . groupEnd ( ) ;
}
return this . _catchHandler . handle ( { url , request , event } ) ;
}
throw err ;
} ) ;
}
return responsePromise ;
}
/ * *
* Checks a request and URL ( and optionally an event ) against the list of
* registered routes , and if there ' s a match , returns the corresponding
* route along with any params generated by the match .
*
* @ param { Object } options
* @ param { URL } options . url
* @ param { boolean } options . sameOrigin The result of comparing ` url.origin `
* against the current origin .
* @ param { Request } options . request The request to match .
* @ param { Event } options . event The corresponding event .
* @ return { Object } An object with ` route ` and ` params ` properties .
* They are populated if a matching route was found or ` undefined `
* otherwise .
* /
findMatchingRoute ( { url , sameOrigin , request , event , } ) {
const routes = this . _routes . get ( request . method ) || [ ] ;
for ( const route of routes ) {
let params ;
// route.match returns type any, not possible to change right now.
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
const matchResult = route . match ( { url , sameOrigin , request , event } ) ;
if ( matchResult ) {
if ( true ) {
// Warn developers that using an async matchCallback is almost always
// not the right thing to do.
if ( matchResult instanceof Promise ) {
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . logger . warn ( ` While routing ${ ( 0 , workbox _core _private _getFriendlyURL _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ . getFriendlyURL ) ( url ) } , an async ` +
` matchCallback function was used. Please convert the ` +
` following route to use a synchronous matchCallback function: ` , route ) ;
}
}
// See https://github.com/GoogleChrome/workbox/issues/2079
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
params = matchResult ;
if ( Array . isArray ( params ) && params . length === 0 ) {
// Instead of passing an empty array in as params, use undefined.
params = undefined ;
}
else if ( matchResult . constructor === Object && // eslint-disable-line
Object . keys ( matchResult ) . length === 0 ) {
// Instead of passing an empty object in as params, use undefined.
params = undefined ;
}
else if ( typeof matchResult === 'boolean' ) {
// For the boolean value true (rather than just something truth-y),
// don't set params.
// See https://github.com/GoogleChrome/workbox/pull/2134#issuecomment-513924353
params = undefined ;
}
// Return early if have a match.
return { route , params } ;
}
}
// If no match was found above, return and empty object.
return { } ;
}
/ * *
* Define a default ` handler ` that ' s called when no routes explicitly
* match the incoming request .
*
* Each HTTP method ( 'GET' , 'POST' , etc . ) gets its own default handler .
*
* Without a default handler , unmatched requests will go against the
* network as if there were no service worker present .
*
* @ param { workbox - routing ~ handlerCallback } handler A callback
* function that returns a Promise resulting in a Response .
* @ param { string } [ method = 'GET' ] The HTTP method to associate with this
* default handler . Each method has its own default .
* /
setDefaultHandler ( handler , method = _utils _constants _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ . defaultMethod ) {
this . _defaultHandlerMap . set ( method , ( 0 , _utils _normalizeHandler _js _ _WEBPACK _IMPORTED _MODULE _4 _ _ . normalizeHandler ) ( handler ) ) ;
}
/ * *
* If a Route throws an error while handling a request , this ` handler `
* will be called and given a chance to provide a response .
*
* @ param { workbox - routing ~ handlerCallback } handler A callback
* function that returns a Promise resulting in a Response .
* /
setCatchHandler ( handler ) {
this . _catchHandler = ( 0 , _utils _normalizeHandler _js _ _WEBPACK _IMPORTED _MODULE _4 _ _ . normalizeHandler ) ( handler ) ;
}
/ * *
* Registers a route with the router .
*
* @ param { workbox - routing . Route } route The route to register .
* /
registerRoute ( route ) {
if ( true ) {
workbox _core _private _assert _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . assert . isType ( route , 'object' , {
moduleName : 'workbox-routing' ,
className : 'Router' ,
funcName : 'registerRoute' ,
paramName : 'route' ,
} ) ;
workbox _core _private _assert _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . assert . hasMethod ( route , 'match' , {
moduleName : 'workbox-routing' ,
className : 'Router' ,
funcName : 'registerRoute' ,
paramName : 'route' ,
} ) ;
workbox _core _private _assert _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . assert . isType ( route . handler , 'object' , {
moduleName : 'workbox-routing' ,
className : 'Router' ,
funcName : 'registerRoute' ,
paramName : 'route' ,
} ) ;
workbox _core _private _assert _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . assert . hasMethod ( route . handler , 'handle' , {
moduleName : 'workbox-routing' ,
className : 'Router' ,
funcName : 'registerRoute' ,
paramName : 'route.handler' ,
} ) ;
workbox _core _private _assert _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . assert . isType ( route . method , 'string' , {
moduleName : 'workbox-routing' ,
className : 'Router' ,
funcName : 'registerRoute' ,
paramName : 'route.method' ,
} ) ;
}
if ( ! this . _routes . has ( route . method ) ) {
this . _routes . set ( route . method , [ ] ) ;
}
// Give precedence to all of the earlier routes by adding this additional
// route to the end of the array.
this . _routes . get ( route . method ) . push ( route ) ;
}
/ * *
* Unregisters a route with the router .
*
* @ param { workbox - routing . Route } route The route to unregister .
* /
unregisterRoute ( route ) {
if ( ! this . _routes . has ( route . method ) ) {
throw new workbox _core _private _WorkboxError _js _ _WEBPACK _IMPORTED _MODULE _5 _ _ . WorkboxError ( 'unregister-route-but-not-found-with-method' , {
method : route . method ,
} ) ;
}
const routeIndex = this . _routes . get ( route . method ) . indexOf ( route ) ;
if ( routeIndex > - 1 ) {
this . _routes . get ( route . method ) . splice ( routeIndex , 1 ) ;
}
else {
throw new workbox _core _private _WorkboxError _js _ _WEBPACK _IMPORTED _MODULE _5 _ _ . WorkboxError ( 'unregister-route-route-not-registered' ) ;
}
}
}
/***/ } ) ,
/***/ "./node_modules/workbox-routing/_version.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - routing / _version . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( ) => {
// @ts-ignore
try {
self [ 'workbox:routing:6.5.3' ] && _ ( ) ;
}
catch ( e ) { }
/***/ } ) ,
/***/ "./node_modules/workbox-routing/registerRoute.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - routing / registerRoute . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "registerRoute" : ( ) => ( /* binding */ registerRoute )
/* harmony export */ } ) ;
/* harmony import */ var workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/logger.js */ "./node_modules/workbox-core/_private/logger.js" ) ;
/* harmony import */ var workbox _core _private _WorkboxError _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/WorkboxError.js */ "./node_modules/workbox-core/_private/WorkboxError.js" ) ;
/* harmony import */ var _Route _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ = _ _webpack _require _ _ ( /*! ./Route.js */ "./node_modules/workbox-routing/Route.js" ) ;
/* harmony import */ var _RegExpRoute _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ = _ _webpack _require _ _ ( /*! ./RegExpRoute.js */ "./node_modules/workbox-routing/RegExpRoute.js" ) ;
/* harmony import */ var _utils _getOrCreateDefaultRouter _js _ _WEBPACK _IMPORTED _MODULE _4 _ _ = _ _webpack _require _ _ ( /*! ./utils/getOrCreateDefaultRouter.js */ "./node_modules/workbox-routing/utils/getOrCreateDefaultRouter.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _5 _ _ = _ _webpack _require _ _ ( /*! ./_version.js */ "./node_modules/workbox-routing/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _5 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _5 _ _ ) ;
/ *
Copyright 2019 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ * *
* Easily register a RegExp , string , or function with a caching
* strategy to a singleton Router instance .
*
* This method will generate a Route for you if needed and
* call { @ link workbox - routing . Router # registerRoute } .
*
* @ param { RegExp | string | workbox - routing . Route ~ matchCallback | workbox - routing . Route } capture
* If the capture param is a ` Route ` , all other arguments will be ignored .
* @ param { workbox - routing ~ handlerCallback } [ handler ] A callback
* function that returns a Promise resulting in a Response . This parameter
* is required if ` capture ` is not a ` Route ` object .
* @ param { string } [ method = 'GET' ] The HTTP method to match the Route
* against .
* @ return { workbox - routing . Route } The generated ` Route ` .
*
* @ memberof workbox - routing
* /
function registerRoute ( capture , handler , method ) {
let route ;
if ( typeof capture === 'string' ) {
const captureUrl = new URL ( capture , location . href ) ;
if ( true ) {
if ( ! ( capture . startsWith ( '/' ) || capture . startsWith ( 'http' ) ) ) {
throw new workbox _core _private _WorkboxError _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ . WorkboxError ( 'invalid-string' , {
moduleName : 'workbox-routing' ,
funcName : 'registerRoute' ,
paramName : 'capture' ,
} ) ;
}
// We want to check if Express-style wildcards are in the pathname only.
// TODO: Remove this log message in v4.
const valueToCheck = capture . startsWith ( 'http' )
? captureUrl . pathname
: capture ;
// See https://github.com/pillarjs/path-to-regexp#parameters
const wildcards = '[*:?+]' ;
if ( new RegExp ( ` ${ wildcards } ` ) . exec ( valueToCheck ) ) {
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . logger . debug ( ` The ' $ capture' parameter contains an Express-style wildcard ` +
` character ( ${ wildcards } ). Strings are now always interpreted as ` +
` exact matches; use a RegExp for partial or wildcard matches. ` ) ;
}
}
const matchCallback = ( { url } ) => {
if ( true ) {
if ( url . pathname === captureUrl . pathname &&
url . origin !== captureUrl . origin ) {
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . logger . debug ( ` ${ capture } only partially matches the cross-origin URL ` +
` ${ url . toString ( ) } . This route will only handle cross-origin requests ` +
` if they match the entire URL. ` ) ;
}
}
return url . href === captureUrl . href ;
} ;
// If `capture` is a string then `handler` and `method` must be present.
route = new _Route _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ . Route ( matchCallback , handler , method ) ;
}
else if ( capture instanceof RegExp ) {
// If `capture` is a `RegExp` then `handler` and `method` must be present.
route = new _RegExpRoute _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . RegExpRoute ( capture , handler , method ) ;
}
else if ( typeof capture === 'function' ) {
// If `capture` is a function then `handler` and `method` must be present.
route = new _Route _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ . Route ( capture , handler , method ) ;
}
else if ( capture instanceof _Route _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ . Route ) {
route = capture ;
}
else {
throw new workbox _core _private _WorkboxError _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ . WorkboxError ( 'unsupported-route-type' , {
moduleName : 'workbox-routing' ,
funcName : 'registerRoute' ,
paramName : 'capture' ,
} ) ;
}
const defaultRouter = ( 0 , _utils _getOrCreateDefaultRouter _js _ _WEBPACK _IMPORTED _MODULE _4 _ _ . getOrCreateDefaultRouter ) ( ) ;
defaultRouter . registerRoute ( route ) ;
return route ;
}
/***/ } ) ,
/***/ "./node_modules/workbox-routing/utils/constants.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - routing / utils / constants . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "defaultMethod" : ( ) => ( /* binding */ defaultMethod ) ,
/* harmony export */ "validMethods" : ( ) => ( /* binding */ validMethods )
/* harmony export */ } ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ../_version.js */ "./node_modules/workbox-routing/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ ) ;
/ *
Copyright 2018 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ * *
* The default HTTP method , 'GET' , used when there ' s no specific method
* configured for a route .
*
* @ type { string }
*
* @ private
* /
const defaultMethod = 'GET' ;
/ * *
* The list of valid HTTP methods associated with requests that could be routed .
*
* @ type { Array < string > }
*
* @ private
* /
const validMethods = [
'DELETE' ,
'GET' ,
'HEAD' ,
'PATCH' ,
'POST' ,
'PUT' ,
] ;
/***/ } ) ,
/***/ "./node_modules/workbox-routing/utils/getOrCreateDefaultRouter.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - routing / utils / getOrCreateDefaultRouter . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "getOrCreateDefaultRouter" : ( ) => ( /* binding */ getOrCreateDefaultRouter )
/* harmony export */ } ) ;
/* harmony import */ var _Router _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ../Router.js */ "./node_modules/workbox-routing/Router.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( /*! ../_version.js */ "./node_modules/workbox-routing/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ ) ;
/ *
Copyright 2019 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
let defaultRouter ;
/ * *
* Creates a new , singleton Router instance if one does not exist . If one
* does already exist , that instance is returned .
*
* @ private
* @ return { Router }
* /
const getOrCreateDefaultRouter = ( ) => {
if ( ! defaultRouter ) {
defaultRouter = new _Router _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . Router ( ) ;
// The helpers that use the default Router assume these listeners exist.
defaultRouter . addFetchListener ( ) ;
defaultRouter . addCacheListener ( ) ;
}
return defaultRouter ;
} ;
/***/ } ) ,
/***/ "./node_modules/workbox-routing/utils/normalizeHandler.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - routing / utils / normalizeHandler . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "normalizeHandler" : ( ) => ( /* binding */ normalizeHandler )
/* harmony export */ } ) ;
/* harmony import */ var workbox _core _private _assert _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/assert.js */ "./node_modules/workbox-core/_private/assert.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( /*! ../_version.js */ "./node_modules/workbox-routing/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ ) ;
/ *
Copyright 2018 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ * *
* @ param { function ( ) | Object } handler Either a function , or an object with a
* 'handle' method .
* @ return { Object } An object with a handle method .
*
* @ private
* /
const normalizeHandler = ( handler ) => {
if ( handler && typeof handler === 'object' ) {
if ( true ) {
workbox _core _private _assert _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . assert . hasMethod ( handler , 'handle' , {
moduleName : 'workbox-routing' ,
className : 'Route' ,
funcName : 'constructor' ,
paramName : 'handler' ,
} ) ;
}
return handler ;
}
else {
if ( true ) {
workbox _core _private _assert _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . assert . isType ( handler , 'function' , {
moduleName : 'workbox-routing' ,
className : 'Route' ,
funcName : 'constructor' ,
paramName : 'handler' ,
} ) ;
}
return { handle : handler } ;
}
} ;
/***/ } ) ,
/***/ "./node_modules/workbox-strategies/Strategy.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - strategies / Strategy . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "Strategy" : ( ) => ( /* binding */ Strategy )
/* harmony export */ } ) ;
/* harmony import */ var workbox _core _private _cacheNames _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/cacheNames.js */ "./node_modules/workbox-core/_private/cacheNames.js" ) ;
/* harmony import */ var workbox _core _private _WorkboxError _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/WorkboxError.js */ "./node_modules/workbox-core/_private/WorkboxError.js" ) ;
/* harmony import */ var workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/logger.js */ "./node_modules/workbox-core/_private/logger.js" ) ;
/* harmony import */ var workbox _core _private _getFriendlyURL _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/getFriendlyURL.js */ "./node_modules/workbox-core/_private/getFriendlyURL.js" ) ;
/* harmony import */ var _StrategyHandler _js _ _WEBPACK _IMPORTED _MODULE _4 _ _ = _ _webpack _require _ _ ( /*! ./StrategyHandler.js */ "./node_modules/workbox-strategies/StrategyHandler.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _5 _ _ = _ _webpack _require _ _ ( /*! ./_version.js */ "./node_modules/workbox-strategies/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _5 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _5 _ _ ) ;
/ *
Copyright 2020 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
/ * *
* An abstract base class that all other strategy classes must extend from :
*
* @ memberof workbox - strategies
* /
class Strategy {
/ * *
* Creates a new instance of the strategy and sets all documented option
* properties as public instance properties .
*
* Note : if a custom strategy class extends the base Strategy class and does
* not need more than these properties , it does not need to define its own
* constructor .
*
* @ param { Object } [ options ]
* @ param { string } [ options . cacheName ] Cache name to store and retrieve
* requests . Defaults to the cache names provided by
* { @ link workbox - core . cacheNames } .
* @ param { Array < Object > } [ options . plugins ] [ Plugins ] { @ link https : //developers.google.com/web/tools/workbox/guides/using-plugins}
* to use in conjunction with this caching strategy .
* @ param { Object } [ options . fetchOptions ] Values passed along to the
* [ ` init ` ] ( https : //developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters)
* of [ non - navigation ] ( https : //github.com/GoogleChrome/workbox/issues/1796)
* ` fetch() ` requests made by this strategy .
* @ param { Object } [ options . matchOptions ] The
* [ ` CacheQueryOptions ` ] { @ link https : //w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions}
* for any ` cache.match() ` or ` cache.put() ` calls made by this strategy .
* /
constructor ( options = { } ) {
/ * *
* Cache name to store and retrieve
* requests . Defaults to the cache names provided by
* { @ link workbox - core . cacheNames } .
*
* @ type { string }
* /
this . cacheName = workbox _core _private _cacheNames _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . cacheNames . getRuntimeName ( options . cacheName ) ;
/ * *
* The list
* [ Plugins ] { @ link https : //developers.google.com/web/tools/workbox/guides/using-plugins}
* used by this strategy .
*
* @ type { Array < Object > }
* /
this . plugins = options . plugins || [ ] ;
/ * *
* Values passed along to the
* [ ` init ` ] { @ link https : //developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters}
* of all fetch ( ) requests made by this strategy .
*
* @ type { Object }
* /
this . fetchOptions = options . fetchOptions ;
/ * *
* The
* [ ` CacheQueryOptions ` ] { @ link https : //w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions}
* for any ` cache.match() ` or ` cache.put() ` calls made by this strategy .
*
* @ type { Object }
* /
this . matchOptions = options . matchOptions ;
}
/ * *
* Perform a request strategy and returns a ` Promise ` that will resolve with
* a ` Response ` , invoking all relevant plugin callbacks .
*
* When a strategy instance is registered with a Workbox
* { @ link workbox - routing . Route } , this method is automatically
* called when the route matches .
*
* Alternatively , this method can be used in a standalone ` FetchEvent `
* listener by passing it to ` event.respondWith() ` .
*
* @ param { FetchEvent | Object } options A ` FetchEvent ` or an object with the
* properties listed below .
* @ param { Request | string } options . request A request to run this strategy for .
* @ param { ExtendableEvent } options . event The event associated with the
* request .
* @ param { URL } [ options . url ]
* @ param { * } [ options . params ]
* /
handle ( options ) {
const [ responseDone ] = this . handleAll ( options ) ;
return responseDone ;
}
/ * *
* Similar to { @ link workbox - strategies . Strategy ~ handle } , but
* instead of just returning a ` Promise ` that resolves to a ` Response ` it
* it will return an tuple of ` [response, done] ` promises , where the former
* ( ` response ` ) is equivalent to what ` handle() ` returns , and the latter is a
* Promise that will resolve once any promises that were added to
* ` event.waitUntil() ` as part of performing the strategy have completed .
*
* You can await the ` done ` promise to ensure any extra work performed by
* the strategy ( usually caching responses ) completes successfully .
*
* @ param { FetchEvent | Object } options A ` FetchEvent ` or an object with the
* properties listed below .
* @ param { Request | string } options . request A request to run this strategy for .
* @ param { ExtendableEvent } options . event The event associated with the
* request .
* @ param { URL } [ options . url ]
* @ param { * } [ options . params ]
* @ return { Array < Promise > } A tuple of [ response , done ]
* promises that can be used to determine when the response resolves as
* well as when the handler has completed all its work .
* /
handleAll ( options ) {
// Allow for flexible options to be passed.
if ( options instanceof FetchEvent ) {
options = {
event : options ,
request : options . request ,
} ;
}
const event = options . event ;
const request = typeof options . request === 'string'
? new Request ( options . request )
: options . request ;
const params = 'params' in options ? options . params : undefined ;
const handler = new _StrategyHandler _js _ _WEBPACK _IMPORTED _MODULE _4 _ _ . StrategyHandler ( this , { event , request , params } ) ;
const responseDone = this . _getResponse ( handler , request , event ) ;
const handlerDone = this . _awaitComplete ( responseDone , handler , request , event ) ;
// Return an array of promises, suitable for use with Promise.all().
return [ responseDone , handlerDone ] ;
}
async _getResponse ( handler , request , event ) {
await handler . runCallbacks ( 'handlerWillStart' , { event , request } ) ;
let response = undefined ;
try {
response = await this . _handle ( request , handler ) ;
// The "official" Strategy subclasses all throw this error automatically,
// but in case a third-party Strategy doesn't, ensure that we have a
// consistent failure when there's no response or an error response.
if ( ! response || response . type === 'error' ) {
throw new workbox _core _private _WorkboxError _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ . WorkboxError ( 'no-response' , { url : request . url } ) ;
}
}
catch ( error ) {
if ( error instanceof Error ) {
for ( const callback of handler . iterateCallbacks ( 'handlerDidError' ) ) {
response = await callback ( { error , event , request } ) ;
if ( response ) {
break ;
}
}
}
if ( ! response ) {
throw error ;
}
else if ( true ) {
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ . logger . log ( ` While responding to ' ${ ( 0 , workbox _core _private _getFriendlyURL _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . getFriendlyURL ) ( request . url ) } ', ` +
` an ${ error instanceof Error ? error . toString ( ) : '' } error occurred. Using a fallback response provided by ` +
` a handlerDidError plugin. ` ) ;
}
}
for ( const callback of handler . iterateCallbacks ( 'handlerWillRespond' ) ) {
response = await callback ( { event , request , response } ) ;
}
return response ;
}
async _awaitComplete ( responseDone , handler , request , event ) {
let response ;
let error ;
try {
response = await responseDone ;
}
catch ( error ) {
// Ignore errors, as response errors should be caught via the `response`
// promise above. The `done` promise will only throw for errors in
// promises passed to `handler.waitUntil()`.
}
try {
await handler . runCallbacks ( 'handlerDidRespond' , {
event ,
request ,
response ,
} ) ;
await handler . doneWaiting ( ) ;
}
catch ( waitUntilError ) {
if ( waitUntilError instanceof Error ) {
error = waitUntilError ;
}
}
await handler . runCallbacks ( 'handlerDidComplete' , {
event ,
request ,
response ,
error : error ,
} ) ;
handler . destroy ( ) ;
if ( error ) {
throw error ;
}
}
}
/ * *
* Classes extending the ` Strategy ` based class should implement this method ,
* and leverage the { @ link workbox - strategies . StrategyHandler }
* arg to perform all fetching and cache logic , which will ensure all relevant
* cache , cache options , fetch options and plugins are used ( per the current
* strategy instance ) .
*
* @ name _handle
* @ instance
* @ abstract
* @ function
* @ param { Request } request
* @ param { workbox - strategies . StrategyHandler } handler
* @ return { Promise < Response > }
*
* @ memberof workbox - strategies . Strategy
* /
/***/ } ) ,
/***/ "./node_modules/workbox-strategies/StrategyHandler.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - strategies / StrategyHandler . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _module , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "StrategyHandler" : ( ) => ( /* binding */ StrategyHandler )
/* harmony export */ } ) ;
/* harmony import */ var workbox _core _private _assert _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/assert.js */ "./node_modules/workbox-core/_private/assert.js" ) ;
/* harmony import */ var workbox _core _private _cacheMatchIgnoreParams _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/cacheMatchIgnoreParams.js */ "./node_modules/workbox-core/_private/cacheMatchIgnoreParams.js" ) ;
/* harmony import */ var workbox _core _private _Deferred _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/Deferred.js */ "./node_modules/workbox-core/_private/Deferred.js" ) ;
/* harmony import */ var workbox _core _private _executeQuotaErrorCallbacks _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/executeQuotaErrorCallbacks.js */ "./node_modules/workbox-core/_private/executeQuotaErrorCallbacks.js" ) ;
/* harmony import */ var workbox _core _private _getFriendlyURL _js _ _WEBPACK _IMPORTED _MODULE _4 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/getFriendlyURL.js */ "./node_modules/workbox-core/_private/getFriendlyURL.js" ) ;
/* harmony import */ var workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _5 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/logger.js */ "./node_modules/workbox-core/_private/logger.js" ) ;
/* harmony import */ var workbox _core _private _timeout _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/timeout.js */ "./node_modules/workbox-core/_private/timeout.js" ) ;
/* harmony import */ var workbox _core _private _WorkboxError _js _ _WEBPACK _IMPORTED _MODULE _7 _ _ = _ _webpack _require _ _ ( /*! workbox-core/_private/WorkboxError.js */ "./node_modules/workbox-core/_private/WorkboxError.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _8 _ _ = _ _webpack _require _ _ ( /*! ./_version.js */ "./node_modules/workbox-strategies/_version.js" ) ;
/* harmony import */ var _version _js _ _WEBPACK _IMPORTED _MODULE _8 _ _ _default = /*#__PURE__*/ _ _webpack _require _ _ . n ( _version _js _ _WEBPACK _IMPORTED _MODULE _8 _ _ ) ;
/ *
Copyright 2020 Google LLC
Use of this source code is governed by an MIT - style
license that can be found in the LICENSE file or at
https : //opensource.org/licenses/MIT.
* /
function toRequest ( input ) {
return typeof input === 'string' ? new Request ( input ) : input ;
}
/ * *
* A class created every time a Strategy instance instance calls
* { @ link workbox - strategies . Strategy ~ handle } or
* { @ link workbox - strategies . Strategy ~ handleAll } that wraps all fetch and
* cache actions around plugin callbacks and keeps track of when the strategy
* is "done" ( i . e . all added ` event.waitUntil() ` promises have resolved ) .
*
* @ memberof workbox - strategies
* /
class StrategyHandler {
/ * *
* Creates a new instance associated with the passed strategy and event
* that ' s handling the request .
*
* The constructor also initializes the state that will be passed to each of
* the plugins handling this request .
*
* @ param { workbox - strategies . Strategy } strategy
* @ param { Object } options
* @ param { Request | string } options . request A request to run this strategy for .
* @ param { ExtendableEvent } options . event The event associated with the
* request .
* @ param { URL } [ options . url ]
* @ param { * } [ options . params ] The return value from the
* { @ link workbox - routing ~ matchCallback } ( if applicable ) .
* /
constructor ( strategy , options ) {
this . _cacheKeys = { } ;
/ * *
* The request the strategy is performing ( passed to the strategy ' s
* ` handle() ` or ` handleAll() ` method ) .
* @ name request
* @ instance
* @ type { Request }
* @ memberof workbox - strategies . StrategyHandler
* /
/ * *
* The event associated with this request .
* @ name event
* @ instance
* @ type { ExtendableEvent }
* @ memberof workbox - strategies . StrategyHandler
* /
/ * *
* A ` URL ` instance of ` request.url ` ( if passed to the strategy ' s
* ` handle() ` or ` handleAll() ` method ) .
* Note : the ` url ` param will be present if the strategy was invoked
* from a workbox ` Route ` object .
* @ name url
* @ instance
* @ type { URL | undefined }
* @ memberof workbox - strategies . StrategyHandler
* /
/ * *
* A ` param ` value ( if passed to the strategy ' s
* ` handle() ` or ` handleAll() ` method ) .
* Note : the ` param ` param will be present if the strategy was invoked
* from a workbox ` Route ` object and the
* { @ link workbox - routing ~ matchCallback } returned
* a truthy value ( it will be that value ) .
* @ name params
* @ instance
* @ type { * | undefined }
* @ memberof workbox - strategies . StrategyHandler
* /
if ( true ) {
workbox _core _private _assert _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . assert . isInstance ( options . event , ExtendableEvent , {
moduleName : 'workbox-strategies' ,
className : 'StrategyHandler' ,
funcName : 'constructor' ,
paramName : 'options.event' ,
} ) ;
}
Object . assign ( this , options ) ;
this . event = options . event ;
this . _strategy = strategy ;
this . _handlerDeferred = new workbox _core _private _Deferred _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ . Deferred ( ) ;
this . _extendLifetimePromises = [ ] ;
// Copy the plugins list (since it's mutable on the strategy),
// so any mutations don't affect this handler instance.
this . _plugins = [ ... strategy . plugins ] ;
this . _pluginStateMap = new Map ( ) ;
for ( const plugin of this . _plugins ) {
this . _pluginStateMap . set ( plugin , { } ) ;
}
this . event . waitUntil ( this . _handlerDeferred . promise ) ;
}
/ * *
* Fetches a given request ( and invokes any applicable plugin callback
* methods ) using the ` fetchOptions ` ( for non - navigation requests ) and
* ` plugins ` defined on the ` Strategy ` object .
*
* The following plugin lifecycle methods are invoked when using this method :
* - ` requestWillFetch() `
* - ` fetchDidSucceed() `
* - ` fetchDidFail() `
*
* @ param { Request | string } input The URL or request to fetch .
* @ return { Promise < Response > }
* /
async fetch ( input ) {
const { event } = this ;
let request = toRequest ( input ) ;
if ( request . mode === 'navigate' &&
event instanceof FetchEvent &&
event . preloadResponse ) {
const possiblePreloadResponse = ( await event . preloadResponse ) ;
if ( possiblePreloadResponse ) {
if ( true ) {
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _5 _ _ . logger . log ( ` Using a preloaded navigation response for ` +
` ' ${ ( 0 , workbox _core _private _getFriendlyURL _js _ _WEBPACK _IMPORTED _MODULE _4 _ _ . getFriendlyURL ) ( request . url ) } ' ` ) ;
}
return possiblePreloadResponse ;
}
}
// 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 = this . hasCallback ( 'fetchDidFail' )
? request . clone ( )
: null ;
try {
for ( const cb of this . iterateCallbacks ( 'requestWillFetch' ) ) {
request = await cb ( { request : request . clone ( ) , event } ) ;
}
}
catch ( err ) {
if ( err instanceof Error ) {
throw new workbox _core _private _WorkboxError _js _ _WEBPACK _IMPORTED _MODULE _7 _ _ . WorkboxError ( 'plugin-error-request-will-fetch' , {
thrownErrorMessage : err . message ,
} ) ;
}
}
// The request can be altered by plugins with `requestWillFetch` making
// the original request (most likely from a `fetch` event) different
// from the Request we make. Pass both to `fetchDidFail` to aid debugging.
const pluginFilteredRequest = request . clone ( ) ;
try {
let fetchResponse ;
// See https://github.com/GoogleChrome/workbox/issues/1796
fetchResponse = await fetch ( request , request . mode === 'navigate' ? undefined : this . _strategy . fetchOptions ) ;
if ( true ) {
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _5 _ _ . logger . debug ( ` Network request for ` +
` ' ${ ( 0 , workbox _core _private _getFriendlyURL _js _ _WEBPACK _IMPORTED _MODULE _4 _ _ . getFriendlyURL ) ( request . url ) } ' returned a response with ` +
` status ' ${ fetchResponse . status } '. ` ) ;
}
for ( const callback of this . iterateCallbacks ( 'fetchDidSucceed' ) ) {
fetchResponse = await callback ( {
event ,
request : pluginFilteredRequest ,
response : fetchResponse ,
} ) ;
}
return fetchResponse ;
}
catch ( error ) {
if ( true ) {
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _5 _ _ . logger . log ( ` Network request for ` +
` ' ${ ( 0 , workbox _core _private _getFriendlyURL _js _ _WEBPACK _IMPORTED _MODULE _4 _ _ . getFriendlyURL ) ( request . url ) } ' threw an error. ` , error ) ;
}
// `originalRequest` will only exist if a `fetchDidFail` callback
// is being used (see above).
if ( originalRequest ) {
await this . runCallbacks ( 'fetchDidFail' , {
error : error ,
event ,
originalRequest : originalRequest . clone ( ) ,
request : pluginFilteredRequest . clone ( ) ,
} ) ;
}
throw error ;
}
}
/ * *
* Calls ` this.fetch() ` and ( in the background ) runs ` this.cachePut() ` on
* the response generated by ` this.fetch() ` .
*
* The call to ` this.cachePut() ` automatically invokes ` this.waitUntil() ` ,
* so you do not have to manually call ` waitUntil() ` on the event .
*
* @ param { Request | string } input The request or URL to fetch and cache .
* @ return { Promise < Response > }
* /
async fetchAndCachePut ( input ) {
const response = await this . fetch ( input ) ;
const responseClone = response . clone ( ) ;
void this . waitUntil ( this . cachePut ( input , responseClone ) ) ;
return response ;
}
/ * *
* Matches a request from the cache ( and invokes any applicable plugin
* callback methods ) using the ` cacheName ` , ` matchOptions ` , and ` plugins `
* defined on the strategy object .
*
* The following plugin lifecycle methods are invoked when using this method :
* - cacheKeyWillByUsed ( )
* - cachedResponseWillByUsed ( )
*
* @ param { Request | string } key The Request or URL to use as the cache key .
* @ return { Promise < Response | undefined > } A matching response , if found .
* /
async cacheMatch ( key ) {
const request = toRequest ( key ) ;
let cachedResponse ;
const { cacheName , matchOptions } = this . _strategy ;
const effectiveRequest = await this . getCacheKey ( request , 'read' ) ;
const multiMatchOptions = Object . assign ( Object . assign ( { } , matchOptions ) , { cacheName } ) ;
cachedResponse = await caches . match ( effectiveRequest , multiMatchOptions ) ;
if ( true ) {
if ( cachedResponse ) {
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _5 _ _ . logger . debug ( ` Found a cached response in ' ${ cacheName } '. ` ) ;
}
else {
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _5 _ _ . logger . debug ( ` No cached response found in ' ${ cacheName } '. ` ) ;
}
}
for ( const callback of this . iterateCallbacks ( 'cachedResponseWillBeUsed' ) ) {
cachedResponse =
( await callback ( {
cacheName ,
matchOptions ,
cachedResponse ,
request : effectiveRequest ,
event : this . event ,
} ) ) || undefined ;
}
return cachedResponse ;
}
/ * *
* Puts a request / response pair in the cache ( and invokes any applicable
* plugin callback methods ) using the ` cacheName ` and ` plugins ` defined on
* the strategy object .
*
* The following plugin lifecycle methods are invoked when using this method :
* - cacheKeyWillByUsed ( )
* - cacheWillUpdate ( )
* - cacheDidUpdate ( )
*
* @ param { Request | string } key The request or URL to use as the cache key .
* @ param { Response } response The response to cache .
* @ return { Promise < boolean > } ` false ` if a cacheWillUpdate caused the response
* not be cached , and ` true ` otherwise .
* /
async cachePut ( key , response ) {
const request = toRequest ( key ) ;
// Run in the next task to avoid blocking other cache reads.
// https://github.com/w3c/ServiceWorker/issues/1397
await ( 0 , workbox _core _private _timeout _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . timeout ) ( 0 ) ;
const effectiveRequest = await this . getCacheKey ( request , 'write' ) ;
if ( true ) {
if ( effectiveRequest . method && effectiveRequest . method !== 'GET' ) {
throw new workbox _core _private _WorkboxError _js _ _WEBPACK _IMPORTED _MODULE _7 _ _ . WorkboxError ( 'attempt-to-cache-non-get-request' , {
url : ( 0 , workbox _core _private _getFriendlyURL _js _ _WEBPACK _IMPORTED _MODULE _4 _ _ . getFriendlyURL ) ( effectiveRequest . url ) ,
method : effectiveRequest . method ,
} ) ;
}
// See https://github.com/GoogleChrome/workbox/issues/2818
const vary = response . headers . get ( 'Vary' ) ;
if ( vary ) {
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _5 _ _ . logger . debug ( ` The response for ${ ( 0 , workbox _core _private _getFriendlyURL _js _ _WEBPACK _IMPORTED _MODULE _4 _ _ . getFriendlyURL ) ( effectiveRequest . url ) } ` +
` has a 'Vary: ${ vary } ' header. ` +
` Consider setting the {ignoreVary: true} option on your strategy ` +
` to ensure cache matching and deletion works as expected. ` ) ;
}
}
if ( ! response ) {
if ( true ) {
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _5 _ _ . logger . error ( ` Cannot cache non-existent response for ` +
` ' ${ ( 0 , workbox _core _private _getFriendlyURL _js _ _WEBPACK _IMPORTED _MODULE _4 _ _ . getFriendlyURL ) ( effectiveRequest . url ) } '. ` ) ;
}
throw new workbox _core _private _WorkboxError _js _ _WEBPACK _IMPORTED _MODULE _7 _ _ . WorkboxError ( 'cache-put-with-no-response' , {
url : ( 0 , workbox _core _private _getFriendlyURL _js _ _WEBPACK _IMPORTED _MODULE _4 _ _ . getFriendlyURL ) ( effectiveRequest . url ) ,
} ) ;
}
const responseToCache = await this . _ensureResponseSafeToCache ( response ) ;
if ( ! responseToCache ) {
if ( true ) {
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _5 _ _ . logger . debug ( ` Response ' ${ ( 0 , workbox _core _private _getFriendlyURL _js _ _WEBPACK _IMPORTED _MODULE _4 _ _ . getFriendlyURL ) ( effectiveRequest . url ) } ' ` +
` will not be cached. ` , responseToCache ) ;
}
return false ;
}
const { cacheName , matchOptions } = this . _strategy ;
const cache = await self . caches . open ( cacheName ) ;
const hasCacheUpdateCallback = this . hasCallback ( 'cacheDidUpdate' ) ;
const oldResponse = hasCacheUpdateCallback
? await ( 0 , workbox _core _private _cacheMatchIgnoreParams _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ . cacheMatchIgnoreParams ) (
// TODO(philipwalton): the `__WB_REVISION__` param is a precaching
// feature. Consider into ways to only add this behavior if using
// precaching.
cache , effectiveRequest . clone ( ) , [ '__WB_REVISION__' ] , matchOptions )
: null ;
if ( true ) {
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _5 _ _ . logger . debug ( ` Updating the ' ${ cacheName } ' cache with a new Response ` +
` for ${ ( 0 , workbox _core _private _getFriendlyURL _js _ _WEBPACK _IMPORTED _MODULE _4 _ _ . getFriendlyURL ) ( effectiveRequest . url ) } . ` ) ;
}
try {
await cache . put ( effectiveRequest , hasCacheUpdateCallback ? responseToCache . clone ( ) : responseToCache ) ;
}
catch ( error ) {
if ( error instanceof Error ) {
// See https://developer.mozilla.org/en-US/docs/Web/API/DOMException#exception-QuotaExceededError
if ( error . name === 'QuotaExceededError' ) {
await ( 0 , workbox _core _private _executeQuotaErrorCallbacks _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ . executeQuotaErrorCallbacks ) ( ) ;
}
throw error ;
}
}
for ( const callback of this . iterateCallbacks ( 'cacheDidUpdate' ) ) {
await callback ( {
cacheName ,
oldResponse ,
newResponse : responseToCache . clone ( ) ,
request : effectiveRequest ,
event : this . event ,
} ) ;
}
return true ;
}
/ * *
* Checks the list of plugins for the ` cacheKeyWillBeUsed ` callback , and
* executes any of those callbacks found in sequence . The final ` Request `
* object returned by the last plugin is treated as the cache key for cache
* reads and / or writes . If no ` cacheKeyWillBeUsed ` plugin callbacks have
* been registered , the passed request is returned unmodified
*
* @ param { Request } request
* @ param { string } mode
* @ return { Promise < Request > }
* /
async getCacheKey ( request , mode ) {
const key = ` ${ request . url } | ${ mode } ` ;
if ( ! this . _cacheKeys [ key ] ) {
let effectiveRequest = request ;
for ( const callback of this . iterateCallbacks ( 'cacheKeyWillBeUsed' ) ) {
effectiveRequest = toRequest ( await callback ( {
mode ,
request : effectiveRequest ,
event : this . event ,
// params has a type any can't change right now.
params : this . params , // eslint-disable-line
} ) ) ;
}
this . _cacheKeys [ key ] = effectiveRequest ;
}
return this . _cacheKeys [ key ] ;
}
/ * *
* Returns true if the strategy has at least one plugin with the given
* callback .
*
* @ param { string } name The name of the callback to check for .
* @ return { boolean }
* /
hasCallback ( name ) {
for ( const plugin of this . _strategy . plugins ) {
if ( name in plugin ) {
return true ;
}
}
return false ;
}
/ * *
* Runs all plugin callbacks matching the given name , in order , passing the
* given param object ( merged ith the current plugin state ) as the only
* argument .
*
* Note : since this method runs all plugins , it ' s not suitable for cases
* where the return value of a callback needs to be applied prior to calling
* the next callback . See
* { @ link workbox - strategies . StrategyHandler # iterateCallbacks }
* below for how to handle that case .
*
* @ param { string } name The name of the callback to run within each plugin .
* @ param { Object } param The object to pass as the first ( and only ) param
* when executing each callback . This object will be merged with the
* current plugin state prior to callback execution .
* /
async runCallbacks ( name , param ) {
for ( const callback of this . iterateCallbacks ( name ) ) {
// TODO(philipwalton): not sure why `any` is needed. It seems like
// this should work with `as WorkboxPluginCallbackParam[C]`.
await callback ( param ) ;
}
}
/ * *
* Accepts a callback and returns an iterable of matching plugin callbacks ,
* where each callback is wrapped with the current handler state ( i . e . when
* you call each callback , whatever object parameter you pass it will
* be merged with the plugin ' s current state ) .
*
* @ param { string } name The name fo the callback to run
* @ return { Array < Function > }
* /
* iterateCallbacks ( name ) {
for ( const plugin of this . _strategy . plugins ) {
if ( typeof plugin [ name ] === 'function' ) {
const state = this . _pluginStateMap . get ( plugin ) ;
const statefulCallback = ( param ) => {
const statefulParam = Object . assign ( Object . assign ( { } , param ) , { state } ) ;
// TODO(philipwalton): not sure why `any` is needed. It seems like
// this should work with `as WorkboxPluginCallbackParam[C]`.
return plugin [ name ] ( statefulParam ) ;
} ;
yield statefulCallback ;
}
}
}
/ * *
* Adds a promise to the
* [ extend lifetime promises ] { @ link https : //w3c.github.io/ServiceWorker/#extendableevent-extend-lifetime-promises}
* of the event event associated with the request being handled ( usually a
* ` FetchEvent ` ) .
*
* Note : you can await
* { @ link workbox - strategies . StrategyHandler ~ doneWaiting }
* to know when all added promises have settled .
*
* @ param { Promise } promise A promise to add to the extend lifetime promises
* of the event that triggered the request .
* /
waitUntil ( promise ) {
this . _extendLifetimePromises . push ( promise ) ;
return promise ;
}
/ * *
* Returns a promise that resolves once all promises passed to
* { @ link workbox - strategies . StrategyHandler ~ waitUntil }
* have settled .
*
* Note : any work done after ` doneWaiting() ` settles should be manually
* passed to an event 's `waitUntil()` method (not this handler' s
* ` waitUntil() ` method ) , otherwise the service worker thread my be killed
* prior to your work completing .
* /
async doneWaiting ( ) {
let promise ;
while ( ( promise = this . _extendLifetimePromises . shift ( ) ) ) {
await promise ;
}
}
/ * *
* Stops running the strategy and immediately resolves any pending
* ` waitUntil() ` promises .
* /
destroy ( ) {
this . _handlerDeferred . resolve ( null ) ;
}
/ * *
* This method will call cacheWillUpdate on the available plugins ( or use
* status === 200 ) to determine if the Response is safe and valid to cache .
*
* @ param { Request } options . request
* @ param { Response } options . response
* @ return { Promise < Response | undefined > }
*
* @ private
* /
async _ensureResponseSafeToCache ( response ) {
let responseToCache = response ;
let pluginsUsed = false ;
for ( const callback of this . iterateCallbacks ( 'cacheWillUpdate' ) ) {
responseToCache =
( await callback ( {
request : this . request ,
response : responseToCache ,
event : this . event ,
} ) ) || undefined ;
pluginsUsed = true ;
if ( ! responseToCache ) {
break ;
}
}
if ( ! pluginsUsed ) {
if ( responseToCache && responseToCache . status !== 200 ) {
responseToCache = undefined ;
}
if ( true ) {
if ( responseToCache ) {
if ( responseToCache . status !== 200 ) {
if ( responseToCache . status === 0 ) {
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _5 _ _ . logger . warn ( ` The response for ' ${ this . request . url } ' ` +
` is an opaque response. The caching strategy that you're ` +
` using will not cache opaque responses by default. ` ) ;
}
else {
workbox _core _private _logger _js _ _WEBPACK _IMPORTED _MODULE _5 _ _ . logger . debug ( ` The response for ' ${ this . request . url } ' ` +
` returned a status code of ' ${ response . status } ' and won't ` +
` be cached as a result. ` ) ;
}
}
}
}
}
return responseToCache ;
}
}
/***/ } ) ,
/***/ "./node_modules/workbox-strategies/_version.js" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - strategies / _version . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( ) => {
// @ts-ignore
try {
self [ 'workbox:strategies:6.5.3' ] && _ ( ) ;
}
catch ( e ) { }
/***/ } ) ,
/***/ "./node_modules/workbox-precaching/index.mjs" :
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / workbox - precaching / index . mjs * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ "PrecacheController" : ( ) => ( /* reexport safe */ _index _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . PrecacheController ) ,
/* harmony export */ "PrecacheFallbackPlugin" : ( ) => ( /* reexport safe */ _index _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . PrecacheFallbackPlugin ) ,
/* harmony export */ "PrecacheRoute" : ( ) => ( /* reexport safe */ _index _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . PrecacheRoute ) ,
/* harmony export */ "PrecacheStrategy" : ( ) => ( /* reexport safe */ _index _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . PrecacheStrategy ) ,
/* harmony export */ "addPlugins" : ( ) => ( /* reexport safe */ _index _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . addPlugins ) ,
/* harmony export */ "addRoute" : ( ) => ( /* reexport safe */ _index _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . addRoute ) ,
/* harmony export */ "cleanupOutdatedCaches" : ( ) => ( /* reexport safe */ _index _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . cleanupOutdatedCaches ) ,
/* harmony export */ "createHandlerBoundToURL" : ( ) => ( /* reexport safe */ _index _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . createHandlerBoundToURL ) ,
/* harmony export */ "getCacheKeyForURL" : ( ) => ( /* reexport safe */ _index _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . getCacheKeyForURL ) ,
/* harmony export */ "matchPrecache" : ( ) => ( /* reexport safe */ _index _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . matchPrecache ) ,
/* harmony export */ "precache" : ( ) => ( /* reexport safe */ _index _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . precache ) ,
/* harmony export */ "precacheAndRoute" : ( ) => ( /* reexport safe */ _index _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . precacheAndRoute )
/* harmony export */ } ) ;
/* harmony import */ var _index _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! ./index.js */ "./node_modules/workbox-precaching/index.js" ) ;
/***/ } )
/******/ } ) ;
/************************************************************************/
/******/ // The module cache
/******/ var _ _webpack _module _cache _ _ = { } ;
/******/
/******/ // The require function
/******/ function _ _webpack _require _ _ ( moduleId ) {
/******/ // Check if module is in cache
/******/ var cachedModule = _ _webpack _module _cache _ _ [ moduleId ] ;
/******/ if ( cachedModule !== undefined ) {
/******/ return cachedModule . exports ;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = _ _webpack _module _cache _ _ [ moduleId ] = {
/******/ // no module.id needed
/******/ // no module.loaded needed
/******/ exports : { }
/******/ } ;
/******/
/******/ // Execute the module function
/******/ _ _webpack _modules _ _ [ moduleId ] ( module , module . exports , _ _webpack _require _ _ ) ;
/******/
/******/ // Return the exports of the module
/******/ return module . exports ;
/******/ }
/******/
2023-02-19 15:43:03 +08:00
/******/ // expose the modules object (__webpack_modules__)
/******/ _ _webpack _require _ _ . m = _ _webpack _modules _ _ ;
/******/
2023-02-19 15:14:56 +08:00
/************************************************************************/
/******/ /* webpack/runtime/compat get default export */
/******/ ( ( ) => {
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ _ _webpack _require _ _ . n = ( module ) => {
/******/ var getter = module && module . _ _esModule ?
/******/ ( ) => ( module [ 'default' ] ) :
/******/ ( ) => ( module ) ;
/******/ _ _webpack _require _ _ . d ( getter , { a : getter } ) ;
/******/ return getter ;
/******/ } ;
/******/ } ) ( ) ;
/******/
/******/ /* webpack/runtime/define property getters */
/******/ ( ( ) => {
/******/ // define getter functions for harmony exports
/******/ _ _webpack _require _ _ . d = ( exports , definition ) => {
/******/ for ( var key in definition ) {
/******/ if ( _ _webpack _require _ _ . o ( definition , key ) && ! _ _webpack _require _ _ . o ( exports , key ) ) {
/******/ Object . defineProperty ( exports , key , { enumerable : true , get : definition [ key ] } ) ;
/******/ }
/******/ }
/******/ } ;
/******/ } ) ( ) ;
/******/
2023-02-19 15:43:03 +08:00
/******/ /* webpack/runtime/ensure chunk */
/******/ ( ( ) => {
/******/ _ _webpack _require _ _ . f = { } ;
/******/ // This file contains only the entry chunk.
/******/ // The chunk loading function for additional chunks
/******/ _ _webpack _require _ _ . e = ( chunkId ) => {
/******/ return Promise . all ( Object . keys ( _ _webpack _require _ _ . f ) . reduce ( ( promises , key ) => {
/******/ _ _webpack _require _ _ . f [ key ] ( chunkId , promises ) ;
/******/ return promises ;
/******/ } , [ ] ) ) ;
/******/ } ;
/******/ } ) ( ) ;
/******/
/******/ /* webpack/runtime/get javascript chunk filename */
/******/ ( ( ) => {
/******/ // This function allow to reference async chunks
/******/ _ _webpack _require _ _ . u = ( chunkId ) => {
/******/ // return url for filenames based on template
/******/ return "" + chunkId + ".sw.js" ;
/******/ } ;
/******/ } ) ( ) ;
/******/
2023-02-19 15:14:56 +08:00
/******/ /* webpack/runtime/hasOwnProperty shorthand */
/******/ ( ( ) => {
/******/ _ _webpack _require _ _ . o = ( obj , prop ) => ( Object . prototype . hasOwnProperty . call ( obj , prop ) )
/******/ } ) ( ) ;
/******/
/******/ /* webpack/runtime/make namespace object */
/******/ ( ( ) => {
/******/ // define __esModule on exports
/******/ _ _webpack _require _ _ . r = ( exports ) => {
/******/ if ( typeof Symbol !== 'undefined' && Symbol . toStringTag ) {
/******/ Object . defineProperty ( exports , Symbol . toStringTag , { value : 'Module' } ) ;
/******/ }
/******/ Object . defineProperty ( exports , '__esModule' , { value : true } ) ;
/******/ } ;
/******/ } ) ( ) ;
/******/
2023-02-19 15:43:03 +08:00
/******/ /* webpack/runtime/publicPath */
/******/ ( ( ) => {
/******/ _ _webpack _require _ _ . p = "/awesome-interview/" ;
/******/ } ) ( ) ;
/******/
/******/ /* webpack/runtime/importScripts chunk loading */
/******/ ( ( ) => {
/******/ // no baseURI
/******/
/******/ // object to store loaded chunks
/******/ // "1" means "already loaded"
/******/ var installedChunks = {
/******/ "main" : 1
/******/ } ;
/******/
/******/ // importScripts chunk loading
/******/ var installChunk = ( data ) => {
/******/ var [ chunkIds , moreModules , runtime ] = data ;
/******/ for ( var moduleId in moreModules ) {
/******/ if ( _ _webpack _require _ _ . o ( moreModules , moduleId ) ) {
/******/ _ _webpack _require _ _ . m [ moduleId ] = moreModules [ moduleId ] ;
/******/ }
/******/ }
/******/ if ( runtime ) runtime ( _ _webpack _require _ _ ) ;
/******/ while ( chunkIds . length )
/******/ installedChunks [ chunkIds . pop ( ) ] = 1 ;
/******/ parentChunkLoadingFunction ( data ) ;
/******/ } ;
/******/ _ _webpack _require _ _ . f . i = ( chunkId , promises ) => {
/******/ // "1" is the signal for "already loaded"
/******/ if ( ! installedChunks [ chunkId ] ) {
/******/ if ( true ) { // all chunks have JS
/******/ importScripts ( _ _webpack _require _ _ . p + _ _webpack _require _ _ . u ( chunkId ) ) ;
/******/ }
/******/ }
/******/ } ;
/******/
/******/ var chunkLoadingGlobal = self [ "webpackChunkjjbook" ] = self [ "webpackChunkjjbook" ] || [ ] ;
/******/ var parentChunkLoadingFunction = chunkLoadingGlobal . push . bind ( chunkLoadingGlobal ) ;
/******/ chunkLoadingGlobal . push = installChunk ;
/******/
/******/ // no HMR
/******/
/******/ // no HMR manifest
/******/ } ) ( ) ;
/******/
2023-02-19 15:14:56 +08:00
/************************************************************************/
var _ _webpack _exports _ _ = { } ;
// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
( ( ) => {
/ * ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * \
! * * * . / node _modules / @ docusaurus / plugin - pwa / lib / sw . js * * * !
\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
_ _webpack _require _ _ . r ( _ _webpack _exports _ _ ) ;
/* harmony import */ var workbox _precaching _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( /*! workbox-precaching */ "./node_modules/workbox-precaching/index.mjs" ) ;
/ * *
* Copyright ( c ) Facebook , Inc . and its affiliates .
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree .
* /
/* eslint-disable no-restricted-globals */
function parseSwParams ( ) {
const params = JSON . parse ( new URLSearchParams ( self . location . search ) . get ( 'params' ) ) ;
if ( params . debug ) {
console . log ( '[Docusaurus-PWA][SW]: Service Worker params:' , params ) ;
}
return params ;
}
// Doc advises against dynamic imports in SW
// https://developers.google.com/web/tools/workbox/guides/using-bundlers#code_splitting_and_dynamic_imports
// https://twitter.com/sebastienlorber/status/1280155204575518720
// but looks it's working fine as it's inlined by webpack, need to double check
async function runSWCustomCode ( params ) {
2023-02-19 15:43:03 +08:00
if ( true ) {
const customSW = await _ _webpack _require _ _ . e ( /*! import() */ "src_sw_js" ) . then ( _ _webpack _require _ _ . bind ( _ _webpack _require _ _ , /*! ./src/sw.js */ "./src/sw.js" ) ) ;
if ( typeof customSW . default === 'function' ) {
customSW . default ( params ) ;
}
else if ( params . debug ) {
console . warn ( '[Docusaurus-PWA][SW]: swCustom should have a default export function' ) ;
}
}
2023-02-19 15:14:56 +08:00
}
/ * *
* Gets different possible variations for a request URL . Similar to
* https : //git.io/JvixK
* /
function getPossibleURLs ( url ) {
const urlObject = new URL ( url , self . location . href ) ;
if ( urlObject . origin !== self . location . origin ) {
return [ ] ;
}
// Ignore search params and hash
urlObject . search = '' ;
urlObject . hash = '' ;
return [
// /blog.html
urlObject . href ,
// /blog/ => /blog/index.html
// /blog => /blog/index.html
` ${ urlObject . href } ${ urlObject . pathname . endsWith ( '/' ) ? '' : '/' } index.html ` ,
] ;
}
( async ( ) => {
const params = parseSwParams ( ) ;
// eslint-disable-next-line no-underscore-dangle
2023-02-19 18:01:31 +08:00
const precacheManifest = [ { "revision" : "bb4fc2b92cc96bee4c526a9173270ae9" , "url" : "404.html" } , { "revision" : "be36cd897f96b1cd3b25b00ba160b90e" , "url" : "about.html" } , { "revision" : "776c9e86c39e24b547df01d1d4b36f9b" , "url" : "assets/css/styles.0f62048e.css" } , { "revision" : "6f87439d38c2a566a95bfc97655041db" , "url" : "assets/js/02fa4020.d80415df.js" } , { "revision" : "2f79ae91dbb07ab811642d93c70c1446" , "url" : "assets/js/02fefe41.b3f9381e.js" } , { "revision" : "a385af6bb4054e71154e10b9c3dc2c39" , "url" : "assets/js/0ba2ede9.56884b73.js" } , { "revision" : "6e998951c64db7d233ae83b5b97a4d68" , "url" : "assets/js/1a4e3797.10deaa27.js" } , { "revision" : "edb94e524df6e60a51a6e2adf52f9a8f" , "url" : "assets/js/1be78505.418dd524.js" } , { "revision" : "86a1a102148e6b6666de9aa84c27d4c5" , "url" : "assets/js/1f391b9e.a00364fc.js" } , { "revision" : "828e172ac79ea1697b3f48f3dfeeee87" , "url" : "assets/js/216712ef.2205d07e.js" } , { "revision" : "d982ab73c08ebb4090e6031cd4a2e142" , "url" : "assets/js/223d151b.a2893301.js" } , { "revision" : "b19810e15a2f1aaa729ed9f2005584cf" , "url" : "assets/js/230.34dddfc8.js" } , { "revision" : "61084057e6d23ecc8b1a27dbfca4d219" , "url" : "assets/js/2384.4861d8b1.js" } , { "revision" : "558d8b0d50ee9329d3d64ce0061898d9" , "url" : "assets/js/26d83c4c.edef56f4.js" } , { "revision" : "8fbfc81731128a26b15f8a827135250f" , "url" : "assets/js/272.a34d203d.js" } , { "revision" : "06116d3f7ec91900bbbd9031cac9b478" , "url" : "assets/js/2ad5369a.582e9919.js" } , { "revision" : "1e7c7d5002e1d9298ec742a7bb0a85a2" , "url" : "assets/js/312ed758.c38443de.js" } , { "revision" : "e101ef4f79765a428593ac86080b1b7d" , "url" : "assets/js/31bf44dd.fe411772.js" } , { "revision" : "1f3add7f57be1592666facb8936979d2" , "url" : "assets/js/3bd79dc4.81d1364b.js" } , { "revision" : "6b154d24663e7c6cb4692f1189c89057" , "url" : "assets/js/3d604b8e.a7165cd6.js" } , { "revision" : "83d66b8194923238c960299b55d1742a" , "url" : "assets/js/4972.bea3865f.js" } , { "revision" : "34a94c91fc8fb6a45d80266dcffdcfc5" , "url" : "assets/js/4f33924b.6c95a067.js" } , { "revision" : "0996414e2c5077df19d04d12a3db1a67" , "url" : "assets/js/505fc875.611070a6.js" } , { "revision" : "3a79eb5d1a9a71af47b92d67081ec7e7" , "url" : "assets/js/5178.6dd866d0.js" } , { "revision" : "596b28cc12cdb8e96c0a53a18ebf0112" , "url" : "assets/js/520898ab.4d2ef29d.js" } , { "revision" : "ccbb72b9cbaf17bb6f89fcefe34062b8" , "url" : "assets/js/5283.79fe536c.js" } , { "revision" : "5383f211d9a440836aa01c75de178dfd" , "url" : "assets/js/57076a74.a9e996b1.js" } , { "revision" : "adcee72417145ca58531206968cb267f" , "url" : "assets/js/5825b5f0.c4348d51.js" } , { "revision" : "e8d7ad3b6c0dc921f7de3019770f7af9" , "url" : "assets/js/59da24a9.b2082b98.js" } , { "revision" : "be48e4f0613e3075d6b2d9eaaebc63a1" , "url" : "assets/js/5ba709b9.3ab20d87.js" } , { "revision" : "95406e0c2dfd685ba542bb2c3c9214c9" , "url" : "assets/js/5cddde15.3da6324e.js" } , { "revision" : "1ef35c7363ff769b6d2bcceaf8625b65" , "url" : "assets/js/605371c8.71cb6ac4.js" } , { "revision" : "baa72c374dfbf546b41a31542f133e7b" , "url" : "assets/js/6511.4f41f0a7.js" } , { "revision" : "360f7b30ec3d9297368edf586750616d" , "url" : "assets/js/667a1a38.0def7602.js" } , { "revision" : "6ebb9861d4ab76802afdd516036c4d92" , "url" : "assets/js/6b15a8e7.370eb108.js" } , { "revision" : "4d2b54b35c1097403bd76c8b6334a210" , "url" : "assets/js/6b1ae1c5.73c2607f.js" } , { "revision" : "0a026e337ff2ea06091af62e6df0065d" , "url" : "assets/js/7c39e10e.72217821.js" } , { "revision" : "3e77a5027aef961c975257d784b5a0ad" , "url" : "assets/js/8584d295.ebf32f7e.js" } , { "revision" : "9c6bedb9d0e774791394ca0fc82e1488" , "url" : "assets/js/8624.ef1f3195.js" } , { "revision" : "769f601644d503e971031074e9f3ca77" , "url" : "assets/js/8894.446f680f.js" } , { "revision" : "e5a8e4d9e4b9e9559f93a6a04b80db4a" , "url" : "assets/js/90b799f4.6601a4ef.js" } , { "revision" : "e74cc26b891cb9e2495d2779890f4373" , "url" : "assets/js/92d10100.a6f541cd.js" } , { "revision" : "f3f2e1af90de4aa471ea8752bffda0a5" , "url" : "assets/js/935f2afb.ae96f8c3.js" } , { "revision" : "82f77285b83da7da6fe77403e321ad22" , "url" : "assets/js/972d49dd.e496a32b.js" } , { "revision" : "62f08caf3e53aa732d366dcdae60dd71" , "url" : "assets/js/99c95826.de80d85d.js" } , { "revision" : "c2a5c0a83112a7aa0ab57a05f9d7081b" , "url" : "assets/js/9e3afa9a.0b52dd30.js" } , { "revision" : "c391ee5a86241307f4d276654fe04108" , "url" : "assets/js/9f1c36eb.f2d83d86.js" } , { "revision" : "4a45137797444ed6ff10e6fa748d41f7" , "url" : " as
2023-02-19 15:14:56 +08:00
const controller = new workbox _precaching _ _WEBPACK _IMPORTED _MODULE _0 _ _ . PrecacheController ( {
// Safer to turn this true?
fallbackToNetwork : true ,
} ) ;
if ( params . offlineMode ) {
controller . addToCacheList ( precacheManifest ) ;
if ( params . debug ) {
console . log ( '[Docusaurus-PWA][SW]: addToCacheList' , { precacheManifest } ) ;
}
}
await runSWCustomCode ( params ) ;
self . addEventListener ( 'install' , ( event ) => {
if ( params . debug ) {
console . log ( '[Docusaurus-PWA][SW]: install event' , { event } ) ;
}
event . waitUntil ( controller . install ( event ) ) ;
} ) ;
self . addEventListener ( 'activate' , ( event ) => {
if ( params . debug ) {
console . log ( '[Docusaurus-PWA][SW]: activate event' , { event } ) ;
}
event . waitUntil ( controller . activate ( event ) ) ;
} ) ;
self . addEventListener ( 'fetch' , async ( event ) => {
if ( params . offlineMode ) {
const requestURL = event . request . url ;
const possibleURLs = getPossibleURLs ( requestURL ) ;
for ( const possibleURL of possibleURLs ) {
const cacheKey = controller . getCacheKeyForURL ( possibleURL ) ;
if ( cacheKey ) {
const cachedResponse = caches . match ( cacheKey ) ;
if ( params . debug ) {
console . log ( '[Docusaurus-PWA][SW]: serving cached asset' , {
requestURL ,
possibleURL ,
possibleURLs ,
cacheKey ,
cachedResponse ,
} ) ;
}
event . respondWith ( cachedResponse ) ;
break ;
}
}
}
} ) ;
self . addEventListener ( 'message' , async ( event ) => {
if ( params . debug ) {
console . log ( '[Docusaurus-PWA][SW]: message event' , { event } ) ;
}
const type = event . data ? . type ;
if ( type === 'SKIP_WAITING' ) {
// lib def bug, see https://github.com/microsoft/TypeScript/issues/14877
self . skipWaiting ( ) ;
}
} ) ;
} ) ( ) ;
} ) ( ) ;
/******/ } ) ( )
;
//# sourceMappingURL=sw.js.map