diff --git a/lib/package.json b/lib/package.json index 35f50e52..607388ff 100644 --- a/lib/package.json +++ b/lib/package.json @@ -71,5 +71,5 @@ "type": "git", "url": "https://github.com/geops/tree-app.git" }, - "packageManager": "pnpm@9.7.0+sha256.b35018fbfa8f583668b2649e407922a721355cd81f61beeb4ac1d4258e585559" + "packageManager": "pnpm@10.17.1+sha512.17c560fca4867ae9473a3899ad84a88334914f379be46d455cbf92e5cf4b39d34985d452d2583baf19967fa76cb5c17bc9e245529d0b98745721aa7200ecaf7a" } diff --git a/next.config.mjs b/next.config.mjs index 7f56bd33..a8b32e27 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -63,7 +63,6 @@ const getNextConfig = async (phase) => { const withSerwist = (await import("@serwist/next")).default({ swSrc: "sw.ts", swDest: "public/sw.js", - reloadOnOnline: true, }); return withSerwist(nextConfig); } diff --git a/package.json b/package.json index 740b502f..4605b27b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tree-app", - "version": "3.0.1", + "version": "3.0.3", "private": true, "scripts": { "dev": "next dev", @@ -14,11 +14,11 @@ "@geops/tree-lib": "link:lib/build", "@headlessui/react": "2.0.4", "@heroicons/react": "2.1.5", - "@serwist/next": "9.0.7", - "@serwist/sw": "9.0.8", - "@types/react": "18.3.4", + "@serwist/next": "9.2.1", + "@serwist/sw": "9.2.1", "@tailwindcss/container-queries": "0.1.1", "@types/node": "20.16.2", + "@types/react": "18.3.4", "@upstash/redis": "1.34.3", "assert": "2.1.0", "docx": "9.1.0", @@ -43,17 +43,17 @@ "react-select": "5.8.3", "react-tooltip": "5.28.0", "save-svg-as-png": "1.4.17", + "serwist": "9.2.1", "sql.js": "1.11.0", - "url-loader": "4.1.1", - "uuid": "10.0.0", - "serwist": "9.0.7", "tailwindcss": "3.4.1", "typescript": "5.6.3", + "url-loader": "4.1.1", + "uuid": "10.0.0", "zustand": "5.0.0-rc.2" }, "devDependencies": { "@geops/eslint-config-react": "1.2.0", - "@serwist/build": "9.0.7", + "@serwist/build": "9.2.1", "@types/file-saver": "2.0.7", "@types/geojson": "7946.0.14", "@types/lodash.get": "4.4.9", @@ -77,5 +77,5 @@ "react-i18next": ">=11.16.4" }, "author": "geOps", - "packageManager": "pnpm@9.7.0+sha256.b35018fbfa8f583668b2649e407922a721355cd81f61beeb4ac1d4258e585559" + "packageManager": "pnpm@10.17.1+sha512.17c560fca4867ae9473a3899ad84a88334914f379be46d455cbf92e5cf4b39d34985d452d2583baf19967fa76cb5c17bc9e245529d0b98745721aa7200ecaf7a" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d47e7461..829c2ac0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,11 +21,11 @@ importers: specifier: 2.1.5 version: 2.1.5(react@18.3.1) '@serwist/next': - specifier: 9.0.7 - version: 9.0.7(next@14.2.32(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3)(webpack@5.96.1) + specifier: 9.2.1 + version: 9.2.1(next@14.2.32(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3)(webpack@5.96.1) '@serwist/sw': - specifier: 9.0.8 - version: 9.0.8(typescript@5.6.3) + specifier: 9.2.1 + version: 9.2.1(typescript@5.6.3) '@tailwindcss/container-queries': specifier: 0.1.1 version: 0.1.1(tailwindcss@3.4.1) @@ -108,8 +108,8 @@ importers: specifier: 1.4.17 version: 1.4.17 serwist: - specifier: 9.0.7 - version: 9.0.7(typescript@5.6.3) + specifier: 9.2.1 + version: 9.2.1(typescript@5.6.3) sql.js: specifier: 1.11.0 version: 1.11.0 @@ -133,8 +133,8 @@ importers: specifier: 1.2.0 version: 1.2.0(eslint@8.57.1)(typescript@5.6.3) '@serwist/build': - specifier: 9.0.7 - version: 9.0.7(typescript@5.6.3) + specifier: 9.2.1 + version: 9.2.1(typescript@5.6.3) '@types/file-saver': specifier: 2.0.7 version: 2.0.7 @@ -390,8 +390,8 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - '@jridgewell/trace-mapping@0.3.30': - resolution: {integrity: sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==} + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} '@mapbox/geojson-rewind@0.5.2': resolution: {integrity: sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==} @@ -550,94 +550,14 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - '@rollup/rollup-android-arm-eabi@4.21.0': - resolution: {integrity: sha512-WTWD8PfoSAJ+qL87lE7votj3syLavxunWhzCnx3XFxFiI/BA/r3X7MUM8dVrH8rb2r4AiO8jJsr3ZjdaftmnfA==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.21.0': - resolution: {integrity: sha512-a1sR2zSK1B4eYkiZu17ZUZhmUQcKjk2/j9Me2IDjk1GHW7LB5Z35LEzj9iJch6gtUfsnvZs1ZNyDW2oZSThrkA==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.21.0': - resolution: {integrity: sha512-zOnKWLgDld/svhKO5PD9ozmL6roy5OQ5T4ThvdYZLpiOhEGY+dp2NwUmxK0Ld91LrbjrvtNAE0ERBwjqhZTRAA==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.21.0': - resolution: {integrity: sha512-7doS8br0xAkg48SKE2QNtMSFPFUlRdw9+votl27MvT46vo44ATBmdZdGysOevNELmZlfd+NEa0UYOA8f01WSrg==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-linux-arm-gnueabihf@4.21.0': - resolution: {integrity: sha512-pWJsfQjNWNGsoCq53KjMtwdJDmh/6NubwQcz52aEwLEuvx08bzcy6tOUuawAOncPnxz/3siRtd8hiQ32G1y8VA==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.21.0': - resolution: {integrity: sha512-efRIANsz3UHZrnZXuEvxS9LoCOWMGD1rweciD6uJQIx2myN3a8Im1FafZBzh7zk1RJ6oKcR16dU3UPldaKd83w==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.21.0': - resolution: {integrity: sha512-ZrPhydkTVhyeGTW94WJ8pnl1uroqVHM3j3hjdquwAcWnmivjAwOYjTEAuEDeJvGX7xv3Z9GAvrBkEzCgHq9U1w==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.21.0': - resolution: {integrity: sha512-cfaupqd+UEFeURmqNP2eEvXqgbSox/LHOyN9/d2pSdV8xTrjdg3NgOFJCtc1vQ/jEke1qD0IejbBfxleBPHnPw==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-powerpc64le-gnu@4.21.0': - resolution: {integrity: sha512-ZKPan1/RvAhrUylwBXC9t7B2hXdpb/ufeu22pG2psV7RN8roOfGurEghw1ySmX/CmDDHNTDDjY3lo9hRlgtaHg==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.21.0': - resolution: {integrity: sha512-H1eRaCwd5E8eS8leiS+o/NqMdljkcb1d6r2h4fKSsCXQilLKArq6WS7XBLDu80Yz+nMqHVFDquwcVrQmGr28rg==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.21.0': - resolution: {integrity: sha512-zJ4hA+3b5tu8u7L58CCSI0A9N1vkfwPhWd/puGXwtZlsB5bTkwDNW/+JCU84+3QYmKpLi+XvHdmrlwUwDA6kqw==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.21.0': - resolution: {integrity: sha512-e2hrvElFIh6kW/UNBQK/kzqMNY5mO+67YtEh9OA65RM5IJXYTWiXjX6fjIiPaqOkBthYF1EqgiZ6OXKcQsM0hg==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.21.0': - resolution: {integrity: sha512-1vvmgDdUSebVGXWX2lIcgRebqfQSff0hMEkLJyakQ9JQUbLDkEaMsPTLOmyccyC6IJ/l3FZuJbmrBw/u0A0uCQ==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-win32-arm64-msvc@4.21.0': - resolution: {integrity: sha512-s5oFkZ/hFcrlAyBTONFY1TWndfyre1wOMwU+6KCpm/iatybvrRgmZVM+vCFwxmC5ZhdlgfE0N4XorsDpi7/4XQ==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.21.0': - resolution: {integrity: sha512-G9+TEqRnAA6nbpqyUqgTiopmnfgnMkR3kMukFBDsiyy23LZvUCpiUwjTRx6ezYCjJODXrh52rBR9oXvm+Fp5wg==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.21.0': - resolution: {integrity: sha512-2jsCDZwtQvRhejHLfZ1JY6w6kEuEtfF9nzYsZxzSlNVKDX+DpsDJ+Rbjkm74nvg2rdx0gwBS+IMdvwJuq3S9pQ==} - cpu: [x64] - os: [win32] - '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} '@rushstack/eslint-patch@1.10.4': resolution: {integrity: sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==} - '@serwist/build@9.0.7': - resolution: {integrity: sha512-JHX3pBXH4wuvLrCZxa+HyWvoe8W0nIpEKNEfGVRuJrKXHQ1CTquMrB0k1XImv/D/SD6mB9UhW9zGyLaS2QCIjQ==} + '@serwist/build@9.2.1': + resolution: {integrity: sha512-mMCBZi82jVCxIhOu/D3ifkfmiuhdFHuelWK1zRlASLbkogH7YsS6qvGTl37vWBTVAWNKcKfVWLR6tq9AUB7BSg==} engines: {node: '>=18.0.0'} peerDependencies: typescript: '>=5.0.0' @@ -645,8 +565,8 @@ packages: typescript: optional: true - '@serwist/next@9.0.7': - resolution: {integrity: sha512-p6RHxv+uTo3UJ9Iqwuxew1JxQKhYji6jmxKG5in4czsuRFFj6JSzB5SuHyOUoO3S7zKYBze02Ski/68rHl0uvA==} + '@serwist/next@9.2.1': + resolution: {integrity: sha512-CCTvZYSWK1hCmANViGLd7LvVc9r9wd4aaVX4Uk0F6fC0/Xn05GY52di7LGZ2NveGr1g+NjQvQSBhfxCQK95NIg==} engines: {node: '>=18.0.0'} peerDependencies: next: '>=14.0.0' @@ -655,16 +575,16 @@ packages: typescript: optional: true - '@serwist/sw@9.0.8': - resolution: {integrity: sha512-EYFQcGzR4fr6nbfgW4NqxGdiNpQnfnZnV0nGaqcb+yPhbpGFectf/2WLF4tCJLY4o9H9ElmE9Pk4mol6H8DgEg==} + '@serwist/sw@9.2.1': + resolution: {integrity: sha512-SQygNDTB4w4HRjKiGH+Ybme+dy2rynt6RPFHw27SANQRK1rEzqYUZ1S4SyKjiwJgIoy+mQOA7+T23OqAfW7Eqg==} peerDependencies: typescript: '>=5.0.0' peerDependenciesMeta: typescript: optional: true - '@serwist/webpack-plugin@9.0.7': - resolution: {integrity: sha512-dVOjNpanJQ160YJj+utXcUmXDQdK7TJgqU4EHloxmuHP6q0Pl03Y/YDVonBvW58YPjakCrTFKuPG0cuVVz6Wog==} + '@serwist/webpack-plugin@9.2.1': + resolution: {integrity: sha512-tBVlKifGP96aV7A8HD0xXIJAu6/sTyfRc827LFuLajNaX2d/dpo/0sMxO45jEI+GS7vaUdTcSl5DqcaRkkQ9wQ==} engines: {node: '>=18.0.0'} peerDependencies: typescript: '>=5.0.0' @@ -675,8 +595,8 @@ packages: webpack: optional: true - '@serwist/window@9.0.7': - resolution: {integrity: sha512-eB2Odk3pc9QPSNddCBnPvdx96l/wvmf97sN0JQp+rZzy734nTVnZ2J6Lf5Mb2Nohh8CbHSFWKRaGW5MMia3aiQ==} + '@serwist/window@9.2.1': + resolution: {integrity: sha512-XkfV7+crhT4ArJCMcRle9AmzrxDjMRS6ExJwSPGmCqdb4JH/VyhcmJZljwoEpuZ1zh0cNvnWC8xEQ4p85jhxnQ==} peerDependencies: typescript: '>=5.0.0' peerDependenciesMeta: @@ -715,9 +635,6 @@ packages: '@types/eslint@9.6.1': resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} @@ -1197,6 +1114,10 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + baseline-browser-mapping@2.8.6: + resolution: {integrity: sha512-wrH5NNqren/QMtKUEEJf7z86YjfqW/2uw3IL3/xpqZUC95SSVIFXYQeeGjL6FT/X68IROu6RMehZQS5foy2BXw==} + hasBin: true + bcrypt-pbkdf@1.0.2: resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} @@ -1226,8 +1147,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.25.4: - resolution: {integrity: sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg==} + browserslist@4.26.2: + resolution: {integrity: sha512-ECFzp6uFOSB+dcZ5BK/IBaGWssbSYBHvuMeMt3MMFyhI0Z8SqGgEkBLARgpRH3hutIgPVsALcMwbDrJqPxQ65A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -1271,6 +1192,9 @@ packages: caniuse-lite@1.0.30001739: resolution: {integrity: sha512-y+j60d6ulelrNSwpPyrHdl+9mJnQzHBr08xm48Qno0nSk4h3Qojh+ziv2qE6rXf4k3tadF4o1J/1tAbVm1NtnA==} + caniuse-lite@1.0.30001743: + resolution: {integrity: sha512-e6Ojr7RV14Un7dz6ASD0aZDmQPT/A+eZU+nuTNfjqmRrmkmQlnTNWH0SKmqagx9PeW87UVqapSurtAXifmtdmw==} + canvas@3.0.1: resolution: {integrity: sha512-PcpVF4f8RubAeN/jCQQ/UymDKzOiLmRPph8fOTzDnlsUihkO/AUlxuhaa7wGRc3vMcCbV1fzuvyu5cWZlIcn1w==} engines: {node: ^18.12.0 || >= 20.9.0} @@ -1282,8 +1206,8 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + chalk@5.6.0: + resolution: {integrity: sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} check-more-types@2.24.0: @@ -1534,8 +1458,8 @@ packages: ecc-jsbn@0.1.2: resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} - electron-to-chromium@1.5.211: - resolution: {integrity: sha512-IGBvimJkotaLzFnwIVgW9/UD/AOJ2tByUmeOrtqBfACSbAw5b1G0XpvdaieKyc7ULmbwXVx+4e4Be8pOPBrYkw==} + electron-to-chromium@1.5.223: + resolution: {integrity: sha512-qKm55ic6nbEmagFlTFczML33rF90aU+WtrJ9MdTCThrcvDNdUHN4p6QfVN78U06ZmguqXIyMPyYhw2TrbDUwPQ==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -1874,6 +1798,10 @@ packages: resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + forever-agent@0.6.1: resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} @@ -2090,8 +2018,8 @@ packages: i18next@23.15.1: resolution: {integrity: sha512-wB4abZ3uK7EWodYisHl/asf8UYEhrI/vj/8aoSsrj/ZDxj4/UXPOa1KvFt1Fq5hkUHquNqwFlDprmjZ8iySgYA==} - idb@8.0.0: - resolution: {integrity: sha512-l//qvlAKGmQO31Qn7xdzagVPPaHTxXx199MhrAFuVBTPqydcPYBWjkrbv4Y0ktB+GmWOiwHl237UUOrLmQxLvw==} + idb@8.0.3: + resolution: {integrity: sha512-LtwtVyVYO5BqRvcsKuB2iUMnHwPVByPCXFXOpuU96IZPPoPN6xjOGxZQ74pgSVVLQWtUOYgyeL4GE98BY5D3wg==} ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -2619,8 +2547,8 @@ packages: node-addon-api@7.1.1: resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} - node-releases@2.0.19: - resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + node-releases@2.0.21: + resolution: {integrity: sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==} normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} @@ -3092,11 +3020,6 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rollup@4.21.0: - resolution: {integrity: sha512-vo+S/lfA2lMS7rZ2Qoubi6I5hwZwzXeUIctILZLbHI+laNtvhhOIon2S1JksA5UEDQ7l3vberd0fxK44lTYjbQ==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -3152,16 +3075,8 @@ packages: serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - serwist@9.0.7: - resolution: {integrity: sha512-OcvOArMLFYhPWpK5LKqmSsyCS71Egn8SkUZQRBQVUJmAtsI3Aj+ixNDeEvUgyYtFArtvHsVRXgfdg4L5LkhAHA==} - peerDependencies: - typescript: '>=5.0.0' - peerDependenciesMeta: - typescript: - optional: true - - serwist@9.0.8: - resolution: {integrity: sha512-pE9sG0GROVdqjIK51kjghH7RrMY8MOkekLCPid3KOuhxllKZnp7PU4F1qDAPgMN2zrGvmKs4CewYCKobuvBiSg==} + serwist@9.2.1: + resolution: {integrity: sha512-icp1GQB3h9q1OqYeSw+iTTY0OZ3io+fzNG0Ot3p6Xe5DEZlSRn61FmGx9mq76q0CeMtZYBmmuw4tyIS1O76Lbw==} peerDependencies: typescript: '>=5.0.0' peerDependenciesMeta: @@ -3392,8 +3307,8 @@ packages: uglify-js: optional: true - terser@5.43.1: - resolution: {integrity: sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==} + terser@5.44.0: + resolution: {integrity: sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==} engines: {node: '>=10'} hasBin: true @@ -3670,8 +3585,8 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - zod@3.23.8: - resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + zod@4.1.5: + resolution: {integrity: sha512-rcUUZqlLJgBC33IT3PNMgsCq6TzLQEG/Ei/KTCU0PedSWRMAXoOUN+4t/0H+Q8bdnLPdqUYnvboJT0bn/229qg==} zstddec@0.1.0: resolution: {integrity: sha512-w2NTI8+3l3eeltKAdK8QpiLo/flRAr2p8AGeakfMZOXBxOg9HIu4LVDxBi81sYgVhFhdJjv1OrB5ssI8uFPoLg==} @@ -3953,7 +3868,7 @@ snapshots: '@jridgewell/gen-mapping@0.3.13': dependencies: '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/gen-mapping@0.3.5': dependencies: @@ -3968,7 +3883,7 @@ snapshots: '@jridgewell/source-map@0.3.11': dependencies: '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/sourcemap-codec@1.5.0': {} @@ -3979,7 +3894,7 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping@0.3.30': + '@jridgewell/trace-mapping@0.3.31': dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 @@ -4126,103 +4041,54 @@ snapshots: dependencies: react: 18.3.1 - '@rollup/rollup-android-arm-eabi@4.21.0': - optional: true - - '@rollup/rollup-android-arm64@4.21.0': - optional: true - - '@rollup/rollup-darwin-arm64@4.21.0': - optional: true - - '@rollup/rollup-darwin-x64@4.21.0': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.21.0': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.21.0': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.21.0': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.21.0': - optional: true - - '@rollup/rollup-linux-powerpc64le-gnu@4.21.0': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.21.0': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.21.0': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.21.0': - optional: true - - '@rollup/rollup-linux-x64-musl@4.21.0': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.21.0': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.21.0': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.21.0': - optional: true - '@rtsao/scc@1.1.0': {} '@rushstack/eslint-patch@1.10.4': {} - '@serwist/build@9.0.7(typescript@5.6.3)': + '@serwist/build@9.2.1(typescript@5.6.3)': dependencies: common-tags: 1.8.2 glob: 10.4.5 pretty-bytes: 6.1.1 - rollup: 4.21.0 source-map: 0.8.0-beta.0 - zod: 3.23.8 + zod: 4.1.5 optionalDependencies: typescript: 5.6.3 - '@serwist/next@9.0.7(next@14.2.32(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3)(webpack@5.96.1)': + '@serwist/next@9.2.1(next@14.2.32(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3)(webpack@5.96.1)': dependencies: - '@serwist/build': 9.0.7(typescript@5.6.3) - '@serwist/webpack-plugin': 9.0.7(typescript@5.6.3)(webpack@5.96.1) - '@serwist/window': 9.0.7(typescript@5.6.3) - chalk: 5.3.0 + '@serwist/build': 9.2.1(typescript@5.6.3) + '@serwist/webpack-plugin': 9.2.1(typescript@5.6.3)(webpack@5.96.1) + '@serwist/window': 9.2.1(typescript@5.6.3) + chalk: 5.6.0 glob: 10.4.5 next: 14.2.32(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - serwist: 9.0.7(typescript@5.6.3) - zod: 3.23.8 + serwist: 9.2.1(typescript@5.6.3) + zod: 4.1.5 optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - webpack - '@serwist/sw@9.0.8(typescript@5.6.3)': + '@serwist/sw@9.2.1(typescript@5.6.3)': dependencies: - serwist: 9.0.8(typescript@5.6.3) + serwist: 9.2.1(typescript@5.6.3) optionalDependencies: typescript: 5.6.3 - '@serwist/webpack-plugin@9.0.7(typescript@5.6.3)(webpack@5.96.1)': + '@serwist/webpack-plugin@9.2.1(typescript@5.6.3)(webpack@5.96.1)': dependencies: - '@serwist/build': 9.0.7(typescript@5.6.3) + '@serwist/build': 9.2.1(typescript@5.6.3) pretty-bytes: 6.1.1 - zod: 3.23.8 + zod: 4.1.5 optionalDependencies: typescript: 5.6.3 webpack: 5.96.1 - '@serwist/window@9.0.7(typescript@5.6.3)': + '@serwist/window@9.2.1(typescript@5.6.3)': dependencies: '@types/trusted-types': 2.0.7 - serwist: 9.0.7(typescript@5.6.3) + serwist: 9.2.1(typescript@5.6.3) optionalDependencies: typescript: 5.6.3 @@ -4261,8 +4127,6 @@ snapshots: '@types/estree': 1.0.8 '@types/json-schema': 7.0.15 - '@types/estree@1.0.5': {} - '@types/estree@1.0.8': {} '@types/file-saver@2.0.7': {} @@ -4834,6 +4698,8 @@ snapshots: base64-js@1.5.1: {} + baseline-browser-mapping@2.8.6: {} + bcrypt-pbkdf@1.0.2: dependencies: tweetnacl: 0.14.5 @@ -4866,12 +4732,13 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.25.4: + browserslist@4.26.2: dependencies: - caniuse-lite: 1.0.30001739 - electron-to-chromium: 1.5.211 - node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.25.4) + baseline-browser-mapping: 2.8.6 + caniuse-lite: 1.0.30001743 + electron-to-chromium: 1.5.223 + node-releases: 2.0.21 + update-browserslist-db: 1.1.3(browserslist@4.26.2) buffer-crc32@0.2.13: {} @@ -4912,6 +4779,8 @@ snapshots: caniuse-lite@1.0.30001739: {} + caniuse-lite@1.0.30001743: {} + canvas@3.0.1: dependencies: node-addon-api: 7.1.1 @@ -4926,7 +4795,7 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - chalk@5.3.0: {} + chalk@5.6.0: {} check-more-types@2.24.0: {} @@ -5213,7 +5082,7 @@ snapshots: jsbn: 0.1.1 safer-buffer: 2.1.2 - electron-to-chromium@1.5.211: {} + electron-to-chromium@1.5.223: {} emoji-regex@8.0.0: {} @@ -5386,7 +5255,7 @@ snapshots: debug: 4.3.7(supports-color@8.1.1) enhanced-resolve: 5.17.1 eslint: 8.57.1 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) fast-glob: 3.3.2 get-tsconfig: 4.8.1 is-bun-module: 1.2.1 @@ -5409,7 +5278,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1): + eslint-module-utils@2.12.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): dependencies: debug: 3.2.7(supports-color@8.1.1) optionalDependencies: @@ -5701,6 +5570,11 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 + foreground-child@3.3.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + forever-agent@0.6.1: {} form-data@4.0.1: @@ -5823,7 +5697,7 @@ snapshots: glob@10.4.5: dependencies: - foreground-child: 3.3.0 + foreground-child: 3.3.1 jackspeak: 3.4.3 minimatch: 9.0.5 minipass: 7.1.2 @@ -5958,7 +5832,7 @@ snapshots: dependencies: '@babel/runtime': 7.26.0 - idb@8.0.0: {} + idb@8.0.3: {} ieee754@1.2.1: {} @@ -6458,7 +6332,7 @@ snapshots: node-addon-api@7.1.1: optional: true - node-releases@2.0.19: {} + node-releases@2.0.21: {} normalize-path@3.0.0: {} @@ -6910,28 +6784,6 @@ snapshots: dependencies: glob: 7.2.3 - rollup@4.21.0: - dependencies: - '@types/estree': 1.0.5 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.21.0 - '@rollup/rollup-android-arm64': 4.21.0 - '@rollup/rollup-darwin-arm64': 4.21.0 - '@rollup/rollup-darwin-x64': 4.21.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.21.0 - '@rollup/rollup-linux-arm-musleabihf': 4.21.0 - '@rollup/rollup-linux-arm64-gnu': 4.21.0 - '@rollup/rollup-linux-arm64-musl': 4.21.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.21.0 - '@rollup/rollup-linux-riscv64-gnu': 4.21.0 - '@rollup/rollup-linux-s390x-gnu': 4.21.0 - '@rollup/rollup-linux-x64-gnu': 4.21.0 - '@rollup/rollup-linux-x64-musl': 4.21.0 - '@rollup/rollup-win32-arm64-msvc': 4.21.0 - '@rollup/rollup-win32-ia32-msvc': 4.21.0 - '@rollup/rollup-win32-x64-msvc': 4.21.0 - fsevents: 2.3.3 - run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 @@ -6990,15 +6842,9 @@ snapshots: dependencies: randombytes: 2.1.0 - serwist@9.0.7(typescript@5.6.3): - dependencies: - idb: 8.0.0 - optionalDependencies: - typescript: 5.6.3 - - serwist@9.0.8(typescript@5.6.3): + serwist@9.2.1(typescript@5.6.3): dependencies: - idb: 8.0.0 + idb: 8.0.3 optionalDependencies: typescript: 5.6.3 @@ -7270,14 +7116,14 @@ snapshots: terser-webpack-plugin@5.3.14(webpack@5.96.1): dependencies: - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.2 serialize-javascript: 6.0.2 - terser: 5.43.1 + terser: 5.44.0 webpack: 5.96.1 - terser@5.43.1: + terser@5.44.0: dependencies: '@jridgewell/source-map': 0.3.11 acorn: 8.15.0 @@ -7402,9 +7248,9 @@ snapshots: untildify@4.0.0: {} - update-browserslist-db@1.1.3(browserslist@4.25.4): + update-browserslist-db@1.1.3(browserslist@4.26.2): dependencies: - browserslist: 4.25.4 + browserslist: 4.26.2 escalade: 3.2.0 picocolors: 1.1.1 @@ -7478,7 +7324,7 @@ snapshots: '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.15.0 - browserslist: 4.25.4 + browserslist: 4.26.2 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.3 es-module-lexer: 1.7.0 @@ -7595,7 +7441,7 @@ snapshots: yocto-queue@0.1.0: {} - zod@3.23.8: {} + zod@4.1.5: {} zstddec@0.1.0: {} diff --git a/sw.ts b/sw.ts index 4699bf91..c4be00a7 100644 --- a/sw.ts +++ b/sw.ts @@ -15,6 +15,33 @@ declare global { declare const self: ServiceWorkerGlobalScope; +const serwist = new Serwist({ + clientsClaim: true, + navigationPreload: true, + precacheEntries: self.__SW_MANIFEST, + precacheOptions: { + // Ignore all URL parameters. + ignoreURLParametersMatching: [/.*/], + }, + runtimeCaching: [ + ...defaultCache, + { + handler: new NetworkOnly(), + matcher: ({ url }) => + /^https:\/\/wmts10\.geo\.admin\.ch\/1\.0\.0\/ch\.swisstopo\.(pixelkarte-grau|swissimage)\/default\/current\/3857\/.*\.jpeg$/i.test( + url.href, + ), + }, + ], + skipWaiting: true, +}); + +serwist.addToPrecacheList([ + { url: "/" }, + { url: "/info" }, + { url: "/projection" }, +]); + const treePdfCacheString = "tree-data-v"; // IMPORTANT: This string should NEVER be changed, otherwise the old caches will not be identifyable anymore const currentTreePdfVersion = 1; // Current Tree PDF version, needs to be increased every time new PDFs are deployed const TREE_CACHE_NAME = `${treePdfCacheString}${currentTreePdfVersion}`; // Cache name for Tree profile data @@ -54,77 +81,77 @@ self.addEventListener("message", (event) => { (OLD_CACHE) => void caches.delete(OLD_CACHE), ); -self.addEventListener("install", (event) => { - const soPdfEndpoint = process.env.NEXT_PUBLIC_SO_PDF_ENDPOINT; - const vectorTilesEndpoint = process.env.NEXT_PUBLIC_VECTOR_TILES_ENDPOINT; - const treePdfEndpoint = process.env.NEXT_PUBLIC_TREE_PDF_ENDPOINT; - event.waitUntil( - (async () => { - await caches.open(TILE_CACHE_NAME).then((cache) => - fetch(`${vectorTilesEndpoint}/tiles.txt`) - .then((response) => response.text()) - .then(async (response) => { - const tiles = response.split(/\r?\n/); - // eslint-disable-next-line no-plusplus - for (const tile of tiles) { - const tileUrl = `${vectorTilesEndpoint}/${tile}`; - // eslint-disable-next-line no-await-in-loop - if (tile && !(await cache.match(tileUrl))) { - try { - // eslint-disable-next-line no-await-in-loop - const tileResponse = await fetch(tileUrl); - void cache.put(tileUrl, tileResponse); - } catch (error) { - // Some tiles do not exist. - } - } - } - return true; - }), - ); - - await caches.open(SO_CACHE_NAME).then((cache) => - fetch(`${soPdfEndpoint}/list.txt`) - .then((response) => response.text()) - .then(async (response) => { - const forestTypes = response.split(/\r?\n/); - for (const forestType of forestTypes) { - const pdfUrl = `${soPdfEndpoint}/${forestType}`; - if (forestType && !(await cache.match(pdfUrl))) { - try { - const pdfResponse = await fetch(pdfUrl); - void cache.put(pdfUrl, pdfResponse); - } catch (error) { - // Some PDFs do not exist. - } - } - } - return true; - }), - ); - - await caches.open(TREE_CACHE_NAME).then((cache) => - fetch(`${treePdfEndpoint}/list.txt`) - .then((response) => response.text()) - .then(async (response) => { - const treeTypes = response.split(/\r?\n/); - for (const treeType of treeTypes) { - const pdfUrl = `${treePdfEndpoint}/${treeType}`; - if (treeType && !(await cache.match(pdfUrl))) { - try { - const pdfResponse = await fetch(pdfUrl); - void cache.put(pdfUrl, pdfResponse); - } catch (error) { - // Some PDFs do not exist. - } - } - } - return true; - }), - ); - })(), - ); -}); +// self.addEventListener("install", (event) => { +// const soPdfEndpoint = process.env.NEXT_PUBLIC_SO_PDF_ENDPOINT; +// const vectorTilesEndpoint = process.env.NEXT_PUBLIC_VECTOR_TILES_ENDPOINT; +// const treePdfEndpoint = process.env.NEXT_PUBLIC_TREE_PDF_ENDPOINT; +// event.waitUntil( +// (async () => { +// await caches.open(TILE_CACHE_NAME).then((cache) => +// fetch(`${vectorTilesEndpoint}/tiles.txt`) +// .then((response) => response.text()) +// .then(async (response) => { +// const tiles = response.split(/\r?\n/); +// // eslint-disable-next-line no-plusplus +// for (const tile of tiles) { +// const tileUrl = `${vectorTilesEndpoint}/${tile}`; +// // eslint-disable-next-line no-await-in-loop +// if (tile && !(await cache.match(tileUrl))) { +// try { +// // eslint-disable-next-line no-await-in-loop +// const tileResponse = await fetch(tileUrl); +// void cache.put(tileUrl, tileResponse); +// } catch (error) { +// // Some tiles do not exist. +// } +// } +// } +// return true; +// }), +// ); + +// await caches.open(SO_CACHE_NAME).then((cache) => +// fetch(`${soPdfEndpoint}/list.txt`) +// .then((response) => response.text()) +// .then(async (response) => { +// const forestTypes = response.split(/\r?\n/); +// for (const forestType of forestTypes) { +// const pdfUrl = `${soPdfEndpoint}/${forestType}`; +// if (forestType && !(await cache.match(pdfUrl))) { +// try { +// const pdfResponse = await fetch(pdfUrl); +// void cache.put(pdfUrl, pdfResponse); +// } catch (error) { +// // Some PDFs do not exist. +// } +// } +// } +// return true; +// }), +// ); + +// await caches.open(TREE_CACHE_NAME).then((cache) => +// fetch(`${treePdfEndpoint}/list.txt`) +// .then((response) => response.text()) +// .then(async (response) => { +// const treeTypes = response.split(/\r?\n/); +// for (const treeType of treeTypes) { +// const pdfUrl = `${treePdfEndpoint}/${treeType}`; +// if (treeType && !(await cache.match(pdfUrl))) { +// try { +// const pdfResponse = await fetch(pdfUrl); +// void cache.put(pdfUrl, pdfResponse); +// } catch (error) { +// // Some PDFs do not exist. +// } +// } +// } +// return true; +// }), +// ); +// })(), +// ); +// }); self.addEventListener("activate", (event) => { event.waitUntil( @@ -139,39 +166,24 @@ self.addEventListener("activate", (event) => { ); }); -// eslint-disable-next-line no-restricted-globals -self.addEventListener("fetch", (event) => { - const cacheUrls = [ - process.env.NEXT_PUBLIC_VECTOR_TILES_ENDPOINT, - process.env.NEXT_PUBLIC_SO_PDF_ENDPOINT, - ]; - const shouldFetchFromCache = cacheUrls.some( - (url) => url && event.request.url.startsWith(url), - ); - if (shouldFetchFromCache) { - event.respondWith( - caches - .match(event.request) - .then((response) => response ?? fetch(event.request)), - ); - } -}); - -const serwist = new Serwist({ - clientsClaim: true, - navigationPreload: true, - precacheEntries: self.__SW_MANIFEST, - runtimeCaching: [ - ...defaultCache, - { - handler: new NetworkOnly(), - matcher: ({ url }) => - /^https:\/\/wmts10\.geo\.admin\.ch\/1\.0\.0\/ch\.swisstopo\.(pixelkarte-grau|swissimage)\/default\/current\/3857\/.*\.jpeg$/i.test( - url.href, - ), - }, - ], - skipWaiting: true, -}); - +// Add Serwist event listeners first serwist.addEventListeners(); + +// Then add custom fetch handler for cached resources +// self.addEventListener("fetch", (event) => { +// const cacheUrls = [ +// process.env.NEXT_PUBLIC_VECTOR_TILES_ENDPOINT, +// process.env.NEXT_PUBLIC_SO_PDF_ENDPOINT, +// process.env.NEXT_PUBLIC_TREE_PDF_ENDPOINT, +// ]; +// const shouldFetchFromCache = cacheUrls.some( +// (url) => url && event.request.url.startsWith(url), +// ); +// if (shouldFetchFromCache) { +// event.respondWith( +// caches +// .match(event.request) +// .then((response) => response ?? fetch(event.request)), +// ); +// } +// });