diff --git a/public/manifest.json b/public/manifest.json deleted file mode 100644 index ab54fff07..000000000 --- a/public/manifest.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "ResearchHub", - "short_name": "App", - "description": "ResearchHub App", - "start_url": "/", - "display": "standalone", - "background_color": "#ffffff", - "theme_color": "#000000", - "icons": [ - { - "src": "/icons/icon-192x192.png", - "sizes": "192x192", - "type": "image/png" - }, - { - "src": "/icons/icon-512x512.png", - "sizes": "512x512", - "type": "image/png" - } - ] -} diff --git a/public/sw.js b/public/sw.js index fc699ed4b..df3a939c0 100644 --- a/public/sw.js +++ b/public/sw.js @@ -1,660 +1,16 @@ -if (!self.define) { - let e, - i = {}; - const t = (t, a) => ( - (t = new URL(t + '.js', a).href), - i[t] || - new Promise((i) => { - if ('document' in self) { - const e = document.createElement('script'); - ((e.src = t), (e.onload = i), document.head.appendChild(e)); - } else ((e = t), importScripts(t), i()); - }).then(() => { - let e = i[t]; - if (!e) throw new Error(`Module ${t} didn’t register its module`); - return e; - }) +// This service worker temporarily replaces the worker generated by next-pwa. +// Keep it available at /sw.js so browsers with the old worker installed can +// receive this update, clear the obsolete PWA caches, and unregister it. + +self.addEventListener('install', () => { + self.skipWaiting(); +}); + +self.addEventListener('activate', (event) => { + event.waitUntil( + caches + .keys() + .then((cacheNames) => Promise.all(cacheNames.map((cacheName) => caches.delete(cacheName)))) + .then(() => self.registration.unregister()) ); - self.define = (a, n) => { - const r = e || ('document' in self ? document.currentScript.src : '') || location.href; - if (i[r]) return; - let s = {}; - const c = (e) => t(e, r), - o = { module: { uri: r }, exports: s, require: c }; - i[r] = Promise.all(a.map((e) => o[e] || c(e))).then((e) => (n(...e), s)); - }; -} -define(['./workbox-4754cb34'], function (e) { - 'use strict'; - (importScripts(), - self.skipWaiting(), - e.clientsClaim(), - e.precacheAndRoute( - [ - { url: '/_next/app-build-manifest.json', revision: '70982299956984de7e659e37d76022f3' }, - { - url: '/_next/static/58Tz5oM4f3q8GcSxv4EZA/_buildManifest.js', - revision: '656b83554cb0695ab417281f35467bfb', - }, - { - url: '/_next/static/58Tz5oM4f3q8GcSxv4EZA/_ssgManifest.js', - revision: 'b6652df95db52feb4daf4eca35380933', - }, - { url: '/_next/static/chunks/112-bffce61f37f5b92f.js', revision: '58Tz5oM4f3q8GcSxv4EZA' }, - { url: '/_next/static/chunks/25-7be7f07451215154.js', revision: '58Tz5oM4f3q8GcSxv4EZA' }, - { url: '/_next/static/chunks/325-8aecdead5a3ac855.js', revision: '58Tz5oM4f3q8GcSxv4EZA' }, - { url: '/_next/static/chunks/437-058e840c95e1b327.js', revision: '58Tz5oM4f3q8GcSxv4EZA' }, - { - url: '/_next/static/chunks/4bd1b696-2f0b64377080a9dc.js', - revision: '58Tz5oM4f3q8GcSxv4EZA', - }, - { url: '/_next/static/chunks/501-cdc9f2ce17fa7b9b.js', revision: '58Tz5oM4f3q8GcSxv4EZA' }, - { url: '/_next/static/chunks/517-77a23b6db639adae.js', revision: '58Tz5oM4f3q8GcSxv4EZA' }, - { url: '/_next/static/chunks/520-eebcce54cb94890a.js', revision: '58Tz5oM4f3q8GcSxv4EZA' }, - { - url: '/_next/static/chunks/54a60aa6-a90e9da6cbeaeba0.js', - revision: '58Tz5oM4f3q8GcSxv4EZA', - }, - { url: '/_next/static/chunks/590-e303e0cc32d97a2c.js', revision: '58Tz5oM4f3q8GcSxv4EZA' }, - { url: '/_next/static/chunks/669-318b90011e92e874.js', revision: '58Tz5oM4f3q8GcSxv4EZA' }, - { - url: '/_next/static/chunks/69b09407-c2adb7b553afe8b2.js', - revision: '58Tz5oM4f3q8GcSxv4EZA', - }, - { - url: '/_next/static/chunks/6be7e44c-dffa05919c86a46f.js', - revision: '58Tz5oM4f3q8GcSxv4EZA', - }, - { - url: '/_next/static/chunks/70e0d97a-b147deb68b4bba17.js', - revision: '58Tz5oM4f3q8GcSxv4EZA', - }, - { url: '/_next/static/chunks/840-fb1596bfcea7901c.js', revision: '58Tz5oM4f3q8GcSxv4EZA' }, - { - url: '/_next/static/chunks/870fdd6f-caeddde7f31474b7.js', - revision: '58Tz5oM4f3q8GcSxv4EZA', - }, - { url: '/_next/static/chunks/906-c7e2b2a95b7b4797.js', revision: '58Tz5oM4f3q8GcSxv4EZA' }, - { url: '/_next/static/chunks/979-ab9c81ed4d110f91.js', revision: '58Tz5oM4f3q8GcSxv4EZA' }, - { - url: '/_next/static/chunks/ab9ca618-365424b337fd4d26.js', - revision: '58Tz5oM4f3q8GcSxv4EZA', - }, - { - url: '/_next/static/chunks/app/_not-found/page-82e42b48218e9b9c.js', - revision: '58Tz5oM4f3q8GcSxv4EZA', - }, - { - url: '/_next/static/chunks/app/author/%5Bid%5D/layout-a4c8ef15b15f7ac6.js', - revision: '58Tz5oM4f3q8GcSxv4EZA', - }, - { - url: '/_next/static/chunks/app/author/%5Bid%5D/page-cd5ed13bae7c4416.js', - revision: '58Tz5oM4f3q8GcSxv4EZA', - }, - { - url: '/_next/static/chunks/app/fund/%5Bid%5D/%5Bslug%5D/page-e46e01631e75ce28.js', - revision: '58Tz5oM4f3q8GcSxv4EZA', - }, - { - url: '/_next/static/chunks/app/grant/%5Bid%5D/%5Bslug%5D/page-c02964a65e789b82.js', - revision: '58Tz5oM4f3q8GcSxv4EZA', - }, - { - url: '/_next/static/chunks/app/layout-c46c2967d2ac9a04.js', - revision: '58Tz5oM4f3q8GcSxv4EZA', - }, - { - url: '/_next/static/chunks/app/learn/page-bbeaa85b0d7e03c0.js', - revision: '58Tz5oM4f3q8GcSxv4EZA', - }, - { - url: '/_next/static/chunks/app/marketplace/page-89eb337d020c1a2a.js', - revision: '58Tz5oM4f3q8GcSxv4EZA', - }, - { - url: '/_next/static/chunks/app/notebook/%5Broom%5D/page-999226c8ed9f56fe.js', - revision: '58Tz5oM4f3q8GcSxv4EZA', - }, - { - url: '/_next/static/chunks/app/notebook/api/ai/route-a9b4548a27a3b364.js', - revision: '58Tz5oM4f3q8GcSxv4EZA', - }, - { - url: '/_next/static/chunks/app/notebook/api/collaboration/route-535c0c777be3ef2c.js', - revision: '58Tz5oM4f3q8GcSxv4EZA', - }, - { - url: '/_next/static/chunks/app/notebook/layout-7b55c1898bab61a8.js', - revision: '58Tz5oM4f3q8GcSxv4EZA', - }, - { - url: '/_next/static/chunks/app/notebook/route-1680b76039c39510.js', - revision: '58Tz5oM4f3q8GcSxv4EZA', - }, - { - url: '/_next/static/chunks/app/page-4dcfe7d785360e97.js', - revision: '58Tz5oM4f3q8GcSxv4EZA', - }, - { - url: '/_next/static/chunks/app/paper/%5Bid%5D/%5Bslug%5D/page-fd13fa0804006a4b.js', - revision: '58Tz5oM4f3q8GcSxv4EZA', - }, - { - url: '/_next/static/chunks/app/researchcoin/layout-7948c368db79e1e9.js', - revision: '58Tz5oM4f3q8GcSxv4EZA', - }, - { - url: '/_next/static/chunks/app/researchcoin/page-222cb8d4837823e2.js', - revision: '58Tz5oM4f3q8GcSxv4EZA', - }, - { - url: '/_next/static/chunks/c16f53c3-e7247ca93aca2312.js', - revision: '58Tz5oM4f3q8GcSxv4EZA', - }, - { - url: '/_next/static/chunks/ca377847-016959ad0b446bd1.js', - revision: '58Tz5oM4f3q8GcSxv4EZA', - }, - { - url: '/_next/static/chunks/framework-58f97e80b1d6e3ea.js', - revision: '58Tz5oM4f3q8GcSxv4EZA', - }, - { url: '/_next/static/chunks/main-7fb574a6b690089e.js', revision: '58Tz5oM4f3q8GcSxv4EZA' }, - { - url: '/_next/static/chunks/main-app-a04fdeeacc31d26c.js', - revision: '58Tz5oM4f3q8GcSxv4EZA', - }, - { - url: '/_next/static/chunks/pages/_app-abffdcde9d309a0c.js', - revision: '58Tz5oM4f3q8GcSxv4EZA', - }, - { - url: '/_next/static/chunks/pages/_error-94b8133dd8229633.js', - revision: '58Tz5oM4f3q8GcSxv4EZA', - }, - { - url: '/_next/static/chunks/polyfills-42372ed130431b0a.js', - revision: '846118c33b2c0e922d7b3a7676f81f6f', - }, - { - url: '/_next/static/chunks/webpack-cc9a7467c5e44f6d.js', - revision: '58Tz5oM4f3q8GcSxv4EZA', - }, - { url: '/_next/static/css/5006e678c1b4bf92.css', revision: '5006e678c1b4bf92' }, - { url: '/_next/static/css/6b3cb307639b8902.css', revision: '6b3cb307639b8902' }, - { url: '/_next/static/css/c1e570150590096a.css', revision: 'c1e570150590096a' }, - { url: '/_next/static/css/d30f411d297accae.css', revision: 'd30f411d297accae' }, - { - url: '/_next/static/media/4473ecc91f70f139-s.p.woff', - revision: '78e6fc13ea317b55ab0bd6dc4849c110', - }, - { - url: '/_next/static/media/463dafcda517f24f-s.p.woff', - revision: 'cbeb6d2d96eaa268b4b5beb0b46d9632', - }, - { url: '/_next/static/media/CalSans-SemiBold.162bf645.ttf', revision: '162bf645' }, - { url: '/_next/static/media/CalSans-SemiBold.90475aac.woff2', revision: '90475aac' }, - { url: '/_next/static/media/CalSans-SemiBold.d19ce3e3.woff', revision: 'd19ce3e3' }, - { - url: '/_next/static/media/inter-cyrillic-100-normal.dc90b237.woff2', - revision: 'dc90b237', - }, - { - url: '/_next/static/media/inter-cyrillic-100-normal.f9eff440.woff', - revision: 'f9eff440', - }, - { - url: '/_next/static/media/inter-cyrillic-200-normal.1ea11c46.woff', - revision: '1ea11c46', - }, - { - url: '/_next/static/media/inter-cyrillic-200-normal.3f3a159e.woff2', - revision: '3f3a159e', - }, - { - url: '/_next/static/media/inter-cyrillic-300-normal.7335a360.woff2', - revision: '7335a360', - }, - { - url: '/_next/static/media/inter-cyrillic-300-normal.edcd2385.woff', - revision: 'edcd2385', - }, - { - url: '/_next/static/media/inter-cyrillic-400-normal.4cc6e28c.woff', - revision: '4cc6e28c', - }, - { - url: '/_next/static/media/inter-cyrillic-400-normal.547767ef.woff2', - revision: '547767ef', - }, - { - url: '/_next/static/media/inter-cyrillic-500-normal.5ec9103b.woff2', - revision: '5ec9103b', - }, - { - url: '/_next/static/media/inter-cyrillic-500-normal.c1b1edeb.woff', - revision: 'c1b1edeb', - }, - { - url: '/_next/static/media/inter-cyrillic-600-normal.8c69e1bb.woff2', - revision: '8c69e1bb', - }, - { - url: '/_next/static/media/inter-cyrillic-600-normal.c0105440.woff', - revision: 'c0105440', - }, - { - url: '/_next/static/media/inter-cyrillic-700-normal.571aeb62.woff', - revision: '571aeb62', - }, - { - url: '/_next/static/media/inter-cyrillic-700-normal.9ce56ec3.woff2', - revision: '9ce56ec3', - }, - { - url: '/_next/static/media/inter-cyrillic-ext-100-normal.0e1aec1d.woff2', - revision: '0e1aec1d', - }, - { - url: '/_next/static/media/inter-cyrillic-ext-100-normal.191a6bdc.woff', - revision: '191a6bdc', - }, - { - url: '/_next/static/media/inter-cyrillic-ext-200-normal.043206d9.woff', - revision: '043206d9', - }, - { - url: '/_next/static/media/inter-cyrillic-ext-200-normal.43d8878a.woff2', - revision: '43d8878a', - }, - { - url: '/_next/static/media/inter-cyrillic-ext-300-normal.5df3b45f.woff2', - revision: '5df3b45f', - }, - { - url: '/_next/static/media/inter-cyrillic-ext-300-normal.be7b9715.woff', - revision: 'be7b9715', - }, - { - url: '/_next/static/media/inter-cyrillic-ext-400-normal.2440d5f8.woff2', - revision: '2440d5f8', - }, - { - url: '/_next/static/media/inter-cyrillic-ext-400-normal.6e13bad4.woff', - revision: '6e13bad4', - }, - { - url: '/_next/static/media/inter-cyrillic-ext-500-normal.656d5a0e.woff', - revision: '656d5a0e', - }, - { - url: '/_next/static/media/inter-cyrillic-ext-500-normal.d8f535fc.woff2', - revision: 'd8f535fc', - }, - { - url: '/_next/static/media/inter-cyrillic-ext-600-normal.62fe61a7.woff', - revision: '62fe61a7', - }, - { - url: '/_next/static/media/inter-cyrillic-ext-600-normal.dd95b020.woff2', - revision: 'dd95b020', - }, - { - url: '/_next/static/media/inter-cyrillic-ext-700-normal.94d4fa7d.woff2', - revision: '94d4fa7d', - }, - { - url: '/_next/static/media/inter-cyrillic-ext-700-normal.9fa0c048.woff', - revision: '9fa0c048', - }, - { url: '/_next/static/media/inter-greek-100-normal.4601ceba.woff2', revision: '4601ceba' }, - { url: '/_next/static/media/inter-greek-100-normal.b849cf34.woff', revision: 'b849cf34' }, - { url: '/_next/static/media/inter-greek-200-normal.299c0a99.woff', revision: '299c0a99' }, - { url: '/_next/static/media/inter-greek-200-normal.d64aa322.woff2', revision: 'd64aa322' }, - { url: '/_next/static/media/inter-greek-300-normal.14123a0c.woff2', revision: '14123a0c' }, - { url: '/_next/static/media/inter-greek-300-normal.ec3d0adc.woff', revision: 'ec3d0adc' }, - { url: '/_next/static/media/inter-greek-400-normal.573bacd1.woff2', revision: '573bacd1' }, - { url: '/_next/static/media/inter-greek-400-normal.d6adbb78.woff', revision: 'd6adbb78' }, - { url: '/_next/static/media/inter-greek-500-normal.947d4ab3.woff2', revision: '947d4ab3' }, - { url: '/_next/static/media/inter-greek-500-normal.af596b86.woff', revision: 'af596b86' }, - { url: '/_next/static/media/inter-greek-600-normal.61c756cf.woff', revision: '61c756cf' }, - { url: '/_next/static/media/inter-greek-600-normal.ee808ffe.woff2', revision: 'ee808ffe' }, - { url: '/_next/static/media/inter-greek-700-normal.384941e3.woff', revision: '384941e3' }, - { url: '/_next/static/media/inter-greek-700-normal.a094cf2b.woff2', revision: 'a094cf2b' }, - { - url: '/_next/static/media/inter-greek-ext-100-normal.1423dba6.woff', - revision: '1423dba6', - }, - { - url: '/_next/static/media/inter-greek-ext-100-normal.3d999e5e.woff2', - revision: '3d999e5e', - }, - { - url: '/_next/static/media/inter-greek-ext-200-normal.28c1da10.woff', - revision: '28c1da10', - }, - { - url: '/_next/static/media/inter-greek-ext-200-normal.64dcccdd.woff2', - revision: '64dcccdd', - }, - { - url: '/_next/static/media/inter-greek-ext-300-normal.7b467784.woff2', - revision: '7b467784', - }, - { - url: '/_next/static/media/inter-greek-ext-300-normal.fb5ad981.woff', - revision: 'fb5ad981', - }, - { - url: '/_next/static/media/inter-greek-ext-400-normal.f196e968.woff', - revision: 'f196e968', - }, - { - url: '/_next/static/media/inter-greek-ext-400-normal.f8992900.woff2', - revision: 'f8992900', - }, - { - url: '/_next/static/media/inter-greek-ext-500-normal.34eb831d.woff', - revision: '34eb831d', - }, - { - url: '/_next/static/media/inter-greek-ext-500-normal.5fe403a5.woff2', - revision: '5fe403a5', - }, - { - url: '/_next/static/media/inter-greek-ext-600-normal.a46b5cba.woff', - revision: 'a46b5cba', - }, - { - url: '/_next/static/media/inter-greek-ext-600-normal.d05f940f.woff2', - revision: 'd05f940f', - }, - { - url: '/_next/static/media/inter-greek-ext-700-normal.411652e2.woff2', - revision: '411652e2', - }, - { - url: '/_next/static/media/inter-greek-ext-700-normal.fa338c24.woff', - revision: 'fa338c24', - }, - { url: '/_next/static/media/inter-latin-100-normal.9da4947b.woff', revision: '9da4947b' }, - { url: '/_next/static/media/inter-latin-100-normal.f52a4b98.woff2', revision: 'f52a4b98' }, - { url: '/_next/static/media/inter-latin-200-normal.2fb5efe4.woff', revision: '2fb5efe4' }, - { url: '/_next/static/media/inter-latin-200-normal.b94fa4a8.woff2', revision: 'b94fa4a8' }, - { url: '/_next/static/media/inter-latin-300-normal.0a506d8e.woff2', revision: '0a506d8e' }, - { url: '/_next/static/media/inter-latin-300-normal.38608292.woff', revision: '38608292' }, - { url: '/_next/static/media/inter-latin-400-normal.360a94a9.woff2', revision: '360a94a9' }, - { url: '/_next/static/media/inter-latin-400-normal.38abad60.woff', revision: '38abad60' }, - { url: '/_next/static/media/inter-latin-500-normal.7986a549.woff', revision: '7986a549' }, - { url: '/_next/static/media/inter-latin-500-normal.e98e390c.woff2', revision: 'e98e390c' }, - { url: '/_next/static/media/inter-latin-600-normal.8ad7b5a9.woff', revision: '8ad7b5a9' }, - { url: '/_next/static/media/inter-latin-600-normal.efad9519.woff2', revision: 'efad9519' }, - { url: '/_next/static/media/inter-latin-700-normal.6b51d3fc.woff2', revision: '6b51d3fc' }, - { url: '/_next/static/media/inter-latin-700-normal.ac2885ce.woff', revision: 'ac2885ce' }, - { - url: '/_next/static/media/inter-latin-ext-100-normal.6e075b22.woff', - revision: '6e075b22', - }, - { - url: '/_next/static/media/inter-latin-ext-100-normal.c40abd11.woff2', - revision: 'c40abd11', - }, - { - url: '/_next/static/media/inter-latin-ext-200-normal.954373b9.woff', - revision: '954373b9', - }, - { - url: '/_next/static/media/inter-latin-ext-200-normal.ccc0cca6.woff2', - revision: 'ccc0cca6', - }, - { - url: '/_next/static/media/inter-latin-ext-300-normal.3033d32d.woff2', - revision: '3033d32d', - }, - { - url: '/_next/static/media/inter-latin-ext-300-normal.9eef1747.woff', - revision: '9eef1747', - }, - { - url: '/_next/static/media/inter-latin-ext-400-normal.732723e2.woff2', - revision: '732723e2', - }, - { - url: '/_next/static/media/inter-latin-ext-400-normal.d1f6a5a2.woff', - revision: 'd1f6a5a2', - }, - { - url: '/_next/static/media/inter-latin-ext-500-normal.8f855dd9.woff2', - revision: '8f855dd9', - }, - { - url: '/_next/static/media/inter-latin-ext-500-normal.b3be213d.woff', - revision: 'b3be213d', - }, - { - url: '/_next/static/media/inter-latin-ext-600-normal.43dc1cee.woff2', - revision: '43dc1cee', - }, - { - url: '/_next/static/media/inter-latin-ext-600-normal.8756e10d.woff', - revision: '8756e10d', - }, - { - url: '/_next/static/media/inter-latin-ext-700-normal.a2935e03.woff', - revision: 'a2935e03', - }, - { - url: '/_next/static/media/inter-latin-ext-700-normal.e8daf0b5.woff2', - revision: 'e8daf0b5', - }, - { - url: '/_next/static/media/inter-vietnamese-100-normal.03f887b7.woff2', - revision: '03f887b7', - }, - { - url: '/_next/static/media/inter-vietnamese-100-normal.c33529d0.woff', - revision: 'c33529d0', - }, - { - url: '/_next/static/media/inter-vietnamese-200-normal.d1738c75.woff', - revision: 'd1738c75', - }, - { - url: '/_next/static/media/inter-vietnamese-200-normal.d4b1139a.woff2', - revision: 'd4b1139a', - }, - { - url: '/_next/static/media/inter-vietnamese-300-normal.ad9ef503.woff2', - revision: 'ad9ef503', - }, - { - url: '/_next/static/media/inter-vietnamese-300-normal.b4574483.woff', - revision: 'b4574483', - }, - { - url: '/_next/static/media/inter-vietnamese-400-normal.1411920a.woff', - revision: '1411920a', - }, - { - url: '/_next/static/media/inter-vietnamese-400-normal.de4fc44f.woff2', - revision: 'de4fc44f', - }, - { - url: '/_next/static/media/inter-vietnamese-500-normal.7c0a695f.woff2', - revision: '7c0a695f', - }, - { - url: '/_next/static/media/inter-vietnamese-500-normal.c5840ea0.woff', - revision: 'c5840ea0', - }, - { - url: '/_next/static/media/inter-vietnamese-600-normal.8b0a74d0.woff', - revision: '8b0a74d0', - }, - { - url: '/_next/static/media/inter-vietnamese-600-normal.9d518599.woff2', - revision: '9d518599', - }, - { - url: '/_next/static/media/inter-vietnamese-700-normal.26a4f6eb.woff', - revision: '26a4f6eb', - }, - { - url: '/_next/static/media/inter-vietnamese-700-normal.c48feea2.woff2', - revision: 'c48feea2', - }, - { url: '/file.svg', revision: 'd09f95206c3fa0bb9bd9fefabfd0ea71' }, - { url: '/globe.svg', revision: '2aaafa6a49b6563925fe440891e32717' }, - { url: '/manifest.json', revision: 'b58d44241b359452f04806f532c5f97e' }, - { url: '/next.svg', revision: '8e061864f388b47f33a1c3780831193e' }, - { url: '/vercel.svg', revision: 'c0af2f507b369b085b35ef4bbe3bcf1e' }, - { url: '/window.svg', revision: 'a2760511c65806022ad20adf74370ff3' }, - ], - { ignoreURLParametersMatching: [] } - ), - e.cleanupOutdatedCaches(), - e.registerRoute( - '/', - new e.NetworkFirst({ - cacheName: 'start-url', - plugins: [ - { - cacheWillUpdate: async ({ request: e, response: i, event: t, state: a }) => - i && 'opaqueredirect' === i.type - ? new Response(i.body, { status: 200, statusText: 'OK', headers: i.headers }) - : i, - }, - ], - }), - 'GET' - ), - e.registerRoute( - /^https:\/\/fonts\.(?:gstatic)\.com\/.*/i, - new e.CacheFirst({ - cacheName: 'google-fonts-webfonts', - plugins: [new e.ExpirationPlugin({ maxEntries: 4, maxAgeSeconds: 31536e3 })], - }), - 'GET' - ), - e.registerRoute( - /^https:\/\/fonts\.(?:googleapis)\.com\/.*/i, - new e.StaleWhileRevalidate({ - cacheName: 'google-fonts-stylesheets', - plugins: [new e.ExpirationPlugin({ maxEntries: 4, maxAgeSeconds: 604800 })], - }), - '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 })], - }), - '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: 86400 })], - }), - 'GET' - ), - e.registerRoute( - /\/_next\/image\?url=.+$/i, - new e.StaleWhileRevalidate({ - cacheName: 'next-image', - plugins: [new e.ExpirationPlugin({ maxEntries: 64, maxAgeSeconds: 86400 })], - }), - '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 }), - ], - }), - 'GET' - ), - e.registerRoute( - /\.(?:mp4)$/i, - new e.CacheFirst({ - cacheName: 'static-video-assets', - plugins: [ - new e.RangeRequestsPlugin(), - new e.ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 }), - ], - }), - 'GET' - ), - e.registerRoute( - /\.(?:js)$/i, - new e.StaleWhileRevalidate({ - cacheName: 'static-js-assets', - plugins: [new e.ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })], - }), - 'GET' - ), - e.registerRoute( - /\.(?:css|less)$/i, - new e.StaleWhileRevalidate({ - cacheName: 'static-style-assets', - plugins: [new e.ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })], - }), - 'GET' - ), - e.registerRoute( - /\/_next\/data\/.+\/.+\.json$/i, - new e.StaleWhileRevalidate({ - cacheName: 'next-data', - plugins: [new e.ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })], - }), - 'GET' - ), - e.registerRoute( - /\.(?:json|xml|csv)$/i, - new e.NetworkFirst({ - cacheName: 'static-data-assets', - plugins: [new e.ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })], - }), - 'GET' - ), - e.registerRoute( - ({ url: e }) => { - if (!(self.origin === e.origin)) return !1; - const i = e.pathname; - return !i.startsWith('/api/auth/') && !!i.startsWith('/api/'); - }, - new e.NetworkFirst({ - cacheName: 'apis', - networkTimeoutSeconds: 10, - plugins: [new e.ExpirationPlugin({ maxEntries: 16, maxAgeSeconds: 86400 })], - }), - 'GET' - ), - e.registerRoute( - ({ url: e }) => { - if (!(self.origin === e.origin)) return !1; - return !e.pathname.startsWith('/api/'); - }, - new e.NetworkFirst({ - cacheName: 'others', - networkTimeoutSeconds: 10, - plugins: [new e.ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })], - }), - 'GET' - ), - e.registerRoute( - ({ url: e }) => !(self.origin === e.origin), - new e.NetworkFirst({ - cacheName: 'cross-origin', - networkTimeoutSeconds: 10, - plugins: [new e.ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 3600 })], - }), - 'GET' - )); }); diff --git a/public/workbox-4754cb34.js b/public/workbox-4754cb34.js deleted file mode 100644 index 0db7e50dd..000000000 --- a/public/workbox-4754cb34.js +++ /dev/null @@ -1,1158 +0,0 @@ -define(['exports'], function (t) { - 'use strict'; - try { - self['workbox:core:6.5.4'] && _(); - } 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:6.5.4'] && _(); - } 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:6.5.4'] && _(); - } 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 v { - 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.v = new Map()); - for (const t of this.m) this.v.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.R(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.v.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 R(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 R { - 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 v(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; e < arguments.length; e++) { - var s = arguments[e]; - for (var n in s) ({}).hasOwnProperty.call(s, n) && (t[n] = s[n]); - } - return t; - }), - q.apply(null, arguments) - ); - } - let D, U; - const x = new WeakMap(), - L = new WeakMap(), - I = new WeakMap(), - C = new WeakMap(), - E = new WeakMap(); - let N = { - get(t, e, s) { - if (t instanceof IDBTransaction) { - if ('done' === e) return L.get(t); - if ('objectStoreNames' === e) return t.objectStoreNames || I.get(t); - if ('store' === e) - return s.objectStoreNames[1] ? void 0 : s.objectStore(s.objectStoreNames[0]); - } - return k(t[e]); - }, - set: (t, e, s) => ((t[e] = s), !0), - has: (t, e) => (t instanceof IDBTransaction && ('done' === e || 'store' === e)) || e in t, - }; - function O(t) { - return t !== IDBDatabase.prototype.transaction || 'objectStoreNames' in IDBTransaction.prototype - ? ( - U || - (U = [ - IDBCursor.prototype.advance, - IDBCursor.prototype.continue, - IDBCursor.prototype.continuePrimaryKey, - ]) - ).includes(t) - ? function (...e) { - return t.apply(B(this), e), k(x.get(this)); - } - : function (...e) { - return k(t.apply(B(this), e)); - } - : function (e, ...s) { - const n = t.call(B(this), e, ...s); - return I.set(n, e.sort ? e.sort() : [e]), k(n); - }; - } - function T(t) { - return 'function' == typeof t - ? O(t) - : (t instanceof IDBTransaction && - (function (t) { - if (L.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); - }); - L.set(t, e); - })(t), - (e = t), - (D || (D = [IDBDatabase, IDBObjectStore, IDBIndex, IDBCursor, IDBTransaction])).some( - (t) => e instanceof t - ) - ? new Proxy(t, N) - : t); - var e; - } - function k(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(k(t.result)), n(); - }, - i = () => { - s(t.error), n(); - }; - t.addEventListener('success', r), t.addEventListener('error', i); - }); - return ( - e - .then((e) => { - e instanceof IDBCursor && x.set(e, t); - }) - .catch(() => {}), - E.set(e, t), - e - ); - })(t); - if (C.has(t)) return C.get(t); - const e = T(t); - return e !== t && (C.set(t, e), E.set(e, t)), e; - } - const B = (t) => E.get(t); - const P = ['get', 'getKey', 'getAll', 'getAllKeys', 'count'], - M = ['put', 'add', 'delete', 'clear'], - W = new Map(); - function j(t, e) { - if (!(t instanceof IDBDatabase) || e in t || 'string' != typeof e) return; - if (W.get(e)) return W.get(e); - const s = e.replace(/FromIndex$/, ''), - n = e !== s, - r = M.includes(s); - if (!(s in (n ? IDBIndex : IDBObjectStore).prototype) || (!r && !P.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 W.set(e, i), i; - } - N = ((t) => - q({}, t, { - get: (e, s, n) => j(e, s) || t.get(e, s, n), - has: (e, s) => !!j(e, s) || t.has(e, s), - }))(N); - try { - self['workbox:expiration:6.5.4'] && _(); - } catch (t) {} - const S = 'cache-entries', - K = (t) => { - const e = new URL(t, location.href); - return (e.hash = ''), e.href; - }; - class A { - constructor(t) { - (this._ = null), (this.L = t); - } - I(t) { - const e = t.createObjectStore(S, { 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)), k(s).then(() => {}); - })(this.L); - } - async setTimestamp(t, e) { - const s = { url: (t = K(t)), timestamp: e, cacheName: this.L, id: this.N(t) }, - n = (await this.getDb()).transaction(S, 'readwrite', { durability: 'relaxed' }); - await n.store.put(s), await n.done; - } - async getTimestamp(t) { - const e = await this.getDb(), - s = await e.get(S, this.N(t)); - return null == s ? void 0 : s.timestamp; - } - async expireEntries(t, e) { - const s = await this.getDb(); - let n = await s.transaction(S).store.index('timestamp').openCursor(null, 'prev'); - const r = []; - let i = 0; - for (; n; ) { - const s = n.value; - s.cacheName === this.L && ((t && s.timestamp < t) || (e && i >= e) ? r.push(n.value) : i++), - (n = await n.continue()); - } - const a = []; - for (const t of r) await s.delete(S, t.id), a.push(t.url); - return a; - } - N(t) { - return this.L + '|' + K(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 = k(a); - return ( - n && - a.addEventListener('upgradeneeded', (t) => { - n(k(a.result), t.oldVersion, t.newVersion, k(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 F { - 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 A(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 || e < s; - } - return !1; - } - async delete() { - (this.T = !1), await this.M.expireEntries(1 / 0); - } - } - try { - self['workbox:range-requests:6.5.4'] && _(); - } catch (t) {} - async function H(t, e) { - try { - if (206 === e.status) return e; - const n = t.headers.get('range'); - if (!n) throw new s('no-range-header'); - const r = (function (t) { - const e = t.trim().toLowerCase(); - if (!e.startsWith('bytes=')) - throw new s('unit-must-be-bytes', { normalizedRangeHeader: e }); - if (e.includes(',')) throw new s('single-range-only', { normalizedRangeHeader: e }); - const n = /(\d*)-(\d*)/.exec(e); - if (!n || (!n[1] && !n[2])) - throw new s('invalid-range-values', { normalizedRangeHeader: e }); - return { - start: '' === n[1] ? void 0 : Number(n[1]), - end: '' === n[2] ? void 0 : Number(n[2]), - }; - })(n), - i = await e.blob(), - a = (function (t, e, n) { - const r = t.size; - if ((n && n > r) || (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 $(t, e) { - const s = e(); - return t.waitUntil(s), s; - } - try { - self['workbox:precaching:6.5.4'] && _(); - } catch (t) {} - function z(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 G { - 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 V { - 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 J, Q; - async function X(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 === J) { - const t = new Response(''); - if ('body' in t) - try { - new Response(t.body), (J = !0); - } catch (t) { - J = !1; - } - J = !1; - } - return J; - })() - ? r.body - : await r.blob(); - return new Response(o, a); - } - class Y extends R { - constructor(t = {}) { - (t.cacheName = w(t.cacheName)), - super(t), - (this.j = !1 !== t.fallbackToNetwork), - this.plugins.push(Y.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 !== Y.copyRedirectedCacheableResponsesPlugin && - (n === Y.defaultPrecacheCacheabilityPlugin && (t = s), n.cacheWillUpdate && e++); - 0 === e - ? this.plugins.push(Y.defaultPrecacheCacheabilityPlugin) - : e > 1 && null !== t && this.plugins.splice(t, 1); - } - } - (Y.defaultPrecacheCacheabilityPlugin = { - cacheWillUpdate: async ({ response: t }) => (!t || t.status >= 400 ? null : t), - }), - (Y.copyRedirectedCacheableResponsesPlugin = { - cacheWillUpdate: async ({ response: t }) => (t.redirected ? await X(t) : t), - }); - class Z { - constructor({ cacheName: t, plugins: e = [], fallbackToNetwork: s = !0 } = {}) { - (this.F = new Map()), - (this.H = new Map()), - (this.$ = new Map()), - (this.u = new Y({ - cacheName: w(t), - plugins: [...e, new V({ 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 } = z(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 $(t, async () => { - const e = new G(); - 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 $(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 tt = () => (Q || (Q = new Z()), Q); - class et 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 R { - 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 F(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 R { - 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 H(t, e) : e; - } - }), - (t.StaleWhileRevalidate = class extends R { - 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) { - tt().precache(t); - })(t), - (function (t) { - const e = tt(); - h(new et(e, t)); - })(e); - }), - (t.registerRoute = h); -});