jekyll-pwa-workbox 0.0.7.alpha → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. checksums.yaml +4 -4
  2. data/lib/jekyll-pwa-workbox.rb +1 -1
  3. data/lib/vendor/{workbox-v5.0.0.alpha1 → workbox-v5.0.0}/workbox-background-sync.dev.js +12 -13
  4. data/lib/vendor/workbox-v5.0.0/workbox-background-sync.dev.js.map +1 -0
  5. data/lib/vendor/workbox-v5.0.0/workbox-background-sync.prod.js +2 -0
  6. data/lib/vendor/workbox-v5.0.0/workbox-background-sync.prod.js.map +1 -0
  7. data/lib/vendor/workbox-v5.0.0/workbox-broadcast-update.dev.js +288 -0
  8. data/lib/vendor/workbox-v5.0.0/workbox-broadcast-update.dev.js.map +1 -0
  9. data/lib/vendor/workbox-v5.0.0/workbox-broadcast-update.prod.js +2 -0
  10. data/lib/vendor/workbox-v5.0.0/workbox-broadcast-update.prod.js.map +1 -0
  11. data/lib/vendor/{workbox-v5.0.0.alpha1 → workbox-v5.0.0}/workbox-cacheable-response.dev.js +6 -7
  12. data/lib/vendor/workbox-v5.0.0/workbox-cacheable-response.dev.js.map +1 -0
  13. data/lib/vendor/workbox-v5.0.0/workbox-cacheable-response.prod.js +2 -0
  14. data/lib/vendor/workbox-v5.0.0/workbox-cacheable-response.prod.js.map +1 -0
  15. data/lib/vendor/{workbox-v5.0.0.alpha1 → workbox-v5.0.0}/workbox-core.dev.js +306 -67
  16. data/lib/vendor/workbox-v5.0.0/workbox-core.dev.js.map +1 -0
  17. data/lib/vendor/workbox-v5.0.0/workbox-core.prod.js +2 -0
  18. data/lib/vendor/workbox-v5.0.0/workbox-core.prod.js.map +1 -0
  19. data/lib/vendor/{workbox-v5.0.0.alpha1 → workbox-v5.0.0}/workbox-expiration.dev.js +13 -14
  20. data/lib/vendor/workbox-v5.0.0/workbox-expiration.dev.js.map +1 -0
  21. data/lib/vendor/workbox-v5.0.0/workbox-expiration.prod.js +2 -0
  22. data/lib/vendor/workbox-v5.0.0/workbox-expiration.prod.js.map +1 -0
  23. data/lib/vendor/{workbox-v5.0.0.alpha1 → workbox-v5.0.0}/workbox-navigation-preload.dev.js +4 -5
  24. data/lib/vendor/workbox-v5.0.0/workbox-navigation-preload.dev.js.map +1 -0
  25. data/lib/vendor/workbox-v5.0.0/workbox-navigation-preload.prod.js +2 -0
  26. data/lib/vendor/workbox-v5.0.0/workbox-navigation-preload.prod.js.map +1 -0
  27. data/lib/vendor/{workbox-v5.0.0.alpha1 → workbox-v5.0.0}/workbox-offline-ga.dev.js +12 -13
  28. data/lib/vendor/workbox-v5.0.0/workbox-offline-ga.dev.js.map +1 -0
  29. data/lib/vendor/workbox-v5.0.0/workbox-offline-ga.prod.js +2 -0
  30. data/lib/vendor/workbox-v5.0.0/workbox-offline-ga.prod.js.map +1 -0
  31. data/lib/vendor/{workbox-v5.0.0.alpha1 → workbox-v5.0.0}/workbox-precaching.dev.js +314 -86
  32. data/lib/vendor/workbox-v5.0.0/workbox-precaching.dev.js.map +1 -0
  33. data/lib/vendor/workbox-v5.0.0/workbox-precaching.prod.js +2 -0
  34. data/lib/vendor/workbox-v5.0.0/workbox-precaching.prod.js.map +1 -0
  35. data/lib/vendor/{workbox-v5.0.0.alpha1 → workbox-v5.0.0}/workbox-range-requests.dev.js +8 -9
  36. data/lib/vendor/workbox-v5.0.0/workbox-range-requests.dev.js.map +1 -0
  37. data/lib/vendor/workbox-v5.0.0/workbox-range-requests.prod.js +2 -0
  38. data/lib/vendor/workbox-v5.0.0/workbox-range-requests.prod.js.map +1 -0
  39. data/lib/vendor/{workbox-v5.0.0.alpha1 → workbox-v5.0.0}/workbox-routing.dev.js +79 -182
  40. data/lib/vendor/workbox-v5.0.0/workbox-routing.dev.js.map +1 -0
  41. data/lib/vendor/workbox-v5.0.0/workbox-routing.prod.js +2 -0
  42. data/lib/vendor/workbox-v5.0.0/workbox-routing.prod.js.map +1 -0
  43. data/lib/vendor/{workbox-v5.0.0.alpha1 → workbox-v5.0.0}/workbox-strategies.dev.js +23 -227
  44. data/lib/vendor/workbox-v5.0.0/workbox-strategies.dev.js.map +1 -0
  45. data/lib/vendor/workbox-v5.0.0/workbox-strategies.prod.js +2 -0
  46. data/lib/vendor/workbox-v5.0.0/workbox-strategies.prod.js.map +1 -0
  47. data/lib/vendor/{workbox-v5.0.0.alpha1 → workbox-v5.0.0}/workbox-streams.dev.js +16 -31
  48. data/lib/vendor/workbox-v5.0.0/workbox-streams.dev.js.map +1 -0
  49. data/lib/vendor/workbox-v5.0.0/workbox-streams.prod.js +2 -0
  50. data/lib/vendor/workbox-v5.0.0/workbox-streams.prod.js.map +1 -0
  51. data/lib/vendor/workbox-v5.0.0/workbox-sw.js +2 -0
  52. data/lib/vendor/workbox-v5.0.0/workbox-sw.js.map +1 -0
  53. data/lib/vendor/{workbox-v5.0.0.alpha1 → workbox-v5.0.0}/workbox-window.dev.es5.mjs +317 -113
  54. data/lib/vendor/workbox-v5.0.0/workbox-window.dev.es5.mjs.map +1 -0
  55. data/lib/vendor/{workbox-v5.0.0.alpha1 → workbox-v5.0.0}/workbox-window.dev.mjs +244 -44
  56. data/lib/vendor/workbox-v5.0.0/workbox-window.dev.mjs.map +1 -0
  57. data/lib/vendor/{workbox-v5.0.0.alpha1 → workbox-v5.0.0}/workbox-window.dev.umd.js +317 -113
  58. data/lib/vendor/workbox-v5.0.0/workbox-window.dev.umd.js.map +1 -0
  59. data/lib/vendor/workbox-v5.0.0/workbox-window.prod.es5.mjs +2 -0
  60. data/lib/vendor/workbox-v5.0.0/workbox-window.prod.es5.mjs.map +1 -0
  61. data/lib/vendor/workbox-v5.0.0/workbox-window.prod.mjs +2 -0
  62. data/lib/vendor/workbox-v5.0.0/workbox-window.prod.mjs.map +1 -0
  63. data/lib/vendor/workbox-v5.0.0/workbox-window.prod.umd.js +2 -0
  64. data/lib/vendor/workbox-v5.0.0/workbox-window.prod.umd.js.map +1 -0
  65. metadata +70 -69
  66. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-background-sync.dev.js.map +0 -1
  67. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-background-sync.prod.js +0 -2
  68. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-background-sync.prod.js.map +0 -1
  69. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-broadcast-update.dev.js +0 -486
  70. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-broadcast-update.dev.js.map +0 -1
  71. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-broadcast-update.prod.js +0 -2
  72. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-broadcast-update.prod.js.map +0 -1
  73. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-cacheable-response.dev.js.map +0 -1
  74. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-cacheable-response.prod.js +0 -2
  75. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-cacheable-response.prod.js.map +0 -1
  76. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-core.dev.js.map +0 -1
  77. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-core.prod.js +0 -2
  78. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-core.prod.js.map +0 -1
  79. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-expiration.dev.js.map +0 -1
  80. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-expiration.prod.js +0 -2
  81. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-expiration.prod.js.map +0 -1
  82. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-navigation-preload.dev.js.map +0 -1
  83. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-navigation-preload.prod.js +0 -2
  84. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-navigation-preload.prod.js.map +0 -1
  85. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-offline-ga.dev.js.map +0 -1
  86. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-offline-ga.prod.js +0 -2
  87. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-offline-ga.prod.js.map +0 -1
  88. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-precaching.dev.js.map +0 -1
  89. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-precaching.prod.js +0 -2
  90. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-precaching.prod.js.map +0 -1
  91. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-range-requests.dev.js.map +0 -1
  92. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-range-requests.prod.js +0 -2
  93. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-range-requests.prod.js.map +0 -1
  94. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-routing.dev.js.map +0 -1
  95. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-routing.prod.js +0 -2
  96. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-routing.prod.js.map +0 -1
  97. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-strategies.dev.js.map +0 -1
  98. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-strategies.prod.js +0 -2
  99. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-strategies.prod.js.map +0 -1
  100. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-streams.dev.js.map +0 -1
  101. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-streams.prod.js +0 -2
  102. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-streams.prod.js.map +0 -1
  103. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-sw.js +0 -2
  104. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-sw.js.map +0 -1
  105. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-window.dev.es5.mjs.map +0 -1
  106. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-window.dev.mjs.map +0 -1
  107. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-window.dev.umd.js.map +0 -1
  108. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-window.prod.es5.mjs +0 -2
  109. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-window.prod.es5.mjs.map +0 -1
  110. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-window.prod.mjs +0 -2
  111. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-window.prod.mjs.map +0 -1
  112. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-window.prod.umd.js +0 -2
  113. data/lib/vendor/workbox-v5.0.0.alpha1/workbox-window.prod.umd.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workbox-cacheable-response.dev.js","sources":["../_version.js","../CacheableResponse.js","../CacheableResponsePlugin.js"],"sourcesContent":["\"use strict\";\n// @ts-ignore\ntry {\n self['workbox:cacheable-response:5.0.0'] && _();\n}\ncatch (e) { }\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport './_version.js';\n/**\n * This class allows you to set up rules determining what\n * status codes and/or headers need to be present in order for a\n * [`Response`](https://developer.mozilla.org/en-US/docs/Web/API/Response)\n * to be considered cacheable.\n *\n * @memberof module:workbox-cacheable-response\n */\nclass CacheableResponse {\n /**\n * To construct a new CacheableResponse instance you must provide at least\n * one of the `config` properties.\n *\n * If both `statuses` and `headers` are specified, then both conditions must\n * be met for the `Response` to be considered cacheable.\n *\n * @param {Object} config\n * @param {Array<number>} [config.statuses] One or more status codes that a\n * `Response` can have and be considered cacheable.\n * @param {Object<string,string>} [config.headers] A mapping of header names\n * and expected values that a `Response` can have and be considered cacheable.\n * If multiple headers are provided, only one needs to be present.\n */\n constructor(config = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (!(config.statuses || config.headers)) {\n throw new WorkboxError('statuses-or-headers-required', {\n moduleName: 'workbox-cacheable-response',\n className: 'CacheableResponse',\n funcName: 'constructor',\n });\n }\n if (config.statuses) {\n assert.isArray(config.statuses, {\n moduleName: 'workbox-cacheable-response',\n className: 'CacheableResponse',\n funcName: 'constructor',\n paramName: 'config.statuses',\n });\n }\n if (config.headers) {\n assert.isType(config.headers, 'object', {\n moduleName: 'workbox-cacheable-response',\n className: 'CacheableResponse',\n funcName: 'constructor',\n paramName: 'config.headers',\n });\n }\n }\n this._statuses = config.statuses;\n this._headers = config.headers;\n }\n /**\n * Checks a response to see whether it's cacheable or not, based on this\n * object's configuration.\n *\n * @param {Response} response The response whose cacheability is being\n * checked.\n * @return {boolean} `true` if the `Response` is cacheable, and `false`\n * otherwise.\n */\n isResponseCacheable(response) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(response, Response, {\n moduleName: 'workbox-cacheable-response',\n className: 'CacheableResponse',\n funcName: 'isResponseCacheable',\n paramName: 'response',\n });\n }\n let cacheable = true;\n if (this._statuses) {\n cacheable = this._statuses.includes(response.status);\n }\n if (this._headers && cacheable) {\n cacheable = Object.keys(this._headers).some((headerName) => {\n return response.headers.get(headerName) === this._headers[headerName];\n });\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!cacheable) {\n logger.groupCollapsed(`The request for ` +\n `'${getFriendlyURL(response.url)}' returned a response that does ` +\n `not meet the criteria for being cached.`);\n logger.groupCollapsed(`View cacheability criteria here.`);\n logger.log(`Cacheable statuses: ` +\n JSON.stringify(this._statuses));\n logger.log(`Cacheable headers: ` +\n JSON.stringify(this._headers, null, 2));\n logger.groupEnd();\n const logFriendlyHeaders = {};\n response.headers.forEach((value, key) => {\n logFriendlyHeaders[key] = value;\n });\n logger.groupCollapsed(`View response status and headers here.`);\n logger.log(`Response status: ` + response.status);\n logger.log(`Response headers: ` +\n JSON.stringify(logFriendlyHeaders, null, 2));\n logger.groupEnd();\n logger.groupCollapsed(`View full response details here.`);\n logger.log(response.headers);\n logger.log(response);\n logger.groupEnd();\n logger.groupEnd();\n }\n }\n return cacheable;\n }\n}\nexport { CacheableResponse };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { CacheableResponse } from './CacheableResponse.js';\nimport './_version.js';\n/**\n * A class implementing the `cacheWillUpdate` lifecycle callback. This makes it\n * easier to add in cacheability checks to requests made via Workbox's built-in\n * strategies.\n *\n * @memberof module:workbox-cacheable-response\n */\nclass CacheableResponsePlugin {\n /**\n * To construct a new CacheableResponsePlugin instance you must provide at\n * least one of the `config` properties.\n *\n * If both `statuses` and `headers` are specified, then both conditions must\n * be met for the `Response` to be considered cacheable.\n *\n * @param {Object} config\n * @param {Array<number>} [config.statuses] One or more status codes that a\n * `Response` can have and be considered cacheable.\n * @param {Object<string,string>} [config.headers] A mapping of header names\n * and expected values that a `Response` can have and be considered cacheable.\n * If multiple headers are provided, only one needs to be present.\n */\n constructor(config) {\n /**\n * @param {Object} options\n * @param {Response} options.response\n * @return {Response|null}\n * @private\n */\n this.cacheWillUpdate = async ({ response }) => {\n if (this._cacheableResponse.isResponseCacheable(response)) {\n return response;\n }\n return null;\n };\n this._cacheableResponse = new CacheableResponse(config);\n }\n}\nexport { CacheableResponsePlugin };\n"],"names":["self","_","e","CacheableResponse","constructor","config","statuses","headers","WorkboxError","moduleName","className","funcName","assert","isArray","paramName","isType","_statuses","_headers","isResponseCacheable","response","isInstance","Response","cacheable","includes","status","Object","keys","some","headerName","get","logger","groupCollapsed","getFriendlyURL","url","log","JSON","stringify","groupEnd","logFriendlyHeaders","forEach","value","key","CacheableResponsePlugin","cacheWillUpdate","_cacheableResponse"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ this.workbox=this.workbox||{},this.workbox.cacheableResponse=function(s){"use strict";try{self["workbox:cacheable-response:5.0.0"]&&_()}catch(s){}class t{constructor(s={}){this.s=s.statuses,this.t=s.headers}isResponseCacheable(s){let t=!0;return this.s&&(t=this.s.includes(s.status)),this.t&&t&&(t=Object.keys(this.t).some(t=>s.headers.get(t)===this.t[t])),t}}return s.CacheableResponse=t,s.CacheableResponsePlugin=class{constructor(s){this.cacheWillUpdate=(async({response:s})=>this.i.isResponseCacheable(s)?s:null),this.i=new t(s)}},s}({});
2
+ //# sourceMappingURL=workbox-cacheable-response.prod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workbox-cacheable-response.prod.js","sources":["../_version.js","../CacheableResponse.js","../CacheableResponsePlugin.js"],"sourcesContent":["\"use strict\";\n// @ts-ignore\ntry {\n self['workbox:cacheable-response:5.0.0'] && _();\n}\ncatch (e) { }\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport './_version.js';\n/**\n * This class allows you to set up rules determining what\n * status codes and/or headers need to be present in order for a\n * [`Response`](https://developer.mozilla.org/en-US/docs/Web/API/Response)\n * to be considered cacheable.\n *\n * @memberof module:workbox-cacheable-response\n */\nclass CacheableResponse {\n /**\n * To construct a new CacheableResponse instance you must provide at least\n * one of the `config` properties.\n *\n * If both `statuses` and `headers` are specified, then both conditions must\n * be met for the `Response` to be considered cacheable.\n *\n * @param {Object} config\n * @param {Array<number>} [config.statuses] One or more status codes that a\n * `Response` can have and be considered cacheable.\n * @param {Object<string,string>} [config.headers] A mapping of header names\n * and expected values that a `Response` can have and be considered cacheable.\n * If multiple headers are provided, only one needs to be present.\n */\n constructor(config = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (!(config.statuses || config.headers)) {\n throw new WorkboxError('statuses-or-headers-required', {\n moduleName: 'workbox-cacheable-response',\n className: 'CacheableResponse',\n funcName: 'constructor',\n });\n }\n if (config.statuses) {\n assert.isArray(config.statuses, {\n moduleName: 'workbox-cacheable-response',\n className: 'CacheableResponse',\n funcName: 'constructor',\n paramName: 'config.statuses',\n });\n }\n if (config.headers) {\n assert.isType(config.headers, 'object', {\n moduleName: 'workbox-cacheable-response',\n className: 'CacheableResponse',\n funcName: 'constructor',\n paramName: 'config.headers',\n });\n }\n }\n this._statuses = config.statuses;\n this._headers = config.headers;\n }\n /**\n * Checks a response to see whether it's cacheable or not, based on this\n * object's configuration.\n *\n * @param {Response} response The response whose cacheability is being\n * checked.\n * @return {boolean} `true` if the `Response` is cacheable, and `false`\n * otherwise.\n */\n isResponseCacheable(response) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(response, Response, {\n moduleName: 'workbox-cacheable-response',\n className: 'CacheableResponse',\n funcName: 'isResponseCacheable',\n paramName: 'response',\n });\n }\n let cacheable = true;\n if (this._statuses) {\n cacheable = this._statuses.includes(response.status);\n }\n if (this._headers && cacheable) {\n cacheable = Object.keys(this._headers).some((headerName) => {\n return response.headers.get(headerName) === this._headers[headerName];\n });\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!cacheable) {\n logger.groupCollapsed(`The request for ` +\n `'${getFriendlyURL(response.url)}' returned a response that does ` +\n `not meet the criteria for being cached.`);\n logger.groupCollapsed(`View cacheability criteria here.`);\n logger.log(`Cacheable statuses: ` +\n JSON.stringify(this._statuses));\n logger.log(`Cacheable headers: ` +\n JSON.stringify(this._headers, null, 2));\n logger.groupEnd();\n const logFriendlyHeaders = {};\n response.headers.forEach((value, key) => {\n logFriendlyHeaders[key] = value;\n });\n logger.groupCollapsed(`View response status and headers here.`);\n logger.log(`Response status: ` + response.status);\n logger.log(`Response headers: ` +\n JSON.stringify(logFriendlyHeaders, null, 2));\n logger.groupEnd();\n logger.groupCollapsed(`View full response details here.`);\n logger.log(response.headers);\n logger.log(response);\n logger.groupEnd();\n logger.groupEnd();\n }\n }\n return cacheable;\n }\n}\nexport { CacheableResponse };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { CacheableResponse } from './CacheableResponse.js';\nimport './_version.js';\n/**\n * A class implementing the `cacheWillUpdate` lifecycle callback. This makes it\n * easier to add in cacheability checks to requests made via Workbox's built-in\n * strategies.\n *\n * @memberof module:workbox-cacheable-response\n */\nclass CacheableResponsePlugin {\n /**\n * To construct a new CacheableResponsePlugin instance you must provide at\n * least one of the `config` properties.\n *\n * If both `statuses` and `headers` are specified, then both conditions must\n * be met for the `Response` to be considered cacheable.\n *\n * @param {Object} config\n * @param {Array<number>} [config.statuses] One or more status codes that a\n * `Response` can have and be considered cacheable.\n * @param {Object<string,string>} [config.headers] A mapping of header names\n * and expected values that a `Response` can have and be considered cacheable.\n * If multiple headers are provided, only one needs to be present.\n */\n constructor(config) {\n /**\n * @param {Object} options\n * @param {Response} options.response\n * @return {Response|null}\n * @private\n */\n this.cacheWillUpdate = async ({ response }) => {\n if (this._cacheableResponse.isResponseCacheable(response)) {\n return response;\n }\n return null;\n };\n this._cacheableResponse = new CacheableResponse(config);\n }\n}\nexport { CacheableResponsePlugin };\n"],"names":["self","_","e","CacheableResponse","constructor","config","_statuses","statuses","_headers","headers","isResponseCacheable","response","cacheable","this","includes","status","Object","keys","some","headerName","get","cacheWillUpdate","async","_cacheableResponse"],"mappings":"sFAEA,IACIA,KAAK,qCAAuCC,IAEhD,MAAOC,ICeP,MAAMC,EAeFC,YAAYC,EAAS,SA0BZC,EAAYD,EAAOE,cACnBC,EAAWH,EAAOI,QAW3BC,oBAAoBC,OASZC,GAAY,SACZC,KAAKP,IACLM,EAAYC,KAAKP,EAAUQ,SAASH,EAASI,SAE7CF,KAAKL,GAAYI,IACjBA,EAAYI,OAAOC,KAAKJ,KAAKL,GAAUU,KAAMC,GAClCR,EAASF,QAAQW,IAAID,KAAgBN,KAAKL,EAASW,KA8B3DP,0DCtGf,MAeIR,YAAYC,QAOHgB,gBAAkBC,QAASX,SAAAA,KACxBE,KAAKU,EAAmBb,oBAAoBC,GACrCA,EAEJ,WAENY,EAAqB,IAAIpB,EAAkBE"}
@@ -2,9 +2,8 @@ this.workbox = this.workbox || {};
2
2
  this.workbox.core = (function (exports) {
3
3
  'use strict';
4
4
 
5
- // @ts-ignore
6
5
  try {
7
- self['workbox:core:5.0.0-alpha.0'] && _();
6
+ self['workbox:core:5.0.0'] && _();
8
7
  } catch (e) {}
9
8
 
10
9
  /*
@@ -14,6 +13,12 @@ this.workbox.core = (function (exports) {
14
13
  https://opensource.org/licenses/MIT.
15
14
  */
16
15
  const logger = (() => {
16
+ // Don't overwrite this value if it's already set.
17
+ // See https://github.com/GoogleChrome/workbox/pull/2284#issuecomment-560470923
18
+ if (!('__WB_DISABLE_DEV_LOGS' in self)) {
19
+ self.__WB_DISABLE_DEV_LOGS = false;
20
+ }
21
+
17
22
  let inGroup = false;
18
23
  const methodToColorMap = {
19
24
  debug: `#7f8c8d`,
@@ -25,6 +30,10 @@ this.workbox.core = (function (exports) {
25
30
  };
26
31
 
27
32
  const print = function (method, args) {
33
+ if (self.__WB_DISABLE_DEV_LOGS) {
34
+ return;
35
+ }
36
+
28
37
  if (method === 'groupCollapsed') {
29
38
  // Safari doesn't print all console.groupCollapsed() arguments:
30
39
  // https://bugs.webkit.org/show_bug.cgi?id=182754
@@ -178,7 +187,7 @@ this.workbox.core = (function (exports) {
178
187
  throw new Error(`Expected a 'cacheNameId' for error 'invalid-cache-name'`);
179
188
  }
180
189
 
181
- return `You must provide a name containing at least one character for ` + `setCacheDeatils({${cacheNameId}: '...'}). Received a value of ` + `'${JSON.stringify(value)}'`;
190
+ return `You must provide a name containing at least one character for ` + `setCacheDetails({${cacheNameId}: '...'}). Received a value of ` + `'${JSON.stringify(value)}'`;
182
191
  },
183
192
  'unregister-route-but-not-found-with-method': ({
184
193
  method
@@ -325,6 +334,22 @@ this.workbox.core = (function (exports) {
325
334
  status
326
335
  }) => {
327
336
  return `The precaching request for '${url}' failed with an HTTP ` + `status of ${status}.`;
337
+ },
338
+ 'non-precached-url': ({
339
+ url
340
+ }) => {
341
+ return `createHandlerBoundToURL('${url}') was called, but that URL is ` + `not precached. Please pass in a URL that is precached instead.`;
342
+ },
343
+ 'add-to-cache-list-conflicting-integrities': ({
344
+ url
345
+ }) => {
346
+ return `Two of the entries passed to ` + `'workbox-precaching.PrecacheController.addToCacheList()' had the URL ` + `${url} with different integrity values. Please remove one of them.`;
347
+ },
348
+ 'missing-precache-entry': ({
349
+ cacheName,
350
+ url
351
+ }) => {
352
+ return `Unable to find a precached response in ${cacheName} for ${url}.`;
328
353
  }
329
354
  };
330
355
 
@@ -419,28 +444,28 @@ this.workbox.core = (function (exports) {
419
444
  const type = typeof object[expectedMethod];
420
445
 
421
446
  if (type !== 'function') {
422
- details.expectedMethod = expectedMethod;
447
+ details['expectedMethod'] = expectedMethod;
423
448
  throw new WorkboxError('missing-a-method', details);
424
449
  }
425
450
  };
426
451
 
427
452
  const isType = (object, expectedType, details) => {
428
453
  if (typeof object !== expectedType) {
429
- details.expectedType = expectedType;
454
+ details['expectedType'] = expectedType;
430
455
  throw new WorkboxError('incorrect-type', details);
431
456
  }
432
457
  };
433
458
 
434
459
  const isInstance = (object, expectedClass, details) => {
435
460
  if (!(object instanceof expectedClass)) {
436
- details.expectedClass = expectedClass;
461
+ details['expectedClass'] = expectedClass;
437
462
  throw new WorkboxError('incorrect-class', details);
438
463
  }
439
464
  };
440
465
 
441
466
  const isOneOf = (value, validValues, details) => {
442
467
  if (!validValues.includes(value)) {
443
- details.validValueDescription = `Valid values are ${JSON.stringify(validValues)}.`;
468
+ details['validValueDescription'] = `Valid values are ${JSON.stringify(validValues)}.`;
444
469
  throw new WorkboxError('invalid-value', details);
445
470
  }
446
471
  };
@@ -491,7 +516,7 @@ this.workbox.core = (function (exports) {
491
516
  * there's a quota error.
492
517
  *
493
518
  * @param {Function} callback
494
- * @memberof workbox.core
519
+ * @memberof module:workbox-core
495
520
  */
496
521
 
497
522
  function registerQuotaErrorCallback(callback) {
@@ -522,7 +547,7 @@ this.workbox.core = (function (exports) {
522
547
  precache: 'precache-v2',
523
548
  prefix: 'workbox',
524
549
  runtime: 'runtime',
525
- suffix: registration.scope
550
+ suffix: typeof registration !== 'undefined' ? registration.scope : ''
526
551
  };
527
552
 
528
553
  const _createCacheName = cacheName => {
@@ -560,24 +585,6 @@ this.workbox.core = (function (exports) {
560
585
  }
561
586
  };
562
587
 
563
- /*
564
- Copyright 2018 Google LLC
565
-
566
- Use of this source code is governed by an MIT-style
567
- license that can be found in the LICENSE file or at
568
- https://opensource.org/licenses/MIT.
569
- */
570
-
571
- const getFriendlyURL = url => {
572
- const urlObj = new URL(String(url), location.href);
573
-
574
- if (urlObj.origin === location.origin) {
575
- return urlObj.pathname;
576
- }
577
-
578
- return urlObj.href;
579
- };
580
-
581
588
  /*
582
589
  Copyright 2018 Google LLC
583
590
 
@@ -589,7 +596,7 @@ this.workbox.core = (function (exports) {
589
596
  * Runs all of the callback functions, one at a time sequentially, in the order
590
597
  * in which they were registered.
591
598
  *
592
- * @memberof workbox.core
599
+ * @memberof module:workbox-core
593
600
  * @private
594
601
  */
595
602
 
@@ -611,6 +618,24 @@ this.workbox.core = (function (exports) {
611
618
  }
612
619
  }
613
620
 
621
+ /*
622
+ Copyright 2018 Google LLC
623
+
624
+ Use of this source code is governed by an MIT-style
625
+ license that can be found in the LICENSE file or at
626
+ https://opensource.org/licenses/MIT.
627
+ */
628
+
629
+ const getFriendlyURL = url => {
630
+ const urlObj = new URL(String(url), location.href);
631
+
632
+ if (urlObj.origin === location.origin) {
633
+ return urlObj.pathname;
634
+ }
635
+
636
+ return urlObj.href;
637
+ };
638
+
614
639
  /*
615
640
  Copyright 2018 Google LLC
616
641
 
@@ -697,7 +722,7 @@ this.workbox.core = (function (exports) {
697
722
  return;
698
723
  }
699
724
 
700
- const cache = await caches.open(cacheName);
725
+ const cache = await self.caches.open(cacheName);
701
726
  const updatePlugins = pluginUtils.filter(plugins, "cacheDidUpdate"
702
727
  /* CACHE_DID_UPDATE */
703
728
  );
@@ -741,7 +766,7 @@ this.workbox.core = (function (exports) {
741
766
  * @param {string} options.cacheName Name of the cache to match against.
742
767
  * @param {Request} options.request The Request that will be used to look up
743
768
  * cache entries.
744
- * @param {Event} [options.event] The event that propted the action.
769
+ * @param {Event} [options.event] The event that prompted the action.
745
770
  * @param {Object} [options.matchOptions] Options passed to cache.match().
746
771
  * @param {Array<Object>} [options.plugins=[]] Array of plugins.
747
772
  * @return {Response} A cached response if available.
@@ -758,7 +783,7 @@ this.workbox.core = (function (exports) {
758
783
  matchOptions,
759
784
  plugins = []
760
785
  }) => {
761
- const cache = await caches.open(cacheName);
786
+ const cache = await self.caches.open(cacheName);
762
787
  const effectiveRequest = await _getEffectiveRequest({
763
788
  plugins,
764
789
  request,
@@ -938,6 +963,96 @@ this.workbox.core = (function (exports) {
938
963
  match: matchWrapper
939
964
  };
940
965
 
966
+ /*
967
+ Copyright 2019 Google LLC
968
+
969
+ Use of this source code is governed by an MIT-style
970
+ license that can be found in the LICENSE file or at
971
+ https://opensource.org/licenses/MIT.
972
+ */
973
+ let supportStatus;
974
+ /**
975
+ * A utility function that determines whether the current browser supports
976
+ * constructing a [`ReadableStream`](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream/ReadableStream)
977
+ * object.
978
+ *
979
+ * @return {boolean} `true`, if the current browser can successfully
980
+ * construct a `ReadableStream`, `false` otherwise.
981
+ *
982
+ * @private
983
+ */
984
+
985
+ function canConstructReadableStream() {
986
+ if (supportStatus === undefined) {
987
+ // See https://github.com/GoogleChrome/workbox/issues/1473
988
+ try {
989
+ new ReadableStream({
990
+ start() {}
991
+
992
+ });
993
+ supportStatus = true;
994
+ } catch (error) {
995
+ supportStatus = false;
996
+ }
997
+ }
998
+
999
+ return supportStatus;
1000
+ }
1001
+
1002
+ /*
1003
+ Copyright 2019 Google LLC
1004
+
1005
+ Use of this source code is governed by an MIT-style
1006
+ license that can be found in the LICENSE file or at
1007
+ https://opensource.org/licenses/MIT.
1008
+ */
1009
+ let supportStatus$1;
1010
+ /**
1011
+ * A utility function that determines whether the current browser supports
1012
+ * constructing a new `Response` from a `response.body` stream.
1013
+ *
1014
+ * @return {boolean} `true`, if the current browser can successfully
1015
+ * construct a `Response` from a `response.body` stream, `false` otherwise.
1016
+ *
1017
+ * @private
1018
+ */
1019
+
1020
+ function canConstructResponseFromBodyStream() {
1021
+ if (supportStatus$1 === undefined) {
1022
+ const testResponse = new Response('');
1023
+
1024
+ if ('body' in testResponse) {
1025
+ try {
1026
+ new Response(testResponse.body);
1027
+ supportStatus$1 = true;
1028
+ } catch (error) {
1029
+ supportStatus$1 = false;
1030
+ }
1031
+ }
1032
+
1033
+ supportStatus$1 = false;
1034
+ }
1035
+
1036
+ return supportStatus$1;
1037
+ }
1038
+
1039
+ /*
1040
+ Copyright 2019 Google LLC
1041
+ Use of this source code is governed by an MIT-style
1042
+ license that can be found in the LICENSE file or at
1043
+ https://opensource.org/licenses/MIT.
1044
+ */
1045
+ /**
1046
+ * A helper function that prevents a promise from being flagged as unused.
1047
+ *
1048
+ * @private
1049
+ **/
1050
+
1051
+ function dontWaitFor(promise) {
1052
+ // Effective no-op.
1053
+ promise.then(() => {});
1054
+ }
1055
+
941
1056
  /*
942
1057
  Copyright 2018 Google LLC
943
1058
 
@@ -1180,7 +1295,9 @@ this.workbox.core = (function (exports) {
1180
1295
 
1181
1296
  async _call(method, storeName, type, ...args) {
1182
1297
  const callback = (txn, done) => {
1183
- const objStore = txn.objectStore(storeName);
1298
+ const objStore = txn.objectStore(storeName); // TODO(philipwalton): Fix this underlying TS2684 error.
1299
+ // @ts-ignore
1300
+
1184
1301
  const request = objStore[method].apply(objStore, args);
1185
1302
 
1186
1303
  request.onsuccess = () => done(request.result);
@@ -1311,7 +1428,7 @@ this.workbox.core = (function (exports) {
1311
1428
  * @param {Object} options
1312
1429
  * @param {Request|string} options.request
1313
1430
  * @param {Object} [options.fetchOptions]
1314
- * @param {Event} [options.event]
1431
+ * @param {ExtendableEvent} [options.event]
1315
1432
  * @param {Array<Object>} [options.plugins=[]]
1316
1433
  * @return {Promise<Response>}
1317
1434
  *
@@ -1464,6 +1581,80 @@ this.workbox.core = (function (exports) {
1464
1581
  fetch: wrappedFetch
1465
1582
  };
1466
1583
 
1584
+ /*
1585
+ Copyright 2019 Google LLC
1586
+ Use of this source code is governed by an MIT-style
1587
+ license that can be found in the LICENSE file or at
1588
+ https://opensource.org/licenses/MIT.
1589
+ */
1590
+ /**
1591
+ * Returns a promise that resolves and the passed number of milliseconds.
1592
+ * This utility is an async/await-friendly version of `setTimeout`.
1593
+ *
1594
+ * @param {number} ms
1595
+ * @return {Promise}
1596
+ * @private
1597
+ */
1598
+
1599
+ function timeout(ms) {
1600
+ return new Promise(resolve => setTimeout(resolve, ms));
1601
+ }
1602
+
1603
+ /*
1604
+ Copyright 2019 Google LLC
1605
+ Use of this source code is governed by an MIT-style
1606
+ license that can be found in the LICENSE file or at
1607
+ https://opensource.org/licenses/MIT.
1608
+ */
1609
+ const MAX_RETRY_TIME = 2000;
1610
+ /**
1611
+ * Returns a promise that resolves to a window client matching the passed
1612
+ * `resultingClientId`. For browsers that don't support `resultingClientId`
1613
+ * or if waiting for the resulting client to apper takes too long, resolve to
1614
+ * `undefined`.
1615
+ *
1616
+ * @param {string} [resultingClientId]
1617
+ * @return {Promise<Client|undefined>}
1618
+ * @private
1619
+ */
1620
+
1621
+ async function resultingClientExists(resultingClientId) {
1622
+ if (!resultingClientId) {
1623
+ return;
1624
+ }
1625
+
1626
+ let existingWindows = await self.clients.matchAll({
1627
+ type: 'window'
1628
+ });
1629
+ const existingWindowIds = new Set(existingWindows.map(w => w.id));
1630
+ let resultingWindow;
1631
+ const startTime = performance.now(); // Only wait up to `MAX_RETRY_TIME` to find a matching client.
1632
+
1633
+ while (performance.now() - startTime < MAX_RETRY_TIME) {
1634
+ existingWindows = await self.clients.matchAll({
1635
+ type: 'window'
1636
+ });
1637
+ resultingWindow = existingWindows.find(w => {
1638
+ if (resultingClientId) {
1639
+ // If we have a `resultingClientId`, we can match on that.
1640
+ return w.id === resultingClientId;
1641
+ } else {
1642
+ // Otherwise match on finding a window not in `existingWindowIds`.
1643
+ return !existingWindowIds.has(w.id);
1644
+ }
1645
+ });
1646
+
1647
+ if (resultingWindow) {
1648
+ break;
1649
+ } // Sleep for 100ms and retry.
1650
+
1651
+
1652
+ await timeout(100);
1653
+ }
1654
+
1655
+ return resultingWindow;
1656
+ }
1657
+
1467
1658
  /*
1468
1659
  Copyright 2018 Google LLC
1469
1660
 
@@ -1476,6 +1667,9 @@ this.workbox.core = (function (exports) {
1476
1667
  assert: finalAssertExports,
1477
1668
  cacheNames: cacheNames,
1478
1669
  cacheWrapper: cacheWrapper,
1670
+ canConstructReadableStream: canConstructReadableStream,
1671
+ canConstructResponseFromBodyStream: canConstructResponseFromBodyStream,
1672
+ dontWaitFor: dontWaitFor,
1479
1673
  DBWrapper: DBWrapper,
1480
1674
  Deferred: Deferred,
1481
1675
  deleteDatabase: deleteDatabase,
@@ -1483,27 +1677,11 @@ this.workbox.core = (function (exports) {
1483
1677
  fetchWrapper: fetchWrapper,
1484
1678
  getFriendlyURL: getFriendlyURL,
1485
1679
  logger: logger,
1680
+ resultingClientExists: resultingClientExists,
1681
+ timeout: timeout,
1486
1682
  WorkboxError: WorkboxError
1487
1683
  });
1488
1684
 
1489
- /*
1490
- Copyright 2019 Google LLC
1491
-
1492
- Use of this source code is governed by an MIT-style
1493
- license that can be found in the LICENSE file or at
1494
- https://opensource.org/licenses/MIT.
1495
- */
1496
- /**
1497
- * Claim any currently available clients once the service worker
1498
- * becomes active. This is normally used in conjunction with `skipWaiting()`.
1499
- *
1500
- * @alias workbox.core.clientsClaim
1501
- */
1502
-
1503
- const clientsClaim = () => {
1504
- addEventListener('activate', () => self.clients.claim());
1505
- };
1506
-
1507
1685
  /*
1508
1686
  Copyright 2019 Google LLC
1509
1687
 
@@ -1524,7 +1702,7 @@ this.workbox.core = (function (exports) {
1524
1702
  * @return {Object} An object with `precache`, `runtime`, `prefix`, and
1525
1703
  * `googleAnalytics` properties.
1526
1704
  *
1527
- * @alias workbox.core.cacheNames
1705
+ * @memberof module:workbox-core
1528
1706
  */
1529
1707
 
1530
1708
  const cacheNames$1 = {
@@ -1550,6 +1728,65 @@ this.workbox.core = (function (exports) {
1550
1728
 
1551
1729
  };
1552
1730
 
1731
+ /*
1732
+ Copyright 2019 Google LLC
1733
+
1734
+ Use of this source code is governed by an MIT-style
1735
+ license that can be found in the LICENSE file or at
1736
+ https://opensource.org/licenses/MIT.
1737
+ */
1738
+ /**
1739
+ * Allows developers to copy a response and modify its `headers`, `status`,
1740
+ * or `statusText` values (the values settable via a
1741
+ * [`ResponseInit`]{@link https://developer.mozilla.org/en-US/docs/Web/API/Response/Response#Syntax}
1742
+ * object in the constructor).
1743
+ * To modify these values, pass a function as the second argument. That
1744
+ * function will be invoked with a single object with the response properties
1745
+ * `{headers, status, statusText}`. The return value of this function will
1746
+ * be used as the `ResponseInit` for the new `Response`. To change the values
1747
+ * either modify the passed parameter(s) and return it, or return a totally
1748
+ * new object.
1749
+ *
1750
+ * @param {Response} response
1751
+ * @param {Function} modifier
1752
+ * @memberof module:workbox-core
1753
+ */
1754
+
1755
+ async function copyResponse(response, modifier) {
1756
+ const clonedResponse = response.clone(); // Create a fresh `ResponseInit` object by cloning the headers.
1757
+
1758
+ const responseInit = {
1759
+ headers: new Headers(clonedResponse.headers),
1760
+ status: clonedResponse.status,
1761
+ statusText: clonedResponse.statusText
1762
+ }; // Apply any user modifications.
1763
+
1764
+ const modifiedResponseInit = modifier ? modifier(responseInit) : responseInit; // Create the new response from the body stream and `ResponseInit`
1765
+ // modifications. Note: not all browsers support the Response.body stream,
1766
+ // so fall back to reading the entire body into memory as a blob.
1767
+
1768
+ const body = canConstructResponseFromBodyStream() ? clonedResponse.body : await clonedResponse.blob();
1769
+ return new Response(body, modifiedResponseInit);
1770
+ }
1771
+
1772
+ /*
1773
+ Copyright 2019 Google LLC
1774
+
1775
+ Use of this source code is governed by an MIT-style
1776
+ license that can be found in the LICENSE file or at
1777
+ https://opensource.org/licenses/MIT.
1778
+ */
1779
+ /**
1780
+ * Claim any currently available clients once the service worker
1781
+ * becomes active. This is normally used in conjunction with `skipWaiting()`.
1782
+ *
1783
+ * @memberof module:workbox-core
1784
+ */
1785
+
1786
+ function clientsClaim() {
1787
+ self.addEventListener('activate', () => self.clients.claim());
1788
+ }
1789
+
1553
1790
  /*
1554
1791
  Copyright 2019 Google LLC
1555
1792
 
@@ -1572,10 +1809,10 @@ this.workbox.core = (function (exports) {
1572
1809
  * @param {Object} [details.googleAnalytics] The cache name to use for
1573
1810
  * `workbox-google-analytics` caching.
1574
1811
  *
1575
- * @alias workbox.core.setCacheNameDetails
1812
+ * @memberof module:workbox-core
1576
1813
  */
1577
1814
 
1578
- const setCacheNameDetails = details => {
1815
+ function setCacheNameDetails(details) {
1579
1816
  {
1580
1817
  Object.keys(details).forEach(key => {
1581
1818
  finalAssertExports.isType(details[key], 'string', {
@@ -1585,30 +1822,30 @@ this.workbox.core = (function (exports) {
1585
1822
  });
1586
1823
  });
1587
1824
 
1588
- if ('precache' in details && details.precache.length === 0) {
1825
+ if ('precache' in details && details['precache'].length === 0) {
1589
1826
  throw new WorkboxError('invalid-cache-name', {
1590
1827
  cacheNameId: 'precache',
1591
- value: details.precache
1828
+ value: details['precache']
1592
1829
  });
1593
1830
  }
1594
1831
 
1595
- if ('runtime' in details && details.runtime.length === 0) {
1832
+ if ('runtime' in details && details['runtime'].length === 0) {
1596
1833
  throw new WorkboxError('invalid-cache-name', {
1597
1834
  cacheNameId: 'runtime',
1598
- value: details.runtime
1835
+ value: details['runtime']
1599
1836
  });
1600
1837
  }
1601
1838
 
1602
- if ('googleAnalytics' in details && details.googleAnalytics.length === 0) {
1839
+ if ('googleAnalytics' in details && details['googleAnalytics'].length === 0) {
1603
1840
  throw new WorkboxError('invalid-cache-name', {
1604
1841
  cacheNameId: 'googleAnalytics',
1605
- value: details.googleAnalytics
1842
+ value: details['googleAnalytics']
1606
1843
  });
1607
1844
  }
1608
1845
  }
1609
1846
 
1610
1847
  cacheNames.updateDetails(details);
1611
- };
1848
+ }
1612
1849
 
1613
1850
  /*
1614
1851
  Copyright 2019 Google LLC
@@ -1618,21 +1855,23 @@ this.workbox.core = (function (exports) {
1618
1855
  https://opensource.org/licenses/MIT.
1619
1856
  */
1620
1857
  /**
1621
- * Force a service worker to become active, instead of waiting. This is
1622
- * normally used in conjunction with `clientsClaim()`.
1858
+ * Force a service worker to activate immediately, instead of
1859
+ * [waiting](https://developers.google.com/web/fundamentals/primers/service-workers/lifecycle#waiting)
1860
+ * for existing clients to close.
1623
1861
  *
1624
- * @alias workbox.core.skipWaiting
1862
+ * @memberof module:workbox-core
1625
1863
  */
1626
1864
 
1627
- const skipWaiting = () => {
1865
+ function skipWaiting() {
1628
1866
  // We need to explicitly call `self.skipWaiting()` here because we're
1629
1867
  // shadowing `skipWaiting` with this local function.
1630
- addEventListener('install', () => self.skipWaiting());
1631
- };
1868
+ self.addEventListener('install', () => self.skipWaiting());
1869
+ }
1632
1870
 
1633
1871
  exports._private = _private;
1634
1872
  exports.cacheNames = cacheNames$1;
1635
1873
  exports.clientsClaim = clientsClaim;
1874
+ exports.copyResponse = copyResponse;
1636
1875
  exports.registerQuotaErrorCallback = registerQuotaErrorCallback;
1637
1876
  exports.setCacheNameDetails = setCacheNameDetails;
1638
1877
  exports.skipWaiting = skipWaiting;