From e4702b877f94d12364e06eb1a449cf2dcc6d91db Mon Sep 17 00:00:00 2001 From: kura Date: Thu, 16 Jan 2025 14:58:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9Epwa=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 7 +- src/main.ts | 19 + src/router/router.ts | 36 +- src/types/virtual-pwa-register.d.ts | 11 + src/utils/pwa.ts | 46 + static/icon256.png | Bin 0 -> 5320 bytes static/icon64.png | Bin 0 -> 1165 bytes vite.config.ts | 32 +- yarn.lock | 2412 ++++++++++++++++++++++++++- 9 files changed, 2544 insertions(+), 19 deletions(-) create mode 100644 src/types/virtual-pwa-register.d.ts create mode 100644 src/utils/pwa.ts create mode 100644 static/icon256.png create mode 100644 static/icon64.png diff --git a/package.json b/package.json index b6b6dc7..0ad6df0 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,8 @@ "three": "^0.172.0", "vue": "^3.3.0", "vue-i18n": "^9.1.9", - "vue-router": "^4.5.0" + "vue-router": "^4.5.0", + "register-service-worker": "^1.7.2" }, "devDependencies": { "@rushstack/eslint-patch": "^1.6.1", @@ -44,6 +45,8 @@ "sass-loader": "^13.3.3", "typescript": "^4.9.4", "vite": "4.1.4", - "vue-tsc": "^1.0.24" + "vite-plugin-pwa": "^0.17.5", + "vue-tsc": "^1.0.24", + "workbox-window": "^7.0.0" } } diff --git a/src/main.ts b/src/main.ts index e64ddc3..a28e35e 100644 --- a/src/main.ts +++ b/src/main.ts @@ -3,6 +3,25 @@ import App from './App.vue' import 'ant-design-vue/dist/reset.css'; import Antd from 'ant-design-vue'; import router from './router/router'; +import { registerSW } from 'virtual:pwa-register' +import { isPwa, showPwaInstallPrompt } from './utils/pwa'; + +const updateSW = registerSW({ + onNeedRefresh() { + // 当发现新版本时,可以在这里提示用户 + console.log('发现新版本') + }, + onOfflineReady() { + // 当离线功能准备就绪时 + console.log('应用已经可以离线使用') + if (isPwa()) { + console.log('PWA 模式') + } else { + // showPwaInstallPrompt() + } + }, +}) + const app = createApp(App); app.use(Antd); app.use(router); diff --git a/src/router/router.ts b/src/router/router.ts index 8165a3f..c7e3960 100644 --- a/src/router/router.ts +++ b/src/router/router.ts @@ -2,13 +2,43 @@ import { createRouter, createWebHashHistory } from "vue-router"; import Index from "../pages/file/index.vue"; import Voice from "../pages/voice/webrtcVoice.vue"; import PointShader from "../pages/pointShader/pointShader.vue"; +import { disablePwaPrompt, enablePwaPrompt } from '../utils/pwa'; + const router = createRouter({ history: createWebHashHistory(), routes: [ - { path: "/", component: Index }, - { path: "/voice", component: Voice }, - { path: "/pointShader", component: PointShader }, + { + path: "/", + component: Index, + meta: { + showPwaPrompt: true + } + }, + { + path: "/voice", + component: Voice, + meta: { + showPwaPrompt: false + } + }, + { + path: "/pointShader", + component: PointShader, + meta: { + showPwaPrompt: false + } + }, ], }); +// 路由守卫控制 PWA 提示 +router.beforeEach((to, from, next) => { + if (to.meta.showPwaPrompt) { + enablePwaPrompt(); + } else { + disablePwaPrompt(); + } + next(); +}); + export default router; diff --git a/src/types/virtual-pwa-register.d.ts b/src/types/virtual-pwa-register.d.ts new file mode 100644 index 0000000..2a6b561 --- /dev/null +++ b/src/types/virtual-pwa-register.d.ts @@ -0,0 +1,11 @@ +declare module 'virtual:pwa-register' { + export interface RegisterSWOptions { + immediate?: boolean + onNeedRefresh?: () => void + onOfflineReady?: () => void + onRegistered?: (registration: ServiceWorkerRegistration | undefined) => void + onRegisterError?: (error: any) => void + } + + export function registerSW(options?: RegisterSWOptions): (reloadPage?: boolean) => Promise +} \ No newline at end of file diff --git a/src/utils/pwa.ts b/src/utils/pwa.ts new file mode 100644 index 0000000..e902a89 --- /dev/null +++ b/src/utils/pwa.ts @@ -0,0 +1,46 @@ +// PWA 安装状态 +let deferredPrompt: any = null; + +// 控制是否显示安装提示 +let showInstallPrompt = true; + +// 监听 beforeinstallprompt 事件 +window.addEventListener('beforeinstallprompt', (e) => { + if (!showInstallPrompt) { + e.preventDefault(); + return; + } + deferredPrompt = e; +}); + +// 检查是否为 PWA 模式 +export const isPwa = () => { + return window.matchMedia('(display-mode: standalone)').matches || + (window.navigator as any).standalone || + document.referrer.includes('android-app://'); +}; + +// 禁用 PWA 安装提示 +export const disablePwaPrompt = () => { + showInstallPrompt = false; + if (deferredPrompt) { + deferredPrompt = null; + } +}; + +// 启用 PWA 安装提示 +export const enablePwaPrompt = () => { + showInstallPrompt = true; +}; + +// 手动触发 PWA 安装提示 +export const showPwaInstallPrompt = async () => { + if (!deferredPrompt) { + console.log('No PWA installation prompt available'); + return; + } + deferredPrompt.prompt(); + const { outcome } = await deferredPrompt.userChoice; + deferredPrompt = null; + return outcome; +}; \ No newline at end of file diff --git a/static/icon256.png b/static/icon256.png new file mode 100644 index 0000000000000000000000000000000000000000..051677a0d3502026455bc9cf7d453f0a865d9cb4 GIT binary patch literal 5320 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.6.2 <2.0.0", source-map-js@^1.0.2, source-map-js@^1.2.0, source-map-js@^1.2.1: version "1.2.1" resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== +source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.8.0-beta.0: + version "0.8.0-beta.0" + resolved "https://registry.npmmirror.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11" + integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA== + dependencies: + whatwg-url "^7.0.0" + +sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + string-argv@~0.3.2: version "0.3.2" resolved "https://registry.npmmirror.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" @@ -2000,6 +3941,66 @@ string-width@^7.0.0: get-east-asian-width "^1.0.0" strip-ansi "^7.1.0" +string.prototype.matchall@^4.0.6: + version "4.0.12" + resolved "https://registry.npmmirror.com/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz#6c88740e49ad4956b1332a911e949583a275d4c0" + integrity sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.3" + define-properties "^1.2.1" + es-abstract "^1.23.6" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.6" + gopd "^1.2.0" + has-symbols "^1.1.0" + internal-slot "^1.1.0" + regexp.prototype.flags "^1.5.3" + set-function-name "^2.0.2" + side-channel "^1.1.0" + +string.prototype.trim@^1.2.10: + version "1.2.10" + resolved "https://registry.npmmirror.com/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz#40b2dd5ee94c959b4dcfb1d65ce72e90da480c81" + integrity sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.2" + define-data-property "^1.1.4" + define-properties "^1.2.1" + es-abstract "^1.23.5" + es-object-atoms "^1.0.0" + has-property-descriptors "^1.0.2" + +string.prototype.trimend@^1.0.9: + version "1.0.9" + resolved "https://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz#62e2731272cd285041b36596054e9f66569b6942" + integrity sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.2" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://registry.npmmirror.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +stringify-object@^3.3.0: + version "3.3.0" + resolved "https://registry.npmmirror.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -2014,6 +4015,11 @@ strip-ansi@^7.1.0: dependencies: ansi-regex "^6.0.1" +strip-comments@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/strip-comments/-/strip-comments-2.0.1.tgz#4ad11c3fbcac177a67a40ac224ca339ca1c1ba9b" + integrity sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw== + strip-final-newline@^3.0.0: version "3.0.0" resolved "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" @@ -2049,6 +4055,31 @@ synckit@^0.9.1: "@pkgr/core" "^0.1.0" tslib "^2.6.2" +temp-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e" + integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg== + +tempy@^0.6.0: + version "0.6.0" + resolved "https://registry.npmmirror.com/tempy/-/tempy-0.6.0.tgz#65e2c35abc06f1124a97f387b08303442bde59f3" + integrity sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw== + dependencies: + is-stream "^2.0.0" + temp-dir "^2.0.0" + type-fest "^0.16.0" + unique-string "^2.0.0" + +terser@^5.17.4: + version "5.37.0" + resolved "https://registry.npmmirror.com/terser/-/terser-5.37.0.tgz#38aa66d1cfc43d0638fab54e43ff8a4f72a21ba3" + integrity sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + text-table@^0.2.0: version "0.2.0" resolved "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -2071,6 +4102,13 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA== + dependencies: + punycode "^2.1.0" + ts-api-utils@^1.0.1: version "1.4.3" resolved "https://registry.npmmirror.com/ts-api-utils/-/ts-api-utils-1.4.3.tgz#bfc2215fe6528fecab2b0fba570a2e8a4263b064" @@ -2088,21 +4126,129 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" +type-fest@^0.16.0: + version "0.16.0" + resolved "https://registry.npmmirror.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860" + integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg== + type-fest@^0.20.2: version "0.20.2" resolved "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== +typed-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz#a72395450a4869ec033fd549371b47af3a2ee536" + integrity sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw== + dependencies: + call-bound "^1.0.3" + es-errors "^1.3.0" + is-typed-array "^1.1.14" + +typed-array-byte-length@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz#8407a04f7d78684f3d252aa1a143d2b77b4160ce" + integrity sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg== + dependencies: + call-bind "^1.0.8" + for-each "^0.3.3" + gopd "^1.2.0" + has-proto "^1.2.0" + is-typed-array "^1.1.14" + +typed-array-byte-offset@^1.0.4: + version "1.0.4" + resolved "https://registry.npmmirror.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz#ae3698b8ec91a8ab945016108aef00d5bff12355" + integrity sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.8" + for-each "^0.3.3" + gopd "^1.2.0" + has-proto "^1.2.0" + is-typed-array "^1.1.15" + reflect.getprototypeof "^1.0.9" + +typed-array-length@^1.0.7: + version "1.0.7" + resolved "https://registry.npmmirror.com/typed-array-length/-/typed-array-length-1.0.7.tgz#ee4deff984b64be1e118b0de8c9c877d5ce73d3d" + integrity sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + is-typed-array "^1.1.13" + possible-typed-array-names "^1.0.0" + reflect.getprototypeof "^1.0.6" + typescript@^4.9.4: version "4.9.5" resolved "https://registry.npmmirror.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== +unbox-primitive@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.1.0.tgz#8d9d2c9edeea8460c7f35033a88867944934d1e2" + integrity sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw== + dependencies: + call-bound "^1.0.3" + has-bigints "^1.0.2" + has-symbols "^1.1.0" + which-boxed-primitive "^1.1.1" + undici-types@~6.19.2: version "6.19.8" resolved "https://registry.npmmirror.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02" integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz#cb3173fe47ca743e228216e4a3ddc4c84d628cc2" + integrity sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.1.0: + version "2.2.0" + resolved "https://registry.npmmirror.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz#a0401aee72714598f739b68b104e4fe3a0cb3c71" + integrity sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + +unique-string@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== + dependencies: + crypto-random-string "^2.0.0" + +universalify@^2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== + +upath@^1.2.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +update-browserslist-db@^1.1.1: + version "1.1.2" + resolved "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz#97e9c96ab0ae7bcac08e9ae5151d26e6bc6b5580" + integrity sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg== + dependencies: + escalade "^3.2.0" + picocolors "^1.1.1" + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -2115,6 +4261,17 @@ util-deprecate@^1.0.2: resolved "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== +vite-plugin-pwa@^0.17.5: + version "0.17.5" + resolved "https://registry.npmmirror.com/vite-plugin-pwa/-/vite-plugin-pwa-0.17.5.tgz#e821c14ac776742e2921fea9833dd2664ad2969b" + integrity sha512-UxRNPiJBzh4tqU/vc8G2TxmrUTzT6BqvSzhszLk62uKsf+npXdvLxGDz9C675f4BJi6MbD2tPnJhi5txlMzxbQ== + dependencies: + debug "^4.3.4" + fast-glob "^3.3.2" + pretty-bytes "^6.1.1" + workbox-build "^7.0.0" + workbox-window "^7.0.0" + vite@4.1.4: version "4.1.4" resolved "https://registry.npmmirror.com/vite/-/vite-4.1.4.tgz#170d93bcff97e0ebc09764c053eebe130bfe6ca0" @@ -2198,6 +4355,11 @@ warning@^4.0.0: dependencies: loose-envify "^1.0.0" +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + webrtc-adapter@^9.0.0: version "9.0.1" resolved "https://registry.npmmirror.com/webrtc-adapter/-/webrtc-adapter-9.0.1.tgz#d4efa22ca9604cb2c8cdb9e492815ba37acfa0b2" @@ -2205,6 +4367,67 @@ webrtc-adapter@^9.0.0: dependencies: sdp "^3.2.0" +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +which-boxed-primitive@^1.1.0, which-boxed-primitive@^1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz#d76ec27df7fa165f18d5808374a5fe23c29b176e" + integrity sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA== + dependencies: + is-bigint "^1.1.0" + is-boolean-object "^1.2.1" + is-number-object "^1.1.1" + is-string "^1.1.1" + is-symbol "^1.1.1" + +which-builtin-type@^1.2.1: + version "1.2.1" + resolved "https://registry.npmmirror.com/which-builtin-type/-/which-builtin-type-1.2.1.tgz#89183da1b4907ab089a6b02029cc5d8d6574270e" + integrity sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q== + dependencies: + call-bound "^1.0.2" + function.prototype.name "^1.1.6" + has-tostringtag "^1.0.2" + is-async-function "^2.0.0" + is-date-object "^1.1.0" + is-finalizationregistry "^1.1.0" + is-generator-function "^1.0.10" + is-regex "^1.2.1" + is-weakref "^1.0.2" + isarray "^2.0.5" + which-boxed-primitive "^1.1.0" + which-collection "^1.0.2" + which-typed-array "^1.1.16" + +which-collection@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/which-collection/-/which-collection-1.0.2.tgz#627ef76243920a107e7ce8e96191debe4b16c2a0" + integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== + dependencies: + is-map "^2.0.3" + is-set "^2.0.3" + is-weakmap "^2.0.2" + is-weakset "^2.0.3" + +which-typed-array@^1.1.16, which-typed-array@^1.1.18: + version "1.1.18" + resolved "https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.18.tgz#df2389ebf3fbb246a71390e90730a9edb6ce17ad" + integrity sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.3" + for-each "^0.3.3" + gopd "^1.2.0" + has-tostringtag "^1.0.2" + which@^2.0.1: version "2.0.2" resolved "https://registry.npmmirror.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -2217,6 +4440,164 @@ word-wrap@^1.2.5: resolved "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== +workbox-background-sync@7.3.0: + version "7.3.0" + resolved "https://registry.npmmirror.com/workbox-background-sync/-/workbox-background-sync-7.3.0.tgz#b6340731a8d5b42b9e75a8a87c8806928e6e6303" + integrity sha512-PCSk3eK7Mxeuyatb22pcSx9dlgWNv3+M8PqPaYDokks8Y5/FX4soaOqj3yhAZr5k6Q5JWTOMYgaJBpbw11G9Eg== + dependencies: + idb "^7.0.1" + workbox-core "7.3.0" + +workbox-broadcast-update@7.3.0: + version "7.3.0" + resolved "https://registry.npmmirror.com/workbox-broadcast-update/-/workbox-broadcast-update-7.3.0.tgz#bff86b91795c4b9fa46a758d1a7a151828623280" + integrity sha512-T9/F5VEdJVhwmrIAE+E/kq5at2OY6+OXXgOWQevnubal6sO92Gjo24v6dCVwQiclAF5NS3hlmsifRrpQzZCdUA== + dependencies: + workbox-core "7.3.0" + +workbox-build@^7.0.0: + version "7.3.0" + resolved "https://registry.npmmirror.com/workbox-build/-/workbox-build-7.3.0.tgz#ab688f3241b32862236aeeb62b240195f1fe4b62" + integrity sha512-JGL6vZTPlxnlqZRhR/K/msqg3wKP+m0wfEUVosK7gsYzSgeIxvZLi1ViJJzVL7CEeI8r7rGFV973RiEqkP3lWQ== + dependencies: + "@apideck/better-ajv-errors" "^0.3.1" + "@babel/core" "^7.24.4" + "@babel/preset-env" "^7.11.0" + "@babel/runtime" "^7.11.2" + "@rollup/plugin-babel" "^5.2.0" + "@rollup/plugin-node-resolve" "^15.2.3" + "@rollup/plugin-replace" "^2.4.1" + "@rollup/plugin-terser" "^0.4.3" + "@surma/rollup-plugin-off-main-thread" "^2.2.3" + ajv "^8.6.0" + common-tags "^1.8.0" + fast-json-stable-stringify "^2.1.0" + fs-extra "^9.0.1" + glob "^7.1.6" + lodash "^4.17.20" + pretty-bytes "^5.3.0" + rollup "^2.43.1" + source-map "^0.8.0-beta.0" + stringify-object "^3.3.0" + strip-comments "^2.0.1" + tempy "^0.6.0" + upath "^1.2.0" + workbox-background-sync "7.3.0" + workbox-broadcast-update "7.3.0" + workbox-cacheable-response "7.3.0" + workbox-core "7.3.0" + workbox-expiration "7.3.0" + workbox-google-analytics "7.3.0" + workbox-navigation-preload "7.3.0" + workbox-precaching "7.3.0" + workbox-range-requests "7.3.0" + workbox-recipes "7.3.0" + workbox-routing "7.3.0" + workbox-strategies "7.3.0" + workbox-streams "7.3.0" + workbox-sw "7.3.0" + workbox-window "7.3.0" + +workbox-cacheable-response@7.3.0: + version "7.3.0" + resolved "https://registry.npmmirror.com/workbox-cacheable-response/-/workbox-cacheable-response-7.3.0.tgz#557b0f5fdfceb22fe243e3f19807c76a0ae646e3" + integrity sha512-eAFERIg6J2LuyELhLlmeRcJFa5e16Mj8kL2yCDbhWE+HUun9skRQrGIFVUagqWj4DMaaPSMWfAolM7XZZxNmxA== + dependencies: + workbox-core "7.3.0" + +workbox-core@7.3.0: + version "7.3.0" + resolved "https://registry.npmmirror.com/workbox-core/-/workbox-core-7.3.0.tgz#f24fb92041a0b7482fe2dd856544aaa9fa105248" + integrity sha512-Z+mYrErfh4t3zi7NVTvOuACB0A/jA3bgxUN3PwtAVHvfEsZxV9Iju580VEETug3zYJRc0Dmii/aixI/Uxj8fmw== + +workbox-expiration@7.3.0: + version "7.3.0" + resolved "https://registry.npmmirror.com/workbox-expiration/-/workbox-expiration-7.3.0.tgz#2c1ee1fdada34aa7e7474f706d5429c914bd10d2" + integrity sha512-lpnSSLp2BM+K6bgFCWc5bS1LR5pAwDWbcKt1iL87/eTSJRdLdAwGQznZE+1czLgn/X05YChsrEegTNxjM067vQ== + dependencies: + idb "^7.0.1" + workbox-core "7.3.0" + +workbox-google-analytics@7.3.0: + version "7.3.0" + resolved "https://registry.npmmirror.com/workbox-google-analytics/-/workbox-google-analytics-7.3.0.tgz#3c4d4956c0a9800dfb587d82ec8bc0f9cf963791" + integrity sha512-ii/tSfFdhjLHZ2BrYgFNTrb/yk04pw2hasgbM70jpZfLk0vdJAXgaiMAWsoE+wfJDNWoZmBYY0hMVI0v5wWDbg== + dependencies: + workbox-background-sync "7.3.0" + workbox-core "7.3.0" + workbox-routing "7.3.0" + workbox-strategies "7.3.0" + +workbox-navigation-preload@7.3.0: + version "7.3.0" + resolved "https://registry.npmmirror.com/workbox-navigation-preload/-/workbox-navigation-preload-7.3.0.tgz#9d54693b9179d5175e66af5ef9a92d1b7cf3e605" + integrity sha512-fTJzogmFaTv4bShZ6aA7Bfj4Cewaq5rp30qcxl2iYM45YD79rKIhvzNHiFj1P+u5ZZldroqhASXwwoyusnr2cg== + dependencies: + workbox-core "7.3.0" + +workbox-precaching@7.3.0: + version "7.3.0" + resolved "https://registry.npmmirror.com/workbox-precaching/-/workbox-precaching-7.3.0.tgz#a84663d69efdb334f25c04dba0a72ed3391c4da8" + integrity sha512-ckp/3t0msgXclVAYaNndAGeAoWQUv7Rwc4fdhWL69CCAb2UHo3Cef0KIUctqfQj1p8h6aGyz3w8Cy3Ihq9OmIw== + dependencies: + workbox-core "7.3.0" + workbox-routing "7.3.0" + workbox-strategies "7.3.0" + +workbox-range-requests@7.3.0: + version "7.3.0" + resolved "https://registry.npmmirror.com/workbox-range-requests/-/workbox-range-requests-7.3.0.tgz#1b3d5c235a0ff5271418c3a7183281dc131ccd0d" + integrity sha512-EyFmM1KpDzzAouNF3+EWa15yDEenwxoeXu9bgxOEYnFfCxns7eAxA9WSSaVd8kujFFt3eIbShNqa4hLQNFvmVQ== + dependencies: + workbox-core "7.3.0" + +workbox-recipes@7.3.0: + version "7.3.0" + resolved "https://registry.npmmirror.com/workbox-recipes/-/workbox-recipes-7.3.0.tgz#fa407101e8ce52850dfba8e17a5afccb733a3942" + integrity sha512-BJro/MpuW35I/zjZQBcoxsctgeB+kyb2JAP5EB3EYzePg8wDGoQuUdyYQS+CheTb+GhqJeWmVs3QxLI8EBP1sg== + dependencies: + workbox-cacheable-response "7.3.0" + workbox-core "7.3.0" + workbox-expiration "7.3.0" + workbox-precaching "7.3.0" + workbox-routing "7.3.0" + workbox-strategies "7.3.0" + +workbox-routing@7.3.0: + version "7.3.0" + resolved "https://registry.npmmirror.com/workbox-routing/-/workbox-routing-7.3.0.tgz#fc86296bc1155c112ee2c16b3180853586c30208" + integrity sha512-ZUlysUVn5ZUzMOmQN3bqu+gK98vNfgX/gSTZ127izJg/pMMy4LryAthnYtjuqcjkN4HEAx1mdgxNiKJMZQM76A== + dependencies: + workbox-core "7.3.0" + +workbox-strategies@7.3.0: + version "7.3.0" + resolved "https://registry.npmmirror.com/workbox-strategies/-/workbox-strategies-7.3.0.tgz#bb1530f205806895aacdea3639e6cf6bfb3a6cb0" + integrity sha512-tmZydug+qzDFATwX7QiEL5Hdf7FrkhjaF9db1CbB39sDmEZJg3l9ayDvPxy8Y18C3Y66Nrr9kkN1f/RlkDgllg== + dependencies: + workbox-core "7.3.0" + +workbox-streams@7.3.0: + version "7.3.0" + resolved "https://registry.npmmirror.com/workbox-streams/-/workbox-streams-7.3.0.tgz#a4c0ae51b66121a2aa6f89229e237aca6dc27eb5" + integrity sha512-SZnXucyg8x2Y61VGtDjKPO5EgPUG5NDn/v86WYHX+9ZqvAsGOytP0Jxp1bl663YUuMoXSAtsGLL+byHzEuMRpw== + dependencies: + workbox-core "7.3.0" + workbox-routing "7.3.0" + +workbox-sw@7.3.0: + version "7.3.0" + resolved "https://registry.npmmirror.com/workbox-sw/-/workbox-sw-7.3.0.tgz#39215017e868d7cfe6835b2961f55369d89b3e73" + integrity sha512-aCUyoAZU9IZtH05mn0ACUpyHzPs0lMeJimAYkQkBsOWiqaJLgusfDCR+yllkPkFRxWpZKF8vSvgHYeG7LwhlmA== + +workbox-window@7.3.0, workbox-window@^7.0.0: + version "7.3.0" + resolved "https://registry.npmmirror.com/workbox-window/-/workbox-window-7.3.0.tgz#e71bb0b4d880d2295c96bf1ccadb6cea0df51c07" + integrity sha512-qW8PDy16OV1UBaUNGlTVcepzrlzyzNW/ZJvFQQs2j2TzGsg6IKjcpZC1RSquqQnTOafl5pCj5bGfAHlCjOOjdA== + dependencies: + "@types/trusted-types" "^2.0.2" + workbox-core "7.3.0" + wrap-ansi@^9.0.0: version "9.0.0" resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-9.0.0.tgz#1a3dc8b70d85eeb8398ddfb1e4a02cd186e58b3e" @@ -2236,6 +4617,11 @@ xml-name-validator@^4.0.0: resolved "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + yaml@~2.6.1: version "2.6.1" resolved "https://registry.npmmirror.com/yaml/-/yaml-2.6.1.tgz#42f2b1ba89203f374609572d5349fb8686500773"