From ca07c0c15112770a8f74bc080674f0db624a5566 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D8=AD=D8=B3=DB=8C=D9=86=20=D9=85=D8=B9=D8=B5=D9=88=D9=85?= =?UTF-8?q?=DB=8C=20=D9=BE=D9=88=D8=B1?= Date: Mon, 9 Sep 2024 09:56:28 +0330 Subject: [PATCH] fix bug landing --- components/TaskPage/ActivityCard/page.jsx | 38 +- components/TaskPage/ActivityCardFake/page.jsx | 38 +- components/landingComponents/Experience.jsx | 3 +- components/landingComponents/StepProduct.jsx | 4 + public/fallback-ce627215c0e4a9af.js | 1 - public/fallback-development.js | 102 + public/images/logo/lam.png | Bin 139171 -> 261950 bytes public/images/logo/vee.png | Bin 48466 -> 92239 bytes public/sw.js | 116 +- public/sw.js.map | 1 + public/swe-worker-5c72df51bb1f6ee0.js | 1 - public/swe-worker-development.js | 102 + public/workbox-1e54d6fe.js | 3593 +++++++++++++++++ public/workbox-1e54d6fe.js.map | 1 + public/workbox-c06b064f.js | 1 - src/app/app/news/page.jsx | 1 + src/app/layout.jsx | 2 +- src/constans/index.js | 10 +- tailwind.config.js | 6 + 19 files changed, 3970 insertions(+), 50 deletions(-) delete mode 100644 public/fallback-ce627215c0e4a9af.js create mode 100644 public/fallback-development.js create mode 100644 public/sw.js.map delete mode 100644 public/swe-worker-5c72df51bb1f6ee0.js create mode 100644 public/swe-worker-development.js create mode 100644 public/workbox-1e54d6fe.js create mode 100644 public/workbox-1e54d6fe.js.map delete mode 100644 public/workbox-c06b064f.js diff --git a/components/TaskPage/ActivityCard/page.jsx b/components/TaskPage/ActivityCard/page.jsx index b1c5b3c..dec0a6d 100644 --- a/components/TaskPage/ActivityCard/page.jsx +++ b/components/TaskPage/ActivityCard/page.jsx @@ -9,7 +9,7 @@ import SimpleReactValidator from "simple-react-validator"; import PersianNumber from "plugins/PersianNumber"; import moment from "jalali-moment"; -const ActivityCardFake = ({ data }) => { +const ActivityCard = ({ data }) => { const CTX = useContext(AppContext); const [conditionTask, setConditionTask] = useState(0); @@ -52,7 +52,7 @@ const ActivityCardFake = ({ data }) => { return (
{ : "" }`} > -
+
-
+
{data?.scheduleType == 0 - ? "daily" + ? "روزانه" : data?.scheduleType == 1 - ? "weekly" + ? "هفتگی" : data?.scheduleType == 2 - ? "special" + ? "مخصوص" : ""}
-
-
+
+
{data?.shiftTitle}
-
-
+
+
{data?.userFullName}
{" "} @@ -152,19 +152,19 @@ const ActivityCardFake = ({ data }) => {

{data?.title}{" "}

{data?.description}{" "} @@ -258,7 +258,7 @@ const ActivityCardFake = ({ data }) => { >

{ "required" )} textarea={true} - theme={1} + theme={0} mt={"2"} />
handleUndoneResone()} @@ -292,4 +292,4 @@ const ActivityCardFake = ({ data }) => { ); }; -export default ActivityCardFake; +export default ActivityCard; diff --git a/components/TaskPage/ActivityCardFake/page.jsx b/components/TaskPage/ActivityCardFake/page.jsx index dec0a6d..b1c5b3c 100644 --- a/components/TaskPage/ActivityCardFake/page.jsx +++ b/components/TaskPage/ActivityCardFake/page.jsx @@ -9,7 +9,7 @@ import SimpleReactValidator from "simple-react-validator"; import PersianNumber from "plugins/PersianNumber"; import moment from "jalali-moment"; -const ActivityCard = ({ data }) => { +const ActivityCardFake = ({ data }) => { const CTX = useContext(AppContext); const [conditionTask, setConditionTask] = useState(0); @@ -52,7 +52,7 @@ const ActivityCard = ({ data }) => { return (
{ : "" }`} > -
+
-
+
{data?.scheduleType == 0 - ? "روزانه" + ? "daily" : data?.scheduleType == 1 - ? "هفتگی" + ? "weekly" : data?.scheduleType == 2 - ? "مخصوص" + ? "special" : ""}
-
-
+
+
{data?.shiftTitle}
-
-
+
+
{data?.userFullName}
{" "} @@ -152,19 +152,19 @@ const ActivityCard = ({ data }) => {

{data?.title}{" "}

{data?.description}{" "} @@ -258,7 +258,7 @@ const ActivityCard = ({ data }) => { >

{ "required" )} textarea={true} - theme={0} + theme={1} mt={"2"} />
handleUndoneResone()} @@ -292,4 +292,4 @@ const ActivityCard = ({ data }) => { ); }; -export default ActivityCard; +export default ActivityCardFake; diff --git a/components/landingComponents/Experience.jsx b/components/landingComponents/Experience.jsx index 04f894b..ba94fdc 100644 --- a/components/landingComponents/Experience.jsx +++ b/components/landingComponents/Experience.jsx @@ -14,8 +14,7 @@ import { textVariant } from "src/utils/motion"; import { styles } from "src/style"; import { experiences } from "src/constans"; import { activityFake } from "datacalender"; -import ActivityCard from "@comp/TaskPage/ActivityCard/page"; -import ActivityCardFake from "@comp/TaskPage/ActivityCard/page"; +import ActivityCardFake from "@comp/TaskPage/ActivityCardFake/page"; const ExperienceCard = ({ experience }) => { const [isMobile, setIsMobile] = useState(false); diff --git a/components/landingComponents/StepProduct.jsx b/components/landingComponents/StepProduct.jsx index cb5b772..eb54ae2 100644 --- a/components/landingComponents/StepProduct.jsx +++ b/components/landingComponents/StepProduct.jsx @@ -861,6 +861,10 @@ const StepProduct = ({}) => {
+ +

+ Briz, Harmonious routine management +

); }; diff --git a/public/fallback-ce627215c0e4a9af.js b/public/fallback-ce627215c0e4a9af.js deleted file mode 100644 index f02f9ce..0000000 --- a/public/fallback-ce627215c0e4a9af.js +++ /dev/null @@ -1 +0,0 @@ -self.fallback=async e=>{let{destination:a,url:n}=e,o={document:"/offline",image:!1,audio:!1,video:!1,font:!1}[a];return o?caches.match(o,{ignoreSearch:!0}):Response.error()}; \ No newline at end of file diff --git a/public/fallback-development.js b/public/fallback-development.js new file mode 100644 index 0000000..9610be1 --- /dev/null +++ b/public/fallback-development.js @@ -0,0 +1,102 @@ +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +/******/ (function() { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./node_modules/@ducanh2912/next-pwa/dist/fallback.js": +/*!************************************************************!*\ + !*** ./node_modules/@ducanh2912/next-pwa/dist/fallback.js ***! + \************************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\nself.fallback = async (_)=>{\n let { destination: e, url: A } = _, s = {\n document: \"/offline\",\n image: false,\n audio: false,\n video: false,\n font: false\n }[e];\n return s ? caches.match(s, {\n ignoreSearch: !0\n }) : \"\" === e && false && 0 ? 0 : Response.error();\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGR1Y2FuaDI5MTIvbmV4dC1wd2EvZGlzdC9mYWxsYmFjay5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQSxVQUFVLHlCQUF5QjtBQUNuQyxrQkFBa0IsVUFBcUM7QUFDdkQsZUFBZSxLQUFrQztBQUNqRCxlQUFlLEtBQWtDO0FBQ2pELGVBQWUsS0FBa0M7QUFDakQsY0FBYyxLQUFpQztBQUMvQyxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUssZ0JBQWdCLEtBQWlDLElBQUksQ0FBd0MsR0FBRyxDQUUvRjtBQUNOIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AZHVjYW5oMjkxMi9uZXh0LXB3YS9kaXN0L2ZhbGxiYWNrLmpzP2NlNGIiXSwic291cmNlc0NvbnRlbnQiOlsic2VsZi5mYWxsYmFjayA9IGFzeW5jIChfKT0+e1xuICAgIGxldCB7IGRlc3RpbmF0aW9uOiBlLCB1cmw6IEEgfSA9IF8sIHMgPSB7XG4gICAgICAgIGRvY3VtZW50OiBwcm9jZXNzLmVudi5fX1BXQV9GQUxMQkFDS19ET0NVTUVOVF9fLFxuICAgICAgICBpbWFnZTogcHJvY2Vzcy5lbnYuX19QV0FfRkFMTEJBQ0tfSU1BR0VfXyxcbiAgICAgICAgYXVkaW86IHByb2Nlc3MuZW52Ll9fUFdBX0ZBTExCQUNLX0FVRElPX18sXG4gICAgICAgIHZpZGVvOiBwcm9jZXNzLmVudi5fX1BXQV9GQUxMQkFDS19WSURFT19fLFxuICAgICAgICBmb250OiBwcm9jZXNzLmVudi5fX1BXQV9GQUxMQkFDS19GT05UX19cbiAgICB9W2VdO1xuICAgIHJldHVybiBzID8gY2FjaGVzLm1hdGNoKHMsIHtcbiAgICAgICAgaWdub3JlU2VhcmNoOiAhMFxuICAgIH0pIDogXCJcIiA9PT0gZSAmJiBwcm9jZXNzLmVudi5fX1BXQV9GQUxMQkFDS19EQVRBX18gJiYgQS5tYXRjaCgvXFwvX25leHRcXC9kYXRhXFwvLitcXC8uK1xcLmpzb24kL2kpID8gY2FjaGVzLm1hdGNoKHByb2Nlc3MuZW52Ll9fUFdBX0ZBTExCQUNLX0RBVEFfXywge1xuICAgICAgICBpZ25vcmVTZWFyY2g6ICEwXG4gICAgfSkgOiBSZXNwb25zZS5lcnJvcigpO1xufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ducanh2912/next-pwa/dist/fallback.js\n")); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The require scope +/******/ var __webpack_require__ = {}; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/make namespace object */ +/******/ !function() { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/trusted types policy */ +/******/ !function() { +/******/ var policy; +/******/ __webpack_require__.tt = function() { +/******/ // Create Trusted Type policy if Trusted Types are available and the policy doesn't exist yet. +/******/ if (policy === undefined) { +/******/ policy = { +/******/ createScript: function(script) { return script; } +/******/ }; +/******/ if (typeof trustedTypes !== "undefined" && trustedTypes.createPolicy) { +/******/ policy = trustedTypes.createPolicy("nextjs#bundler", policy); +/******/ } +/******/ } +/******/ return policy; +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/trusted types script */ +/******/ !function() { +/******/ __webpack_require__.ts = function(script) { return __webpack_require__.tt().createScript(script); }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/react refresh */ +/******/ !function() { +/******/ if (__webpack_require__.i) { +/******/ __webpack_require__.i.push(function(options) { +/******/ var originalFactory = options.factory; +/******/ options.factory = function(moduleObject, moduleExports, webpackRequire) { +/******/ var hasRefresh = typeof self !== "undefined" && !!self.$RefreshInterceptModuleExecution$; +/******/ var cleanup = hasRefresh ? self.$RefreshInterceptModuleExecution$(moduleObject.id) : function() {}; +/******/ try { +/******/ originalFactory.call(this, moduleObject, moduleExports, webpackRequire); +/******/ } finally { +/******/ cleanup(); +/******/ } +/******/ } +/******/ }) +/******/ } +/******/ }(); +/******/ +/******/ /* webpack/runtime/compat */ +/******/ +/******/ +/******/ // noop fns to prevent runtime errors during initialization +/******/ if (typeof self !== "undefined") { +/******/ self.$RefreshReg$ = function () {}; +/******/ self.$RefreshSig$ = function () { +/******/ return function (type) { +/******/ return type; +/******/ }; +/******/ }; +/******/ } +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module can't be inlined because the eval-source-map devtool is used. +/******/ var __webpack_exports__ = {}; +/******/ __webpack_modules__["./node_modules/@ducanh2912/next-pwa/dist/fallback.js"](0, __webpack_exports__, __webpack_require__); +/******/ +/******/ })() +; \ No newline at end of file diff --git a/public/images/logo/lam.png b/public/images/logo/lam.png index f77d25bd07f7a555667ba20b68c5bfbe1d17da9e..9cbe90d33a69768359903107364ee29ac588c38a 100644 GIT binary patch literal 261950 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

IUvCxNpJ<1 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� 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�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

+6p-GT~wx0X#$2VhbCI%wf#Ps?7EjOk!M5 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�EzZd*_k;9SG?>be-&Qy@VX%f$1-i21K%IJ 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 z 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∋rp{W=g)H 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 URL(s+".js",c).href,a[s]||new Promise((a=>{if("document"in self){const e=document.createElement("script");e.src=s,e.onload=a,document.head.appendChild(e)}else e=s,importScripts(s),a()})).then((()=>{let e=a[s];if(!e)throw new Error(`Module ${s} didn’t register its module`);return e})));self.define=(c,i)=>{const n=e||("document"in self?document.currentScript.src:"")||location.href;if(a[n])return;let t={};const f=e=>s(e,n),r={module:{uri:n},exports:t,require:f};a[n]=Promise.all(c.map((e=>r[e]||f(e)))).then((e=>(i(...e),t)))}}define(["./workbox-c06b064f"],(function(e){"use strict";importScripts("/fallback-ce627215c0e4a9af.js"),self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"/_next/static/HocLuybuPOLcUC6NGe9sI/_buildManifest.js",revision:"66a650a40453999ca40002ee32e3481e"},{url:"/_next/static/HocLuybuPOLcUC6NGe9sI/_ssgManifest.js",revision:"b6652df95db52feb4daf4eca35380933"},{url:"/_next/static/chunks/135-fbe9e1bd4358248a.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/13b76428-56ef92d027d6786a.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/148-76a3e61f8b509e85.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/235-44d31a43a4a9f007.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/245-7a31a50c90ece09f.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/313-2ca7f36ac98d1f42.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/361-1eadcd47b00762f2.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/375-b9d52f23ead03da9.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/396-d24fc3578f46fc4e.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/478-18c8f2345006432f.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/525-4c1f9a0f7eae889b.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/568-fd836c769a6919a6.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/747-1e11f0325e4f5aa5.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/778-315d8ff4db0336f1.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/807-9065b9e93d5afb07.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/874-3409183e9254cad1.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/889-db564906afe704f4.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/906-47764d1840e263ce.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/92-41d871ab515da13f.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/986-62db81ee10936871.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/app/about-us/page-7acd3145d93381bc.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/app/add-buy/page-f2c872005a0397bc.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/app/app/acount/page-f83ba430764f1ea1.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/app/app/coffee-brew/page-b5f5e7bb4c561fa1.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/app/app/employees/page-abb35b7c2cf5b86b.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/app/app/home/page-435b85b59b5f64cc.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/app/app/login/page-f4896bdf871fdd06.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/app/app/news/page-9e4a8508082ecfec.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/app/app/shifts/complete-shift/page-cd28ad634fcfd257.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/app/app/shifts/manage-shift/page-83bf971f64f5349f.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/app/app/shifts/page-5b77d58a9800268f.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/app/app/tasks/add-task/page-d7ff93922fa8a331.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/app/app/tasks/page-5ff180539e8c08eb.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/app/layout-8e4596961d262d2e.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/app/page-927da11e5cd02a0b.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/app/pricing/page-79265f7f6948f655.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/ca377847-c7b13a2d3dbd7978.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/fd9d1056-76aadce26f555392.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/framework-89837f5784be6e42.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/main-5485f73f6f712ade.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/main-app-463a5ceba39d13c0.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/pages/_app-52924524f99094ab.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/pages/_error-c92d5c4bb2b49926.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js",revision:"79330112775102f91e1010318bae2bd3"},{url:"/_next/static/chunks/webpack-6ab4177fbe0089ba.js",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/_next/static/css/2d0b62e6e148789e.css",revision:"2d0b62e6e148789e"},{url:"/_next/static/css/34c26eb5be187d8a.css",revision:"34c26eb5be187d8a"},{url:"/_next/static/css/7ed86a6f2ce35613.css",revision:"7ed86a6f2ce35613"},{url:"/_next/static/css/afd026d3c415d315.css",revision:"afd026d3c415d315"},{url:"/_next/static/media/26a46d62cd723877-s.woff2",revision:"befd9c0fdfa3d8a645d5f95717ed6420"},{url:"/_next/static/media/55c55f0601d81cf3-s.woff2",revision:"43828e14271c77b87e3ed582dbff9f74"},{url:"/_next/static/media/581909926a08bbc8-s.woff2",revision:"f0b86e7c24f455280b8df606b89af891"},{url:"/_next/static/media/6d93bde91c0c2823-s.woff2",revision:"621a07228c8ccbfd647918f1021b4868"},{url:"/_next/static/media/97e0cb1ae144a2a9-s.woff2",revision:"e360c61c5bd8d90639fd4503c829c2dc"},{url:"/_next/static/media/Vector1.8129c6ce.png",revision:"17a7084f16c85847f17977f594679ced"},{url:"/_next/static/media/a34f9d1faa5f3315-s.p.woff2",revision:"d4fe31e6a2aebc06b8d6e558c9141119"},{url:"/_next/static/media/adjust.8a4e8d0e.png",revision:"5211a7519534ca172844a42bce17465a"},{url:"/_next/static/media/adjustw.750c874c.png",revision:"cdde1aad7bebb72f4badb0789f7e6e27"},{url:"/_next/static/media/app.542d2db5.png",revision:"5cf2e6ff5ef3237a6f9ad369cc92dc76"},{url:"/_next/static/media/backend.8008d8ae.png",revision:"b6f97a0bb77c12636d32a57efacd1d10"},{url:"/_next/static/media/bg.64a109c7.png",revision:"64a109c7"},{url:"/_next/static/media/carrent.f51c1ee5.png",revision:"de7775e7e769abcd0478a0f32554addf"},{url:"/_next/static/media/close.64934c3b.svg",revision:"333c66a5dff1d7cc3968f6e7af4c5b2c"},{url:"/_next/static/media/creator.69ea3236.png",revision:"2fb53dc768e9f2b21e8eba0b31c50f1d"},{url:"/_next/static/media/css.a39d8948.png",revision:"562320553594c7fc047b9d0cf55233ab"},{url:"/_next/static/media/df0a9ae256c0569c-s.woff2",revision:"d54db44de5ccb18886ece2fda72bdfe0"},{url:"/_next/static/media/docker.888df998.png",revision:"48daa53dc2e75aa18777f55eb610c4f1"},{url:"/_next/static/media/figma.522534b7.png",revision:"897539713a3105b6ee3b797851459130"},{url:"/_next/static/media/git.3337db5a.png",revision:"91e38c1fb4b2410c06d56542d09086d0"},{url:"/_next/static/media/github.665bfffe.png",revision:"69b7e397e348747e802b90e5eb0bfbd4"},{url:"/_next/static/media/html.5faed4ed.png",revision:"ff5aca29bd447b791c743ad0075e5aa3"},{url:"/_next/static/media/ig.1b04410f.png",revision:"ad3e83bda02be12d20e80665a2d35d0d"},{url:"/_next/static/media/javascript.80891722.png",revision:"c1f39577de277de6ff5f654e996f1028"},{url:"/_next/static/media/jobit.2df3aeaa.png",revision:"261dcd8d434a22a8ce067dcfe77160b8"},{url:"/_next/static/media/lam.a61d06b3.png",revision:"31d23d6bb5b90b53b6b6c3b03d7cc598"},{url:"/_next/static/media/loading.5d5a7205.gif",revision:"bac61c8d9306edae5b74e399d1485ad3"},{url:"/_next/static/media/logo.82328059.svg",revision:"2c844ef471eafcba8331c476cfef883b"},{url:"/_next/static/media/logo.9568c8e7.png",revision:"9cde4940e517fbafd74784802b462e5b"},{url:"/_next/static/media/logo2.26701545.png",revision:"a876896a85faad3f81a50af5ac1392f9"},{url:"/_next/static/media/logo2.8d20420d.png",revision:"97bc09c6257714ce55faa41bc2da88b5"},{url:"/_next/static/media/menu.3fc6164d.svg",revision:"d4926d3f2dc6c41bdcb19909d4ae93c8"},{url:"/_next/static/media/meta.3b282ee4.png",revision:"c39c206e11ef45ddc19167e6c167e1d8"},{url:"/_next/static/media/mobile.6333563d.png",revision:"9537758db1d756949a924fcd4404895f"},{url:"/_next/static/media/mongodb.004a26cb.png",revision:"1fb83876d8f00b2f67374b05838d09d2"},{url:"/_next/static/media/nodejs.fbe4a5b0.png",revision:"9e79e8c3cdcccfc06c9840883f15b2c1"},{url:"/_next/static/media/notif.1e9f8243.png",revision:"bd85e30b2bf85bc83b9189b47bbac828"},{url:"/_next/static/media/phi1.ba638ea9.png",revision:"1116ff7c816453d26ea5fe9ae84169d1"},{url:"/_next/static/media/phi2.8f52adc1.png",revision:"72f098a8c6fd79ff2300e47467237f0d"},{url:"/_next/static/media/phi3.00f9ce61.png",revision:"a80bc58f24f702839feb34b5043679d8"},{url:"/_next/static/media/reactjs.38edcd3f.png",revision:"f70556624353bdc24ec1e69a2d979630"},{url:"/_next/static/media/redux.fd412f4b.png",revision:"31f3e54c7d49efed1b6a03edc4476ba2"},{url:"/_next/static/media/ros.990a7841.png",revision:"145618df97c1ecb76a6ef3d349248e0c"},{url:"/_next/static/media/setting.752bec9e.png",revision:"8a4a4a0bc0dc99c74dfb06ab82183f1c"},{url:"/_next/static/media/shopify.c8963632.png",revision:"7d0c465185ea1aa651737aedf2e889f9"},{url:"/_next/static/media/starbucks.ca9c1564.png",revision:"739125c98702ba3575a572618abc82f6"},{url:"/_next/static/media/tailwind.cd1d4bac.png",revision:"c73f9afce409c73a75bb36ce9da84a94"},{url:"/_next/static/media/tesla.cd57c981.png",revision:"00f12a1675ac2554f83449c254abfc66"},{url:"/_next/static/media/threejs.fe404a12.svg",revision:"d75c09a5a967d4425a175b6bfe5ca4e5"},{url:"/_next/static/media/tuk.a8268338.png",revision:"e209dfe18a1e168cd56f8cf85ca4a800"},{url:"/_next/static/media/tuk.e4f3e0e2.png",revision:"f0ef8c133b136488c44fbee1c27aba25"},{url:"/_next/static/media/typescript.ccdf44e2.png",revision:"6a41ab01fd39f8bae6bad97ef7109cf9"},{url:"/_next/static/media/vee.321f6ec3.png",revision:"752e6df9e64b8554669ecbc95bb0cde4"},{url:"/_next/static/media/web.a0fb760b.png",revision:"f59df0f5b55cde9fc8e02c3dfe1e3540"},{url:"/_next/static/media/woo.abc77e01.png",revision:"e40cf597740cf29d2cab57b3720a4c26"},{url:"/android-chrome-192x192.png",revision:"5a2b679c2087c606306393171e90e5e3"},{url:"/android-chrome-512x512.png",revision:"70e7c2793f6a0cc9cf2e15bf618938d0"},{url:"/apple-touch-icon.png",revision:"73ac676e78dc2f3a4ca9fb7f6d7ab8a2"},{url:"/browserconfig.xml",revision:"a493ba0aa0b8ec8068d786d7248bb92c"},{url:"/fallback-ce627215c0e4a9af.js",revision:"a5281aa1504c5d6bcd7ba1097870376a"},{url:"/favicon-16x16.png",revision:"b59e99894c6ece0c4acf1bd30a61f293"},{url:"/favicon-32x32.png",revision:"722bded6887acd0241f8e05917a4b180"},{url:"/favicon.ico",revision:"9292c7c8eef1860fa5093b1ce664c11c"},{url:"/fonts/woff/KalamehWeb-Black.woff",revision:"76927eb3c8978995345660385aff7ec4"},{url:"/fonts/woff/KalamehWeb-Bold.woff",revision:"962a46f356f93fe9a4aadc4dd2ed0eec"},{url:"/fonts/woff/KalamehWeb-ExtraBold.woff",revision:"2bc26bafe58675b967b6679f0c988702"},{url:"/fonts/woff/KalamehWeb-ExtraLight.woff",revision:"2c34c6b56cf5d5f28b855a26e12c7903"},{url:"/fonts/woff/KalamehWeb-Light.woff",revision:"bcf5ef6b7b982e0ab7290e6c2cda510b"},{url:"/fonts/woff/KalamehWeb-Medium.woff",revision:"f10476fa00c806a8862f8d28510e0d61"},{url:"/fonts/woff/KalamehWeb-Regular.woff",revision:"7aa63793827e31b8e41fda71f8072de6"},{url:"/fonts/woff/KalamehWeb-SemiBold.woff",revision:"494ba66e4eaa329a55c61419b2054fcf"},{url:"/fonts/woff/KalamehWeb-Thin.woff",revision:"bd4a8af2c70bebc7ec5342da46b27cdc"},{url:"/fonts/woff2/KalamehWeb-Black.woff2",revision:"64befedcea62edb8d51adf7b6c9e0cf9"},{url:"/fonts/woff2/KalamehWeb-Bold.woff2",revision:"341e8d81a6ad98239138dfe2f29c7e3d"},{url:"/fonts/woff2/KalamehWeb-ExtraBold.woff2",revision:"a3d26b194c12792fe056884bb54be360"},{url:"/fonts/woff2/KalamehWeb-ExtraLight.woff2",revision:"3d0141c1e3552bdc2cb5ce9d2d49c573"},{url:"/fonts/woff2/KalamehWeb-Light.woff2",revision:"a7aaf4d231f0df6371846801379cb489"},{url:"/fonts/woff2/KalamehWeb-Medium.woff2",revision:"847e07561576a0465bc688345bfef035"},{url:"/fonts/woff2/KalamehWeb-Regular.woff2",revision:"14520e3d88672cebe595a4dd4e8d1e68"},{url:"/fonts/woff2/KalamehWeb-SemiBold.woff2",revision:"25c8a9f46296bf3edb1e9c9b24a98ad5"},{url:"/fonts/woff2/KalamehWeb-Thin.woff2",revision:"416a93f37781ddfc7bc91f75d0f0a9f5"},{url:"/images/Vector1.png",revision:"17a7084f16c85847f17977f594679ced"},{url:"/images/adjust.png",revision:"5211a7519534ca172844a42bce17465a"},{url:"/images/adjustw.png",revision:"cdde1aad7bebb72f4badb0789f7e6e27"},{url:"/images/bg.png",revision:"d59230ecd8a56fd3d09d20a5f367cfbf"},{url:"/images/cloud1.png",revision:"36648f073e8cce0a55e579fd550e5d84"},{url:"/images/cloud2.png",revision:"972cec38053ef477ffad876d5fcd423c"},{url:"/images/cloud3.png",revision:"9815b2f8a56546d759ff529c2ed0df13"},{url:"/images/core.png",revision:"aa45ef82e9a55762a3a4c70fa2e703fa"},{url:"/images/extract.png",revision:"300f35767658e1c01700daf62ebad59f"},{url:"/images/ig.png",revision:"ad3e83bda02be12d20e80665a2d35d0d"},{url:"/images/loading.gif",revision:"bac61c8d9306edae5b74e399d1485ad3"},{url:"/images/logo-t.png",revision:"d5ca78535960c4937278993900a53423"},{url:"/images/logo.png",revision:"9cde4940e517fbafd74784802b462e5b"},{url:"/images/logo/lam.png",revision:"31d23d6bb5b90b53b6b6c3b03d7cc598"},{url:"/images/logo/ros.png",revision:"145618df97c1ecb76a6ef3d349248e0c"},{url:"/images/logo/tuk.png",revision:"f0ef8c133b136488c44fbee1c27aba25"},{url:"/images/logo/vee.png",revision:"752e6df9e64b8554669ecbc95bb0cde4"},{url:"/images/logo/woo.png",revision:"e40cf597740cf29d2cab57b3720a4c26"},{url:"/images/logo2.png",revision:"97bc09c6257714ce55faa41bc2da88b5"},{url:"/images/notif.png",revision:"bd85e30b2bf85bc83b9189b47bbac828"},{url:"/images/person.png",revision:"686018c95d96501c6f78256e85c6fed3"},{url:"/images/phi1t.png",revision:"c45c717d505a6a26c87ee68a8b47e5b6"},{url:"/images/scales.png",revision:"9878c309208f0879891bec07e1d728b2"},{url:"/images/setting.png",revision:"8a4a4a0bc0dc99c74dfb06ab82183f1c"},{url:"/images/smile.gif",revision:"82896dd0e700e257a4d6a0002663a806"},{url:"/images/task.png",revision:"d7b1ada9aacebb1c1b32b4a17976a39e"},{url:"/images/test.gif",revision:"d3869163799f9c6055a3a6c96ace08ee"},{url:"/images/timer.png",revision:"c3122960ecb8cada6c9f5970fc85e750"},{url:"/images/tuk.png",revision:"e209dfe18a1e168cd56f8cf85ca4a800"},{url:"/manifest.json",revision:"8c6744a64965df82f708eb8d04bc1b22"},{url:"/mstile-150x150.png",revision:"078e558a0511af65e96a21bfe3dad74c"},{url:"/offline",revision:"HocLuybuPOLcUC6NGe9sI"},{url:"/safari-pinned-tab.svg",revision:"d7f01631a8bb713216ac118b4fd19730"},{url:"/site.webmanifest",revision:"ff21f16e80257e0b9256bd0eee876b87"},{url:"/swe-worker-5c72df51bb1f6ee0.js",revision:"5a47d90db13bb1309b25bdf7b363570e"}],{ignoreURLParametersMatching:[/^utm_/,/^fbclid$/]}),e.cleanupOutdatedCaches(),e.registerRoute("/",new e.NetworkFirst({cacheName:"start-url",plugins:[{cacheWillUpdate:async({response:e})=>e&&"opaqueredirect"===e.type?new Response(e.body,{status:200,statusText:"OK",headers:e.headers}):e},{handlerDidError:async({request:e})=>"undefined"!=typeof self?self.fallback(e):Response.error()}]}),"GET"),e.registerRoute(/^https:\/\/fonts\.(?:gstatic)\.com\/.*/i,new e.CacheFirst({cacheName:"google-fonts-webfonts",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:31536e3}),{handlerDidError:async({request:e})=>"undefined"!=typeof self?self.fallback(e):Response.error()}]}),"GET"),e.registerRoute(/^https:\/\/fonts\.(?:googleapis)\.com\/.*/i,new e.StaleWhileRevalidate({cacheName:"google-fonts-stylesheets",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:604800}),{handlerDidError:async({request:e})=>"undefined"!=typeof self?self.fallback(e):Response.error()}]}),"GET"),e.registerRoute(/\.(?:eot|otf|ttc|ttf|woff|woff2|font.css)$/i,new e.StaleWhileRevalidate({cacheName:"static-font-assets",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:604800}),{handlerDidError:async({request:e})=>"undefined"!=typeof self?self.fallback(e):Response.error()}]}),"GET"),e.registerRoute(/\.(?:jpg|jpeg|gif|png|svg|ico|webp)$/i,new e.StaleWhileRevalidate({cacheName:"static-image-assets",plugins:[new e.ExpirationPlugin({maxEntries:64,maxAgeSeconds:2592e3}),{handlerDidError:async({request:e})=>"undefined"!=typeof self?self.fallback(e):Response.error()}]}),"GET"),e.registerRoute(/\/_next\/static.+\.js$/i,new e.CacheFirst({cacheName:"next-static-js-assets",plugins:[new e.ExpirationPlugin({maxEntries:64,maxAgeSeconds:86400}),{handlerDidError:async({request:e})=>"undefined"!=typeof self?self.fallback(e):Response.error()}]}),"GET"),e.registerRoute(/\/_next\/image\?url=.+$/i,new e.StaleWhileRevalidate({cacheName:"next-image",plugins:[new e.ExpirationPlugin({maxEntries:64,maxAgeSeconds:86400}),{handlerDidError:async({request:e})=>"undefined"!=typeof self?self.fallback(e):Response.error()}]}),"GET"),e.registerRoute(/\.(?:mp3|wav|ogg)$/i,new e.CacheFirst({cacheName:"static-audio-assets",plugins:[new e.RangeRequestsPlugin,new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400}),{handlerDidError:async({request:e})=>"undefined"!=typeof self?self.fallback(e):Response.error()}]}),"GET"),e.registerRoute(/\.(?:mp4|webm)$/i,new e.CacheFirst({cacheName:"static-video-assets",plugins:[new e.RangeRequestsPlugin,new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400}),{handlerDidError:async({request:e})=>"undefined"!=typeof self?self.fallback(e):Response.error()}]}),"GET"),e.registerRoute(/\.(?:js)$/i,new e.StaleWhileRevalidate({cacheName:"static-js-assets",plugins:[new e.ExpirationPlugin({maxEntries:48,maxAgeSeconds:86400}),{handlerDidError:async({request:e})=>"undefined"!=typeof self?self.fallback(e):Response.error()}]}),"GET"),e.registerRoute(/\.(?:css|less)$/i,new e.StaleWhileRevalidate({cacheName:"static-style-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400}),{handlerDidError:async({request:e})=>"undefined"!=typeof self?self.fallback(e):Response.error()}]}),"GET"),e.registerRoute(/\/_next\/data\/.+\/.+\.json$/i,new e.StaleWhileRevalidate({cacheName:"next-data",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400}),{handlerDidError:async({request:e})=>"undefined"!=typeof self?self.fallback(e):Response.error()}]}),"GET"),e.registerRoute(/\.(?:json|xml|csv)$/i,new e.NetworkFirst({cacheName:"static-data-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400}),{handlerDidError:async({request:e})=>"undefined"!=typeof self?self.fallback(e):Response.error()}]}),"GET"),e.registerRoute((({sameOrigin:e,url:{pathname:a}})=>!(!e||a.startsWith("/api/auth/callback")||!a.startsWith("/api/"))),new e.NetworkFirst({cacheName:"apis",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:16,maxAgeSeconds:86400}),{handlerDidError:async({request:e})=>"undefined"!=typeof self?self.fallback(e):Response.error()}]}),"GET"),e.registerRoute((({request:e,url:{pathname:a},sameOrigin:s})=>"1"===e.headers.get("RSC")&&"1"===e.headers.get("Next-Router-Prefetch")&&s&&!a.startsWith("/api/")),new e.NetworkFirst({cacheName:"pages-rsc-prefetch",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400}),{handlerDidError:async({request:e})=>"undefined"!=typeof self?self.fallback(e):Response.error()}]}),"GET"),e.registerRoute((({request:e,url:{pathname:a},sameOrigin:s})=>"1"===e.headers.get("RSC")&&s&&!a.startsWith("/api/")),new e.NetworkFirst({cacheName:"pages-rsc",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400}),{handlerDidError:async({request:e})=>"undefined"!=typeof self?self.fallback(e):Response.error()}]}),"GET"),e.registerRoute((({url:{pathname:e},sameOrigin:a})=>a&&!e.startsWith("/api/")),new e.NetworkFirst({cacheName:"pages",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400}),{handlerDidError:async({request:e})=>"undefined"!=typeof self?self.fallback(e):Response.error()}]}),"GET"),e.registerRoute((({sameOrigin:e})=>!e),new e.NetworkFirst({cacheName:"cross-origin",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:3600}),{handlerDidError:async({request:e})=>"undefined"!=typeof self?self.fallback(e):Response.error()}]}),"GET"),self.__WB_DISABLE_DEV_LOGS=!0})); +/** + * Copyright 2018 Google Inc. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// If the loader is already loaded, just stop. +if (!self.define) { + let registry = {}; + + // Used for `eval` and `importScripts` where we can't get script URL by other means. + // In both cases, it's safe to use a global var because those functions are synchronous. + let nextDefineUri; + + const singleRequire = (uri, parentUri) => { + uri = new URL(uri + ".js", parentUri).href; + return registry[uri] || ( + + new Promise(resolve => { + if ("document" in self) { + const script = document.createElement("script"); + script.src = uri; + script.onload = resolve; + document.head.appendChild(script); + } else { + nextDefineUri = uri; + importScripts(uri); + resolve(); + } + }) + + .then(() => { + let promise = registry[uri]; + if (!promise) { + throw new Error(`Module ${uri} didn’t register its module`); + } + return promise; + }) + ); + }; + + self.define = (depsNames, factory) => { + const uri = nextDefineUri || ("document" in self ? document.currentScript.src : "") || location.href; + if (registry[uri]) { + // Module is already loading or loaded. + return; + } + let exports = {}; + const require = depUri => singleRequire(depUri, uri); + const specialDeps = { + module: { uri }, + exports, + require + }; + registry[uri] = Promise.all(depsNames.map( + depName => specialDeps[depName] || require(depName) + )).then(deps => { + factory(...deps); + return exports; + }); + }; +} +define(['./workbox-1e54d6fe'], (function (workbox) { 'use strict'; + + importScripts("/fallback-development.js"); + self.skipWaiting(); + workbox.clientsClaim(); + + /** + * The precacheAndRoute() method efficiently caches and responds to + * requests for URLs in the manifest. + * See https://goo.gl/S9QRab + */ + workbox.precacheAndRoute([{ + "url": "/offline", + "revision": "development" + }], { + "ignoreURLParametersMatching": [/^utm_/, /^fbclid$/, /ts/] + }); + workbox.cleanupOutdatedCaches(); + workbox.registerRoute("/", new workbox.NetworkFirst({ + "cacheName": "start-url", + plugins: [{ + cacheWillUpdate: async ({ + response: e + }) => e && "opaqueredirect" === e.type ? new Response(e.body, { + status: 200, + statusText: "OK", + headers: e.headers + }) : e + }, { + handlerDidError: async ({ + request: e + }) => "undefined" != typeof self ? self.fallback(e) : Response.error() + }] + }), 'GET'); + workbox.registerRoute(/.*/i, new workbox.NetworkOnly({ + "cacheName": "dev", + plugins: [{ + handlerDidError: async ({ + request: e + }) => "undefined" != typeof self ? self.fallback(e) : Response.error() + }] + }), 'GET'); + self.__WB_DISABLE_DEV_LOGS = true; + +})); +//# sourceMappingURL=sw.js.map diff --git a/public/sw.js.map b/public/sw.js.map new file mode 100644 index 0000000..d3f7bf9 --- /dev/null +++ b/public/sw.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sw.js","sources":["C:/Users/jp/AppData/Local/Temp/22e5eb117e35b3c05e1938dba23b1eb0/sw.js"],"sourcesContent":["import {registerRoute as workbox_routing_registerRoute} from 'Y:/projects/brizco/node_modules/workbox-routing/registerRoute.mjs';\nimport {NetworkFirst as workbox_strategies_NetworkFirst} from 'Y:/projects/brizco/node_modules/workbox-strategies/NetworkFirst.mjs';\nimport {NetworkOnly as workbox_strategies_NetworkOnly} from 'Y:/projects/brizco/node_modules/workbox-strategies/NetworkOnly.mjs';\nimport {clientsClaim as workbox_core_clientsClaim} from 'Y:/projects/brizco/node_modules/workbox-core/clientsClaim.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from 'Y:/projects/brizco/node_modules/workbox-precaching/precacheAndRoute.mjs';\nimport {cleanupOutdatedCaches as workbox_precaching_cleanupOutdatedCaches} from 'Y:/projects/brizco/node_modules/workbox-precaching/cleanupOutdatedCaches.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\nimportScripts(\n \"/fallback-development.js\"\n);\n\n\n\n\n\n\n\nself.skipWaiting();\n\nworkbox_core_clientsClaim();\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"/offline\",\n \"revision\": \"development\"\n }\n], {\n \"ignoreURLParametersMatching\": [/^utm_/, /^fbclid$/, /ts/]\n});\nworkbox_precaching_cleanupOutdatedCaches();\n\n\n\nworkbox_routing_registerRoute(\"/\", new workbox_strategies_NetworkFirst({ \"cacheName\":\"start-url\", plugins: [{ cacheWillUpdate: async ({ response: e })=>e && \"opaqueredirect\" === e.type ? new Response(e.body, { status: 200, statusText: \"OK\", headers: e.headers }) : e }, { handlerDidError: async ({ request: e })=>\"undefined\" != typeof self ? self.fallback(e) : Response.error() }] }), 'GET');\nworkbox_routing_registerRoute(/.*/i, new workbox_strategies_NetworkOnly({ \"cacheName\":\"dev\", plugins: [{ handlerDidError: async ({ request: e })=>\"undefined\" != typeof self ? self.fallback(e) : Response.error() }] }), 'GET');\n\n\n\n\nself.__WB_DISABLE_DEV_LOGS = true;"],"names":["importScripts","self","skipWaiting","workbox_core_clientsClaim","workbox_precaching_precacheAndRoute","workbox_precaching_cleanupOutdatedCaches","workbox_routing_registerRoute","workbox_strategies_NetworkFirst","plugins","cacheWillUpdate","response","e","type","Response","body","status","statusText","headers","handlerDidError","request","fallback","error","workbox_strategies_NetworkOnly","__WB_DISABLE_DEV_LOGS"],"mappings":"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"} \ No newline at end of file diff --git a/public/swe-worker-5c72df51bb1f6ee0.js b/public/swe-worker-5c72df51bb1f6ee0.js deleted file mode 100644 index 36e6e59..0000000 --- a/public/swe-worker-5c72df51bb1f6ee0.js +++ /dev/null @@ -1 +0,0 @@ -self.onmessage=async e=>{switch(e.data.type){case"__START_URL_CACHE__":{let t=e.data.url,a=await fetch(t);if(!a.redirected)return(await caches.open("start-url")).put(t,a);return Promise.resolve()}case"__FRONTEND_NAV_CACHE__":{let t=e.data.url,a=await caches.open("pages");if(await a.match(t,{ignoreSearch:!0}))return;let s=await fetch(t);if(!s.ok)return;if(a.put(t,s.clone()),e.data.shouldCacheAggressively&&s.headers.get("Content-Type")?.includes("text/html"))try{let e=await s.text(),t=[],a=await caches.open("static-style-assets"),r=await caches.open("next-static-js-assets"),c=await caches.open("static-js-assets");for(let[s,r]of e.matchAll(//g))/rel=['"]stylesheet['"]/.test(s)&&t.push(a.match(r).then(e=>e?Promise.resolve():a.add(r)));for(let[,a]of e.matchAll(//g)){let e=/\/_next\/static.+\.js$/i.test(a)?r:c;t.push(e.match(a).then(t=>t?Promise.resolve():e.add(a)))}return await Promise.all(t)}catch{}return Promise.resolve()}default:return Promise.resolve()}}; \ No newline at end of file diff --git a/public/swe-worker-development.js b/public/swe-worker-development.js new file mode 100644 index 0000000..d8ae94f --- /dev/null +++ b/public/swe-worker-development.js @@ -0,0 +1,102 @@ +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +/******/ (function() { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./node_modules/@ducanh2912/next-pwa/dist/sw-entry-worker.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@ducanh2912/next-pwa/dist/sw-entry-worker.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\nself.onmessage = async (e)=>{\n switch(e.data.type){\n case \"__START_URL_CACHE__\":\n {\n let t = e.data.url, a = await fetch(t);\n if (!a.redirected) return (await caches.open(\"start-url\")).put(t, a);\n return Promise.resolve();\n }\n case \"__FRONTEND_NAV_CACHE__\":\n {\n let t = e.data.url, a = await caches.open(\"pages\");\n if (await a.match(t, {\n ignoreSearch: !0\n })) return;\n let s = await fetch(t);\n if (!s.ok) return;\n if (a.put(t, s.clone()), e.data.shouldCacheAggressively && s.headers.get(\"Content-Type\")?.includes(\"text/html\")) try {\n let e = await s.text(), t = [], a = await caches.open(\"static-style-assets\"), r = await caches.open(\"next-static-js-assets\"), c = await caches.open(\"static-js-assets\");\n for (let [s, r] of e.matchAll(//g))/rel=['\"]stylesheet['\"]/.test(s) && t.push(a.match(r).then((e)=>e ? Promise.resolve() : a.add(r)));\n for (let [, a] of e.matchAll(//g)){\n let e = /\\/_next\\/static.+\\.js$/i.test(a) ? r : c;\n t.push(e.match(a).then((t)=>t ? Promise.resolve() : e.add(a)));\n }\n return await Promise.all(t);\n } catch {}\n return Promise.resolve();\n }\n default:\n return Promise.resolve();\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGR1Y2FuaDI5MTIvbmV4dC1wd2EvZGlzdC9zdy1lbnRyeS13b3JrZXIuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGR1Y2FuaDI5MTIvbmV4dC1wd2EvZGlzdC9zdy1lbnRyeS13b3JrZXIuanM/NmM4NCJdLCJzb3VyY2VzQ29udGVudCI6WyJzZWxmLm9ubWVzc2FnZSA9IGFzeW5jIChlKT0+e1xuICAgIHN3aXRjaChlLmRhdGEudHlwZSl7XG4gICAgICAgIGNhc2UgXCJfX1NUQVJUX1VSTF9DQUNIRV9fXCI6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGV0IHQgPSBlLmRhdGEudXJsLCBhID0gYXdhaXQgZmV0Y2godCk7XG4gICAgICAgICAgICAgICAgaWYgKCFhLnJlZGlyZWN0ZWQpIHJldHVybiAoYXdhaXQgY2FjaGVzLm9wZW4oXCJzdGFydC11cmxcIikpLnB1dCh0LCBhKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJfX0ZST05URU5EX05BVl9DQUNIRV9fXCI6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGV0IHQgPSBlLmRhdGEudXJsLCBhID0gYXdhaXQgY2FjaGVzLm9wZW4oXCJwYWdlc1wiKTtcbiAgICAgICAgICAgICAgICBpZiAoYXdhaXQgYS5tYXRjaCh0LCB7XG4gICAgICAgICAgICAgICAgICAgIGlnbm9yZVNlYXJjaDogITBcbiAgICAgICAgICAgICAgICB9KSkgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGxldCBzID0gYXdhaXQgZmV0Y2godCk7XG4gICAgICAgICAgICAgICAgaWYgKCFzLm9rKSByZXR1cm47XG4gICAgICAgICAgICAgICAgaWYgKGEucHV0KHQsIHMuY2xvbmUoKSksIGUuZGF0YS5zaG91bGRDYWNoZUFnZ3Jlc3NpdmVseSAmJiBzLmhlYWRlcnMuZ2V0KFwiQ29udGVudC1UeXBlXCIpPy5pbmNsdWRlcyhcInRleHQvaHRtbFwiKSkgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGUgPSBhd2FpdCBzLnRleHQoKSwgdCA9IFtdLCBhID0gYXdhaXQgY2FjaGVzLm9wZW4oXCJzdGF0aWMtc3R5bGUtYXNzZXRzXCIpLCByID0gYXdhaXQgY2FjaGVzLm9wZW4oXCJuZXh0LXN0YXRpYy1qcy1hc3NldHNcIiksIGMgPSBhd2FpdCBjYWNoZXMub3BlbihcInN0YXRpYy1qcy1hc3NldHNcIik7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IFtzLCByXSBvZiBlLm1hdGNoQWxsKC88bGluay4qP2hyZWY9WydcIl0oLio/KVsnXCJdLio/Pi9nKSkvcmVsPVsnXCJdc3R5bGVzaGVldFsnXCJdLy50ZXN0KHMpICYmIHQucHVzaChhLm1hdGNoKHIpLnRoZW4oKGUpPT5lID8gUHJvbWlzZS5yZXNvbHZlKCkgOiBhLmFkZChyKSkpO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBbLCBhXSBvZiBlLm1hdGNoQWxsKC88c2NyaXB0Lio/c3JjPVsnXCJdKC4qPylbJ1wiXS4qPz4vZykpe1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGUgPSAvXFwvX25leHRcXC9zdGF0aWMuK1xcLmpzJC9pLnRlc3QoYSkgPyByIDogYztcbiAgICAgICAgICAgICAgICAgICAgICAgIHQucHVzaChlLm1hdGNoKGEpLnRoZW4oKHQpPT50ID8gUHJvbWlzZS5yZXNvbHZlKCkgOiBlLmFkZChhKSkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCBQcm9taXNlLmFsbCh0KTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoICB7fVxuICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICB9XG59OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ducanh2912/next-pwa/dist/sw-entry-worker.js\n")); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The require scope +/******/ var __webpack_require__ = {}; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/make namespace object */ +/******/ !function() { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/trusted types policy */ +/******/ !function() { +/******/ var policy; +/******/ __webpack_require__.tt = function() { +/******/ // Create Trusted Type policy if Trusted Types are available and the policy doesn't exist yet. +/******/ if (policy === undefined) { +/******/ policy = { +/******/ createScript: function(script) { return script; } +/******/ }; +/******/ if (typeof trustedTypes !== "undefined" && trustedTypes.createPolicy) { +/******/ policy = trustedTypes.createPolicy("nextjs#bundler", policy); +/******/ } +/******/ } +/******/ return policy; +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/trusted types script */ +/******/ !function() { +/******/ __webpack_require__.ts = function(script) { return __webpack_require__.tt().createScript(script); }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/react refresh */ +/******/ !function() { +/******/ if (__webpack_require__.i) { +/******/ __webpack_require__.i.push(function(options) { +/******/ var originalFactory = options.factory; +/******/ options.factory = function(moduleObject, moduleExports, webpackRequire) { +/******/ var hasRefresh = typeof self !== "undefined" && !!self.$RefreshInterceptModuleExecution$; +/******/ var cleanup = hasRefresh ? self.$RefreshInterceptModuleExecution$(moduleObject.id) : function() {}; +/******/ try { +/******/ originalFactory.call(this, moduleObject, moduleExports, webpackRequire); +/******/ } finally { +/******/ cleanup(); +/******/ } +/******/ } +/******/ }) +/******/ } +/******/ }(); +/******/ +/******/ /* webpack/runtime/compat */ +/******/ +/******/ +/******/ // noop fns to prevent runtime errors during initialization +/******/ if (typeof self !== "undefined") { +/******/ self.$RefreshReg$ = function () {}; +/******/ self.$RefreshSig$ = function () { +/******/ return function (type) { +/******/ return type; +/******/ }; +/******/ }; +/******/ } +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module can't be inlined because the eval-source-map devtool is used. +/******/ var __webpack_exports__ = {}; +/******/ __webpack_modules__["./node_modules/@ducanh2912/next-pwa/dist/sw-entry-worker.js"](0, __webpack_exports__, __webpack_require__); +/******/ +/******/ })() +; \ No newline at end of file diff --git a/public/workbox-1e54d6fe.js b/public/workbox-1e54d6fe.js new file mode 100644 index 0000000..876a7ee --- /dev/null +++ b/public/workbox-1e54d6fe.js @@ -0,0 +1,3593 @@ +define(['exports'], (function (exports) { 'use strict'; + + // @ts-ignore + try { + self['workbox:core:7.0.0'] && _(); + } catch (e) {} + + /* + 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 = (() => { + // 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 globalThis)) { + 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; + })(); + + /* + 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$1 = { + '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.`; + } + }; + + /* + 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 generatorFunction = (code, details = {}) => { + const message = messages$1[code]; + if (!message) { + throw new Error(`Unable to find message for code '${code}'.`); + } + return message(details); + }; + const messageGenerator = generatorFunction; + + /* + 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 = messageGenerator(errorCode, details); + super(message); + this.name = errorCode; + this.details = details; + } + } + + /* + 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 WorkboxError('not-an-array', details); + } + }; + const hasMethod = (object, expectedMethod, details) => { + const type = typeof object[expectedMethod]; + if (type !== 'function') { + details['expectedMethod'] = expectedMethod; + throw new WorkboxError('missing-a-method', details); + } + }; + const isType = (object, expectedType, details) => { + if (typeof object !== expectedType) { + details['expectedType'] = expectedType; + throw new 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 WorkboxError('incorrect-class', details); + } + }; + const isOneOf = (value, validValues, details) => { + if (!validValues.includes(value)) { + details['validValueDescription'] = `Valid values are ${JSON.stringify(validValues)}.`; + throw new WorkboxError('invalid-value', details); + } + }; + const isArrayOfClass = (value, + // Need general type to do check later. + expectedClass, + // eslint-disable-line + details) => { + const error = new 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 = { + hasMethod, + isArray, + isInstance, + isOneOf, + isType, + isArrayOfClass + }; + + // @ts-ignore + try { + self['workbox:routing:7.0.0'] && _(); + } catch (e) {} + + /* + 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} + * + * @private + */ + const validMethods = ['DELETE', 'GET', 'HEAD', 'PATCH', 'POST', 'PUT']; + + /* + 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') { + { + finalAssertExports.hasMethod(handler, 'handle', { + moduleName: 'workbox-routing', + className: 'Route', + funcName: 'constructor', + paramName: 'handler' + }); + } + return handler; + } else { + { + finalAssertExports.isType(handler, 'function', { + moduleName: 'workbox-routing', + className: 'Route', + funcName: 'constructor', + paramName: 'handler' + }); + } + return { + handle: handler + }; + } + }; + + /* + 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 = defaultMethod) { + { + finalAssertExports.isType(match, 'function', { + moduleName: 'workbox-routing', + className: 'Route', + funcName: 'constructor', + paramName: 'match' + }); + if (method) { + finalAssertExports.isOneOf(method, validMethods, { + paramName: 'method' + }); + } + } + // These values are referenced directly by Router so cannot be + // altered by minificaton. + this.handler = 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 = normalizeHandler(handler); + } + } + + /* + 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 { + /** + * 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) { + { + finalAssertExports.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) { + { + 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); + } + } + + /* + 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}`), ''); + }; + + /* + 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>} 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; + { + 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 | 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|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 + }) { + { + finalAssertExports.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')) { + { + 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 (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)) { + { + debugMessages.push(`Failed to find a matching route. Falling ` + `back to the default handler for ${method}.`); + } + handler = this._defaultHandlerMap.get(method); + } + if (!handler) { + { + // No handler so Workbox will do nothing. If logs is set of debug + // i.e. verbose, we should print out this information. + logger.debug(`No route found for: ${getFriendlyURL(url)}`); + } + return; + } + { + // We have a handler, meaning Workbox is going to handle the route. + // print the routing details to the console. + logger.groupCollapsed(`Router is responding to: ${getFriendlyURL(url)}`); + debugMessages.forEach(msg => { + if (Array.isArray(msg)) { + logger.log(...msg); + } else { + logger.log(msg); + } + }); + 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) { + { + // Still include URL here as it will be async from the console group + // and may not make sense without the URL + logger.groupCollapsed(`Error thrown when responding to: ` + ` ${getFriendlyURL(url)}. Falling back to route's Catch Handler.`); + logger.error(`Error thrown by:`, route); + logger.error(err); + logger.groupEnd(); + } + try { + return await catchHandler.handle({ + url, + request, + event, + params + }); + } catch (catchErr) { + if (catchErr instanceof Error) { + err = catchErr; + } + } + } + if (this._catchHandler) { + { + // Still include URL here as it will be async from the console group + // and may not make sense without the URL + logger.groupCollapsed(`Error thrown when responding to: ` + ` ${getFriendlyURL(url)}. Falling back to global Catch Handler.`); + logger.error(`Error thrown by:`, route); + logger.error(err); + 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) { + { + // Warn developers that using an async matchCallback is almost always + // not the right thing to do. + if (matchResult instanceof Promise) { + logger.warn(`While routing ${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 = defaultMethod) { + this._defaultHandlerMap.set(method, 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 = normalizeHandler(handler); + } + /** + * Registers a route with the router. + * + * @param {workbox-routing.Route} route The route to register. + */ + registerRoute(route) { + { + finalAssertExports.isType(route, 'object', { + moduleName: 'workbox-routing', + className: 'Router', + funcName: 'registerRoute', + paramName: 'route' + }); + finalAssertExports.hasMethod(route, 'match', { + moduleName: 'workbox-routing', + className: 'Router', + funcName: 'registerRoute', + paramName: 'route' + }); + finalAssertExports.isType(route.handler, 'object', { + moduleName: 'workbox-routing', + className: 'Router', + funcName: 'registerRoute', + paramName: 'route' + }); + finalAssertExports.hasMethod(route.handler, 'handle', { + moduleName: 'workbox-routing', + className: 'Router', + funcName: 'registerRoute', + paramName: 'route.handler' + }); + finalAssertExports.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 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 WorkboxError('unregister-route-route-not-registered'); + } + } + } + + /* + 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(); + // The helpers that use the default Router assume these listeners exist. + defaultRouter.addFetchListener(); + defaultRouter.addCacheListener(); + } + return defaultRouter; + }; + + /* + 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 (!(capture.startsWith('/') || capture.startsWith('http'))) { + throw new 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)) { + 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 (url.pathname === captureUrl.pathname && url.origin !== captureUrl.origin) { + 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(matchCallback, handler, method); + } else if (capture instanceof RegExp) { + // If `capture` is a `RegExp` then `handler` and `method` must be present. + route = new RegExpRoute(capture, handler, method); + } else if (typeof capture === 'function') { + // If `capture` is a function then `handler` and `method` must be present. + route = new Route(capture, handler, method); + } else if (capture instanceof Route) { + route = capture; + } else { + throw new WorkboxError('unsupported-route-type', { + moduleName: 'workbox-routing', + funcName: 'registerRoute', + paramName: 'capture' + }); + } + const defaultRouter = getOrCreateDefaultRouter(); + defaultRouter.registerRoute(route); + return route; + } + + // @ts-ignore + try { + self['workbox:strategies:7.0.0'] && _(); + } catch (e) {} + + /* + 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 cacheOkAndOpaquePlugin = { + /** + * Returns a valid response (to allow caching) if the status is 200 (OK) or + * 0 (opaque). + * + * @param {Object} options + * @param {Response} options.response + * @return {Response|null} + * + * @private + */ + cacheWillUpdate: async ({ + response + }) => { + if (response.status === 200 || response.status === 0) { + return response; + } + return null; + } + }; + + /* + 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; + } + }; + + /* + 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} ignoreParams + * @return {Promise} + */ + 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; + } + + /* + 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; + }); + } + } + + /* + 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(); + + /* + 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() { + { + logger.log(`About to run ${quotaErrorCallbacks.size} ` + `callbacks to clean up caches.`); + } + for (const callback of quotaErrorCallbacks) { + await callback(); + { + logger.log(callback, 'is complete.'); + } + } + { + logger.log('Finished running callbacks.'); + } + } + + /* + 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)); + } + + /* + 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 + */ + { + finalAssertExports.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 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} + */ + 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) { + { + logger.log(`Using a preloaded navigation response for ` + `'${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 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 ("development" !== 'production') { + logger.debug(`Network request for ` + `'${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) { + { + logger.log(`Network request for ` + `'${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} + */ + 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} 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 (cachedResponse) { + logger.debug(`Found a cached response in '${cacheName}'.`); + } else { + 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} `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 timeout(0); + const effectiveRequest = await this.getCacheKey(request, 'write'); + { + if (effectiveRequest.method && effectiveRequest.method !== 'GET') { + throw new WorkboxError('attempt-to-cache-non-get-request', { + url: getFriendlyURL(effectiveRequest.url), + method: effectiveRequest.method + }); + } + // See https://github.com/GoogleChrome/workbox/issues/2818 + const vary = response.headers.get('Vary'); + if (vary) { + logger.debug(`The response for ${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) { + { + logger.error(`Cannot cache non-existent response for ` + `'${getFriendlyURL(effectiveRequest.url)}'.`); + } + throw new WorkboxError('cache-put-with-no-response', { + url: getFriendlyURL(effectiveRequest.url) + }); + } + const responseToCache = await this._ensureResponseSafeToCache(response); + if (!responseToCache) { + { + logger.debug(`Response '${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 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; + { + logger.debug(`Updating the '${cacheName}' cache with a new Response ` + `for ${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 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} + */ + 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} + */ + *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} + * + * @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 (responseToCache) { + if (responseToCache.status !== 200) { + if (responseToCache.status === 0) { + 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 { + 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; + } + } + + /* + 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} [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 = cacheNames.getRuntimeName(options.cacheName); + /** + * The list + * [Plugins]{@link https://developers.google.com/web/tools/workbox/guides/using-plugins} + * used by this strategy. + * + * @type {Array} + */ + 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} 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(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 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 { + logger.log(`While responding to '${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} + * + * @memberof workbox-strategies.Strategy + */ + + /* + 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 = { + strategyStart: (strategyName, request) => `Using ${strategyName} to respond to '${getFriendlyURL(request.url)}'`, + printFinalResponse: response => { + if (response) { + logger.groupCollapsed(`View the final response here.`); + logger.log(response || '[No response returned]'); + logger.groupEnd(); + } + } + }; + + /* + 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. + */ + /** + * An implementation of a + * [network first](https://developer.chrome.com/docs/workbox/caching-strategies-overview/#network-first-falling-back-to-cache) + * request strategy. + * + * By default, this strategy will cache responses with a 200 status code as + * well as [opaque responses](https://developer.chrome.com/docs/workbox/caching-resources-during-runtime/#opaque-responses). + * Opaque responses are are cross-origin requests where the response doesn't + * support [CORS](https://enable-cors.org/). + * + * If the network request fails, and there is no cache match, this will throw + * a `WorkboxError` exception. + * + * @extends workbox-strategies.Strategy + * @memberof workbox-strategies + */ + class NetworkFirst extends Strategy { + /** + * @param {Object} [options] + * @param {string} [options.cacheName] Cache name to store and retrieve + * requests. Defaults to cache names provided by + * {@link workbox-core.cacheNames}. + * @param {Array} [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] [`CacheQueryOptions`](https://w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions) + * @param {number} [options.networkTimeoutSeconds] If set, any network requests + * that fail to respond within the timeout will fallback to the cache. + * + * This option can be used to combat + * "[lie-fi]{@link https://developers.google.com/web/fundamentals/performance/poor-connectivity/#lie-fi}" + * scenarios. + */ + constructor(options = {}) { + super(options); + // If this instance contains no plugins with a 'cacheWillUpdate' callback, + // prepend the `cacheOkAndOpaquePlugin` plugin to the plugins list. + if (!this.plugins.some(p => 'cacheWillUpdate' in p)) { + this.plugins.unshift(cacheOkAndOpaquePlugin); + } + this._networkTimeoutSeconds = options.networkTimeoutSeconds || 0; + { + if (this._networkTimeoutSeconds) { + finalAssertExports.isType(this._networkTimeoutSeconds, 'number', { + moduleName: 'workbox-strategies', + className: this.constructor.name, + funcName: 'constructor', + paramName: 'networkTimeoutSeconds' + }); + } + } + } + /** + * @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} + */ + async _handle(request, handler) { + const logs = []; + { + finalAssertExports.isInstance(request, Request, { + moduleName: 'workbox-strategies', + className: this.constructor.name, + funcName: 'handle', + paramName: 'makeRequest' + }); + } + const promises = []; + let timeoutId; + if (this._networkTimeoutSeconds) { + const { + id, + promise + } = this._getTimeoutPromise({ + request, + logs, + handler + }); + timeoutId = id; + promises.push(promise); + } + const networkPromise = this._getNetworkPromise({ + timeoutId, + request, + logs, + handler + }); + promises.push(networkPromise); + const response = await handler.waitUntil((async () => { + // Promise.race() will resolve as soon as the first promise resolves. + return (await handler.waitUntil(Promise.race(promises))) || ( + // If Promise.race() resolved with null, it might be due to a network + // timeout + a cache miss. If that were to happen, we'd rather wait until + // the networkPromise resolves instead of returning null. + // Note that it's fine to await an already-resolved promise, so we don't + // have to check to see if it's still "in flight". + await networkPromise); + })()); + { + logger.groupCollapsed(messages.strategyStart(this.constructor.name, request)); + for (const log of logs) { + logger.log(log); + } + messages.printFinalResponse(response); + logger.groupEnd(); + } + if (!response) { + throw new WorkboxError('no-response', { + url: request.url + }); + } + return response; + } + /** + * @param {Object} options + * @param {Request} options.request + * @param {Array} options.logs A reference to the logs array + * @param {Event} options.event + * @return {Promise} + * + * @private + */ + _getTimeoutPromise({ + request, + logs, + handler + }) { + let timeoutId; + const timeoutPromise = new Promise(resolve => { + const onNetworkTimeout = async () => { + { + logs.push(`Timing out the network response at ` + `${this._networkTimeoutSeconds} seconds.`); + } + resolve(await handler.cacheMatch(request)); + }; + timeoutId = setTimeout(onNetworkTimeout, this._networkTimeoutSeconds * 1000); + }); + return { + promise: timeoutPromise, + id: timeoutId + }; + } + /** + * @param {Object} options + * @param {number|undefined} options.timeoutId + * @param {Request} options.request + * @param {Array} options.logs A reference to the logs Array. + * @param {Event} options.event + * @return {Promise} + * + * @private + */ + async _getNetworkPromise({ + timeoutId, + request, + logs, + handler + }) { + let error; + let response; + try { + response = await handler.fetchAndCachePut(request); + } catch (fetchError) { + if (fetchError instanceof Error) { + error = fetchError; + } + } + if (timeoutId) { + clearTimeout(timeoutId); + } + { + if (response) { + logs.push(`Got response from network.`); + } else { + logs.push(`Unable to get a response from the network. Will respond ` + `with a cached response.`); + } + } + if (error || !response) { + response = await handler.cacheMatch(request); + { + if (response) { + logs.push(`Found a cached response in the '${this.cacheName}'` + ` cache.`); + } else { + logs.push(`No response found in the '${this.cacheName}' cache.`); + } + } + } + return response; + } + } + + /* + 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. + */ + /** + * An implementation of a + * [network-only](https://developer.chrome.com/docs/workbox/caching-strategies-overview/#network-only) + * request strategy. + * + * This class is useful if you want to take advantage of any + * [Workbox plugins](https://developer.chrome.com/docs/workbox/using-plugins/). + * + * If the network request fails, this will throw a `WorkboxError` exception. + * + * @extends workbox-strategies.Strategy + * @memberof workbox-strategies + */ + class NetworkOnly extends Strategy { + /** + * @param {Object} [options] + * @param {Array} [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 {number} [options.networkTimeoutSeconds] If set, any network requests + * that fail to respond within the timeout will result in a network error. + */ + constructor(options = {}) { + super(options); + this._networkTimeoutSeconds = options.networkTimeoutSeconds || 0; + } + /** + * @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} + */ + async _handle(request, handler) { + { + finalAssertExports.isInstance(request, Request, { + moduleName: 'workbox-strategies', + className: this.constructor.name, + funcName: '_handle', + paramName: 'request' + }); + } + let error = undefined; + let response; + try { + const promises = [handler.fetch(request)]; + if (this._networkTimeoutSeconds) { + const timeoutPromise = timeout(this._networkTimeoutSeconds * 1000); + promises.push(timeoutPromise); + } + response = await Promise.race(promises); + if (!response) { + throw new Error(`Timed out the network response after ` + `${this._networkTimeoutSeconds} seconds.`); + } + } catch (err) { + if (err instanceof Error) { + error = err; + } + } + { + logger.groupCollapsed(messages.strategyStart(this.constructor.name, request)); + if (response) { + logger.log(`Got response from network.`); + } else { + logger.log(`Unable to get a response from the network.`); + } + messages.printFinalResponse(response); + logger.groupEnd(); + } + if (!response) { + throw new WorkboxError('no-response', { + url: request.url, + error + }); + } + return response; + } + } + + /* + 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. + */ + /** + * Claim any currently available clients once the service worker + * becomes active. This is normally used in conjunction with `skipWaiting()`. + * + * @memberof workbox-core + */ + function clientsClaim() { + self.addEventListener('activate', () => self.clients.claim()); + } + + /* + 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; + } + + // @ts-ignore + try { + self['workbox:precaching:7.0.0'] && _(); + } catch (e) {} + + /* + 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 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 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 + }; + } + + /* + 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; + }; + } + } + + /* + 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; + } + } + + /* + 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} deletedURLs + * + * @private + */ + const logGroup = (groupTitle, deletedURLs) => { + logger.groupCollapsed(groupTitle); + for (const url of deletedURLs) { + logger.log(url); + } + logger.groupEnd(); + }; + /** + * @param {Array} deletedURLs + * + * @private + * @memberof workbox-precaching + */ + function printCleanupDetails(deletedURLs) { + const deletionCount = deletedURLs.length; + if (deletionCount > 0) { + logger.groupCollapsed(`During precaching cleanup, ` + `${deletionCount} cached ` + `request${deletionCount === 1 ? ' was' : 's were'} deleted.`); + logGroup('Deleted Cache Requests', deletedURLs); + logger.groupEnd(); + } + } + + /* + 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} urls + * + * @private + */ + function _nestedGroup(groupTitle, urls) { + if (urls.length === 0) { + return; + } + logger.groupCollapsed(groupTitle); + for (const url of urls) { + logger.log(url); + } + logger.groupEnd(); + } + /** + * @param {Array} urlsToPrecache + * @param {Array} 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.`; + } + logger.groupCollapsed(message); + _nestedGroup(`View newly precached URLs.`, urlsToPrecache); + _nestedGroup(`View previously precached URLs.`, urlsAlreadyPrecached); + logger.groupEnd(); + } + } + + /* + 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; + } + + /* + 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 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 = canConstructResponseFromBodyStream() ? clonedResponse.body : await clonedResponse.blob(); + return new Response(body, modifiedResponseInit); + } + + /* + 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 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} [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 = 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} + */ + 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) { + { + logger.warn(`The precached response for ` + `${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 (wasCached) { + logger.log(`A response for ${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 WorkboxError('missing-precache-entry', { + cacheName: this.cacheName, + url: request.url + }); + } + { + const cacheKey = params.cacheKey || (await handler.getCacheKey(request, 'read')); + // Workbox is going to handle the route. + // print the routing details to the console. + logger.groupCollapsed(`Precaching is responding to: ` + getFriendlyURL(request.url)); + logger.log(`Serving the precached url: ${getFriendlyURL(cacheKey instanceof Request ? cacheKey.url : cacheKey)}`); + logger.groupCollapsed(`View request details here.`); + logger.log(request); + logger.groupEnd(); + logger.groupCollapsed(`View response details here.`); + logger.log(response); + logger.groupEnd(); + 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 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 copyResponse(response) : response; + } + }; + + /* + 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({ + cacheName: cacheNames.getPrecacheName(cacheName), + plugins: [...plugins, new 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} [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} entries + * Array of entries to precache. + */ + addToCacheList(entries) { + { + finalAssertExports.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 + } = createCacheKey(entry); + const cacheMode = typeof entry !== 'string' && entry.revision ? 'reload' : 'default'; + if (this._urlsToCacheKeys.has(url) && this._urlsToCacheKeys.get(url) !== cacheKey) { + throw new 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 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(', ')}\nThis is generally NOT safe. ` + `Learn more at https://bit.ly/wb-precache`; + { + 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} + */ + install(event) { + // waitUntil returns Promise + // eslint-disable-next-line @typescript-eslint/no-unsafe-return + return waitUntil(event, async () => { + const installReportPlugin = new 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; + { + 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} + */ + activate(event) { + // waitUntil returns Promise + // eslint-disable-next-line @typescript-eslint/no-unsafe-return + return 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); + } + } + { + 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} 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} 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} + */ + 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 WorkboxError('non-precached-url', { + url + }); + } + return options => { + options.request = new Request(url); + options.params = Object.assign({ + cacheKey + }, options.params); + return this.strategy.handle(options); + }; + } + } + + /* + 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(); + } + return precacheController; + }; + + /* + 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} 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; + } + + /* + 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 = 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; + } + } + } + + /* + 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 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} [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 generateURLVariations(request.url, options)) { + const cacheKey = urlsToCacheKeys.get(possibleURL); + if (cacheKey) { + const integrity = precacheController.getIntegrityForCacheKey(cacheKey); + return { + cacheKey, + integrity + }; + } + } + { + logger.debug(`Precaching did not find a match for ` + getFriendlyURL(request.url)); + } + return; + }; + super(match, precacheController.strategy); + } + } + + /* + 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 = getOrCreatePrecacheController(); + const precacheRoute = new PrecacheRoute(precacheController, options); + registerRoute(precacheRoute); + } + + /* + 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} [entries=[]] Array of entries to precache. + * + * @memberof workbox-precaching + */ + function precache(entries) { + const precacheController = getOrCreatePrecacheController(); + precacheController.precache(entries); + } + + /* + 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} entries Array of entries to precache. + * @param {Object} [options] See the + * {@link workbox-precaching.PrecacheRoute} options. + * + * @memberof workbox-precaching + */ + function precacheAndRoute(entries, options) { + precache(entries); + addRoute(options); + } + + /* + 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} 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; + }; + + /* + 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 = cacheNames.getPrecacheName(); + event.waitUntil(deleteOutdatedCaches(cacheName).then(cachesDeleted => { + { + if (cachesDeleted.length > 0) { + logger.log(`The following out-of-date precaches were cleaned up ` + `automatically:`, cachesDeleted); + } + } + })); + }); + } + + exports.NetworkFirst = NetworkFirst; + exports.NetworkOnly = NetworkOnly; + exports.cleanupOutdatedCaches = cleanupOutdatedCaches; + exports.clientsClaim = clientsClaim; + exports.precacheAndRoute = precacheAndRoute; + exports.registerRoute = registerRoute; + +})); +//# sourceMappingURL=workbox-1e54d6fe.js.map diff --git a/public/workbox-1e54d6fe.js.map b/public/workbox-1e54d6fe.js.map new file mode 100644 index 0000000..ad45f3b --- /dev/null +++ b/public/workbox-1e54d6fe.js.map @@ -0,0 +1 @@ +{"version":3,"file":"workbox-1e54d6fe.js","sources":["node_modules/workbox-core/_version.js","node_modules/workbox-core/_private/logger.js","node_modules/workbox-core/models/messages/messages.js","node_modules/workbox-core/models/messages/messageGenerator.js","node_modules/workbox-core/_private/WorkboxError.js","node_modules/workbox-core/_private/assert.js","node_modules/workbox-routing/_version.js","node_modules/workbox-routing/utils/constants.js","node_modules/workbox-routing/utils/normalizeHandler.js","node_modules/workbox-routing/Route.js","node_modules/workbox-routing/RegExpRoute.js","node_modules/workbox-core/_private/getFriendlyURL.js","node_modules/workbox-routing/Router.js","node_modules/workbox-routing/utils/getOrCreateDefaultRouter.js","node_modules/workbox-routing/registerRoute.js","node_modules/workbox-strategies/_version.js","node_modules/workbox-strategies/plugins/cacheOkAndOpaquePlugin.js","node_modules/workbox-core/_private/cacheNames.js","node_modules/workbox-core/_private/cacheMatchIgnoreParams.js","node_modules/workbox-core/_private/Deferred.js","node_modules/workbox-core/models/quotaErrorCallbacks.js","node_modules/workbox-core/_private/executeQuotaErrorCallbacks.js","node_modules/workbox-core/_private/timeout.js","node_modules/workbox-strategies/StrategyHandler.js","node_modules/workbox-strategies/Strategy.js","node_modules/workbox-strategies/utils/messages.js","node_modules/workbox-strategies/NetworkFirst.js","node_modules/workbox-strategies/NetworkOnly.js","node_modules/workbox-core/clientsClaim.js","node_modules/workbox-core/_private/waitUntil.js","node_modules/workbox-precaching/_version.js","node_modules/workbox-precaching/utils/createCacheKey.js","node_modules/workbox-precaching/utils/PrecacheInstallReportPlugin.js","node_modules/workbox-precaching/utils/PrecacheCacheKeyPlugin.js","node_modules/workbox-precaching/utils/printCleanupDetails.js","node_modules/workbox-precaching/utils/printInstallDetails.js","node_modules/workbox-core/_private/canConstructResponseFromBodyStream.js","node_modules/workbox-core/copyResponse.js","node_modules/workbox-precaching/PrecacheStrategy.js","node_modules/workbox-precaching/PrecacheController.js","node_modules/workbox-precaching/utils/getOrCreatePrecacheController.js","node_modules/workbox-precaching/utils/removeIgnoredSearchParams.js","node_modules/workbox-precaching/utils/generateURLVariations.js","node_modules/workbox-precaching/PrecacheRoute.js","node_modules/workbox-precaching/addRoute.js","node_modules/workbox-precaching/precache.js","node_modules/workbox-precaching/precacheAndRoute.js","node_modules/workbox-precaching/utils/deleteOutdatedCaches.js","node_modules/workbox-precaching/cleanupOutdatedCaches.js"],"sourcesContent":["\"use strict\";\n// @ts-ignore\ntry {\n self['workbox:core:7.0.0'] && _();\n}\ncatch (e) { }\n","/*\n Copyright 2019 Google LLC\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nconst logger = (process.env.NODE_ENV === 'production'\n ? null\n : (() => {\n // Don't overwrite this value if it's already set.\n // See https://github.com/GoogleChrome/workbox/pull/2284#issuecomment-560470923\n if (!('__WB_DISABLE_DEV_LOGS' in globalThis)) {\n self.__WB_DISABLE_DEV_LOGS = false;\n }\n let inGroup = false;\n const methodToColorMap = {\n debug: `#7f8c8d`,\n log: `#2ecc71`,\n warn: `#f39c12`,\n error: `#c0392b`,\n groupCollapsed: `#3498db`,\n groupEnd: null, // No colored prefix on groupEnd\n };\n const print = function (method, args) {\n if (self.__WB_DISABLE_DEV_LOGS) {\n return;\n }\n if (method === 'groupCollapsed') {\n // Safari doesn't print all console.groupCollapsed() arguments:\n // https://bugs.webkit.org/show_bug.cgi?id=182754\n if (/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n console[method](...args);\n return;\n }\n }\n const styles = [\n `background: ${methodToColorMap[method]}`,\n `border-radius: 0.5em`,\n `color: white`,\n `font-weight: bold`,\n `padding: 2px 0.5em`,\n ];\n // When in a group, the workbox prefix is not displayed.\n const logPrefix = inGroup ? [] : ['%cworkbox', styles.join(';')];\n console[method](...logPrefix, ...args);\n if (method === 'groupCollapsed') {\n inGroup = true;\n }\n if (method === 'groupEnd') {\n inGroup = false;\n }\n };\n // eslint-disable-next-line @typescript-eslint/ban-types\n const api = {};\n const loggerMethods = Object.keys(methodToColorMap);\n for (const key of loggerMethods) {\n const method = key;\n api[method] = (...args) => {\n print(method, args);\n };\n }\n return api;\n })());\nexport { logger };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../../_version.js';\nexport const messages = {\n 'invalid-value': ({ paramName, validValueDescription, value }) => {\n if (!paramName || !validValueDescription) {\n throw new Error(`Unexpected input to 'invalid-value' error.`);\n }\n return (`The '${paramName}' parameter was given a value with an ` +\n `unexpected value. ${validValueDescription} Received a value of ` +\n `${JSON.stringify(value)}.`);\n },\n 'not-an-array': ({ moduleName, className, funcName, paramName }) => {\n if (!moduleName || !className || !funcName || !paramName) {\n throw new Error(`Unexpected input to 'not-an-array' error.`);\n }\n return (`The parameter '${paramName}' passed into ` +\n `'${moduleName}.${className}.${funcName}()' must be an array.`);\n },\n 'incorrect-type': ({ expectedType, paramName, moduleName, className, funcName, }) => {\n if (!expectedType || !paramName || !moduleName || !funcName) {\n throw new Error(`Unexpected input to 'incorrect-type' error.`);\n }\n const classNameStr = className ? `${className}.` : '';\n return (`The parameter '${paramName}' passed into ` +\n `'${moduleName}.${classNameStr}` +\n `${funcName}()' must be of type ${expectedType}.`);\n },\n 'incorrect-class': ({ expectedClassName, paramName, moduleName, className, funcName, isReturnValueProblem, }) => {\n if (!expectedClassName || !moduleName || !funcName) {\n throw new Error(`Unexpected input to 'incorrect-class' error.`);\n }\n const classNameStr = className ? `${className}.` : '';\n if (isReturnValueProblem) {\n return (`The return value from ` +\n `'${moduleName}.${classNameStr}${funcName}()' ` +\n `must be an instance of class ${expectedClassName}.`);\n }\n return (`The parameter '${paramName}' passed into ` +\n `'${moduleName}.${classNameStr}${funcName}()' ` +\n `must be an instance of class ${expectedClassName}.`);\n },\n 'missing-a-method': ({ expectedMethod, paramName, moduleName, className, funcName, }) => {\n if (!expectedMethod ||\n !paramName ||\n !moduleName ||\n !className ||\n !funcName) {\n throw new Error(`Unexpected input to 'missing-a-method' error.`);\n }\n return (`${moduleName}.${className}.${funcName}() expected the ` +\n `'${paramName}' parameter to expose a '${expectedMethod}' method.`);\n },\n 'add-to-cache-list-unexpected-type': ({ entry }) => {\n return (`An unexpected entry was passed to ` +\n `'workbox-precaching.PrecacheController.addToCacheList()' The entry ` +\n `'${JSON.stringify(entry)}' isn't supported. You must supply an array of ` +\n `strings with one or more characters, objects with a url property or ` +\n `Request objects.`);\n },\n 'add-to-cache-list-conflicting-entries': ({ firstEntry, secondEntry }) => {\n if (!firstEntry || !secondEntry) {\n throw new Error(`Unexpected input to ` + `'add-to-cache-list-duplicate-entries' error.`);\n }\n return (`Two of the entries passed to ` +\n `'workbox-precaching.PrecacheController.addToCacheList()' had the URL ` +\n `${firstEntry} but different revision details. Workbox is ` +\n `unable to cache and version the asset correctly. Please remove one ` +\n `of the entries.`);\n },\n 'plugin-error-request-will-fetch': ({ thrownErrorMessage }) => {\n if (!thrownErrorMessage) {\n throw new Error(`Unexpected input to ` + `'plugin-error-request-will-fetch', error.`);\n }\n return (`An error was thrown by a plugins 'requestWillFetch()' method. ` +\n `The thrown error message was: '${thrownErrorMessage}'.`);\n },\n 'invalid-cache-name': ({ cacheNameId, value }) => {\n if (!cacheNameId) {\n throw new Error(`Expected a 'cacheNameId' for error 'invalid-cache-name'`);\n }\n return (`You must provide a name containing at least one character for ` +\n `setCacheDetails({${cacheNameId}: '...'}). Received a value of ` +\n `'${JSON.stringify(value)}'`);\n },\n 'unregister-route-but-not-found-with-method': ({ method }) => {\n if (!method) {\n throw new Error(`Unexpected input to ` +\n `'unregister-route-but-not-found-with-method' error.`);\n }\n return (`The route you're trying to unregister was not previously ` +\n `registered for the method type '${method}'.`);\n },\n 'unregister-route-route-not-registered': () => {\n return (`The route you're trying to unregister was not previously ` +\n `registered.`);\n },\n 'queue-replay-failed': ({ name }) => {\n return `Replaying the background sync queue '${name}' failed.`;\n },\n 'duplicate-queue-name': ({ name }) => {\n return (`The Queue name '${name}' is already being used. ` +\n `All instances of backgroundSync.Queue must be given unique names.`);\n },\n 'expired-test-without-max-age': ({ methodName, paramName }) => {\n return (`The '${methodName}()' method can only be used when the ` +\n `'${paramName}' is used in the constructor.`);\n },\n 'unsupported-route-type': ({ moduleName, className, funcName, paramName }) => {\n return (`The supplied '${paramName}' parameter was an unsupported type. ` +\n `Please check the docs for ${moduleName}.${className}.${funcName} for ` +\n `valid input types.`);\n },\n 'not-array-of-class': ({ value, expectedClass, moduleName, className, funcName, paramName, }) => {\n return (`The supplied '${paramName}' parameter must be an array of ` +\n `'${expectedClass}' objects. Received '${JSON.stringify(value)},'. ` +\n `Please check the call to ${moduleName}.${className}.${funcName}() ` +\n `to fix the issue.`);\n },\n 'max-entries-or-age-required': ({ moduleName, className, funcName }) => {\n return (`You must define either config.maxEntries or config.maxAgeSeconds` +\n `in ${moduleName}.${className}.${funcName}`);\n },\n 'statuses-or-headers-required': ({ moduleName, className, funcName }) => {\n return (`You must define either config.statuses or config.headers` +\n `in ${moduleName}.${className}.${funcName}`);\n },\n 'invalid-string': ({ moduleName, funcName, paramName }) => {\n if (!paramName || !moduleName || !funcName) {\n throw new Error(`Unexpected input to 'invalid-string' error.`);\n }\n return (`When using strings, the '${paramName}' parameter must start with ` +\n `'http' (for cross-origin matches) or '/' (for same-origin matches). ` +\n `Please see the docs for ${moduleName}.${funcName}() for ` +\n `more info.`);\n },\n 'channel-name-required': () => {\n return (`You must provide a channelName to construct a ` +\n `BroadcastCacheUpdate instance.`);\n },\n 'invalid-responses-are-same-args': () => {\n return (`The arguments passed into responsesAreSame() appear to be ` +\n `invalid. Please ensure valid Responses are used.`);\n },\n 'expire-custom-caches-only': () => {\n return (`You must provide a 'cacheName' property when using the ` +\n `expiration plugin with a runtime caching strategy.`);\n },\n 'unit-must-be-bytes': ({ normalizedRangeHeader }) => {\n if (!normalizedRangeHeader) {\n throw new Error(`Unexpected input to 'unit-must-be-bytes' error.`);\n }\n return (`The 'unit' portion of the Range header must be set to 'bytes'. ` +\n `The Range header provided was \"${normalizedRangeHeader}\"`);\n },\n 'single-range-only': ({ normalizedRangeHeader }) => {\n if (!normalizedRangeHeader) {\n throw new Error(`Unexpected input to 'single-range-only' error.`);\n }\n return (`Multiple ranges are not supported. Please use a single start ` +\n `value, and optional end value. The Range header provided was ` +\n `\"${normalizedRangeHeader}\"`);\n },\n 'invalid-range-values': ({ normalizedRangeHeader }) => {\n if (!normalizedRangeHeader) {\n throw new Error(`Unexpected input to 'invalid-range-values' error.`);\n }\n return (`The Range header is missing both start and end values. At least ` +\n `one of those values is needed. The Range header provided was ` +\n `\"${normalizedRangeHeader}\"`);\n },\n 'no-range-header': () => {\n return `No Range header was found in the Request provided.`;\n },\n 'range-not-satisfiable': ({ size, start, end }) => {\n return (`The start (${start}) and end (${end}) values in the Range are ` +\n `not satisfiable by the cached response, which is ${size} bytes.`);\n },\n 'attempt-to-cache-non-get-request': ({ url, method }) => {\n return (`Unable to cache '${url}' because it is a '${method}' request and ` +\n `only 'GET' requests can be cached.`);\n },\n 'cache-put-with-no-response': ({ url }) => {\n return (`There was an attempt to cache '${url}' but the response was not ` +\n `defined.`);\n },\n 'no-response': ({ url, error }) => {\n let message = `The strategy could not generate a response for '${url}'.`;\n if (error) {\n message += ` The underlying error is ${error}.`;\n }\n return message;\n },\n 'bad-precaching-response': ({ url, status }) => {\n return (`The precaching request for '${url}' failed` +\n (status ? ` with an HTTP status of ${status}.` : `.`));\n },\n 'non-precached-url': ({ url }) => {\n return (`createHandlerBoundToURL('${url}') was called, but that URL is ` +\n `not precached. Please pass in a URL that is precached instead.`);\n },\n 'add-to-cache-list-conflicting-integrities': ({ url }) => {\n return (`Two of the entries passed to ` +\n `'workbox-precaching.PrecacheController.addToCacheList()' had the URL ` +\n `${url} with different integrity values. Please remove one of them.`);\n },\n 'missing-precache-entry': ({ cacheName, url }) => {\n return `Unable to find a precached response in ${cacheName} for ${url}.`;\n },\n 'cross-origin-copy-response': ({ origin }) => {\n return (`workbox-core.copyResponse() can only be used with same-origin ` +\n `responses. It was passed a response with origin ${origin}.`);\n },\n 'opaque-streams-source': ({ type }) => {\n const message = `One of the workbox-streams sources resulted in an ` +\n `'${type}' response.`;\n if (type === 'opaqueredirect') {\n return (`${message} Please do not use a navigation request that results ` +\n `in a redirect as a source.`);\n }\n return `${message} Please ensure your sources are CORS-enabled.`;\n },\n};\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { messages } from './messages.js';\nimport '../../_version.js';\nconst fallback = (code, ...args) => {\n let msg = code;\n if (args.length > 0) {\n msg += ` :: ${JSON.stringify(args)}`;\n }\n return msg;\n};\nconst generatorFunction = (code, details = {}) => {\n const message = messages[code];\n if (!message) {\n throw new Error(`Unable to find message for code '${code}'.`);\n }\n return message(details);\n};\nexport const messageGenerator = process.env.NODE_ENV === 'production' ? fallback : generatorFunction;\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { messageGenerator } from '../models/messages/messageGenerator.js';\nimport '../_version.js';\n/**\n * Workbox errors should be thrown with this class.\n * This allows use to ensure the type easily in tests,\n * helps developers identify errors from workbox\n * easily and allows use to optimise error\n * messages correctly.\n *\n * @private\n */\nclass WorkboxError extends Error {\n /**\n *\n * @param {string} errorCode The error code that\n * identifies this particular error.\n * @param {Object=} details Any relevant arguments\n * that will help developers identify issues should\n * be added as a key on the context object.\n */\n constructor(errorCode, details) {\n const message = messageGenerator(errorCode, details);\n super(message);\n this.name = errorCode;\n this.details = details;\n }\n}\nexport { WorkboxError };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { WorkboxError } from '../_private/WorkboxError.js';\nimport '../_version.js';\n/*\n * This method throws if the supplied value is not an array.\n * The destructed values are required to produce a meaningful error for users.\n * The destructed and restructured object is so it's clear what is\n * needed.\n */\nconst isArray = (value, details) => {\n if (!Array.isArray(value)) {\n throw new WorkboxError('not-an-array', details);\n }\n};\nconst hasMethod = (object, expectedMethod, details) => {\n const type = typeof object[expectedMethod];\n if (type !== 'function') {\n details['expectedMethod'] = expectedMethod;\n throw new WorkboxError('missing-a-method', details);\n }\n};\nconst isType = (object, expectedType, details) => {\n if (typeof object !== expectedType) {\n details['expectedType'] = expectedType;\n throw new WorkboxError('incorrect-type', details);\n }\n};\nconst isInstance = (object, \n// Need the general type to do the check later.\n// eslint-disable-next-line @typescript-eslint/ban-types\nexpectedClass, details) => {\n if (!(object instanceof expectedClass)) {\n details['expectedClassName'] = expectedClass.name;\n throw new WorkboxError('incorrect-class', details);\n }\n};\nconst isOneOf = (value, validValues, details) => {\n if (!validValues.includes(value)) {\n details['validValueDescription'] = `Valid values are ${JSON.stringify(validValues)}.`;\n throw new WorkboxError('invalid-value', details);\n }\n};\nconst isArrayOfClass = (value, \n// Need general type to do check later.\nexpectedClass, // eslint-disable-line\ndetails) => {\n const error = new WorkboxError('not-array-of-class', details);\n if (!Array.isArray(value)) {\n throw error;\n }\n for (const item of value) {\n if (!(item instanceof expectedClass)) {\n throw error;\n }\n }\n};\nconst finalAssertExports = process.env.NODE_ENV === 'production'\n ? null\n : {\n hasMethod,\n isArray,\n isInstance,\n isOneOf,\n isType,\n isArrayOfClass,\n };\nexport { finalAssertExports as assert };\n","\"use strict\";\n// @ts-ignore\ntry {\n self['workbox:routing:7.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 '../_version.js';\n/**\n * The default HTTP method, 'GET', used when there's no specific method\n * configured for a route.\n *\n * @type {string}\n *\n * @private\n */\nexport const defaultMethod = 'GET';\n/**\n * The list of valid HTTP methods associated with requests that could be routed.\n *\n * @type {Array}\n *\n * @private\n */\nexport const validMethods = [\n 'DELETE',\n 'GET',\n 'HEAD',\n 'PATCH',\n 'POST',\n 'PUT',\n];\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport '../_version.js';\n/**\n * @param {function()|Object} handler Either a function, or an object with a\n * 'handle' method.\n * @return {Object} An object with a handle method.\n *\n * @private\n */\nexport const normalizeHandler = (handler) => {\n if (handler && typeof handler === 'object') {\n if (process.env.NODE_ENV !== 'production') {\n assert.hasMethod(handler, 'handle', {\n moduleName: 'workbox-routing',\n className: 'Route',\n funcName: 'constructor',\n paramName: 'handler',\n });\n }\n return handler;\n }\n else {\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(handler, 'function', {\n moduleName: 'workbox-routing',\n className: 'Route',\n funcName: 'constructor',\n paramName: 'handler',\n });\n }\n return { handle: handler };\n }\n};\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { defaultMethod, validMethods } from './utils/constants.js';\nimport { normalizeHandler } from './utils/normalizeHandler.js';\nimport './_version.js';\n/**\n * A `Route` consists of a pair of callback functions, \"match\" and \"handler\".\n * The \"match\" callback determine if a route should be used to \"handle\" a\n * request by returning a non-falsy value if it can. The \"handler\" callback\n * is called when there is a match and should return a Promise that resolves\n * to a `Response`.\n *\n * @memberof workbox-routing\n */\nclass Route {\n /**\n * Constructor for Route class.\n *\n * @param {workbox-routing~matchCallback} match\n * A callback function that determines whether the route matches a given\n * `fetch` event by returning a non-falsy value.\n * @param {workbox-routing~handlerCallback} handler A callback\n * function that returns a Promise resolving to a Response.\n * @param {string} [method='GET'] The HTTP method to match the Route\n * against.\n */\n constructor(match, handler, method = defaultMethod) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(match, 'function', {\n moduleName: 'workbox-routing',\n className: 'Route',\n funcName: 'constructor',\n paramName: 'match',\n });\n if (method) {\n assert.isOneOf(method, validMethods, { paramName: 'method' });\n }\n }\n // These values are referenced directly by Router so cannot be\n // altered by minificaton.\n this.handler = normalizeHandler(handler);\n this.match = match;\n this.method = method;\n }\n /**\n *\n * @param {workbox-routing-handlerCallback} handler A callback\n * function that returns a Promise resolving to a Response\n */\n setCatchHandler(handler) {\n this.catchHandler = normalizeHandler(handler);\n }\n}\nexport { Route };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { Route } from './Route.js';\nimport './_version.js';\n/**\n * RegExpRoute makes it easy to create a regular expression based\n * {@link workbox-routing.Route}.\n *\n * For same-origin requests the RegExp only needs to match part of the URL. For\n * requests against third-party servers, you must define a RegExp that matches\n * the start of the URL.\n *\n * @memberof workbox-routing\n * @extends workbox-routing.Route\n */\nclass RegExpRoute extends Route {\n /**\n * If the regular expression contains\n * [capture groups]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#grouping-back-references},\n * the captured values will be passed to the\n * {@link workbox-routing~handlerCallback} `params`\n * argument.\n *\n * @param {RegExp} regExp The regular expression to match against URLs.\n * @param {workbox-routing~handlerCallback} handler A callback\n * function that returns a Promise resulting in a Response.\n * @param {string} [method='GET'] The HTTP method to match the Route\n * against.\n */\n constructor(regExp, handler, method) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(regExp, RegExp, {\n moduleName: 'workbox-routing',\n className: 'RegExpRoute',\n funcName: 'constructor',\n paramName: 'pattern',\n });\n }\n const match = ({ url }) => {\n const result = regExp.exec(url.href);\n // Return immediately if there's no match.\n if (!result) {\n return;\n }\n // Require that the match start at the first character in the URL string\n // if it's a cross-origin request.\n // See https://github.com/GoogleChrome/workbox/issues/281 for the context\n // behind this behavior.\n if (url.origin !== location.origin && result.index !== 0) {\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`The regular expression '${regExp.toString()}' only partially matched ` +\n `against the cross-origin URL '${url.toString()}'. RegExpRoute's will only ` +\n `handle cross-origin requests if they match the entire URL.`);\n }\n return;\n }\n // If the route matches, but there aren't any capture groups defined, then\n // this will return [], which is truthy and therefore sufficient to\n // indicate a match.\n // If there are capture groups, then it will return their values.\n return result.slice(1);\n };\n super(match, handler, method);\n }\n}\nexport { RegExpRoute };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nconst getFriendlyURL = (url) => {\n const urlObj = new URL(String(url), location.href);\n // See https://github.com/GoogleChrome/workbox/issues/2323\n // We want to include everything, except for the origin if it's same-origin.\n return urlObj.href.replace(new RegExp(`^${location.origin}`), '');\n};\nexport { getFriendlyURL };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { defaultMethod } from './utils/constants.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { normalizeHandler } from './utils/normalizeHandler.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport './_version.js';\n/**\n * The Router can be used to process a `FetchEvent` using one or more\n * {@link workbox-routing.Route}, responding with a `Response` if\n * a matching route exists.\n *\n * If no route matches a given a request, the Router will use a \"default\"\n * handler if one is defined.\n *\n * Should the matching Route throw an error, the Router will use a \"catch\"\n * handler if one is defined to gracefully deal with issues and respond with a\n * Request.\n *\n * If a request matches multiple routes, the **earliest** registered route will\n * be used to respond to the request.\n *\n * @memberof workbox-routing\n */\nclass Router {\n /**\n * Initializes a new Router.\n */\n constructor() {\n this._routes = new Map();\n this._defaultHandlerMap = new Map();\n }\n /**\n * @return {Map>} routes A `Map` of HTTP\n * method name ('GET', etc.) to an array of all the corresponding `Route`\n * instances that are registered.\n */\n get routes() {\n return this._routes;\n }\n /**\n * Adds a fetch event listener to respond to events when a route matches\n * the event's request.\n */\n addFetchListener() {\n // See https://github.com/Microsoft/TypeScript/issues/28357#issuecomment-436484705\n self.addEventListener('fetch', ((event) => {\n const { request } = event;\n const responsePromise = this.handleRequest({ request, event });\n if (responsePromise) {\n event.respondWith(responsePromise);\n }\n }));\n }\n /**\n * Adds a message event listener for URLs to cache from the window.\n * This is useful to cache resources loaded on the page prior to when the\n * service worker started controlling it.\n *\n * The format of the message data sent from the window should be as follows.\n * Where the `urlsToCache` array may consist of URL strings or an array of\n * URL string + `requestInit` object (the same as you'd pass to `fetch()`).\n *\n * ```\n * {\n * type: 'CACHE_URLS',\n * payload: {\n * urlsToCache: [\n * './script1.js',\n * './script2.js',\n * ['./script3.js', {mode: 'no-cors'}],\n * ],\n * },\n * }\n * ```\n */\n addCacheListener() {\n // See https://github.com/Microsoft/TypeScript/issues/28357#issuecomment-436484705\n self.addEventListener('message', ((event) => {\n // event.data is type 'any'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (event.data && event.data.type === 'CACHE_URLS') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const { payload } = event.data;\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`Caching URLs from the window`, payload.urlsToCache);\n }\n const requestPromises = Promise.all(payload.urlsToCache.map((entry) => {\n if (typeof entry === 'string') {\n entry = [entry];\n }\n const request = new Request(...entry);\n return this.handleRequest({ request, event });\n // TODO(philipwalton): TypeScript errors without this typecast for\n // some reason (probably a bug). The real type here should work but\n // doesn't: `Array | undefined>`.\n })); // TypeScript\n event.waitUntil(requestPromises);\n // If a MessageChannel was used, reply to the message on success.\n if (event.ports && event.ports[0]) {\n void requestPromises.then(() => event.ports[0].postMessage(true));\n }\n }\n }));\n }\n /**\n * Apply the routing rules to a FetchEvent object to get a Response from an\n * appropriate Route's handler.\n *\n * @param {Object} options\n * @param {Request} options.request The request to handle.\n * @param {ExtendableEvent} options.event The event that triggered the\n * request.\n * @return {Promise|undefined} A promise is returned if a\n * registered route can handle the request. If there is no matching\n * route and there's no `defaultHandler`, `undefined` is returned.\n */\n handleRequest({ request, event, }) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(request, Request, {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'handleRequest',\n paramName: 'options.request',\n });\n }\n const url = new URL(request.url, location.href);\n if (!url.protocol.startsWith('http')) {\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`Workbox Router only supports URLs that start with 'http'.`);\n }\n return;\n }\n const sameOrigin = url.origin === location.origin;\n const { params, route } = this.findMatchingRoute({\n event,\n request,\n sameOrigin,\n url,\n });\n let handler = route && route.handler;\n const debugMessages = [];\n if (process.env.NODE_ENV !== 'production') {\n if (handler) {\n debugMessages.push([`Found a route to handle this request:`, route]);\n if (params) {\n debugMessages.push([\n `Passing the following params to the route's handler:`,\n params,\n ]);\n }\n }\n }\n // If we don't have a handler because there was no matching route, then\n // fall back to defaultHandler if that's defined.\n const method = request.method;\n if (!handler && this._defaultHandlerMap.has(method)) {\n if (process.env.NODE_ENV !== 'production') {\n debugMessages.push(`Failed to find a matching route. Falling ` +\n `back to the default handler for ${method}.`);\n }\n handler = this._defaultHandlerMap.get(method);\n }\n if (!handler) {\n if (process.env.NODE_ENV !== 'production') {\n // No handler so Workbox will do nothing. If logs is set of debug\n // i.e. verbose, we should print out this information.\n logger.debug(`No route found for: ${getFriendlyURL(url)}`);\n }\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // We have a handler, meaning Workbox is going to handle the route.\n // print the routing details to the console.\n logger.groupCollapsed(`Router is responding to: ${getFriendlyURL(url)}`);\n debugMessages.forEach((msg) => {\n if (Array.isArray(msg)) {\n logger.log(...msg);\n }\n else {\n logger.log(msg);\n }\n });\n logger.groupEnd();\n }\n // Wrap in try and catch in case the handle method throws a synchronous\n // error. It should still callback to the catch handler.\n let responsePromise;\n try {\n responsePromise = handler.handle({ url, request, event, params });\n }\n catch (err) {\n responsePromise = Promise.reject(err);\n }\n // Get route's catch handler, if it exists\n const catchHandler = route && route.catchHandler;\n if (responsePromise instanceof Promise &&\n (this._catchHandler || catchHandler)) {\n responsePromise = responsePromise.catch(async (err) => {\n // If there's a route catch handler, process that first\n if (catchHandler) {\n if (process.env.NODE_ENV !== 'production') {\n // Still include URL here as it will be async from the console group\n // and may not make sense without the URL\n logger.groupCollapsed(`Error thrown when responding to: ` +\n ` ${getFriendlyURL(url)}. Falling back to route's Catch Handler.`);\n logger.error(`Error thrown by:`, route);\n logger.error(err);\n logger.groupEnd();\n }\n try {\n return await catchHandler.handle({ url, request, event, params });\n }\n catch (catchErr) {\n if (catchErr instanceof Error) {\n err = catchErr;\n }\n }\n }\n if (this._catchHandler) {\n if (process.env.NODE_ENV !== 'production') {\n // Still include URL here as it will be async from the console group\n // and may not make sense without the URL\n logger.groupCollapsed(`Error thrown when responding to: ` +\n ` ${getFriendlyURL(url)}. Falling back to global Catch Handler.`);\n logger.error(`Error thrown by:`, route);\n logger.error(err);\n logger.groupEnd();\n }\n return this._catchHandler.handle({ url, request, event });\n }\n throw err;\n });\n }\n return responsePromise;\n }\n /**\n * Checks a request and URL (and optionally an event) against the list of\n * registered routes, and if there's a match, returns the corresponding\n * route along with any params generated by the match.\n *\n * @param {Object} options\n * @param {URL} options.url\n * @param {boolean} options.sameOrigin The result of comparing `url.origin`\n * against the current origin.\n * @param {Request} options.request The request to match.\n * @param {Event} options.event The corresponding event.\n * @return {Object} An object with `route` and `params` properties.\n * They are populated if a matching route was found or `undefined`\n * otherwise.\n */\n findMatchingRoute({ url, sameOrigin, request, event, }) {\n const routes = this._routes.get(request.method) || [];\n for (const route of routes) {\n let params;\n // route.match returns type any, not possible to change right now.\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const matchResult = route.match({ url, sameOrigin, request, event });\n if (matchResult) {\n if (process.env.NODE_ENV !== 'production') {\n // Warn developers that using an async matchCallback is almost always\n // not the right thing to do.\n if (matchResult instanceof Promise) {\n logger.warn(`While routing ${getFriendlyURL(url)}, an async ` +\n `matchCallback function was used. Please convert the ` +\n `following route to use a synchronous matchCallback function:`, route);\n }\n }\n // See https://github.com/GoogleChrome/workbox/issues/2079\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n params = matchResult;\n if (Array.isArray(params) && params.length === 0) {\n // Instead of passing an empty array in as params, use undefined.\n params = undefined;\n }\n else if (matchResult.constructor === Object && // eslint-disable-line\n Object.keys(matchResult).length === 0) {\n // Instead of passing an empty object in as params, use undefined.\n params = undefined;\n }\n else if (typeof matchResult === 'boolean') {\n // For the boolean value true (rather than just something truth-y),\n // don't set params.\n // See https://github.com/GoogleChrome/workbox/pull/2134#issuecomment-513924353\n params = undefined;\n }\n // Return early if have a match.\n return { route, params };\n }\n }\n // If no match was found above, return and empty object.\n return {};\n }\n /**\n * Define a default `handler` that's called when no routes explicitly\n * match the incoming request.\n *\n * Each HTTP method ('GET', 'POST', etc.) gets its own default handler.\n *\n * Without a default handler, unmatched requests will go against the\n * network as if there were no service worker present.\n *\n * @param {workbox-routing~handlerCallback} handler A callback\n * function that returns a Promise resulting in a Response.\n * @param {string} [method='GET'] The HTTP method to associate with this\n * default handler. Each method has its own default.\n */\n setDefaultHandler(handler, method = defaultMethod) {\n this._defaultHandlerMap.set(method, normalizeHandler(handler));\n }\n /**\n * If a Route throws an error while handling a request, this `handler`\n * will be called and given a chance to provide a response.\n *\n * @param {workbox-routing~handlerCallback} handler A callback\n * function that returns a Promise resulting in a Response.\n */\n setCatchHandler(handler) {\n this._catchHandler = normalizeHandler(handler);\n }\n /**\n * Registers a route with the router.\n *\n * @param {workbox-routing.Route} route The route to register.\n */\n registerRoute(route) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(route, 'object', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route',\n });\n assert.hasMethod(route, 'match', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route',\n });\n assert.isType(route.handler, 'object', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route',\n });\n assert.hasMethod(route.handler, 'handle', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route.handler',\n });\n assert.isType(route.method, 'string', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route.method',\n });\n }\n if (!this._routes.has(route.method)) {\n this._routes.set(route.method, []);\n }\n // Give precedence to all of the earlier routes by adding this additional\n // route to the end of the array.\n this._routes.get(route.method).push(route);\n }\n /**\n * Unregisters a route with the router.\n *\n * @param {workbox-routing.Route} route The route to unregister.\n */\n unregisterRoute(route) {\n if (!this._routes.has(route.method)) {\n throw new WorkboxError('unregister-route-but-not-found-with-method', {\n method: route.method,\n });\n }\n const routeIndex = this._routes.get(route.method).indexOf(route);\n if (routeIndex > -1) {\n this._routes.get(route.method).splice(routeIndex, 1);\n }\n else {\n throw new WorkboxError('unregister-route-route-not-registered');\n }\n }\n}\nexport { Router };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { Router } from '../Router.js';\nimport '../_version.js';\nlet defaultRouter;\n/**\n * Creates a new, singleton Router instance if one does not exist. If one\n * does already exist, that instance is returned.\n *\n * @private\n * @return {Router}\n */\nexport const getOrCreateDefaultRouter = () => {\n if (!defaultRouter) {\n defaultRouter = new Router();\n // The helpers that use the default Router assume these listeners exist.\n defaultRouter.addFetchListener();\n defaultRouter.addCacheListener();\n }\n return defaultRouter;\n};\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { Route } from './Route.js';\nimport { RegExpRoute } from './RegExpRoute.js';\nimport { getOrCreateDefaultRouter } from './utils/getOrCreateDefaultRouter.js';\nimport './_version.js';\n/**\n * Easily register a RegExp, string, or function with a caching\n * strategy to a singleton Router instance.\n *\n * This method will generate a Route for you if needed and\n * call {@link workbox-routing.Router#registerRoute}.\n *\n * @param {RegExp|string|workbox-routing.Route~matchCallback|workbox-routing.Route} capture\n * If the capture param is a `Route`, all other arguments will be ignored.\n * @param {workbox-routing~handlerCallback} [handler] A callback\n * function that returns a Promise resulting in a Response. This parameter\n * is required if `capture` is not a `Route` object.\n * @param {string} [method='GET'] The HTTP method to match the Route\n * against.\n * @return {workbox-routing.Route} The generated `Route`.\n *\n * @memberof workbox-routing\n */\nfunction registerRoute(capture, handler, method) {\n let route;\n if (typeof capture === 'string') {\n const captureUrl = new URL(capture, location.href);\n if (process.env.NODE_ENV !== 'production') {\n if (!(capture.startsWith('/') || capture.startsWith('http'))) {\n throw new WorkboxError('invalid-string', {\n moduleName: 'workbox-routing',\n funcName: 'registerRoute',\n paramName: 'capture',\n });\n }\n // We want to check if Express-style wildcards are in the pathname only.\n // TODO: Remove this log message in v4.\n const valueToCheck = capture.startsWith('http')\n ? captureUrl.pathname\n : capture;\n // See https://github.com/pillarjs/path-to-regexp#parameters\n const wildcards = '[*:?+]';\n if (new RegExp(`${wildcards}`).exec(valueToCheck)) {\n logger.debug(`The '$capture' parameter contains an Express-style wildcard ` +\n `character (${wildcards}). Strings are now always interpreted as ` +\n `exact matches; use a RegExp for partial or wildcard matches.`);\n }\n }\n const matchCallback = ({ url }) => {\n if (process.env.NODE_ENV !== 'production') {\n if (url.pathname === captureUrl.pathname &&\n url.origin !== captureUrl.origin) {\n logger.debug(`${capture} only partially matches the cross-origin URL ` +\n `${url.toString()}. This route will only handle cross-origin requests ` +\n `if they match the entire URL.`);\n }\n }\n return url.href === captureUrl.href;\n };\n // If `capture` is a string then `handler` and `method` must be present.\n route = new Route(matchCallback, handler, method);\n }\n else if (capture instanceof RegExp) {\n // If `capture` is a `RegExp` then `handler` and `method` must be present.\n route = new RegExpRoute(capture, handler, method);\n }\n else if (typeof capture === 'function') {\n // If `capture` is a function then `handler` and `method` must be present.\n route = new Route(capture, handler, method);\n }\n else if (capture instanceof Route) {\n route = capture;\n }\n else {\n throw new WorkboxError('unsupported-route-type', {\n moduleName: 'workbox-routing',\n funcName: 'registerRoute',\n paramName: 'capture',\n });\n }\n const defaultRouter = getOrCreateDefaultRouter();\n defaultRouter.registerRoute(route);\n return route;\n}\nexport { registerRoute };\n","\"use strict\";\n// @ts-ignore\ntry {\n self['workbox:strategies:7.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 '../_version.js';\nexport const cacheOkAndOpaquePlugin = {\n /**\n * Returns a valid response (to allow caching) if the status is 200 (OK) or\n * 0 (opaque).\n *\n * @param {Object} options\n * @param {Response} options.response\n * @return {Response|null}\n *\n * @private\n */\n cacheWillUpdate: async ({ response }) => {\n if (response.status === 200 || response.status === 0) {\n return response;\n }\n return null;\n },\n};\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nconst _cacheNameDetails = {\n googleAnalytics: 'googleAnalytics',\n precache: 'precache-v2',\n prefix: 'workbox',\n runtime: 'runtime',\n suffix: typeof registration !== 'undefined' ? registration.scope : '',\n};\nconst _createCacheName = (cacheName) => {\n return [_cacheNameDetails.prefix, cacheName, _cacheNameDetails.suffix]\n .filter((value) => value && value.length > 0)\n .join('-');\n};\nconst eachCacheNameDetail = (fn) => {\n for (const key of Object.keys(_cacheNameDetails)) {\n fn(key);\n }\n};\nexport const cacheNames = {\n updateDetails: (details) => {\n eachCacheNameDetail((key) => {\n if (typeof details[key] === 'string') {\n _cacheNameDetails[key] = details[key];\n }\n });\n },\n getGoogleAnalyticsName: (userCacheName) => {\n return userCacheName || _createCacheName(_cacheNameDetails.googleAnalytics);\n },\n getPrecacheName: (userCacheName) => {\n return userCacheName || _createCacheName(_cacheNameDetails.precache);\n },\n getPrefix: () => {\n return _cacheNameDetails.prefix;\n },\n getRuntimeName: (userCacheName) => {\n return userCacheName || _createCacheName(_cacheNameDetails.runtime);\n },\n getSuffix: () => {\n return _cacheNameDetails.suffix;\n },\n};\n","/*\n Copyright 2020 Google LLC\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nfunction stripParams(fullURL, ignoreParams) {\n const strippedURL = new URL(fullURL);\n for (const param of ignoreParams) {\n strippedURL.searchParams.delete(param);\n }\n return strippedURL.href;\n}\n/**\n * Matches an item in the cache, ignoring specific URL params. This is similar\n * to the `ignoreSearch` option, but it allows you to ignore just specific\n * params (while continuing to match on the others).\n *\n * @private\n * @param {Cache} cache\n * @param {Request} request\n * @param {Object} matchOptions\n * @param {Array} ignoreParams\n * @return {Promise}\n */\nasync function cacheMatchIgnoreParams(cache, request, ignoreParams, matchOptions) {\n const strippedRequestURL = stripParams(request.url, ignoreParams);\n // If the request doesn't include any ignored params, match as normal.\n if (request.url === strippedRequestURL) {\n return cache.match(request, matchOptions);\n }\n // Otherwise, match by comparing keys\n const keysOptions = Object.assign(Object.assign({}, matchOptions), { ignoreSearch: true });\n const cacheKeys = await cache.keys(request, keysOptions);\n for (const cacheKey of cacheKeys) {\n const strippedCacheKeyURL = stripParams(cacheKey.url, ignoreParams);\n if (strippedRequestURL === strippedCacheKeyURL) {\n return cache.match(cacheKey, matchOptions);\n }\n }\n return;\n}\nexport { cacheMatchIgnoreParams };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * The Deferred class composes Promises in a way that allows for them to be\n * resolved or rejected from outside the constructor. In most cases promises\n * should be used directly, but Deferreds can be necessary when the logic to\n * resolve a promise must be separate.\n *\n * @private\n */\nclass Deferred {\n /**\n * Creates a promise and exposes its resolve and reject functions as methods.\n */\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n });\n }\n}\nexport { Deferred };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n// Callbacks to be executed whenever there's a quota error.\n// Can't change Function type right now.\n// eslint-disable-next-line @typescript-eslint/ban-types\nconst quotaErrorCallbacks = new Set();\nexport { quotaErrorCallbacks };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { logger } from '../_private/logger.js';\nimport { quotaErrorCallbacks } from '../models/quotaErrorCallbacks.js';\nimport '../_version.js';\n/**\n * Runs all of the callback functions, one at a time sequentially, in the order\n * in which they were registered.\n *\n * @memberof workbox-core\n * @private\n */\nasync function executeQuotaErrorCallbacks() {\n if (process.env.NODE_ENV !== 'production') {\n logger.log(`About to run ${quotaErrorCallbacks.size} ` +\n `callbacks to clean up caches.`);\n }\n for (const callback of quotaErrorCallbacks) {\n await callback();\n if (process.env.NODE_ENV !== 'production') {\n logger.log(callback, 'is complete.');\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n logger.log('Finished running callbacks.');\n }\n}\nexport { executeQuotaErrorCallbacks };\n","/*\n Copyright 2019 Google LLC\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * Returns a promise that resolves and the passed number of milliseconds.\n * This utility is an async/await-friendly version of `setTimeout`.\n *\n * @param {number} ms\n * @return {Promise}\n * @private\n */\nexport function timeout(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n","/*\n Copyright 2020 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 { cacheMatchIgnoreParams } from 'workbox-core/_private/cacheMatchIgnoreParams.js';\nimport { Deferred } from 'workbox-core/_private/Deferred.js';\nimport { executeQuotaErrorCallbacks } from 'workbox-core/_private/executeQuotaErrorCallbacks.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { timeout } from 'workbox-core/_private/timeout.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport './_version.js';\nfunction toRequest(input) {\n return typeof input === 'string' ? new Request(input) : input;\n}\n/**\n * A class created every time a Strategy instance instance calls\n * {@link workbox-strategies.Strategy~handle} or\n * {@link workbox-strategies.Strategy~handleAll} that wraps all fetch and\n * cache actions around plugin callbacks and keeps track of when the strategy\n * is \"done\" (i.e. all added `event.waitUntil()` promises have resolved).\n *\n * @memberof workbox-strategies\n */\nclass StrategyHandler {\n /**\n * Creates a new instance associated with the passed strategy and event\n * that's handling the request.\n *\n * The constructor also initializes the state that will be passed to each of\n * the plugins handling this request.\n *\n * @param {workbox-strategies.Strategy} strategy\n * @param {Object} options\n * @param {Request|string} options.request A request to run this strategy for.\n * @param {ExtendableEvent} options.event The event associated with the\n * request.\n * @param {URL} [options.url]\n * @param {*} [options.params] The return value from the\n * {@link workbox-routing~matchCallback} (if applicable).\n */\n constructor(strategy, options) {\n this._cacheKeys = {};\n /**\n * The request the strategy is performing (passed to the strategy's\n * `handle()` or `handleAll()` method).\n * @name request\n * @instance\n * @type {Request}\n * @memberof workbox-strategies.StrategyHandler\n */\n /**\n * The event associated with this request.\n * @name event\n * @instance\n * @type {ExtendableEvent}\n * @memberof workbox-strategies.StrategyHandler\n */\n /**\n * A `URL` instance of `request.url` (if passed to the strategy's\n * `handle()` or `handleAll()` method).\n * Note: the `url` param will be present if the strategy was invoked\n * from a workbox `Route` object.\n * @name url\n * @instance\n * @type {URL|undefined}\n * @memberof workbox-strategies.StrategyHandler\n */\n /**\n * A `param` value (if passed to the strategy's\n * `handle()` or `handleAll()` method).\n * Note: the `param` param will be present if the strategy was invoked\n * from a workbox `Route` object and the\n * {@link workbox-routing~matchCallback} returned\n * a truthy value (it will be that value).\n * @name params\n * @instance\n * @type {*|undefined}\n * @memberof workbox-strategies.StrategyHandler\n */\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(options.event, ExtendableEvent, {\n moduleName: 'workbox-strategies',\n className: 'StrategyHandler',\n funcName: 'constructor',\n paramName: 'options.event',\n });\n }\n Object.assign(this, options);\n this.event = options.event;\n this._strategy = strategy;\n this._handlerDeferred = new Deferred();\n this._extendLifetimePromises = [];\n // Copy the plugins list (since it's mutable on the strategy),\n // so any mutations don't affect this handler instance.\n this._plugins = [...strategy.plugins];\n this._pluginStateMap = new Map();\n for (const plugin of this._plugins) {\n this._pluginStateMap.set(plugin, {});\n }\n this.event.waitUntil(this._handlerDeferred.promise);\n }\n /**\n * Fetches a given request (and invokes any applicable plugin callback\n * methods) using the `fetchOptions` (for non-navigation requests) and\n * `plugins` defined on the `Strategy` object.\n *\n * The following plugin lifecycle methods are invoked when using this method:\n * - `requestWillFetch()`\n * - `fetchDidSucceed()`\n * - `fetchDidFail()`\n *\n * @param {Request|string} input The URL or request to fetch.\n * @return {Promise}\n */\n async fetch(input) {\n const { event } = this;\n let request = toRequest(input);\n if (request.mode === 'navigate' &&\n event instanceof FetchEvent &&\n event.preloadResponse) {\n const possiblePreloadResponse = (await event.preloadResponse);\n if (possiblePreloadResponse) {\n if (process.env.NODE_ENV !== 'production') {\n logger.log(`Using a preloaded navigation response for ` +\n `'${getFriendlyURL(request.url)}'`);\n }\n return possiblePreloadResponse;\n }\n }\n // If there is a fetchDidFail plugin, we need to save a clone of the\n // original request before it's either modified by a requestWillFetch\n // plugin or before the original request's body is consumed via fetch().\n const originalRequest = this.hasCallback('fetchDidFail')\n ? request.clone()\n : null;\n try {\n for (const cb of this.iterateCallbacks('requestWillFetch')) {\n request = await cb({ request: request.clone(), event });\n }\n }\n catch (err) {\n if (err instanceof Error) {\n throw new WorkboxError('plugin-error-request-will-fetch', {\n thrownErrorMessage: err.message,\n });\n }\n }\n // The request can be altered by plugins with `requestWillFetch` making\n // the original request (most likely from a `fetch` event) different\n // from the Request we make. Pass both to `fetchDidFail` to aid debugging.\n const pluginFilteredRequest = request.clone();\n try {\n let fetchResponse;\n // See https://github.com/GoogleChrome/workbox/issues/1796\n fetchResponse = await fetch(request, request.mode === 'navigate' ? undefined : this._strategy.fetchOptions);\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`Network request for ` +\n `'${getFriendlyURL(request.url)}' returned a response with ` +\n `status '${fetchResponse.status}'.`);\n }\n for (const callback of this.iterateCallbacks('fetchDidSucceed')) {\n fetchResponse = await callback({\n event,\n request: pluginFilteredRequest,\n response: fetchResponse,\n });\n }\n return fetchResponse;\n }\n catch (error) {\n if (process.env.NODE_ENV !== 'production') {\n logger.log(`Network request for ` +\n `'${getFriendlyURL(request.url)}' threw an error.`, error);\n }\n // `originalRequest` will only exist if a `fetchDidFail` callback\n // is being used (see above).\n if (originalRequest) {\n await this.runCallbacks('fetchDidFail', {\n error: error,\n event,\n originalRequest: originalRequest.clone(),\n request: pluginFilteredRequest.clone(),\n });\n }\n throw error;\n }\n }\n /**\n * Calls `this.fetch()` and (in the background) runs `this.cachePut()` on\n * the response generated by `this.fetch()`.\n *\n * The call to `this.cachePut()` automatically invokes `this.waitUntil()`,\n * so you do not have to manually call `waitUntil()` on the event.\n *\n * @param {Request|string} input The request or URL to fetch and cache.\n * @return {Promise}\n */\n async fetchAndCachePut(input) {\n const response = await this.fetch(input);\n const responseClone = response.clone();\n void this.waitUntil(this.cachePut(input, responseClone));\n return response;\n }\n /**\n * Matches a request from the cache (and invokes any applicable plugin\n * callback methods) using the `cacheName`, `matchOptions`, and `plugins`\n * defined on the strategy object.\n *\n * The following plugin lifecycle methods are invoked when using this method:\n * - cacheKeyWillByUsed()\n * - cachedResponseWillByUsed()\n *\n * @param {Request|string} key The Request or URL to use as the cache key.\n * @return {Promise} A matching response, if found.\n */\n async cacheMatch(key) {\n const request = toRequest(key);\n let cachedResponse;\n const { cacheName, matchOptions } = this._strategy;\n const effectiveRequest = await this.getCacheKey(request, 'read');\n const multiMatchOptions = Object.assign(Object.assign({}, matchOptions), { cacheName });\n cachedResponse = await caches.match(effectiveRequest, multiMatchOptions);\n if (process.env.NODE_ENV !== 'production') {\n if (cachedResponse) {\n logger.debug(`Found a cached response in '${cacheName}'.`);\n }\n else {\n logger.debug(`No cached response found in '${cacheName}'.`);\n }\n }\n for (const callback of this.iterateCallbacks('cachedResponseWillBeUsed')) {\n cachedResponse =\n (await callback({\n cacheName,\n matchOptions,\n cachedResponse,\n request: effectiveRequest,\n event: this.event,\n })) || undefined;\n }\n return cachedResponse;\n }\n /**\n * Puts a request/response pair in the cache (and invokes any applicable\n * plugin callback methods) using the `cacheName` and `plugins` defined on\n * the strategy object.\n *\n * The following plugin lifecycle methods are invoked when using this method:\n * - cacheKeyWillByUsed()\n * - cacheWillUpdate()\n * - cacheDidUpdate()\n *\n * @param {Request|string} key The request or URL to use as the cache key.\n * @param {Response} response The response to cache.\n * @return {Promise} `false` if a cacheWillUpdate caused the response\n * not be cached, and `true` otherwise.\n */\n async cachePut(key, response) {\n const request = toRequest(key);\n // Run in the next task to avoid blocking other cache reads.\n // https://github.com/w3c/ServiceWorker/issues/1397\n await timeout(0);\n const effectiveRequest = await this.getCacheKey(request, 'write');\n if (process.env.NODE_ENV !== 'production') {\n if (effectiveRequest.method && effectiveRequest.method !== 'GET') {\n throw new WorkboxError('attempt-to-cache-non-get-request', {\n url: getFriendlyURL(effectiveRequest.url),\n method: effectiveRequest.method,\n });\n }\n // See https://github.com/GoogleChrome/workbox/issues/2818\n const vary = response.headers.get('Vary');\n if (vary) {\n logger.debug(`The response for ${getFriendlyURL(effectiveRequest.url)} ` +\n `has a 'Vary: ${vary}' header. ` +\n `Consider setting the {ignoreVary: true} option on your strategy ` +\n `to ensure cache matching and deletion works as expected.`);\n }\n }\n if (!response) {\n if (process.env.NODE_ENV !== 'production') {\n logger.error(`Cannot cache non-existent response for ` +\n `'${getFriendlyURL(effectiveRequest.url)}'.`);\n }\n throw new WorkboxError('cache-put-with-no-response', {\n url: getFriendlyURL(effectiveRequest.url),\n });\n }\n const responseToCache = await this._ensureResponseSafeToCache(response);\n if (!responseToCache) {\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`Response '${getFriendlyURL(effectiveRequest.url)}' ` +\n `will not be cached.`, responseToCache);\n }\n return false;\n }\n const { cacheName, matchOptions } = this._strategy;\n const cache = await self.caches.open(cacheName);\n const hasCacheUpdateCallback = this.hasCallback('cacheDidUpdate');\n const oldResponse = hasCacheUpdateCallback\n ? await cacheMatchIgnoreParams(\n // TODO(philipwalton): the `__WB_REVISION__` param is a precaching\n // feature. Consider into ways to only add this behavior if using\n // precaching.\n cache, effectiveRequest.clone(), ['__WB_REVISION__'], matchOptions)\n : null;\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`Updating the '${cacheName}' cache with a new Response ` +\n `for ${getFriendlyURL(effectiveRequest.url)}.`);\n }\n try {\n await cache.put(effectiveRequest, hasCacheUpdateCallback ? responseToCache.clone() : responseToCache);\n }\n catch (error) {\n if (error instanceof Error) {\n // See https://developer.mozilla.org/en-US/docs/Web/API/DOMException#exception-QuotaExceededError\n if (error.name === 'QuotaExceededError') {\n await executeQuotaErrorCallbacks();\n }\n throw error;\n }\n }\n for (const callback of this.iterateCallbacks('cacheDidUpdate')) {\n await callback({\n cacheName,\n oldResponse,\n newResponse: responseToCache.clone(),\n request: effectiveRequest,\n event: this.event,\n });\n }\n return true;\n }\n /**\n * Checks the list of plugins for the `cacheKeyWillBeUsed` callback, and\n * executes any of those callbacks found in sequence. The final `Request`\n * object returned by the last plugin is treated as the cache key for cache\n * reads and/or writes. If no `cacheKeyWillBeUsed` plugin callbacks have\n * been registered, the passed request is returned unmodified\n *\n * @param {Request} request\n * @param {string} mode\n * @return {Promise}\n */\n async getCacheKey(request, mode) {\n const key = `${request.url} | ${mode}`;\n if (!this._cacheKeys[key]) {\n let effectiveRequest = request;\n for (const callback of this.iterateCallbacks('cacheKeyWillBeUsed')) {\n effectiveRequest = toRequest(await callback({\n mode,\n request: effectiveRequest,\n event: this.event,\n // params has a type any can't change right now.\n params: this.params, // eslint-disable-line\n }));\n }\n this._cacheKeys[key] = effectiveRequest;\n }\n return this._cacheKeys[key];\n }\n /**\n * Returns true if the strategy has at least one plugin with the given\n * callback.\n *\n * @param {string} name The name of the callback to check for.\n * @return {boolean}\n */\n hasCallback(name) {\n for (const plugin of this._strategy.plugins) {\n if (name in plugin) {\n return true;\n }\n }\n return false;\n }\n /**\n * Runs all plugin callbacks matching the given name, in order, passing the\n * given param object (merged ith the current plugin state) as the only\n * argument.\n *\n * Note: since this method runs all plugins, it's not suitable for cases\n * where the return value of a callback needs to be applied prior to calling\n * the next callback. See\n * {@link workbox-strategies.StrategyHandler#iterateCallbacks}\n * below for how to handle that case.\n *\n * @param {string} name The name of the callback to run within each plugin.\n * @param {Object} param The object to pass as the first (and only) param\n * when executing each callback. This object will be merged with the\n * current plugin state prior to callback execution.\n */\n async runCallbacks(name, param) {\n for (const callback of this.iterateCallbacks(name)) {\n // TODO(philipwalton): not sure why `any` is needed. It seems like\n // this should work with `as WorkboxPluginCallbackParam[C]`.\n await callback(param);\n }\n }\n /**\n * Accepts a callback and returns an iterable of matching plugin callbacks,\n * where each callback is wrapped with the current handler state (i.e. when\n * you call each callback, whatever object parameter you pass it will\n * be merged with the plugin's current state).\n *\n * @param {string} name The name fo the callback to run\n * @return {Array}\n */\n *iterateCallbacks(name) {\n for (const plugin of this._strategy.plugins) {\n if (typeof plugin[name] === 'function') {\n const state = this._pluginStateMap.get(plugin);\n const statefulCallback = (param) => {\n const statefulParam = Object.assign(Object.assign({}, param), { state });\n // TODO(philipwalton): not sure why `any` is needed. It seems like\n // this should work with `as WorkboxPluginCallbackParam[C]`.\n return plugin[name](statefulParam);\n };\n yield statefulCallback;\n }\n }\n }\n /**\n * Adds a promise to the\n * [extend lifetime promises]{@link https://w3c.github.io/ServiceWorker/#extendableevent-extend-lifetime-promises}\n * of the event event associated with the request being handled (usually a\n * `FetchEvent`).\n *\n * Note: you can await\n * {@link workbox-strategies.StrategyHandler~doneWaiting}\n * to know when all added promises have settled.\n *\n * @param {Promise} promise A promise to add to the extend lifetime promises\n * of the event that triggered the request.\n */\n waitUntil(promise) {\n this._extendLifetimePromises.push(promise);\n return promise;\n }\n /**\n * Returns a promise that resolves once all promises passed to\n * {@link workbox-strategies.StrategyHandler~waitUntil}\n * have settled.\n *\n * Note: any work done after `doneWaiting()` settles should be manually\n * passed to an event's `waitUntil()` method (not this handler's\n * `waitUntil()` method), otherwise the service worker thread my be killed\n * prior to your work completing.\n */\n async doneWaiting() {\n let promise;\n while ((promise = this._extendLifetimePromises.shift())) {\n await promise;\n }\n }\n /**\n * Stops running the strategy and immediately resolves any pending\n * `waitUntil()` promises.\n */\n destroy() {\n this._handlerDeferred.resolve(null);\n }\n /**\n * This method will call cacheWillUpdate on the available plugins (or use\n * status === 200) to determine if the Response is safe and valid to cache.\n *\n * @param {Request} options.request\n * @param {Response} options.response\n * @return {Promise}\n *\n * @private\n */\n async _ensureResponseSafeToCache(response) {\n let responseToCache = response;\n let pluginsUsed = false;\n for (const callback of this.iterateCallbacks('cacheWillUpdate')) {\n responseToCache =\n (await callback({\n request: this.request,\n response: responseToCache,\n event: this.event,\n })) || undefined;\n pluginsUsed = true;\n if (!responseToCache) {\n break;\n }\n }\n if (!pluginsUsed) {\n if (responseToCache && responseToCache.status !== 200) {\n responseToCache = undefined;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (responseToCache) {\n if (responseToCache.status !== 200) {\n if (responseToCache.status === 0) {\n logger.warn(`The response for '${this.request.url}' ` +\n `is an opaque response. The caching strategy that you're ` +\n `using will not cache opaque responses by default.`);\n }\n else {\n logger.debug(`The response for '${this.request.url}' ` +\n `returned a status code of '${response.status}' and won't ` +\n `be cached as a result.`);\n }\n }\n }\n }\n }\n return responseToCache;\n }\n}\nexport { StrategyHandler };\n","/*\n Copyright 2020 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 { cacheNames } from 'workbox-core/_private/cacheNames.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { StrategyHandler } from './StrategyHandler.js';\nimport './_version.js';\n/**\n * An abstract base class that all other strategy classes must extend from:\n *\n * @memberof workbox-strategies\n */\nclass Strategy {\n /**\n * Creates a new instance of the strategy and sets all documented option\n * properties as public instance properties.\n *\n * Note: if a custom strategy class extends the base Strategy class and does\n * not need more than these properties, it does not need to define its own\n * constructor.\n *\n * @param {Object} [options]\n * @param {string} [options.cacheName] Cache name to store and retrieve\n * requests. Defaults to the cache names provided by\n * {@link workbox-core.cacheNames}.\n * @param {Array} [options.plugins] [Plugins]{@link https://developers.google.com/web/tools/workbox/guides/using-plugins}\n * to use in conjunction with this caching strategy.\n * @param {Object} [options.fetchOptions] Values passed along to the\n * [`init`](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters)\n * of [non-navigation](https://github.com/GoogleChrome/workbox/issues/1796)\n * `fetch()` requests made by this strategy.\n * @param {Object} [options.matchOptions] The\n * [`CacheQueryOptions`]{@link https://w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions}\n * for any `cache.match()` or `cache.put()` calls made by this strategy.\n */\n constructor(options = {}) {\n /**\n * Cache name to store and retrieve\n * requests. Defaults to the cache names provided by\n * {@link workbox-core.cacheNames}.\n *\n * @type {string}\n */\n this.cacheName = cacheNames.getRuntimeName(options.cacheName);\n /**\n * The list\n * [Plugins]{@link https://developers.google.com/web/tools/workbox/guides/using-plugins}\n * used by this strategy.\n *\n * @type {Array}\n */\n this.plugins = options.plugins || [];\n /**\n * Values passed along to the\n * [`init`]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters}\n * of all fetch() requests made by this strategy.\n *\n * @type {Object}\n */\n this.fetchOptions = options.fetchOptions;\n /**\n * The\n * [`CacheQueryOptions`]{@link https://w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions}\n * for any `cache.match()` or `cache.put()` calls made by this strategy.\n *\n * @type {Object}\n */\n this.matchOptions = options.matchOptions;\n }\n /**\n * Perform a request strategy and returns a `Promise` that will resolve with\n * a `Response`, invoking all relevant plugin callbacks.\n *\n * When a strategy instance is registered with a Workbox\n * {@link workbox-routing.Route}, this method is automatically\n * called when the route matches.\n *\n * Alternatively, this method can be used in a standalone `FetchEvent`\n * listener by passing it to `event.respondWith()`.\n *\n * @param {FetchEvent|Object} options A `FetchEvent` or an object with the\n * properties listed below.\n * @param {Request|string} options.request A request to run this strategy for.\n * @param {ExtendableEvent} options.event The event associated with the\n * request.\n * @param {URL} [options.url]\n * @param {*} [options.params]\n */\n handle(options) {\n const [responseDone] = this.handleAll(options);\n return responseDone;\n }\n /**\n * Similar to {@link workbox-strategies.Strategy~handle}, but\n * instead of just returning a `Promise` that resolves to a `Response` it\n * it will return an tuple of `[response, done]` promises, where the former\n * (`response`) is equivalent to what `handle()` returns, and the latter is a\n * Promise that will resolve once any promises that were added to\n * `event.waitUntil()` as part of performing the strategy have completed.\n *\n * You can await the `done` promise to ensure any extra work performed by\n * the strategy (usually caching responses) completes successfully.\n *\n * @param {FetchEvent|Object} options A `FetchEvent` or an object with the\n * properties listed below.\n * @param {Request|string} options.request A request to run this strategy for.\n * @param {ExtendableEvent} options.event The event associated with the\n * request.\n * @param {URL} [options.url]\n * @param {*} [options.params]\n * @return {Array} A tuple of [response, done]\n * promises that can be used to determine when the response resolves as\n * well as when the handler has completed all its work.\n */\n handleAll(options) {\n // Allow for flexible options to be passed.\n if (options instanceof FetchEvent) {\n options = {\n event: options,\n request: options.request,\n };\n }\n const event = options.event;\n const request = typeof options.request === 'string'\n ? new Request(options.request)\n : options.request;\n const params = 'params' in options ? options.params : undefined;\n const handler = new StrategyHandler(this, { event, request, params });\n const responseDone = this._getResponse(handler, request, event);\n const handlerDone = this._awaitComplete(responseDone, handler, request, event);\n // Return an array of promises, suitable for use with Promise.all().\n return [responseDone, handlerDone];\n }\n async _getResponse(handler, request, event) {\n await handler.runCallbacks('handlerWillStart', { event, request });\n let response = undefined;\n try {\n response = await this._handle(request, handler);\n // The \"official\" Strategy subclasses all throw this error automatically,\n // but in case a third-party Strategy doesn't, ensure that we have a\n // consistent failure when there's no response or an error response.\n if (!response || response.type === 'error') {\n throw new WorkboxError('no-response', { url: request.url });\n }\n }\n catch (error) {\n if (error instanceof Error) {\n for (const callback of handler.iterateCallbacks('handlerDidError')) {\n response = await callback({ error, event, request });\n if (response) {\n break;\n }\n }\n }\n if (!response) {\n throw error;\n }\n else if (process.env.NODE_ENV !== 'production') {\n logger.log(`While responding to '${getFriendlyURL(request.url)}', ` +\n `an ${error instanceof Error ? error.toString() : ''} error occurred. Using a fallback response provided by ` +\n `a handlerDidError plugin.`);\n }\n }\n for (const callback of handler.iterateCallbacks('handlerWillRespond')) {\n response = await callback({ event, request, response });\n }\n return response;\n }\n async _awaitComplete(responseDone, handler, request, event) {\n let response;\n let error;\n try {\n response = await responseDone;\n }\n catch (error) {\n // Ignore errors, as response errors should be caught via the `response`\n // promise above. The `done` promise will only throw for errors in\n // promises passed to `handler.waitUntil()`.\n }\n try {\n await handler.runCallbacks('handlerDidRespond', {\n event,\n request,\n response,\n });\n await handler.doneWaiting();\n }\n catch (waitUntilError) {\n if (waitUntilError instanceof Error) {\n error = waitUntilError;\n }\n }\n await handler.runCallbacks('handlerDidComplete', {\n event,\n request,\n response,\n error: error,\n });\n handler.destroy();\n if (error) {\n throw error;\n }\n }\n}\nexport { Strategy };\n/**\n * Classes extending the `Strategy` based class should implement this method,\n * and leverage the {@link workbox-strategies.StrategyHandler}\n * arg to perform all fetching and cache logic, which will ensure all relevant\n * cache, cache options, fetch options and plugins are used (per the current\n * strategy instance).\n *\n * @name _handle\n * @instance\n * @abstract\n * @function\n * @param {Request} request\n * @param {workbox-strategies.StrategyHandler} handler\n * @return {Promise}\n *\n * @memberof workbox-strategies.Strategy\n */\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport '../_version.js';\nexport const messages = {\n strategyStart: (strategyName, request) => `Using ${strategyName} to respond to '${getFriendlyURL(request.url)}'`,\n printFinalResponse: (response) => {\n if (response) {\n logger.groupCollapsed(`View the final response here.`);\n logger.log(response || '[No response returned]');\n logger.groupEnd();\n }\n },\n};\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { cacheOkAndOpaquePlugin } from './plugins/cacheOkAndOpaquePlugin.js';\nimport { Strategy } from './Strategy.js';\nimport { messages } from './utils/messages.js';\nimport './_version.js';\n/**\n * An implementation of a\n * [network first](https://developer.chrome.com/docs/workbox/caching-strategies-overview/#network-first-falling-back-to-cache)\n * request strategy.\n *\n * By default, this strategy will cache responses with a 200 status code as\n * well as [opaque responses](https://developer.chrome.com/docs/workbox/caching-resources-during-runtime/#opaque-responses).\n * Opaque responses are are cross-origin requests where the response doesn't\n * support [CORS](https://enable-cors.org/).\n *\n * If the network request fails, and there is no cache match, this will throw\n * a `WorkboxError` exception.\n *\n * @extends workbox-strategies.Strategy\n * @memberof workbox-strategies\n */\nclass NetworkFirst extends Strategy {\n /**\n * @param {Object} [options]\n * @param {string} [options.cacheName] Cache name to store and retrieve\n * requests. Defaults to cache names provided by\n * {@link workbox-core.cacheNames}.\n * @param {Array} [options.plugins] [Plugins]{@link https://developers.google.com/web/tools/workbox/guides/using-plugins}\n * to use in conjunction with this caching strategy.\n * @param {Object} [options.fetchOptions] Values passed along to the\n * [`init`](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters)\n * of [non-navigation](https://github.com/GoogleChrome/workbox/issues/1796)\n * `fetch()` requests made by this strategy.\n * @param {Object} [options.matchOptions] [`CacheQueryOptions`](https://w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions)\n * @param {number} [options.networkTimeoutSeconds] If set, any network requests\n * that fail to respond within the timeout will fallback to the cache.\n *\n * This option can be used to combat\n * \"[lie-fi]{@link https://developers.google.com/web/fundamentals/performance/poor-connectivity/#lie-fi}\"\n * scenarios.\n */\n constructor(options = {}) {\n super(options);\n // If this instance contains no plugins with a 'cacheWillUpdate' callback,\n // prepend the `cacheOkAndOpaquePlugin` plugin to the plugins list.\n if (!this.plugins.some((p) => 'cacheWillUpdate' in p)) {\n this.plugins.unshift(cacheOkAndOpaquePlugin);\n }\n this._networkTimeoutSeconds = options.networkTimeoutSeconds || 0;\n if (process.env.NODE_ENV !== 'production') {\n if (this._networkTimeoutSeconds) {\n assert.isType(this._networkTimeoutSeconds, 'number', {\n moduleName: 'workbox-strategies',\n className: this.constructor.name,\n funcName: 'constructor',\n paramName: 'networkTimeoutSeconds',\n });\n }\n }\n }\n /**\n * @private\n * @param {Request|string} request A request to run this strategy for.\n * @param {workbox-strategies.StrategyHandler} handler The event that\n * triggered the request.\n * @return {Promise}\n */\n async _handle(request, handler) {\n const logs = [];\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(request, Request, {\n moduleName: 'workbox-strategies',\n className: this.constructor.name,\n funcName: 'handle',\n paramName: 'makeRequest',\n });\n }\n const promises = [];\n let timeoutId;\n if (this._networkTimeoutSeconds) {\n const { id, promise } = this._getTimeoutPromise({ request, logs, handler });\n timeoutId = id;\n promises.push(promise);\n }\n const networkPromise = this._getNetworkPromise({\n timeoutId,\n request,\n logs,\n handler,\n });\n promises.push(networkPromise);\n const response = await handler.waitUntil((async () => {\n // Promise.race() will resolve as soon as the first promise resolves.\n return ((await handler.waitUntil(Promise.race(promises))) ||\n // If Promise.race() resolved with null, it might be due to a network\n // timeout + a cache miss. If that were to happen, we'd rather wait until\n // the networkPromise resolves instead of returning null.\n // Note that it's fine to await an already-resolved promise, so we don't\n // have to check to see if it's still \"in flight\".\n (await networkPromise));\n })());\n if (process.env.NODE_ENV !== 'production') {\n logger.groupCollapsed(messages.strategyStart(this.constructor.name, request));\n for (const log of logs) {\n logger.log(log);\n }\n messages.printFinalResponse(response);\n logger.groupEnd();\n }\n if (!response) {\n throw new WorkboxError('no-response', { url: request.url });\n }\n return response;\n }\n /**\n * @param {Object} options\n * @param {Request} options.request\n * @param {Array} options.logs A reference to the logs array\n * @param {Event} options.event\n * @return {Promise}\n *\n * @private\n */\n _getTimeoutPromise({ request, logs, handler, }) {\n let timeoutId;\n const timeoutPromise = new Promise((resolve) => {\n const onNetworkTimeout = async () => {\n if (process.env.NODE_ENV !== 'production') {\n logs.push(`Timing out the network response at ` +\n `${this._networkTimeoutSeconds} seconds.`);\n }\n resolve(await handler.cacheMatch(request));\n };\n timeoutId = setTimeout(onNetworkTimeout, this._networkTimeoutSeconds * 1000);\n });\n return {\n promise: timeoutPromise,\n id: timeoutId,\n };\n }\n /**\n * @param {Object} options\n * @param {number|undefined} options.timeoutId\n * @param {Request} options.request\n * @param {Array} options.logs A reference to the logs Array.\n * @param {Event} options.event\n * @return {Promise}\n *\n * @private\n */\n async _getNetworkPromise({ timeoutId, request, logs, handler, }) {\n let error;\n let response;\n try {\n response = await handler.fetchAndCachePut(request);\n }\n catch (fetchError) {\n if (fetchError instanceof Error) {\n error = fetchError;\n }\n }\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n if (process.env.NODE_ENV !== 'production') {\n if (response) {\n logs.push(`Got response from network.`);\n }\n else {\n logs.push(`Unable to get a response from the network. Will respond ` +\n `with a cached response.`);\n }\n }\n if (error || !response) {\n response = await handler.cacheMatch(request);\n if (process.env.NODE_ENV !== 'production') {\n if (response) {\n logs.push(`Found a cached response in the '${this.cacheName}'` + ` cache.`);\n }\n else {\n logs.push(`No response found in the '${this.cacheName}' cache.`);\n }\n }\n }\n return response;\n }\n}\nexport { NetworkFirst };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { timeout } from 'workbox-core/_private/timeout.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { Strategy } from './Strategy.js';\nimport { messages } from './utils/messages.js';\nimport './_version.js';\n/**\n * An implementation of a\n * [network-only](https://developer.chrome.com/docs/workbox/caching-strategies-overview/#network-only)\n * request strategy.\n *\n * This class is useful if you want to take advantage of any\n * [Workbox plugins](https://developer.chrome.com/docs/workbox/using-plugins/).\n *\n * If the network request fails, this will throw a `WorkboxError` exception.\n *\n * @extends workbox-strategies.Strategy\n * @memberof workbox-strategies\n */\nclass NetworkOnly extends Strategy {\n /**\n * @param {Object} [options]\n * @param {Array} [options.plugins] [Plugins]{@link https://developers.google.com/web/tools/workbox/guides/using-plugins}\n * to use in conjunction with this caching strategy.\n * @param {Object} [options.fetchOptions] Values passed along to the\n * [`init`](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters)\n * of [non-navigation](https://github.com/GoogleChrome/workbox/issues/1796)\n * `fetch()` requests made by this strategy.\n * @param {number} [options.networkTimeoutSeconds] If set, any network requests\n * that fail to respond within the timeout will result in a network error.\n */\n constructor(options = {}) {\n super(options);\n this._networkTimeoutSeconds = options.networkTimeoutSeconds || 0;\n }\n /**\n * @private\n * @param {Request|string} request A request to run this strategy for.\n * @param {workbox-strategies.StrategyHandler} handler The event that\n * triggered the request.\n * @return {Promise}\n */\n async _handle(request, handler) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(request, Request, {\n moduleName: 'workbox-strategies',\n className: this.constructor.name,\n funcName: '_handle',\n paramName: 'request',\n });\n }\n let error = undefined;\n let response;\n try {\n const promises = [\n handler.fetch(request),\n ];\n if (this._networkTimeoutSeconds) {\n const timeoutPromise = timeout(this._networkTimeoutSeconds * 1000);\n promises.push(timeoutPromise);\n }\n response = await Promise.race(promises);\n if (!response) {\n throw new Error(`Timed out the network response after ` +\n `${this._networkTimeoutSeconds} seconds.`);\n }\n }\n catch (err) {\n if (err instanceof Error) {\n error = err;\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n logger.groupCollapsed(messages.strategyStart(this.constructor.name, request));\n if (response) {\n logger.log(`Got response from network.`);\n }\n else {\n logger.log(`Unable to get a response from the network.`);\n }\n messages.printFinalResponse(response);\n logger.groupEnd();\n }\n if (!response) {\n throw new WorkboxError('no-response', { url: request.url, error });\n }\n return response;\n }\n}\nexport { NetworkOnly };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport './_version.js';\n/**\n * Claim any currently available clients once the service worker\n * becomes active. This is normally used in conjunction with `skipWaiting()`.\n *\n * @memberof workbox-core\n */\nfunction clientsClaim() {\n self.addEventListener('activate', () => self.clients.claim());\n}\nexport { clientsClaim };\n","/*\n Copyright 2020 Google LLC\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * A utility method that makes it easier to use `event.waitUntil` with\n * async functions and return the result.\n *\n * @param {ExtendableEvent} event\n * @param {Function} asyncFn\n * @return {Function}\n * @private\n */\nfunction waitUntil(event, asyncFn) {\n const returnPromise = asyncFn();\n event.waitUntil(returnPromise);\n return returnPromise;\n}\nexport { waitUntil };\n","\"use strict\";\n// @ts-ignore\ntry {\n self['workbox:precaching:7.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 { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport '../_version.js';\n// Name of the search parameter used to store revision info.\nconst REVISION_SEARCH_PARAM = '__WB_REVISION__';\n/**\n * Converts a manifest entry into a versioned URL suitable for precaching.\n *\n * @param {Object|string} entry\n * @return {string} A URL with versioning info.\n *\n * @private\n * @memberof workbox-precaching\n */\nexport function createCacheKey(entry) {\n if (!entry) {\n throw new WorkboxError('add-to-cache-list-unexpected-type', { entry });\n }\n // If a precache manifest entry is a string, it's assumed to be a versioned\n // URL, like '/app.abcd1234.js'. Return as-is.\n if (typeof entry === 'string') {\n const urlObject = new URL(entry, location.href);\n return {\n cacheKey: urlObject.href,\n url: urlObject.href,\n };\n }\n const { revision, url } = entry;\n if (!url) {\n throw new WorkboxError('add-to-cache-list-unexpected-type', { entry });\n }\n // If there's just a URL and no revision, then it's also assumed to be a\n // versioned URL.\n if (!revision) {\n const urlObject = new URL(url, location.href);\n return {\n cacheKey: urlObject.href,\n url: urlObject.href,\n };\n }\n // Otherwise, construct a properly versioned URL using the custom Workbox\n // search parameter along with the revision info.\n const cacheKeyURL = new URL(url, location.href);\n const originalURL = new URL(url, location.href);\n cacheKeyURL.searchParams.set(REVISION_SEARCH_PARAM, revision);\n return {\n cacheKey: cacheKeyURL.href,\n url: originalURL.href,\n };\n}\n","/*\n Copyright 2020 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * A plugin, designed to be used with PrecacheController, to determine the\n * of assets that were updated (or not updated) during the install event.\n *\n * @private\n */\nclass PrecacheInstallReportPlugin {\n constructor() {\n this.updatedURLs = [];\n this.notUpdatedURLs = [];\n this.handlerWillStart = async ({ request, state, }) => {\n // TODO: `state` should never be undefined...\n if (state) {\n state.originalRequest = request;\n }\n };\n this.cachedResponseWillBeUsed = async ({ event, state, cachedResponse, }) => {\n if (event.type === 'install') {\n if (state &&\n state.originalRequest &&\n state.originalRequest instanceof Request) {\n // TODO: `state` should never be undefined...\n const url = state.originalRequest.url;\n if (cachedResponse) {\n this.notUpdatedURLs.push(url);\n }\n else {\n this.updatedURLs.push(url);\n }\n }\n }\n return cachedResponse;\n };\n }\n}\nexport { PrecacheInstallReportPlugin };\n","/*\n Copyright 2020 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * A plugin, designed to be used with PrecacheController, to translate URLs into\n * the corresponding cache key, based on the current revision info.\n *\n * @private\n */\nclass PrecacheCacheKeyPlugin {\n constructor({ precacheController }) {\n this.cacheKeyWillBeUsed = async ({ request, params, }) => {\n // Params is type any, can't change right now.\n /* eslint-disable */\n const cacheKey = (params === null || params === void 0 ? void 0 : params.cacheKey) ||\n this._precacheController.getCacheKeyForURL(request.url);\n /* eslint-enable */\n return cacheKey\n ? new Request(cacheKey, { headers: request.headers })\n : request;\n };\n this._precacheController = precacheController;\n }\n}\nexport { PrecacheCacheKeyPlugin };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { logger } from 'workbox-core/_private/logger.js';\nimport '../_version.js';\n/**\n * @param {string} groupTitle\n * @param {Array} deletedURLs\n *\n * @private\n */\nconst logGroup = (groupTitle, deletedURLs) => {\n logger.groupCollapsed(groupTitle);\n for (const url of deletedURLs) {\n logger.log(url);\n }\n logger.groupEnd();\n};\n/**\n * @param {Array} deletedURLs\n *\n * @private\n * @memberof workbox-precaching\n */\nexport function printCleanupDetails(deletedURLs) {\n const deletionCount = deletedURLs.length;\n if (deletionCount > 0) {\n logger.groupCollapsed(`During precaching cleanup, ` +\n `${deletionCount} cached ` +\n `request${deletionCount === 1 ? ' was' : 's were'} deleted.`);\n logGroup('Deleted Cache Requests', deletedURLs);\n logger.groupEnd();\n }\n}\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { logger } from 'workbox-core/_private/logger.js';\nimport '../_version.js';\n/**\n * @param {string} groupTitle\n * @param {Array} urls\n *\n * @private\n */\nfunction _nestedGroup(groupTitle, urls) {\n if (urls.length === 0) {\n return;\n }\n logger.groupCollapsed(groupTitle);\n for (const url of urls) {\n logger.log(url);\n }\n logger.groupEnd();\n}\n/**\n * @param {Array} urlsToPrecache\n * @param {Array} urlsAlreadyPrecached\n *\n * @private\n * @memberof workbox-precaching\n */\nexport function printInstallDetails(urlsToPrecache, urlsAlreadyPrecached) {\n const precachedCount = urlsToPrecache.length;\n const alreadyPrecachedCount = urlsAlreadyPrecached.length;\n if (precachedCount || alreadyPrecachedCount) {\n let message = `Precaching ${precachedCount} file${precachedCount === 1 ? '' : 's'}.`;\n if (alreadyPrecachedCount > 0) {\n message +=\n ` ${alreadyPrecachedCount} ` +\n `file${alreadyPrecachedCount === 1 ? ' is' : 's are'} already cached.`;\n }\n logger.groupCollapsed(message);\n _nestedGroup(`View newly precached URLs.`, urlsToPrecache);\n _nestedGroup(`View previously precached URLs.`, urlsAlreadyPrecached);\n logger.groupEnd();\n }\n}\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nlet supportStatus;\n/**\n * A utility function that determines whether the current browser supports\n * constructing a new `Response` from a `response.body` stream.\n *\n * @return {boolean} `true`, if the current browser can successfully\n * construct a `Response` from a `response.body` stream, `false` otherwise.\n *\n * @private\n */\nfunction canConstructResponseFromBodyStream() {\n if (supportStatus === undefined) {\n const testResponse = new Response('');\n if ('body' in testResponse) {\n try {\n new Response(testResponse.body);\n supportStatus = true;\n }\n catch (error) {\n supportStatus = false;\n }\n }\n supportStatus = false;\n }\n return supportStatus;\n}\nexport { canConstructResponseFromBodyStream };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { canConstructResponseFromBodyStream } from './_private/canConstructResponseFromBodyStream.js';\nimport { WorkboxError } from './_private/WorkboxError.js';\nimport './_version.js';\n/**\n * Allows developers to copy a response and modify its `headers`, `status`,\n * or `statusText` values (the values settable via a\n * [`ResponseInit`]{@link https://developer.mozilla.org/en-US/docs/Web/API/Response/Response#Syntax}\n * object in the constructor).\n * To modify these values, pass a function as the second argument. That\n * function will be invoked with a single object with the response properties\n * `{headers, status, statusText}`. The return value of this function will\n * be used as the `ResponseInit` for the new `Response`. To change the values\n * either modify the passed parameter(s) and return it, or return a totally\n * new object.\n *\n * This method is intentionally limited to same-origin responses, regardless of\n * whether CORS was used or not.\n *\n * @param {Response} response\n * @param {Function} modifier\n * @memberof workbox-core\n */\nasync function copyResponse(response, modifier) {\n let origin = null;\n // If response.url isn't set, assume it's cross-origin and keep origin null.\n if (response.url) {\n const responseURL = new URL(response.url);\n origin = responseURL.origin;\n }\n if (origin !== self.location.origin) {\n throw new WorkboxError('cross-origin-copy-response', { origin });\n }\n const clonedResponse = response.clone();\n // Create a fresh `ResponseInit` object by cloning the headers.\n const responseInit = {\n headers: new Headers(clonedResponse.headers),\n status: clonedResponse.status,\n statusText: clonedResponse.statusText,\n };\n // Apply any user modifications.\n const modifiedResponseInit = modifier ? modifier(responseInit) : responseInit;\n // Create the new response from the body stream and `ResponseInit`\n // modifications. Note: not all browsers support the Response.body stream,\n // so fall back to reading the entire body into memory as a blob.\n const body = canConstructResponseFromBodyStream()\n ? clonedResponse.body\n : await clonedResponse.blob();\n return new Response(body, modifiedResponseInit);\n}\nexport { copyResponse };\n","/*\n Copyright 2020 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 { copyResponse } from 'workbox-core/copyResponse.js';\nimport { cacheNames } from 'workbox-core/_private/cacheNames.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { Strategy } from 'workbox-strategies/Strategy.js';\nimport './_version.js';\n/**\n * A {@link workbox-strategies.Strategy} implementation\n * specifically designed to work with\n * {@link workbox-precaching.PrecacheController}\n * to both cache and fetch precached assets.\n *\n * Note: an instance of this class is created automatically when creating a\n * `PrecacheController`; it's generally not necessary to create this yourself.\n *\n * @extends workbox-strategies.Strategy\n * @memberof workbox-precaching\n */\nclass PrecacheStrategy extends Strategy {\n /**\n *\n * @param {Object} [options]\n * @param {string} [options.cacheName] Cache name to store and retrieve\n * requests. Defaults to the cache names provided by\n * {@link workbox-core.cacheNames}.\n * @param {Array} [options.plugins] {@link https://developers.google.com/web/tools/workbox/guides/using-plugins|Plugins}\n * to use in conjunction with this caching strategy.\n * @param {Object} [options.fetchOptions] Values passed along to the\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters|init}\n * of all fetch() requests made by this strategy.\n * @param {Object} [options.matchOptions] The\n * {@link https://w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions|CacheQueryOptions}\n * for any `cache.match()` or `cache.put()` calls made by this strategy.\n * @param {boolean} [options.fallbackToNetwork=true] Whether to attempt to\n * get the response from the network if there's a precache miss.\n */\n constructor(options = {}) {\n options.cacheName = cacheNames.getPrecacheName(options.cacheName);\n super(options);\n this._fallbackToNetwork =\n options.fallbackToNetwork === false ? false : true;\n // Redirected responses cannot be used to satisfy a navigation request, so\n // any redirected response must be \"copied\" rather than cloned, so the new\n // response doesn't contain the `redirected` flag. See:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=669363&desc=2#c1\n this.plugins.push(PrecacheStrategy.copyRedirectedCacheableResponsesPlugin);\n }\n /**\n * @private\n * @param {Request|string} request A request to run this strategy for.\n * @param {workbox-strategies.StrategyHandler} handler The event that\n * triggered the request.\n * @return {Promise}\n */\n async _handle(request, handler) {\n const response = await handler.cacheMatch(request);\n if (response) {\n return response;\n }\n // If this is an `install` event for an entry that isn't already cached,\n // then populate the cache.\n if (handler.event && handler.event.type === 'install') {\n return await this._handleInstall(request, handler);\n }\n // Getting here means something went wrong. An entry that should have been\n // precached wasn't found in the cache.\n return await this._handleFetch(request, handler);\n }\n async _handleFetch(request, handler) {\n let response;\n const params = (handler.params || {});\n // Fall back to the network if we're configured to do so.\n if (this._fallbackToNetwork) {\n if (process.env.NODE_ENV !== 'production') {\n logger.warn(`The precached response for ` +\n `${getFriendlyURL(request.url)} in ${this.cacheName} was not ` +\n `found. Falling back to the network.`);\n }\n const integrityInManifest = params.integrity;\n const integrityInRequest = request.integrity;\n const noIntegrityConflict = !integrityInRequest || integrityInRequest === integrityInManifest;\n // Do not add integrity if the original request is no-cors\n // See https://github.com/GoogleChrome/workbox/issues/3096\n response = await handler.fetch(new Request(request, {\n integrity: request.mode !== 'no-cors'\n ? integrityInRequest || integrityInManifest\n : undefined,\n }));\n // It's only \"safe\" to repair the cache if we're using SRI to guarantee\n // that the response matches the precache manifest's expectations,\n // and there's either a) no integrity property in the incoming request\n // or b) there is an integrity, and it matches the precache manifest.\n // See https://github.com/GoogleChrome/workbox/issues/2858\n // Also if the original request users no-cors we don't use integrity.\n // See https://github.com/GoogleChrome/workbox/issues/3096\n if (integrityInManifest &&\n noIntegrityConflict &&\n request.mode !== 'no-cors') {\n this._useDefaultCacheabilityPluginIfNeeded();\n const wasCached = await handler.cachePut(request, response.clone());\n if (process.env.NODE_ENV !== 'production') {\n if (wasCached) {\n logger.log(`A response for ${getFriendlyURL(request.url)} ` +\n `was used to \"repair\" the precache.`);\n }\n }\n }\n }\n else {\n // This shouldn't normally happen, but there are edge cases:\n // https://github.com/GoogleChrome/workbox/issues/1441\n throw new WorkboxError('missing-precache-entry', {\n cacheName: this.cacheName,\n url: request.url,\n });\n }\n if (process.env.NODE_ENV !== 'production') {\n const cacheKey = params.cacheKey || (await handler.getCacheKey(request, 'read'));\n // Workbox is going to handle the route.\n // print the routing details to the console.\n logger.groupCollapsed(`Precaching is responding to: ` + getFriendlyURL(request.url));\n logger.log(`Serving the precached url: ${getFriendlyURL(cacheKey instanceof Request ? cacheKey.url : cacheKey)}`);\n logger.groupCollapsed(`View request details here.`);\n logger.log(request);\n logger.groupEnd();\n logger.groupCollapsed(`View response details here.`);\n logger.log(response);\n logger.groupEnd();\n logger.groupEnd();\n }\n return response;\n }\n async _handleInstall(request, handler) {\n this._useDefaultCacheabilityPluginIfNeeded();\n const response = await handler.fetch(request);\n // Make sure we defer cachePut() until after we know the response\n // should be cached; see https://github.com/GoogleChrome/workbox/issues/2737\n const wasCached = await handler.cachePut(request, response.clone());\n if (!wasCached) {\n // Throwing here will lead to the `install` handler failing, which\n // we want to do if *any* of the responses aren't safe to cache.\n throw new WorkboxError('bad-precaching-response', {\n url: request.url,\n status: response.status,\n });\n }\n return response;\n }\n /**\n * This method is complex, as there a number of things to account for:\n *\n * The `plugins` array can be set at construction, and/or it might be added to\n * to at any time before the strategy is used.\n *\n * At the time the strategy is used (i.e. during an `install` event), there\n * needs to be at least one plugin that implements `cacheWillUpdate` in the\n * array, other than `copyRedirectedCacheableResponsesPlugin`.\n *\n * - If this method is called and there are no suitable `cacheWillUpdate`\n * plugins, we need to add `defaultPrecacheCacheabilityPlugin`.\n *\n * - If this method is called and there is exactly one `cacheWillUpdate`, then\n * we don't have to do anything (this might be a previously added\n * `defaultPrecacheCacheabilityPlugin`, or it might be a custom plugin).\n *\n * - If this method is called and there is more than one `cacheWillUpdate`,\n * then we need to check if one is `defaultPrecacheCacheabilityPlugin`. If so,\n * we need to remove it. (This situation is unlikely, but it could happen if\n * the strategy is used multiple times, the first without a `cacheWillUpdate`,\n * and then later on after manually adding a custom `cacheWillUpdate`.)\n *\n * See https://github.com/GoogleChrome/workbox/issues/2737 for more context.\n *\n * @private\n */\n _useDefaultCacheabilityPluginIfNeeded() {\n let defaultPluginIndex = null;\n let cacheWillUpdatePluginCount = 0;\n for (const [index, plugin] of this.plugins.entries()) {\n // Ignore the copy redirected plugin when determining what to do.\n if (plugin === PrecacheStrategy.copyRedirectedCacheableResponsesPlugin) {\n continue;\n }\n // Save the default plugin's index, in case it needs to be removed.\n if (plugin === PrecacheStrategy.defaultPrecacheCacheabilityPlugin) {\n defaultPluginIndex = index;\n }\n if (plugin.cacheWillUpdate) {\n cacheWillUpdatePluginCount++;\n }\n }\n if (cacheWillUpdatePluginCount === 0) {\n this.plugins.push(PrecacheStrategy.defaultPrecacheCacheabilityPlugin);\n }\n else if (cacheWillUpdatePluginCount > 1 && defaultPluginIndex !== null) {\n // Only remove the default plugin; multiple custom plugins are allowed.\n this.plugins.splice(defaultPluginIndex, 1);\n }\n // Nothing needs to be done if cacheWillUpdatePluginCount is 1\n }\n}\nPrecacheStrategy.defaultPrecacheCacheabilityPlugin = {\n async cacheWillUpdate({ response }) {\n if (!response || response.status >= 400) {\n return null;\n }\n return response;\n },\n};\nPrecacheStrategy.copyRedirectedCacheableResponsesPlugin = {\n async cacheWillUpdate({ response }) {\n return response.redirected ? await copyResponse(response) : response;\n },\n};\nexport { PrecacheStrategy };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { cacheNames } from 'workbox-core/_private/cacheNames.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { waitUntil } from 'workbox-core/_private/waitUntil.js';\nimport { createCacheKey } from './utils/createCacheKey.js';\nimport { PrecacheInstallReportPlugin } from './utils/PrecacheInstallReportPlugin.js';\nimport { PrecacheCacheKeyPlugin } from './utils/PrecacheCacheKeyPlugin.js';\nimport { printCleanupDetails } from './utils/printCleanupDetails.js';\nimport { printInstallDetails } from './utils/printInstallDetails.js';\nimport { PrecacheStrategy } from './PrecacheStrategy.js';\nimport './_version.js';\n/**\n * Performs efficient precaching of assets.\n *\n * @memberof workbox-precaching\n */\nclass PrecacheController {\n /**\n * Create a new PrecacheController.\n *\n * @param {Object} [options]\n * @param {string} [options.cacheName] The cache to use for precaching.\n * @param {string} [options.plugins] Plugins to use when precaching as well\n * as responding to fetch events for precached assets.\n * @param {boolean} [options.fallbackToNetwork=true] Whether to attempt to\n * get the response from the network if there's a precache miss.\n */\n constructor({ cacheName, plugins = [], fallbackToNetwork = true, } = {}) {\n this._urlsToCacheKeys = new Map();\n this._urlsToCacheModes = new Map();\n this._cacheKeysToIntegrities = new Map();\n this._strategy = new PrecacheStrategy({\n cacheName: cacheNames.getPrecacheName(cacheName),\n plugins: [\n ...plugins,\n new PrecacheCacheKeyPlugin({ precacheController: this }),\n ],\n fallbackToNetwork,\n });\n // Bind the install and activate methods to the instance.\n this.install = this.install.bind(this);\n this.activate = this.activate.bind(this);\n }\n /**\n * @type {workbox-precaching.PrecacheStrategy} The strategy created by this controller and\n * used to cache assets and respond to fetch events.\n */\n get strategy() {\n return this._strategy;\n }\n /**\n * Adds items to the precache list, removing any duplicates and\n * stores the files in the\n * {@link workbox-core.cacheNames|\"precache cache\"} when the service\n * worker installs.\n *\n * This method can be called multiple times.\n *\n * @param {Array} [entries=[]] Array of entries to precache.\n */\n precache(entries) {\n this.addToCacheList(entries);\n if (!this._installAndActiveListenersAdded) {\n self.addEventListener('install', this.install);\n self.addEventListener('activate', this.activate);\n this._installAndActiveListenersAdded = true;\n }\n }\n /**\n * This method will add items to the precache list, removing duplicates\n * and ensuring the information is valid.\n *\n * @param {Array} entries\n * Array of entries to precache.\n */\n addToCacheList(entries) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isArray(entries, {\n moduleName: 'workbox-precaching',\n className: 'PrecacheController',\n funcName: 'addToCacheList',\n paramName: 'entries',\n });\n }\n const urlsToWarnAbout = [];\n for (const entry of entries) {\n // See https://github.com/GoogleChrome/workbox/issues/2259\n if (typeof entry === 'string') {\n urlsToWarnAbout.push(entry);\n }\n else if (entry && entry.revision === undefined) {\n urlsToWarnAbout.push(entry.url);\n }\n const { cacheKey, url } = createCacheKey(entry);\n const cacheMode = typeof entry !== 'string' && entry.revision ? 'reload' : 'default';\n if (this._urlsToCacheKeys.has(url) &&\n this._urlsToCacheKeys.get(url) !== cacheKey) {\n throw new WorkboxError('add-to-cache-list-conflicting-entries', {\n firstEntry: this._urlsToCacheKeys.get(url),\n secondEntry: cacheKey,\n });\n }\n if (typeof entry !== 'string' && entry.integrity) {\n if (this._cacheKeysToIntegrities.has(cacheKey) &&\n this._cacheKeysToIntegrities.get(cacheKey) !== entry.integrity) {\n throw new WorkboxError('add-to-cache-list-conflicting-integrities', {\n url,\n });\n }\n this._cacheKeysToIntegrities.set(cacheKey, entry.integrity);\n }\n this._urlsToCacheKeys.set(url, cacheKey);\n this._urlsToCacheModes.set(url, cacheMode);\n if (urlsToWarnAbout.length > 0) {\n const warningMessage = `Workbox is precaching URLs without revision ` +\n `info: ${urlsToWarnAbout.join(', ')}\\nThis is generally NOT safe. ` +\n `Learn more at https://bit.ly/wb-precache`;\n if (process.env.NODE_ENV === 'production') {\n // Use console directly to display this warning without bloating\n // bundle sizes by pulling in all of the logger codebase in prod.\n console.warn(warningMessage);\n }\n else {\n logger.warn(warningMessage);\n }\n }\n }\n }\n /**\n * Precaches new and updated assets. Call this method from the service worker\n * install event.\n *\n * Note: this method calls `event.waitUntil()` for you, so you do not need\n * to call it yourself in your event handlers.\n *\n * @param {ExtendableEvent} event\n * @return {Promise}\n */\n install(event) {\n // waitUntil returns Promise\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return waitUntil(event, async () => {\n const installReportPlugin = new PrecacheInstallReportPlugin();\n this.strategy.plugins.push(installReportPlugin);\n // Cache entries one at a time.\n // See https://github.com/GoogleChrome/workbox/issues/2528\n for (const [url, cacheKey] of this._urlsToCacheKeys) {\n const integrity = this._cacheKeysToIntegrities.get(cacheKey);\n const cacheMode = this._urlsToCacheModes.get(url);\n const request = new Request(url, {\n integrity,\n cache: cacheMode,\n credentials: 'same-origin',\n });\n await Promise.all(this.strategy.handleAll({\n params: { cacheKey },\n request,\n event,\n }));\n }\n const { updatedURLs, notUpdatedURLs } = installReportPlugin;\n if (process.env.NODE_ENV !== 'production') {\n printInstallDetails(updatedURLs, notUpdatedURLs);\n }\n return { updatedURLs, notUpdatedURLs };\n });\n }\n /**\n * Deletes assets that are no longer present in the current precache manifest.\n * Call this method from the service worker activate event.\n *\n * Note: this method calls `event.waitUntil()` for you, so you do not need\n * to call it yourself in your event handlers.\n *\n * @param {ExtendableEvent} event\n * @return {Promise}\n */\n activate(event) {\n // waitUntil returns Promise\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return waitUntil(event, async () => {\n const cache = await self.caches.open(this.strategy.cacheName);\n const currentlyCachedRequests = await cache.keys();\n const expectedCacheKeys = new Set(this._urlsToCacheKeys.values());\n const deletedURLs = [];\n for (const request of currentlyCachedRequests) {\n if (!expectedCacheKeys.has(request.url)) {\n await cache.delete(request);\n deletedURLs.push(request.url);\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n printCleanupDetails(deletedURLs);\n }\n return { deletedURLs };\n });\n }\n /**\n * Returns a mapping of a precached URL to the corresponding cache key, taking\n * into account the revision information for the URL.\n *\n * @return {Map} A URL to cache key mapping.\n */\n getURLsToCacheKeys() {\n return this._urlsToCacheKeys;\n }\n /**\n * Returns a list of all the URLs that have been precached by the current\n * service worker.\n *\n * @return {Array} The precached URLs.\n */\n getCachedURLs() {\n return [...this._urlsToCacheKeys.keys()];\n }\n /**\n * Returns the cache key used for storing a given URL. If that URL is\n * unversioned, like `/index.html', then the cache key will be the original\n * URL with a search parameter appended to it.\n *\n * @param {string} url A URL whose cache key you want to look up.\n * @return {string} The versioned URL that corresponds to a cache key\n * for the original URL, or undefined if that URL isn't precached.\n */\n getCacheKeyForURL(url) {\n const urlObject = new URL(url, location.href);\n return this._urlsToCacheKeys.get(urlObject.href);\n }\n /**\n * @param {string} url A cache key whose SRI you want to look up.\n * @return {string} The subresource integrity associated with the cache key,\n * or undefined if it's not set.\n */\n getIntegrityForCacheKey(cacheKey) {\n return this._cacheKeysToIntegrities.get(cacheKey);\n }\n /**\n * This acts as a drop-in replacement for\n * [`cache.match()`](https://developer.mozilla.org/en-US/docs/Web/API/Cache/match)\n * with the following differences:\n *\n * - It knows what the name of the precache is, and only checks in that cache.\n * - It allows you to pass in an \"original\" URL without versioning parameters,\n * and it will automatically look up the correct cache key for the currently\n * active revision of that URL.\n *\n * E.g., `matchPrecache('index.html')` will find the correct precached\n * response for the currently active service worker, even if the actual cache\n * key is `'/index.html?__WB_REVISION__=1234abcd'`.\n *\n * @param {string|Request} request The key (without revisioning parameters)\n * to look up in the precache.\n * @return {Promise}\n */\n async matchPrecache(request) {\n const url = request instanceof Request ? request.url : request;\n const cacheKey = this.getCacheKeyForURL(url);\n if (cacheKey) {\n const cache = await self.caches.open(this.strategy.cacheName);\n return cache.match(cacheKey);\n }\n return undefined;\n }\n /**\n * Returns a function that looks up `url` in the precache (taking into\n * account revision information), and returns the corresponding `Response`.\n *\n * @param {string} url The precached URL which will be used to lookup the\n * `Response`.\n * @return {workbox-routing~handlerCallback}\n */\n createHandlerBoundToURL(url) {\n const cacheKey = this.getCacheKeyForURL(url);\n if (!cacheKey) {\n throw new WorkboxError('non-precached-url', { url });\n }\n return (options) => {\n options.request = new Request(url);\n options.params = Object.assign({ cacheKey }, options.params);\n return this.strategy.handle(options);\n };\n }\n}\nexport { PrecacheController };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { PrecacheController } from '../PrecacheController.js';\nimport '../_version.js';\nlet precacheController;\n/**\n * @return {PrecacheController}\n * @private\n */\nexport const getOrCreatePrecacheController = () => {\n if (!precacheController) {\n precacheController = new PrecacheController();\n }\n return precacheController;\n};\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * Removes any URL search parameters that should be ignored.\n *\n * @param {URL} urlObject The original URL.\n * @param {Array} ignoreURLParametersMatching RegExps to test against\n * each search parameter name. Matches mean that the search parameter should be\n * ignored.\n * @return {URL} The URL with any ignored search parameters removed.\n *\n * @private\n * @memberof workbox-precaching\n */\nexport function removeIgnoredSearchParams(urlObject, ignoreURLParametersMatching = []) {\n // Convert the iterable into an array at the start of the loop to make sure\n // deletion doesn't mess up iteration.\n for (const paramName of [...urlObject.searchParams.keys()]) {\n if (ignoreURLParametersMatching.some((regExp) => regExp.test(paramName))) {\n urlObject.searchParams.delete(paramName);\n }\n }\n return urlObject;\n}\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { removeIgnoredSearchParams } from './removeIgnoredSearchParams.js';\nimport '../_version.js';\n/**\n * Generator function that yields possible variations on the original URL to\n * check, one at a time.\n *\n * @param {string} url\n * @param {Object} options\n *\n * @private\n * @memberof workbox-precaching\n */\nexport function* generateURLVariations(url, { ignoreURLParametersMatching = [/^utm_/, /^fbclid$/], directoryIndex = 'index.html', cleanURLs = true, urlManipulation, } = {}) {\n const urlObject = new URL(url, location.href);\n urlObject.hash = '';\n yield urlObject.href;\n const urlWithoutIgnoredParams = removeIgnoredSearchParams(urlObject, ignoreURLParametersMatching);\n yield urlWithoutIgnoredParams.href;\n if (directoryIndex && urlWithoutIgnoredParams.pathname.endsWith('/')) {\n const directoryURL = new URL(urlWithoutIgnoredParams.href);\n directoryURL.pathname += directoryIndex;\n yield directoryURL.href;\n }\n if (cleanURLs) {\n const cleanURL = new URL(urlWithoutIgnoredParams.href);\n cleanURL.pathname += '.html';\n yield cleanURL.href;\n }\n if (urlManipulation) {\n const additionalURLs = urlManipulation({ url: urlObject });\n for (const urlToAttempt of additionalURLs) {\n yield urlToAttempt.href;\n }\n }\n}\n","/*\n Copyright 2020 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { Route } from 'workbox-routing/Route.js';\nimport { generateURLVariations } from './utils/generateURLVariations.js';\nimport './_version.js';\n/**\n * A subclass of {@link workbox-routing.Route} that takes a\n * {@link workbox-precaching.PrecacheController}\n * instance and uses it to match incoming requests and handle fetching\n * responses from the precache.\n *\n * @memberof workbox-precaching\n * @extends workbox-routing.Route\n */\nclass PrecacheRoute extends Route {\n /**\n * @param {PrecacheController} precacheController A `PrecacheController`\n * instance used to both match requests and respond to fetch events.\n * @param {Object} [options] Options to control how requests are matched\n * against the list of precached URLs.\n * @param {string} [options.directoryIndex=index.html] The `directoryIndex` will\n * check cache entries for a URLs ending with '/' to see if there is a hit when\n * appending the `directoryIndex` value.\n * @param {Array} [options.ignoreURLParametersMatching=[/^utm_/, /^fbclid$/]] An\n * array of regex's to remove search params when looking for a cache match.\n * @param {boolean} [options.cleanURLs=true] The `cleanURLs` option will\n * check the cache for the URL with a `.html` added to the end of the end.\n * @param {workbox-precaching~urlManipulation} [options.urlManipulation]\n * This is a function that should take a URL and return an array of\n * alternative URLs that should be checked for precache matches.\n */\n constructor(precacheController, options) {\n const match = ({ request, }) => {\n const urlsToCacheKeys = precacheController.getURLsToCacheKeys();\n for (const possibleURL of generateURLVariations(request.url, options)) {\n const cacheKey = urlsToCacheKeys.get(possibleURL);\n if (cacheKey) {\n const integrity = precacheController.getIntegrityForCacheKey(cacheKey);\n return { cacheKey, integrity };\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`Precaching did not find a match for ` + getFriendlyURL(request.url));\n }\n return;\n };\n super(match, precacheController.strategy);\n }\n}\nexport { PrecacheRoute };\n","/*\n Copyright 2019 Google LLC\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { registerRoute } from 'workbox-routing/registerRoute.js';\nimport { getOrCreatePrecacheController } from './utils/getOrCreatePrecacheController.js';\nimport { PrecacheRoute } from './PrecacheRoute.js';\nimport './_version.js';\n/**\n * Add a `fetch` listener to the service worker that will\n * respond to\n * [network requests]{@link https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers#Custom_responses_to_requests}\n * with precached assets.\n *\n * Requests for assets that aren't precached, the `FetchEvent` will not be\n * responded to, allowing the event to fall through to other `fetch` event\n * listeners.\n *\n * @param {Object} [options] See the {@link workbox-precaching.PrecacheRoute}\n * options.\n *\n * @memberof workbox-precaching\n */\nfunction addRoute(options) {\n const precacheController = getOrCreatePrecacheController();\n const precacheRoute = new PrecacheRoute(precacheController, options);\n registerRoute(precacheRoute);\n}\nexport { addRoute };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { getOrCreatePrecacheController } from './utils/getOrCreatePrecacheController.js';\nimport './_version.js';\n/**\n * Adds items to the precache list, removing any duplicates and\n * stores the files in the\n * {@link workbox-core.cacheNames|\"precache cache\"} when the service\n * worker installs.\n *\n * This method can be called multiple times.\n *\n * Please note: This method **will not** serve any of the cached files for you.\n * It only precaches files. To respond to a network request you call\n * {@link workbox-precaching.addRoute}.\n *\n * If you have a single array of files to precache, you can just call\n * {@link workbox-precaching.precacheAndRoute}.\n *\n * @param {Array} [entries=[]] Array of entries to precache.\n *\n * @memberof workbox-precaching\n */\nfunction precache(entries) {\n const precacheController = getOrCreatePrecacheController();\n precacheController.precache(entries);\n}\nexport { precache };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { addRoute } from './addRoute.js';\nimport { precache } from './precache.js';\nimport './_version.js';\n/**\n * This method will add entries to the precache list and add a route to\n * respond to fetch events.\n *\n * This is a convenience method that will call\n * {@link workbox-precaching.precache} and\n * {@link workbox-precaching.addRoute} in a single call.\n *\n * @param {Array} entries Array of entries to precache.\n * @param {Object} [options] See the\n * {@link workbox-precaching.PrecacheRoute} options.\n *\n * @memberof workbox-precaching\n */\nfunction precacheAndRoute(entries, options) {\n precache(entries);\n addRoute(options);\n}\nexport { precacheAndRoute };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nconst SUBSTRING_TO_FIND = '-precache-';\n/**\n * Cleans up incompatible precaches that were created by older versions of\n * Workbox, by a service worker registered under the current scope.\n *\n * This is meant to be called as part of the `activate` event.\n *\n * This should be safe to use as long as you don't include `substringToFind`\n * (defaulting to `-precache-`) in your non-precache cache names.\n *\n * @param {string} currentPrecacheName The cache name currently in use for\n * precaching. This cache won't be deleted.\n * @param {string} [substringToFind='-precache-'] Cache names which include this\n * substring will be deleted (excluding `currentPrecacheName`).\n * @return {Array} A list of all the cache names that were deleted.\n *\n * @private\n * @memberof workbox-precaching\n */\nconst deleteOutdatedCaches = async (currentPrecacheName, substringToFind = SUBSTRING_TO_FIND) => {\n const cacheNames = await self.caches.keys();\n const cacheNamesToDelete = cacheNames.filter((cacheName) => {\n return (cacheName.includes(substringToFind) &&\n cacheName.includes(self.registration.scope) &&\n cacheName !== currentPrecacheName);\n });\n await Promise.all(cacheNamesToDelete.map((cacheName) => self.caches.delete(cacheName)));\n return cacheNamesToDelete;\n};\nexport { deleteOutdatedCaches };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { cacheNames } from 'workbox-core/_private/cacheNames.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { deleteOutdatedCaches } from './utils/deleteOutdatedCaches.js';\nimport './_version.js';\n/**\n * Adds an `activate` event listener which will clean up incompatible\n * precaches that were created by older versions of Workbox.\n *\n * @memberof workbox-precaching\n */\nfunction cleanupOutdatedCaches() {\n // See https://github.com/Microsoft/TypeScript/issues/28357#issuecomment-436484705\n self.addEventListener('activate', ((event) => {\n const cacheName = cacheNames.getPrecacheName();\n event.waitUntil(deleteOutdatedCaches(cacheName).then((cachesDeleted) => {\n if (process.env.NODE_ENV !== 'production') {\n if (cachesDeleted.length > 0) {\n logger.log(`The following out-of-date precaches were cleaned up ` +\n `automatically:`, cachesDeleted);\n }\n }\n }));\n }));\n}\nexport { cleanupOutdatedCaches };\n"],"names":["self","_","e","logger","globalThis","__WB_DISABLE_DEV_LOGS","inGroup","methodToColorMap","debug","log","warn","error","groupCollapsed","groupEnd","print","method","args","test","navigator","userAgent","console","styles","logPrefix","join","api","loggerMethods","Object","keys","key","messages","invalid-value","paramName","validValueDescription","value","Error","JSON","stringify","not-an-array","moduleName","className","funcName","incorrect-type","expectedType","classNameStr","incorrect-class","expectedClassName","isReturnValueProblem","missing-a-method","expectedMethod","add-to-cache-list-unexpected-type","entry","add-to-cache-list-conflicting-entries","firstEntry","secondEntry","plugin-error-request-will-fetch","thrownErrorMessage","invalid-cache-name","cacheNameId","unregister-route-but-not-found-with-method","unregister-route-route-not-registered","queue-replay-failed","name","duplicate-queue-name","expired-test-without-max-age","methodName","unsupported-route-type","not-array-of-class","expectedClass","max-entries-or-age-required","statuses-or-headers-required","invalid-string","channel-name-required","invalid-responses-are-same-args","expire-custom-caches-only","unit-must-be-bytes","normalizedRangeHeader","single-range-only","invalid-range-values","no-range-header","range-not-satisfiable","size","start","end","attempt-to-cache-non-get-request","url","cache-put-with-no-response","no-response","message","bad-precaching-response","status","non-precached-url","add-to-cache-list-conflicting-integrities","missing-precache-entry","cacheName","cross-origin-copy-response","origin","opaque-streams-source","type","generatorFunction","code","details","messageGenerator","WorkboxError","constructor","errorCode","isArray","Array","hasMethod","object","isType","isInstance","isOneOf","validValues","includes","isArrayOfClass","item","finalAssertExports","defaultMethod","validMethods","normalizeHandler","handler","assert","handle","Route","match","setCatchHandler","catchHandler","RegExpRoute","regExp","RegExp","result","exec","href","location","index","toString","slice","getFriendlyURL","urlObj","URL","String","replace","Router","_routes","Map","_defaultHandlerMap","routes","addFetchListener","addEventListener","event","request","responsePromise","handleRequest","respondWith","addCacheListener","data","payload","urlsToCache","requestPromises","Promise","all","map","Request","waitUntil","ports","then","postMessage","protocol","startsWith","sameOrigin","params","route","findMatchingRoute","debugMessages","push","has","get","forEach","msg","err","reject","_catchHandler","catch","catchErr","matchResult","length","undefined","setDefaultHandler","set","registerRoute","unregisterRoute","routeIndex","indexOf","splice","defaultRouter","getOrCreateDefaultRouter","capture","captureUrl","valueToCheck","pathname","wildcards","matchCallback","cacheOkAndOpaquePlugin","cacheWillUpdate","response","_cacheNameDetails","googleAnalytics","precache","prefix","runtime","suffix","registration","scope","_createCacheName","filter","eachCacheNameDetail","fn","cacheNames","updateDetails","getGoogleAnalyticsName","userCacheName","getPrecacheName","getPrefix","getRuntimeName","getSuffix","stripParams","fullURL","ignoreParams","strippedURL","param","searchParams","delete","cacheMatchIgnoreParams","cache","matchOptions","strippedRequestURL","keysOptions","assign","ignoreSearch","cacheKeys","cacheKey","strippedCacheKeyURL","Deferred","promise","resolve","quotaErrorCallbacks","Set","executeQuotaErrorCallbacks","callback","timeout","ms","setTimeout","toRequest","input","StrategyHandler","strategy","options","_cacheKeys","ExtendableEvent","_strategy","_handlerDeferred","_extendLifetimePromises","_plugins","plugins","_pluginStateMap","plugin","fetch","mode","FetchEvent","preloadResponse","possiblePreloadResponse","originalRequest","hasCallback","clone","cb","iterateCallbacks","pluginFilteredRequest","fetchResponse","fetchOptions","runCallbacks","fetchAndCachePut","responseClone","cachePut","cacheMatch","cachedResponse","effectiveRequest","getCacheKey","multiMatchOptions","caches","vary","headers","responseToCache","_ensureResponseSafeToCache","open","hasCacheUpdateCallback","oldResponse","put","newResponse","state","statefulCallback","statefulParam","doneWaiting","shift","destroy","pluginsUsed","Strategy","responseDone","handleAll","_getResponse","handlerDone","_awaitComplete","_handle","waitUntilError","strategyStart","strategyName","printFinalResponse","NetworkFirst","some","p","unshift","_networkTimeoutSeconds","networkTimeoutSeconds","logs","promises","timeoutId","id","_getTimeoutPromise","networkPromise","_getNetworkPromise","race","timeoutPromise","onNetworkTimeout","fetchError","clearTimeout","NetworkOnly","clientsClaim","clients","claim","asyncFn","returnPromise","REVISION_SEARCH_PARAM","createCacheKey","urlObject","revision","cacheKeyURL","originalURL","PrecacheInstallReportPlugin","updatedURLs","notUpdatedURLs","handlerWillStart","cachedResponseWillBeUsed","PrecacheCacheKeyPlugin","precacheController","cacheKeyWillBeUsed","_precacheController","getCacheKeyForURL","logGroup","groupTitle","deletedURLs","printCleanupDetails","deletionCount","_nestedGroup","urls","printInstallDetails","urlsToPrecache","urlsAlreadyPrecached","precachedCount","alreadyPrecachedCount","supportStatus","canConstructResponseFromBodyStream","testResponse","Response","body","copyResponse","modifier","responseURL","clonedResponse","responseInit","Headers","statusText","modifiedResponseInit","blob","PrecacheStrategy","_fallbackToNetwork","fallbackToNetwork","copyRedirectedCacheableResponsesPlugin","_handleInstall","_handleFetch","integrityInManifest","integrity","integrityInRequest","noIntegrityConflict","_useDefaultCacheabilityPluginIfNeeded","wasCached","defaultPluginIndex","cacheWillUpdatePluginCount","entries","defaultPrecacheCacheabilityPlugin","redirected","PrecacheController","_urlsToCacheKeys","_urlsToCacheModes","_cacheKeysToIntegrities","install","bind","activate","addToCacheList","_installAndActiveListenersAdded","urlsToWarnAbout","cacheMode","warningMessage","installReportPlugin","credentials","currentlyCachedRequests","expectedCacheKeys","values","getURLsToCacheKeys","getCachedURLs","getIntegrityForCacheKey","matchPrecache","createHandlerBoundToURL","getOrCreatePrecacheController","removeIgnoredSearchParams","ignoreURLParametersMatching","generateURLVariations","directoryIndex","cleanURLs","urlManipulation","hash","urlWithoutIgnoredParams","endsWith","directoryURL","cleanURL","additionalURLs","urlToAttempt","PrecacheRoute","urlsToCacheKeys","possibleURL","addRoute","precacheRoute","precacheAndRoute","SUBSTRING_TO_FIND","deleteOutdatedCaches","currentPrecacheName","substringToFind","cacheNamesToDelete","cleanupOutdatedCaches","cachesDeleted"],"mappings":"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"} \ No newline at end of file diff --git a/public/workbox-c06b064f.js b/public/workbox-c06b064f.js deleted file mode 100644 index 651a719..0000000 --- a/public/workbox-c06b064f.js +++ /dev/null @@ -1 +0,0 @@ -define(["exports"],(function(t){"use strict";try{self["workbox:core:7.0.0"]&&_()}catch(t){}const e=(t,...e)=>{let s=t;return e.length>0&&(s+=` :: ${JSON.stringify(e)}`),s};class s extends Error{constructor(t,s){super(e(t,s)),this.name=t,this.details=s}}try{self["workbox:routing:7.0.0"]&&_()}catch(t){}const n=t=>t&&"object"==typeof t?t:{handle:t};class r{constructor(t,e,s="GET"){this.handler=n(e),this.match=t,this.method=s}setCatchHandler(t){this.catchHandler=n(t)}}class i extends r{constructor(t,e,s){super((({url:e})=>{const s=t.exec(e.href);if(s&&(e.origin===location.origin||0===s.index))return s.slice(1)}),e,s)}}class a{constructor(){this.t=new Map,this.i=new Map}get routes(){return this.t}addFetchListener(){self.addEventListener("fetch",(t=>{const{request:e}=t,s=this.handleRequest({request:e,event:t});s&&t.respondWith(s)}))}addCacheListener(){self.addEventListener("message",(t=>{if(t.data&&"CACHE_URLS"===t.data.type){const{payload:e}=t.data,s=Promise.all(e.urlsToCache.map((e=>{"string"==typeof e&&(e=[e]);const s=new Request(...e);return this.handleRequest({request:s,event:t})})));t.waitUntil(s),t.ports&&t.ports[0]&&s.then((()=>t.ports[0].postMessage(!0)))}}))}handleRequest({request:t,event:e}){const s=new URL(t.url,location.href);if(!s.protocol.startsWith("http"))return;const n=s.origin===location.origin,{params:r,route:i}=this.findMatchingRoute({event:e,request:t,sameOrigin:n,url:s});let a=i&&i.handler;const o=t.method;if(!a&&this.i.has(o)&&(a=this.i.get(o)),!a)return;let c;try{c=a.handle({url:s,request:t,event:e,params:r})}catch(t){c=Promise.reject(t)}const h=i&&i.catchHandler;return c instanceof Promise&&(this.o||h)&&(c=c.catch((async n=>{if(h)try{return await h.handle({url:s,request:t,event:e,params:r})}catch(t){t instanceof Error&&(n=t)}if(this.o)return this.o.handle({url:s,request:t,event:e});throw n}))),c}findMatchingRoute({url:t,sameOrigin:e,request:s,event:n}){const r=this.t.get(s.method)||[];for(const i of r){let r;const a=i.match({url:t,sameOrigin:e,request:s,event:n});if(a)return r=a,(Array.isArray(r)&&0===r.length||a.constructor===Object&&0===Object.keys(a).length||"boolean"==typeof a)&&(r=void 0),{route:i,params:r}}return{}}setDefaultHandler(t,e="GET"){this.i.set(e,n(t))}setCatchHandler(t){this.o=n(t)}registerRoute(t){this.t.has(t.method)||this.t.set(t.method,[]),this.t.get(t.method).push(t)}unregisterRoute(t){if(!this.t.has(t.method))throw new s("unregister-route-but-not-found-with-method",{method:t.method});const e=this.t.get(t.method).indexOf(t);if(!(e>-1))throw new s("unregister-route-route-not-registered");this.t.get(t.method).splice(e,1)}}let o;const c=()=>(o||(o=new a,o.addFetchListener(),o.addCacheListener()),o);function h(t,e,n){let a;if("string"==typeof t){const s=new URL(t,location.href);a=new r((({url:t})=>t.href===s.href),e,n)}else if(t instanceof RegExp)a=new i(t,e,n);else if("function"==typeof t)a=new r(t,e,n);else{if(!(t instanceof r))throw new s("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});a=t}return c().registerRoute(a),a}try{self["workbox:strategies:7.0.0"]&&_()}catch(t){}const u={cacheWillUpdate:async({response:t})=>200===t.status||0===t.status?t:null},l={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:"undefined"!=typeof registration?registration.scope:""},f=t=>[l.prefix,t,l.suffix].filter((t=>t&&t.length>0)).join("-"),w=t=>t||f(l.precache),d=t=>t||f(l.runtime);function p(t,e){const s=new URL(t);for(const t of e)s.searchParams.delete(t);return s.href}class y{constructor(){this.promise=new Promise(((t,e)=>{this.resolve=t,this.reject=e}))}}const g=new Set;function m(t){return"string"==typeof t?new Request(t):t}class R{constructor(t,e){this.h={},Object.assign(this,e),this.event=e.event,this.u=t,this.l=new y,this.p=[],this.m=[...t.plugins],this.R=new Map;for(const t of this.m)this.R.set(t,{});this.event.waitUntil(this.l.promise)}async fetch(t){const{event:e}=this;let n=m(t);if("navigate"===n.mode&&e instanceof FetchEvent&&e.preloadResponse){const t=await e.preloadResponse;if(t)return t}const r=this.hasCallback("fetchDidFail")?n.clone():null;try{for(const t of this.iterateCallbacks("requestWillFetch"))n=await t({request:n.clone(),event:e})}catch(t){if(t instanceof Error)throw new s("plugin-error-request-will-fetch",{thrownErrorMessage:t.message})}const i=n.clone();try{let t;t=await fetch(n,"navigate"===n.mode?void 0:this.u.fetchOptions);for(const s of this.iterateCallbacks("fetchDidSucceed"))t=await s({event:e,request:i,response:t});return t}catch(t){throw r&&await this.runCallbacks("fetchDidFail",{error:t,event:e,originalRequest:r.clone(),request:i.clone()}),t}}async fetchAndCachePut(t){const e=await this.fetch(t),s=e.clone();return this.waitUntil(this.cachePut(t,s)),e}async cacheMatch(t){const e=m(t);let s;const{cacheName:n,matchOptions:r}=this.u,i=await this.getCacheKey(e,"read"),a=Object.assign(Object.assign({},r),{cacheName:n});s=await caches.match(i,a);for(const t of this.iterateCallbacks("cachedResponseWillBeUsed"))s=await t({cacheName:n,matchOptions:r,cachedResponse:s,request:i,event:this.event})||void 0;return s}async cachePut(t,e){const n=m(t);var r;await(r=0,new Promise((t=>setTimeout(t,r))));const i=await this.getCacheKey(n,"write");if(!e)throw new s("cache-put-with-no-response",{url:(a=i.url,new URL(String(a),location.href).href.replace(new RegExp(`^${location.origin}`),""))});var a;const o=await this.v(e);if(!o)return!1;const{cacheName:c,matchOptions:h}=this.u,u=await self.caches.open(c),l=this.hasCallback("cacheDidUpdate"),f=l?await async function(t,e,s,n){const r=p(e.url,s);if(e.url===r)return t.match(e,n);const i=Object.assign(Object.assign({},n),{ignoreSearch:!0}),a=await t.keys(e,i);for(const e of a)if(r===p(e.url,s))return t.match(e,n)}(u,i.clone(),["__WB_REVISION__"],h):null;try{await u.put(i,l?o.clone():o)}catch(t){if(t instanceof Error)throw"QuotaExceededError"===t.name&&await async function(){for(const t of g)await t()}(),t}for(const t of this.iterateCallbacks("cacheDidUpdate"))await t({cacheName:c,oldResponse:f,newResponse:o.clone(),request:i,event:this.event});return!0}async getCacheKey(t,e){const s=`${t.url} | ${e}`;if(!this.h[s]){let n=t;for(const t of this.iterateCallbacks("cacheKeyWillBeUsed"))n=m(await t({mode:e,request:n,event:this.event,params:this.params}));this.h[s]=n}return this.h[s]}hasCallback(t){for(const e of this.u.plugins)if(t in e)return!0;return!1}async runCallbacks(t,e){for(const s of this.iterateCallbacks(t))await s(e)}*iterateCallbacks(t){for(const e of this.u.plugins)if("function"==typeof e[t]){const s=this.R.get(e),n=n=>{const r=Object.assign(Object.assign({},n),{state:s});return e[t](r)};yield n}}waitUntil(t){return this.p.push(t),t}async doneWaiting(){let t;for(;t=this.p.shift();)await t}destroy(){this.l.resolve(null)}async v(t){let e=t,s=!1;for(const t of this.iterateCallbacks("cacheWillUpdate"))if(e=await t({request:this.request,response:e,event:this.event})||void 0,s=!0,!e)break;return s||e&&200!==e.status&&(e=void 0),e}}class v{constructor(t={}){this.cacheName=d(t.cacheName),this.plugins=t.plugins||[],this.fetchOptions=t.fetchOptions,this.matchOptions=t.matchOptions}handle(t){const[e]=this.handleAll(t);return e}handleAll(t){t instanceof FetchEvent&&(t={event:t,request:t.request});const e=t.event,s="string"==typeof t.request?new Request(t.request):t.request,n="params"in t?t.params:void 0,r=new R(this,{event:e,request:s,params:n}),i=this.q(r,s,e);return[i,this.D(i,r,s,e)]}async q(t,e,n){let r;await t.runCallbacks("handlerWillStart",{event:n,request:e});try{if(r=await this.U(e,t),!r||"error"===r.type)throw new s("no-response",{url:e.url})}catch(s){if(s instanceof Error)for(const i of t.iterateCallbacks("handlerDidError"))if(r=await i({error:s,event:n,request:e}),r)break;if(!r)throw s}for(const s of t.iterateCallbacks("handlerWillRespond"))r=await s({event:n,request:e,response:r});return r}async D(t,e,s,n){let r,i;try{r=await t}catch(i){}try{await e.runCallbacks("handlerDidRespond",{event:n,request:s,response:r}),await e.doneWaiting()}catch(t){t instanceof Error&&(i=t)}if(await e.runCallbacks("handlerDidComplete",{event:n,request:s,response:r,error:i}),e.destroy(),i)throw i}}function b(t){t.then((()=>{}))}function q(){return q=Object.assign?Object.assign.bind():function(t){for(var e=1;ee.some((e=>t instanceof e));let U,x;const L=new WeakMap,I=new WeakMap,C=new WeakMap,E=new WeakMap,N=new WeakMap;let O={get(t,e,s){if(t instanceof IDBTransaction){if("done"===e)return I.get(t);if("objectStoreNames"===e)return t.objectStoreNames||C.get(t);if("store"===e)return s.objectStoreNames[1]?void 0:s.objectStore(s.objectStoreNames[0])}return B(t[e])},set:(t,e,s)=>(t[e]=s,!0),has:(t,e)=>t instanceof IDBTransaction&&("done"===e||"store"===e)||e in t};function T(t){return t!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(x||(x=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(t)?function(...e){return t.apply(P(this),e),B(L.get(this))}:function(...e){return B(t.apply(P(this),e))}:function(e,...s){const n=t.call(P(this),e,...s);return C.set(n,e.sort?e.sort():[e]),B(n)}}function k(t){return"function"==typeof t?T(t):(t instanceof IDBTransaction&&function(t){if(I.has(t))return;const e=new Promise(((e,s)=>{const n=()=>{t.removeEventListener("complete",r),t.removeEventListener("error",i),t.removeEventListener("abort",i)},r=()=>{e(),n()},i=()=>{s(t.error||new DOMException("AbortError","AbortError")),n()};t.addEventListener("complete",r),t.addEventListener("error",i),t.addEventListener("abort",i)}));I.set(t,e)}(t),D(t,U||(U=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(t,O):t)}function B(t){if(t instanceof IDBRequest)return function(t){const e=new Promise(((e,s)=>{const n=()=>{t.removeEventListener("success",r),t.removeEventListener("error",i)},r=()=>{e(B(t.result)),n()},i=()=>{s(t.error),n()};t.addEventListener("success",r),t.addEventListener("error",i)}));return e.then((e=>{e instanceof IDBCursor&&L.set(e,t)})).catch((()=>{})),N.set(e,t),e}(t);if(E.has(t))return E.get(t);const e=k(t);return e!==t&&(E.set(t,e),N.set(e,t)),e}const P=t=>N.get(t);const M=["get","getKey","getAll","getAllKeys","count"],W=["put","add","delete","clear"],j=new Map;function S(t,e){if(!(t instanceof IDBDatabase)||e in t||"string"!=typeof e)return;if(j.get(e))return j.get(e);const s=e.replace(/FromIndex$/,""),n=e!==s,r=W.includes(s);if(!(s in(n?IDBIndex:IDBObjectStore).prototype)||!r&&!M.includes(s))return;const i=async function(t,...e){const i=this.transaction(t,r?"readwrite":"readonly");let a=i.store;return n&&(a=a.index(e.shift())),(await Promise.all([a[s](...e),r&&i.done]))[0]};return j.set(e,i),i}O=(t=>q({},t,{get:(e,s,n)=>S(e,s)||t.get(e,s,n),has:(e,s)=>!!S(e,s)||t.has(e,s)}))(O);try{self["workbox:expiration:7.0.0"]&&_()}catch(t){}const K="cache-entries",A=t=>{const e=new URL(t,location.href);return e.hash="",e.href};class F{constructor(t){this._=null,this.L=t}I(t){const e=t.createObjectStore(K,{keyPath:"id"});e.createIndex("cacheName","cacheName",{unique:!1}),e.createIndex("timestamp","timestamp",{unique:!1})}C(t){this.I(t),this.L&&function(t,{blocked:e}={}){const s=indexedDB.deleteDatabase(t);e&&s.addEventListener("blocked",(t=>e(t.oldVersion,t))),B(s).then((()=>{}))}(this.L)}async setTimestamp(t,e){const s={url:t=A(t),timestamp:e,cacheName:this.L,id:this.N(t)},n=(await this.getDb()).transaction(K,"readwrite",{durability:"relaxed"});await n.store.put(s),await n.done}async getTimestamp(t){const e=await this.getDb(),s=await e.get(K,this.N(t));return null==s?void 0:s.timestamp}async expireEntries(t,e){const s=await this.getDb();let n=await s.transaction(K).store.index("timestamp").openCursor(null,"prev");const r=[];let i=0;for(;n;){const s=n.value;s.cacheName===this.L&&(t&&s.timestamp=e?r.push(n.value):i++),n=await n.continue()}const a=[];for(const t of r)await s.delete(K,t.id),a.push(t.url);return a}N(t){return this.L+"|"+A(t)}async getDb(){return this._||(this._=await function(t,e,{blocked:s,upgrade:n,blocking:r,terminated:i}={}){const a=indexedDB.open(t,e),o=B(a);return n&&a.addEventListener("upgradeneeded",(t=>{n(B(a.result),t.oldVersion,t.newVersion,B(a.transaction),t)})),s&&a.addEventListener("blocked",(t=>s(t.oldVersion,t.newVersion,t))),o.then((t=>{i&&t.addEventListener("close",(()=>i())),r&&t.addEventListener("versionchange",(t=>r(t.oldVersion,t.newVersion,t)))})).catch((()=>{})),o}("workbox-expiration",1,{upgrade:this.C.bind(this)})),this._}}class H{constructor(t,e={}){this.O=!1,this.T=!1,this.k=e.maxEntries,this.B=e.maxAgeSeconds,this.P=e.matchOptions,this.L=t,this.M=new F(t)}async expireEntries(){if(this.O)return void(this.T=!0);this.O=!0;const t=this.B?Date.now()-1e3*this.B:0,e=await this.M.expireEntries(t,this.k),s=await self.caches.open(this.L);for(const t of e)await s.delete(t,this.P);this.O=!1,this.T&&(this.T=!1,b(this.expireEntries()))}async updateTimestamp(t){await this.M.setTimestamp(t,Date.now())}async isURLExpired(t){if(this.B){const e=await this.M.getTimestamp(t),s=Date.now()-1e3*this.B;return void 0===e||er||e&&e<0)throw new s("range-not-satisfiable",{size:r,end:n,start:e});let i,a;return void 0!==e&&void 0!==n?(i=e,a=n+1):void 0!==e&&void 0===n?(i=e,a=r):void 0!==n&&void 0===e&&(i=r-n,a=r),{start:i,end:a}}(i,r.start,r.end),o=i.slice(a.start,a.end),c=o.size,h=new Response(o,{status:206,statusText:"Partial Content",headers:e.headers});return h.headers.set("Content-Length",String(c)),h.headers.set("Content-Range",`bytes ${a.start}-${a.end-1}/${i.size}`),h}catch(t){return new Response("",{status:416,statusText:"Range Not Satisfiable"})}}function z(t,e){const s=e();return t.waitUntil(s),s}try{self["workbox:precaching:7.0.0"]&&_()}catch(t){}function G(t){if(!t)throw new s("add-to-cache-list-unexpected-type",{entry:t});if("string"==typeof t){const e=new URL(t,location.href);return{cacheKey:e.href,url:e.href}}const{revision:e,url:n}=t;if(!n)throw new s("add-to-cache-list-unexpected-type",{entry:t});if(!e){const t=new URL(n,location.href);return{cacheKey:t.href,url:t.href}}const r=new URL(n,location.href),i=new URL(n,location.href);return r.searchParams.set("__WB_REVISION__",e),{cacheKey:r.href,url:i.href}}class V{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:t,state:e})=>{e&&(e.originalRequest=t)},this.cachedResponseWillBeUsed=async({event:t,state:e,cachedResponse:s})=>{if("install"===t.type&&e&&e.originalRequest&&e.originalRequest instanceof Request){const t=e.originalRequest.url;s?this.notUpdatedURLs.push(t):this.updatedURLs.push(t)}return s}}}class J{constructor({precacheController:t}){this.cacheKeyWillBeUsed=async({request:t,params:e})=>{const s=(null==e?void 0:e.cacheKey)||this.W.getCacheKeyForURL(t.url);return s?new Request(s,{headers:t.headers}):t},this.W=t}}let Q,X;async function Y(t,e){let n=null;if(t.url){n=new URL(t.url).origin}if(n!==self.location.origin)throw new s("cross-origin-copy-response",{origin:n});const r=t.clone(),i={headers:new Headers(r.headers),status:r.status,statusText:r.statusText},a=e?e(i):i,o=function(){if(void 0===Q){const t=new Response("");if("body"in t)try{new Response(t.body),Q=!0}catch(t){Q=!1}Q=!1}return Q}()?r.body:await r.blob();return new Response(o,a)}class Z extends v{constructor(t={}){t.cacheName=w(t.cacheName),super(t),this.j=!1!==t.fallbackToNetwork,this.plugins.push(Z.copyRedirectedCacheableResponsesPlugin)}async U(t,e){const s=await e.cacheMatch(t);return s||(e.event&&"install"===e.event.type?await this.S(t,e):await this.K(t,e))}async K(t,e){let n;const r=e.params||{};if(!this.j)throw new s("missing-precache-entry",{cacheName:this.cacheName,url:t.url});{const s=r.integrity,i=t.integrity,a=!i||i===s;n=await e.fetch(new Request(t,{integrity:"no-cors"!==t.mode?i||s:void 0})),s&&a&&"no-cors"!==t.mode&&(this.A(),await e.cachePut(t,n.clone()))}return n}async S(t,e){this.A();const n=await e.fetch(t);if(!await e.cachePut(t,n.clone()))throw new s("bad-precaching-response",{url:t.url,status:n.status});return n}A(){let t=null,e=0;for(const[s,n]of this.plugins.entries())n!==Z.copyRedirectedCacheableResponsesPlugin&&(n===Z.defaultPrecacheCacheabilityPlugin&&(t=s),n.cacheWillUpdate&&e++);0===e?this.plugins.push(Z.defaultPrecacheCacheabilityPlugin):e>1&&null!==t&&this.plugins.splice(t,1)}}Z.defaultPrecacheCacheabilityPlugin={cacheWillUpdate:async({response:t})=>!t||t.status>=400?null:t},Z.copyRedirectedCacheableResponsesPlugin={cacheWillUpdate:async({response:t})=>t.redirected?await Y(t):t};class tt{constructor({cacheName:t,plugins:e=[],fallbackToNetwork:s=!0}={}){this.F=new Map,this.H=new Map,this.$=new Map,this.u=new Z({cacheName:w(t),plugins:[...e,new J({precacheController:this})],fallbackToNetwork:s}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this.u}precache(t){this.addToCacheList(t),this.G||(self.addEventListener("install",this.install),self.addEventListener("activate",this.activate),this.G=!0)}addToCacheList(t){const e=[];for(const n of t){"string"==typeof n?e.push(n):n&&void 0===n.revision&&e.push(n.url);const{cacheKey:t,url:r}=G(n),i="string"!=typeof n&&n.revision?"reload":"default";if(this.F.has(r)&&this.F.get(r)!==t)throw new s("add-to-cache-list-conflicting-entries",{firstEntry:this.F.get(r),secondEntry:t});if("string"!=typeof n&&n.integrity){if(this.$.has(t)&&this.$.get(t)!==n.integrity)throw new s("add-to-cache-list-conflicting-integrities",{url:r});this.$.set(t,n.integrity)}if(this.F.set(r,t),this.H.set(r,i),e.length>0){const t=`Workbox is precaching URLs without revision info: ${e.join(", ")}\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(t)}}}install(t){return z(t,(async()=>{const e=new V;this.strategy.plugins.push(e);for(const[e,s]of this.F){const n=this.$.get(s),r=this.H.get(e),i=new Request(e,{integrity:n,cache:r,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:s},request:i,event:t}))}const{updatedURLs:s,notUpdatedURLs:n}=e;return{updatedURLs:s,notUpdatedURLs:n}}))}activate(t){return z(t,(async()=>{const t=await self.caches.open(this.strategy.cacheName),e=await t.keys(),s=new Set(this.F.values()),n=[];for(const r of e)s.has(r.url)||(await t.delete(r),n.push(r.url));return{deletedURLs:n}}))}getURLsToCacheKeys(){return this.F}getCachedURLs(){return[...this.F.keys()]}getCacheKeyForURL(t){const e=new URL(t,location.href);return this.F.get(e.href)}getIntegrityForCacheKey(t){return this.$.get(t)}async matchPrecache(t){const e=t instanceof Request?t.url:t,s=this.getCacheKeyForURL(e);if(s){return(await self.caches.open(this.strategy.cacheName)).match(s)}}createHandlerBoundToURL(t){const e=this.getCacheKeyForURL(t);if(!e)throw new s("non-precached-url",{url:t});return s=>(s.request=new Request(t),s.params=Object.assign({cacheKey:e},s.params),this.strategy.handle(s))}}const et=()=>(X||(X=new tt),X);class st extends r{constructor(t,e){super((({request:s})=>{const n=t.getURLsToCacheKeys();for(const r of function*(t,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:s="index.html",cleanURLs:n=!0,urlManipulation:r}={}){const i=new URL(t,location.href);i.hash="",yield i.href;const a=function(t,e=[]){for(const s of[...t.searchParams.keys()])e.some((t=>t.test(s)))&&t.searchParams.delete(s);return t}(i,e);if(yield a.href,s&&a.pathname.endsWith("/")){const t=new URL(a.href);t.pathname+=s,yield t.href}if(n){const t=new URL(a.href);t.pathname+=".html",yield t.href}if(r){const t=r({url:i});for(const e of t)yield e.href}}(s.url,e)){const e=n.get(r);if(e){return{cacheKey:e,integrity:t.getIntegrityForCacheKey(e)}}}}),t.strategy)}}t.CacheFirst=class extends v{async U(t,e){let n,r=await e.cacheMatch(t);if(!r)try{r=await e.fetchAndCachePut(t)}catch(t){t instanceof Error&&(n=t)}if(!r)throw new s("no-response",{url:t.url,error:n});return r}},t.ExpirationPlugin=class{constructor(t={}){this.cachedResponseWillBeUsed=async({event:t,request:e,cacheName:s,cachedResponse:n})=>{if(!n)return null;const r=this.V(n),i=this.J(s);b(i.expireEntries());const a=i.updateTimestamp(e.url);if(t)try{t.waitUntil(a)}catch(t){}return r?n:null},this.cacheDidUpdate=async({cacheName:t,request:e})=>{const s=this.J(t);await s.updateTimestamp(e.url),await s.expireEntries()},this.X=t,this.B=t.maxAgeSeconds,this.Y=new Map,t.purgeOnQuotaError&&function(t){g.add(t)}((()=>this.deleteCacheAndMetadata()))}J(t){if(t===d())throw new s("expire-custom-caches-only");let e=this.Y.get(t);return e||(e=new H(t,this.X),this.Y.set(t,e)),e}V(t){if(!this.B)return!0;const e=this.Z(t);if(null===e)return!0;return e>=Date.now()-1e3*this.B}Z(t){if(!t.headers.has("date"))return null;const e=t.headers.get("date"),s=new Date(e).getTime();return isNaN(s)?null:s}async deleteCacheAndMetadata(){for(const[t,e]of this.Y)await self.caches.delete(t),await e.delete();this.Y=new Map}},t.NetworkFirst=class extends v{constructor(t={}){super(t),this.plugins.some((t=>"cacheWillUpdate"in t))||this.plugins.unshift(u),this.tt=t.networkTimeoutSeconds||0}async U(t,e){const n=[],r=[];let i;if(this.tt){const{id:s,promise:a}=this.et({request:t,logs:n,handler:e});i=s,r.push(a)}const a=this.st({timeoutId:i,request:t,logs:n,handler:e});r.push(a);const o=await e.waitUntil((async()=>await e.waitUntil(Promise.race(r))||await a)());if(!o)throw new s("no-response",{url:t.url});return o}et({request:t,logs:e,handler:s}){let n;return{promise:new Promise((e=>{n=setTimeout((async()=>{e(await s.cacheMatch(t))}),1e3*this.tt)})),id:n}}async st({timeoutId:t,request:e,logs:s,handler:n}){let r,i;try{i=await n.fetchAndCachePut(e)}catch(t){t instanceof Error&&(r=t)}return t&&clearTimeout(t),!r&&i||(i=await n.cacheMatch(e)),i}},t.RangeRequestsPlugin=class{constructor(){this.cachedResponseWillBeUsed=async({request:t,cachedResponse:e})=>e&&t.headers.has("range")?await $(t,e):e}},t.StaleWhileRevalidate=class extends v{constructor(t={}){super(t),this.plugins.some((t=>"cacheWillUpdate"in t))||this.plugins.unshift(u)}async U(t,e){const n=e.fetchAndCachePut(t).catch((()=>{}));e.waitUntil(n);let r,i=await e.cacheMatch(t);if(i);else try{i=await n}catch(t){t instanceof Error&&(r=t)}if(!i)throw new s("no-response",{url:t.url,error:r});return i}},t.cleanupOutdatedCaches=function(){self.addEventListener("activate",(t=>{const e=w();t.waitUntil((async(t,e="-precache-")=>{const s=(await self.caches.keys()).filter((s=>s.includes(e)&&s.includes(self.registration.scope)&&s!==t));return await Promise.all(s.map((t=>self.caches.delete(t)))),s})(e).then((t=>{})))}))},t.clientsClaim=function(){self.addEventListener("activate",(()=>self.clients.claim()))},t.precacheAndRoute=function(t,e){!function(t){et().precache(t)}(t),function(t){const e=et();h(new st(e,t))}(e)},t.registerRoute=h})); diff --git a/src/app/app/news/page.jsx b/src/app/app/news/page.jsx index 71c8e7e..492b342 100644 --- a/src/app/app/news/page.jsx +++ b/src/app/app/news/page.jsx @@ -9,6 +9,7 @@ import { toast } from "react-toastify"; import Avatar from "boring-avatars"; import moment from "jalali-moment"; import InfiniteScroll from "react-infinite-scroll-component"; +import PersianNumber from "plugins/PersianNumber"; const page = () => { const router = useRouter(); diff --git a/src/app/layout.jsx b/src/app/layout.jsx index 637b0fd..5d29a62 100644 --- a/src/app/layout.jsx +++ b/src/app/layout.jsx @@ -175,7 +175,7 @@ export default function RootLayout({ children }) { const pathname = usePathname(); const router = useRouter(); - const hiddenUrls = ["/login", "/pricing", "/about-us", "/"]; + const hiddenUrls = ["/app/login", "/pricing", "/about-us", "/"]; const shouldRenderComponent = !hiddenUrls.includes(pathname); const closeBigPlusPage = () => { diff --git a/src/constans/index.js b/src/constans/index.js index 62f5eb9..5d9d411 100644 --- a/src/constans/index.js +++ b/src/constans/index.js @@ -39,31 +39,31 @@ const services = [ const experiences = [ { title: "Insert tasks and assign", - date: "Insert tasks ", + date: " ", points: ["Insert tasks and assign them to positions in the store"], }, { title: "Create a clear shift plan", - date: "clear shift plan ", + date: " ", points: [ "Create a clear shift plan for each week and assign a supervisor to each shift.", ], }, { title: "activity assigned to a specific person", - date: "specific ", + date: " ", points: [ "After shift planning, each task becomes an activity assigned to a specific person.", ], }, { title: "real time ", - date: "Track in system", + date: "", points: ["Track the operation routine in the system in real time."], }, { title: "confirms completion", - date: "completion ", + date: " ", points: [ "After closing the shift, your supervisor checks all the tasks, confirms completion, and rates the staff.", ], diff --git a/tailwind.config.js b/tailwind.config.js index feb8cc5..2d44618 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -13,6 +13,9 @@ module.exports = { 100: "#FFFBE6", }, primary: { + 100: "#B9E4C9", + 200: "#37966F", + 300: "#356859", 50: "#f3faf3", 100: "#e4f4e5", 200: "#cbe7cc", @@ -27,6 +30,9 @@ module.exports = { }, secondary: { + 50: "#fd562317", + 100: "#FD5523", + 200: "#DA4215", 50: "#f7f7f7", 100: "#ededed", 200: "#dbdbdb",