/** * 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-5ea419d9'], (function (workbox) { 'use strict'; importScripts("sw-cache-manager.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": "suppress-warnings.js", "revision": "d41d8cd98f00b204e9800998ecf8427e" }, { "url": "/", "revision": "0.0lkakoc2in8" }], {}); workbox.cleanupOutdatedCaches(); workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("/"), { allowlist: [/^\/$/] })); workbox.registerRoute(/\.(?:js)$/i, new workbox.StaleWhileRevalidate({ "cacheName": "js-cache", plugins: [new workbox.ExpirationPlugin({ maxEntries: 100, maxAgeSeconds: 604800 })] }), 'GET'); workbox.registerRoute(/\.(?:css)$/i, new workbox.StaleWhileRevalidate({ "cacheName": "css-cache", plugins: [new workbox.ExpirationPlugin({ maxEntries: 50, maxAgeSeconds: 604800 })] }), 'GET'); workbox.registerRoute(/\.(?:html)$/i, new workbox.NetworkFirst({ "cacheName": "html-cache", plugins: [new workbox.ExpirationPlugin({ maxEntries: 20, maxAgeSeconds: 86400 })] }), 'GET'); workbox.registerRoute(/\.(?:png|jpg|jpeg|svg|gif)$/i, new workbox.StaleWhileRevalidate({ "cacheName": "images-cache", plugins: [new workbox.ExpirationPlugin({ maxEntries: 50, maxAgeSeconds: 2592000 })] }), 'GET'); workbox.registerRoute(/\/cdn-cgi\/.*/i, new workbox.NetworkFirst({ "cacheName": "cdn-cgi-cache", "networkTimeoutSeconds": 10, plugins: [new workbox.ExpirationPlugin({ maxEntries: 50, maxAgeSeconds: 86400 })] }), 'GET'); workbox.registerRoute(({ url }) => { return url.origin !== self.location.origin; }, new workbox.NetworkFirst({ "cacheName": "external-resources", "networkTimeoutSeconds": 10, plugins: [new workbox.ExpirationPlugin({ maxEntries: 100, maxAgeSeconds: 86400 }), new workbox.CacheableResponsePlugin({ statuses: [0, 200] })] }), 'GET'); }));