diff --git a/Dockerfile.s6 b/Dockerfile.s6 index 63c43018..609a2634 100644 --- a/Dockerfile.s6 +++ b/Dockerfile.s6 @@ -2,15 +2,20 @@ FROM ghcr.io/linuxserver/baseimage-alpine:3.20 RUN apk --update add ca-certificates \ mailcap \ - curl + curl \ + jq + +COPY healthcheck.sh /healthcheck.sh +RUN chmod +x /healthcheck.sh # Make the script executable HEALTHCHECK --start-period=2s --interval=5s --timeout=3s \ - CMD curl -f http://localhost/health || exit 1 + CMD /healthcheck.sh || exit 1 # copy local files COPY docker/root/ / +RUN ln -s /config/settings.json /.filebrowser.json COPY filebrowser /usr/bin/filebrowser # ports and volumes VOLUME /srv /config /database -EXPOSE 80 \ No newline at end of file +EXPOSE 80 diff --git a/Dockerfile.s6.aarch64 b/Dockerfile.s6.aarch64 index 752e3ed3..1e62391e 100644 --- a/Dockerfile.s6.aarch64 +++ b/Dockerfile.s6.aarch64 @@ -2,15 +2,20 @@ FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.20 RUN apk --update add ca-certificates \ mailcap \ - curl + curl \ + jq + +COPY healthcheck.sh /healthcheck.sh +RUN chmod +x /healthcheck.sh # Make the script executable HEALTHCHECK --start-period=2s --interval=5s --timeout=3s \ - CMD curl -f http://localhost/health || exit 1 + CMD /healthcheck.sh || exit 1 # copy local files COPY docker/root/ / +RUN ln -s /config/settings.json /.filebrowser.json COPY filebrowser /usr/bin/filebrowser # ports and volumes VOLUME /srv /config /database -EXPOSE 80 \ No newline at end of file +EXPOSE 80 diff --git a/frontend/.prettierignore b/frontend/.prettierignore index 780b4555..be77aa74 100644 --- a/frontend/.prettierignore +++ b/frontend/.prettierignore @@ -1,2 +1,3 @@ # Ignore artifacts: -dist \ No newline at end of file +dist +pnpm-lock.yaml \ No newline at end of file diff --git a/frontend/eslint.config.js b/frontend/eslint.config.js index 07b4acc8..0ee268b3 100644 --- a/frontend/eslint.config.js +++ b/frontend/eslint.config.js @@ -19,14 +19,13 @@ export default [ { rules: { - "no-var": "warn", - "prefer-const": "warn", // Note: you must disable the base rule as it can report incorrect errors "no-unused-expressions": "off", - "@typescript-eslint/no-unused-expressions": "warn", - "@typescript-eslint/no-explicit-any": "warn", - "@typescript-eslint/ban-ts-comment": "warn", - "vue/block-lang": "warn", + "@typescript-eslint/no-unused-expressions": "off", + // TODO: theres too many of these from before ts + "@typescript-eslint/no-explicit-any": "off", + // TODO: finish the ts conversion + "vue/block-lang": "off", "vue/multi-word-component-names": "off", "vue/no-mutating-props": [ "error", diff --git a/frontend/package.json b/frontend/package.json index 75a6ff33..7924117f 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -19,64 +19,59 @@ }, "dependencies": { "@chenfengyuan/vue-number-input": "^2.0.1", - "@vueuse/core": "^12.0.0", - "@vueuse/integrations": "^12.0.0", - "ace-builds": "^1.32.9", - "core-js": "^3.36.1", + "@vueuse/core": "^12.5.0", + "@vueuse/integrations": "^12.5.0", + "ace-builds": "^1.37.5", + "core-js": "^3.40.0", "dayjs": "^1.11.10", "epubjs": "^0.3.93", "filesize": "^10.1.1", "js-base64": "^3.7.7", "jwt-decode": "^4.0.0", "lodash-es": "^4.17.21", - "marked": "^15.0.3", - "material-icons": "^1.13.12", + "marked": "^15.0.6", + "material-icons": "^1.13.13", "normalize.css": "^8.0.1", - "pinia": "^2.1.7", + "pinia": "^2.3.1", "pretty-bytes": "^6.1.1", "qrcode.vue": "^3.4.1", - "tus-js-client": "^4.1.0", + "tus-js-client": "^4.3.1", "utif": "^3.1.0", - "video.js": "^8.10.0", + "video.js": "^8.21.0", "videojs-hotkeys": "^0.2.28", "videojs-mobile-ui": "^1.1.1", "vue": "^3.4.21", "vue-final-modal": "^4.5.4", - "vue-i18n": "^10.0.5", + "vue-i18n": "^11.0.1", "vue-lazyload": "^3.0.0", - "vue-reader": "^1.2.14", + "vue-reader": "^1.2.17", "vue-router": "^4.3.0", "vue-toastification": "^2.0.0-rc.5" }, "devDependencies": { - "@intlify/unplugin-vue-i18n": "^6.0.0", - "@playwright/test": "^1.42.1", + "@intlify/unplugin-vue-i18n": "^6.0.3", + "@playwright/test": "^1.50.0", "@tsconfig/node22": "^22.0.0", "@types/lodash-es": "^4.17.12", - "@types/node": "^22.10.1", - "@typescript-eslint/eslint-plugin": "^8.17.0", + "@types/node": "^22.10.10", + "@typescript-eslint/eslint-plugin": "^8.21.0", "@vitejs/plugin-legacy": "^6.0.0", "@vitejs/plugin-vue": "^5.0.4", - "@vue/eslint-config-prettier": "^10.1.0", - "@vue/eslint-config-typescript": "^14.1.4", + "@vue/eslint-config-prettier": "^10.2.0", + "@vue/eslint-config-typescript": "^14.3.0", "@vue/tsconfig": "^0.7.0", "autoprefixer": "^10.4.19", - "concurrently": "^9.1.0", - "eslint": "^9.16.0", - "eslint-plugin-prettier": "^5.1.3", + "concurrently": "^9.1.2", + "eslint": "^9.19.0", + "eslint-plugin-prettier": "^5.2.3", "eslint-plugin-vue": "^9.24.0", - "jsdom": "^25.0.1", - "postcss": "^8.4.38", - "prettier": "^3.2.5", - "terser": "^5.30.0", - "vite": "^6.0.2", + "jsdom": "^26.0.0", + "postcss": "^8.5.1", + "prettier": "^3.4.2", + "terser": "^5.37.0", + "vite": "^6.0.11", "vite-plugin-compression2": "^1.0.0", - "vue-tsc": "^2.0.7" + "vue-tsc": "^2.2.0" }, - "pnpm": { - "overrides": { - "typescript": "~5.6.3" - } - }, - "packageManager": "pnpm@9.14.4+sha512.c8180b3fbe4e4bca02c94234717896b5529740a6cbadf19fa78254270403ea2f27d4e1d46a08a0f56c89b63dc8ebfd3ee53326da720273794e6200fcf0d184ab" + "packageManager": "pnpm@9.15.4+sha512.b2dc20e2fc72b3e18848459b37359a32064663e5627a51e4c74b2c29dd8e8e0491483c3abb40789cfd578bf362fb6ba8261b05f0387d76792ed6e23ea3b1b6a0" } diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index 03b5694f..6f3378d3 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -4,9 +4,6 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false -overrides: - typescript: ~5.6.3 - importers: .: @@ -15,17 +12,17 @@ importers: specifier: ^2.0.1 version: 2.0.1(vue@3.5.13(typescript@5.6.3)) '@vueuse/core': - specifier: ^12.0.0 - version: 12.0.0(typescript@5.6.3) + specifier: ^12.5.0 + version: 12.5.0(typescript@5.6.3) '@vueuse/integrations': - specifier: ^12.0.0 - version: 12.0.0(focus-trap@7.6.2)(jwt-decode@4.0.0)(typescript@5.6.3) + specifier: ^12.5.0 + version: 12.5.0(focus-trap@7.6.2)(jwt-decode@4.0.0)(typescript@5.6.3) ace-builds: - specifier: ^1.32.9 - version: 1.36.5 + specifier: ^1.37.5 + version: 1.37.5 core-js: - specifier: ^3.36.1 - version: 3.39.0 + specifier: ^3.40.0 + version: 3.40.0 dayjs: specifier: ^1.11.10 version: 1.11.13 @@ -45,17 +42,17 @@ importers: specifier: ^4.17.21 version: 4.17.21 marked: - specifier: ^15.0.3 - version: 15.0.3 + specifier: ^15.0.6 + version: 15.0.6 material-icons: - specifier: ^1.13.12 - version: 1.13.12 + specifier: ^1.13.13 + version: 1.13.13 normalize.css: specifier: ^8.0.1 version: 8.0.1 pinia: - specifier: ^2.1.7 - version: 2.2.8(typescript@5.6.3)(vue@3.5.13(typescript@5.6.3)) + specifier: ^2.3.1 + version: 2.3.1(typescript@5.6.3)(vue@3.5.13(typescript@5.6.3)) pretty-bytes: specifier: ^6.1.1 version: 6.1.1 @@ -63,35 +60,35 @@ importers: specifier: ^3.4.1 version: 3.6.0(vue@3.5.13(typescript@5.6.3)) tus-js-client: - specifier: ^4.1.0 - version: 4.2.3 + specifier: ^4.3.1 + version: 4.3.1 utif: specifier: ^3.1.0 version: 3.1.0 video.js: - specifier: ^8.10.0 - version: 8.20.0 + specifier: ^8.21.0 + version: 8.21.0 videojs-hotkeys: specifier: ^0.2.28 version: 0.2.30 videojs-mobile-ui: specifier: ^1.1.1 - version: 1.1.1(video.js@8.20.0) + version: 1.1.1(video.js@8.21.0) vue: specifier: ^3.4.21 version: 3.5.13(typescript@5.6.3) vue-final-modal: specifier: ^4.5.4 - version: 4.5.5(@vueuse/core@12.0.0(typescript@5.6.3))(@vueuse/integrations@12.0.0(focus-trap@7.6.2)(jwt-decode@4.0.0)(typescript@5.6.3))(focus-trap@7.6.2)(vue@3.5.13(typescript@5.6.3)) + version: 4.5.5(@vueuse/core@12.5.0(typescript@5.6.3))(@vueuse/integrations@12.5.0(focus-trap@7.6.2)(jwt-decode@4.0.0)(typescript@5.6.3))(focus-trap@7.6.2)(vue@3.5.13(typescript@5.6.3)) vue-i18n: - specifier: ^10.0.5 - version: 10.0.5(vue@3.5.13(typescript@5.6.3)) + specifier: ^11.0.1 + version: 11.0.1(vue@3.5.13(typescript@5.6.3)) vue-lazyload: specifier: ^3.0.0 version: 3.0.0 vue-reader: - specifier: ^1.2.14 - version: 1.2.15(vue@3.5.13(typescript@5.6.3)) + specifier: ^1.2.17 + version: 1.2.17(vue@3.5.13(typescript@5.6.3)) vue-router: specifier: ^4.3.0 version: 4.5.0(vue@3.5.13(typescript@5.6.3)) @@ -100,11 +97,11 @@ importers: version: 2.0.0-rc.5(vue@3.5.13(typescript@5.6.3)) devDependencies: '@intlify/unplugin-vue-i18n': - specifier: ^6.0.0 - version: 6.0.0(@vue/compiler-dom@3.5.13)(eslint@9.16.0)(rollup@4.28.0)(typescript@5.6.3)(vue-i18n@10.0.5(vue@3.5.13(typescript@5.6.3)))(vue@3.5.13(typescript@5.6.3)) + specifier: ^6.0.3 + version: 6.0.3(@vue/compiler-dom@3.5.13)(eslint@9.19.0)(rollup@4.32.0)(typescript@5.6.3)(vue-i18n@11.0.1(vue@3.5.13(typescript@5.6.3)))(vue@3.5.13(typescript@5.6.3)) '@playwright/test': - specifier: ^1.42.1 - version: 1.49.0 + specifier: ^1.50.0 + version: 1.50.0 '@tsconfig/node22': specifier: ^22.0.0 version: 22.0.0 @@ -112,62 +109,62 @@ importers: specifier: ^4.17.12 version: 4.17.12 '@types/node': - specifier: ^22.10.1 - version: 22.10.1 + specifier: ^22.10.10 + version: 22.10.10 '@typescript-eslint/eslint-plugin': - specifier: ^8.17.0 - version: 8.17.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0)(typescript@5.6.3))(eslint@9.16.0)(typescript@5.6.3) + specifier: ^8.21.0 + version: 8.21.0(@typescript-eslint/parser@8.21.0(eslint@9.19.0)(typescript@5.6.3))(eslint@9.19.0)(typescript@5.6.3) '@vitejs/plugin-legacy': specifier: ^6.0.0 - version: 6.0.0(terser@5.36.0)(vite@6.0.2(@types/node@22.10.1)(terser@5.36.0)(yaml@2.6.1)) + version: 6.0.0(terser@5.37.0)(vite@6.0.11(@types/node@22.10.10)(terser@5.37.0)(yaml@2.7.0)) '@vitejs/plugin-vue': specifier: ^5.0.4 - version: 5.2.1(vite@6.0.2(@types/node@22.10.1)(terser@5.36.0)(yaml@2.6.1))(vue@3.5.13(typescript@5.6.3)) + version: 5.2.1(vite@6.0.11(@types/node@22.10.10)(terser@5.37.0)(yaml@2.7.0))(vue@3.5.13(typescript@5.6.3)) '@vue/eslint-config-prettier': - specifier: ^10.1.0 - version: 10.1.0(eslint@9.16.0)(prettier@3.4.1) + specifier: ^10.2.0 + version: 10.2.0(eslint@9.19.0)(prettier@3.4.2) '@vue/eslint-config-typescript': - specifier: ^14.1.4 - version: 14.1.4(@typescript-eslint/parser@8.16.0(eslint@9.16.0)(typescript@5.6.3))(eslint-plugin-vue@9.32.0(eslint@9.16.0))(eslint@9.16.0)(typescript@5.6.3) + specifier: ^14.3.0 + version: 14.3.0(eslint-plugin-vue@9.32.0(eslint@9.19.0))(eslint@9.19.0)(typescript@5.6.3) '@vue/tsconfig': specifier: ^0.7.0 version: 0.7.0(typescript@5.6.3)(vue@3.5.13(typescript@5.6.3)) autoprefixer: specifier: ^10.4.19 - version: 10.4.20(postcss@8.4.49) + version: 10.4.20(postcss@8.5.1) concurrently: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^9.1.2 + version: 9.1.2 eslint: - specifier: ^9.16.0 - version: 9.16.0 + specifier: ^9.19.0 + version: 9.19.0 eslint-plugin-prettier: - specifier: ^5.1.3 - version: 5.2.1(eslint-config-prettier@9.1.0(eslint@9.16.0))(eslint@9.16.0)(prettier@3.4.1) + specifier: ^5.2.3 + version: 5.2.3(eslint-config-prettier@10.0.1(eslint@9.19.0))(eslint@9.19.0)(prettier@3.4.2) eslint-plugin-vue: specifier: ^9.24.0 - version: 9.32.0(eslint@9.16.0) + version: 9.32.0(eslint@9.19.0) jsdom: - specifier: ^25.0.1 - version: 25.0.1 + specifier: ^26.0.0 + version: 26.0.0 postcss: - specifier: ^8.4.38 - version: 8.4.49 + specifier: ^8.5.1 + version: 8.5.1 prettier: - specifier: ^3.2.5 - version: 3.4.1 + specifier: ^3.4.2 + version: 3.4.2 terser: - specifier: ^5.30.0 - version: 5.36.0 + specifier: ^5.37.0 + version: 5.37.0 vite: - specifier: ^6.0.2 - version: 6.0.2(@types/node@22.10.1)(terser@5.36.0)(yaml@2.6.1) + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(terser@5.37.0)(yaml@2.7.0) vite-plugin-compression2: specifier: ^1.0.0 - version: 1.3.3(rollup@4.28.0)(vite@6.0.2(@types/node@22.10.1)(terser@5.36.0)(yaml@2.6.1)) + version: 1.3.3(rollup@4.32.0)(vite@6.0.11(@types/node@22.10.10)(terser@5.37.0)(yaml@2.7.0)) vue-tsc: - specifier: ^2.0.7 - version: 2.1.10(typescript@5.6.3) + specifier: ^2.2.0 + version: 2.2.0(typescript@5.6.3) packages: @@ -175,6 +172,9 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} + '@asamuzakjp/css-color@2.8.3': + resolution: {integrity: sha512-GIc76d9UI1hCvOATjZPyHFmE5qhRccp3/zGfMPapK3jBi+yocEzp6BBB0UnfRYP9NP4FANqUZYb0hnfs3TM3hw==} + '@babel/code-frame@7.26.2': resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} @@ -287,6 +287,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.26.7': + resolution: {integrity: sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9': resolution: {integrity: sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==} engines: {node: '>=6.9.0'} @@ -656,6 +661,10 @@ packages: resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} engines: {node: '>=6.9.0'} + '@babel/runtime@7.26.7': + resolution: {integrity: sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ==} + engines: {node: '>=6.9.0'} + '@babel/template@7.25.9': resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} engines: {node: '>=6.9.0'} @@ -668,151 +677,189 @@ packages: resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} engines: {node: '>=6.9.0'} + '@babel/types@7.26.7': + resolution: {integrity: sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==} + engines: {node: '>=6.9.0'} + '@chenfengyuan/vue-number-input@2.0.1': resolution: {integrity: sha512-/jqmfmFulFOGlozts0Sf2GCESMRYVTfZZSz2Tf4n9O5DKjqMi5B/MfRzm5H5A57WuG3L80yXFWFN+XeACKaIhQ==} peerDependencies: vue: ^3.0.0 - '@esbuild/aix-ppc64@0.24.0': - resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==} + '@csstools/color-helpers@5.0.1': + resolution: {integrity: sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==} + engines: {node: '>=18'} + + '@csstools/css-calc@2.1.1': + resolution: {integrity: sha512-rL7kaUnTkL9K+Cvo2pnCieqNpTKgQzy5f+N+5Iuko9HAoasP+xgprVh7KN/MaJVvVL1l0EzQq2MoqBHKSrDrag==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-parser-algorithms': ^3.0.4 + '@csstools/css-tokenizer': ^3.0.3 + + '@csstools/css-color-parser@3.0.7': + resolution: {integrity: sha512-nkMp2mTICw32uE5NN+EsJ4f5N+IGFeCFu4bGpiKgb2Pq/7J/MpyLBeQ5ry4KKtRFZaYs6sTmcMYrSRIyj5DFKA==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-parser-algorithms': ^3.0.4 + '@csstools/css-tokenizer': ^3.0.3 + + '@csstools/css-parser-algorithms@3.0.4': + resolution: {integrity: sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-tokenizer': ^3.0.3 + + '@csstools/css-tokenizer@3.0.3': + resolution: {integrity: sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==} + engines: {node: '>=18'} + + '@esbuild/aix-ppc64@0.24.2': + resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.24.0': - resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==} + '@esbuild/android-arm64@0.24.2': + resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.24.0': - resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==} + '@esbuild/android-arm@0.24.2': + resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.24.0': - resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==} + '@esbuild/android-x64@0.24.2': + resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.24.0': - resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==} + '@esbuild/darwin-arm64@0.24.2': + resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.24.0': - resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==} + '@esbuild/darwin-x64@0.24.2': + resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.24.0': - resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==} + '@esbuild/freebsd-arm64@0.24.2': + resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.24.0': - resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==} + '@esbuild/freebsd-x64@0.24.2': + resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.24.0': - resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==} + '@esbuild/linux-arm64@0.24.2': + resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.24.0': - resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==} + '@esbuild/linux-arm@0.24.2': + resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.24.0': - resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==} + '@esbuild/linux-ia32@0.24.2': + resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.24.0': - resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==} + '@esbuild/linux-loong64@0.24.2': + resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.24.0': - resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==} + '@esbuild/linux-mips64el@0.24.2': + resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.24.0': - resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==} + '@esbuild/linux-ppc64@0.24.2': + resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.24.0': - resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==} + '@esbuild/linux-riscv64@0.24.2': + resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.24.0': - resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==} + '@esbuild/linux-s390x@0.24.2': + resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.24.0': - resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==} + '@esbuild/linux-x64@0.24.2': + resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.24.0': - resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==} + '@esbuild/netbsd-arm64@0.24.2': + resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.24.2': + resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.24.0': - resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==} + '@esbuild/openbsd-arm64@0.24.2': + resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.24.0': - resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==} + '@esbuild/openbsd-x64@0.24.2': + resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.24.0': - resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==} + '@esbuild/sunos-x64@0.24.2': + resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.24.0': - resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==} + '@esbuild/win32-arm64@0.24.2': + resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.24.0': - resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==} + '@esbuild/win32-ia32@0.24.2': + resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.24.0': - resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==} + '@esbuild/win32-x64@0.24.2': + resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -827,28 +874,28 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.19.0': - resolution: {integrity: sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==} + '@eslint/config-array@0.19.1': + resolution: {integrity: sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.9.0': - resolution: {integrity: sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==} + '@eslint/core@0.10.0': + resolution: {integrity: sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/eslintrc@3.2.0': resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.16.0': - resolution: {integrity: sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==} + '@eslint/js@9.19.0': + resolution: {integrity: sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/object-schema@2.1.4': - resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} + '@eslint/object-schema@2.1.5': + resolution: {integrity: sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.2.3': - resolution: {integrity: sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==} + '@eslint/plugin-kit@0.2.5': + resolution: {integrity: sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@humanfs/core@0.19.1': @@ -883,28 +930,28 @@ packages: vue-i18n: optional: true - '@intlify/core-base@10.0.5': - resolution: {integrity: sha512-F3snDTQs0MdvnnyzTDTVkOYVAZOE/MHwRvF7mn7Jw1yuih4NrFYLNYIymGlLmq4HU2iIdzYsZ7f47bOcwY73XQ==} + '@intlify/core-base@11.0.1': + resolution: {integrity: sha512-NAmhw1l/llM0HZRpagR/ChJTNymW4ll6/4EDSJML5c8L5Hl/+k6UyF8EIgE6DeHpfheQujkSRngauViHqq6jJQ==} engines: {node: '>= 16'} - '@intlify/message-compiler@10.0.5': - resolution: {integrity: sha512-6GT1BJ852gZ0gItNZN2krX5QAmea+cmdjMvsWohArAZ3GmHdnNANEcF9JjPXAMRtQ6Ux5E269ymamg/+WU6tQA==} + '@intlify/message-compiler@11.0.0-rc.1': + resolution: {integrity: sha512-TGw2uBfuTFTegZf/BHtUQBEKxl7Q/dVGLoqRIdw8lFsp9g/53sYn5iD+0HxIzdYjbWL6BTJMXCPUHp9PxDTRPw==} engines: {node: '>= 16'} - '@intlify/message-compiler@11.0.0-beta.2': - resolution: {integrity: sha512-/cJHP1n45Zlf9tbm/hudLrUwXzJZngR9OMTQk32H1S4lBjM2996wzKTHuLbaJJlJZNTTjnfWZUHPb+F6sE6p1Q==} + '@intlify/message-compiler@11.0.1': + resolution: {integrity: sha512-5RFH8x+Mn3mbjcHXnb6KCXGiczBdiQkWkv99iiA0JpKrNuTAQeW59Pjq/uObMB0eR0shnKYGTkIJxum+DbL3sw==} engines: {node: '>= 16'} - '@intlify/shared@10.0.5': - resolution: {integrity: sha512-bmsP4L2HqBF6i6uaMqJMcFBONVjKt+siGluRq4Ca4C0q7W2eMaVZr8iCgF9dKbcVXutftkC7D6z2SaSMmLiDyA==} + '@intlify/shared@11.0.0-rc.1': + resolution: {integrity: sha512-8tR1xe7ZEbkabTuE/tNhzpolygUn9OaYp9yuYAF4MgDNZg06C3Qny80bes2/e9/Wm3aVkPUlCw6WgU7mQd0yEg==} engines: {node: '>= 16'} - '@intlify/shared@11.0.0-beta.2': - resolution: {integrity: sha512-N6ngJfFaVA0l2iLtx/SymgHOBW4wiS5Pyue7YmY/G+mrGjesi+S+U+u/Xlv6pZa/YIBfeM4QB07lI7rz1YqKLg==} + '@intlify/shared@11.0.1': + resolution: {integrity: sha512-lH164+aDDptHZ3dBDbIhRa1dOPQUp+83iugpc+1upTOWCnwyC1PVis6rSWNMMJ8VQxvtHQB9JMib48K55y0PvQ==} engines: {node: '>= 16'} - '@intlify/unplugin-vue-i18n@6.0.0': - resolution: {integrity: sha512-PhFdVR0YggJcvbFrfXTKRv5S6/DPy7FPBtepVIloDpOvco5FHJYKHyaPXqMMWhN1o8MiD2KnSwS2222zWAQs+A==} + '@intlify/unplugin-vue-i18n@6.0.3': + resolution: {integrity: sha512-9ZDjBlhUHtgjRl23TVcgfJttgu8cNepwVhWvOv3mUMRDAhjW0pur1mWKEUKr1I8PNwE4Gvv2IQ1xcl4RL0nG0g==} engines: {node: '>= 18'} peerDependencies: petite-vue-i18n: '*' @@ -916,14 +963,14 @@ packages: vue-i18n: optional: true - '@intlify/vue-i18n-extensions@7.0.0': - resolution: {integrity: sha512-MtvfJnb4aklpCU5Q/dkWkBT/vGsp3qERiPIwtTq5lX4PCLHtUprAJZp8wQj5ZcwDaFCU7+yVMjYbeXpIf927cA==} + '@intlify/vue-i18n-extensions@8.0.0': + resolution: {integrity: sha512-w0+70CvTmuqbskWfzeYhn0IXxllr6mU+IeM2MU0M+j9OW64jkrvqY+pYFWrUnIIC9bEdij3NICruicwd5EgUuQ==} engines: {node: '>= 18'} peerDependencies: - '@intlify/shared': ^9.0.0 || ^10.0.0 + '@intlify/shared': ^9.0.0 || ^10.0.0 || ^11.0.0 '@vue/compiler-dom': ^3.0.0 vue: ^3.0.0 - vue-i18n: ^9.0.0 || ^10.0.0 + vue-i18n: ^9.0.0 || ^10.0.0 || ^11.0.0 peerDependenciesMeta: '@intlify/shared': optional: true @@ -938,6 +985,10 @@ packages: resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} + '@jridgewell/gen-mapping@0.3.8': + resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} + engines: {node: '>=6.0.0'} + '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} @@ -971,8 +1022,8 @@ packages: resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - '@playwright/test@1.49.0': - resolution: {integrity: sha512-DMulbwQURa8rNIQrf94+jPJQ4FmOVdpE5ZppRNvWVjvhC+6sOeo28r8MgIpQRYouXRtt/FCCXU7zn20jnHR4Qw==} + '@playwright/test@1.50.0': + resolution: {integrity: sha512-ZGNXbt+d65EGjBORQHuYKj+XhCewlwpnSd/EDuLPZGSiEWmgOJB5RmMCCYGy5aMfTs9wx61RivfDKi8H/hcMvw==} engines: {node: '>=18'} hasBin: true @@ -985,93 +1036,107 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.28.0': - resolution: {integrity: sha512-wLJuPLT6grGZsy34g4N1yRfYeouklTgPhH1gWXCYspenKYD0s3cR99ZevOGw5BexMNywkbV3UkjADisozBmpPQ==} + '@rollup/pluginutils@5.1.4': + resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/rollup-android-arm-eabi@4.32.0': + resolution: {integrity: sha512-G2fUQQANtBPsNwiVFg4zKiPQyjVKZCUdQUol53R8E71J7AsheRMV/Yv/nB8giOcOVqP7//eB5xPqieBYZe9bGg==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.28.0': - resolution: {integrity: sha512-eiNkznlo0dLmVG/6wf+Ifi/v78G4d4QxRhuUl+s8EWZpDewgk7PX3ZyECUXU0Zq/Ca+8nU8cQpNC4Xgn2gFNDA==} + '@rollup/rollup-android-arm64@4.32.0': + resolution: {integrity: sha512-qhFwQ+ljoymC+j5lXRv8DlaJYY/+8vyvYmVx074zrLsu5ZGWYsJNLjPPVJJjhZQpyAKUGPydOq9hRLLNvh1s3A==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.28.0': - resolution: {integrity: sha512-lmKx9yHsppblnLQZOGxdO66gT77bvdBtr/0P+TPOseowE7D9AJoBw8ZDULRasXRWf1Z86/gcOdpBrV6VDUY36Q==} + '@rollup/rollup-darwin-arm64@4.32.0': + resolution: {integrity: sha512-44n/X3lAlWsEY6vF8CzgCx+LQaoqWGN7TzUfbJDiTIOjJm4+L2Yq+r5a8ytQRGyPqgJDs3Rgyo8eVL7n9iW6AQ==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.28.0': - resolution: {integrity: sha512-8hxgfReVs7k9Js1uAIhS6zq3I+wKQETInnWQtgzt8JfGx51R1N6DRVy3F4o0lQwumbErRz52YqwjfvuwRxGv1w==} + '@rollup/rollup-darwin-x64@4.32.0': + resolution: {integrity: sha512-F9ct0+ZX5Np6+ZDztxiGCIvlCaW87HBdHcozUfsHnj1WCUTBUubAoanhHUfnUHZABlElyRikI0mgcw/qdEm2VQ==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.28.0': - resolution: {integrity: sha512-lA1zZB3bFx5oxu9fYud4+g1mt+lYXCoch0M0V/xhqLoGatbzVse0wlSQ1UYOWKpuSu3gyN4qEc0Dxf/DII1bhQ==} + '@rollup/rollup-freebsd-arm64@4.32.0': + resolution: {integrity: sha512-JpsGxLBB2EFXBsTLHfkZDsXSpSmKD3VxXCgBQtlPcuAqB8TlqtLcbeMhxXQkCDv1avgwNjF8uEIbq5p+Cee0PA==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.28.0': - resolution: {integrity: sha512-aI2plavbUDjCQB/sRbeUZWX9qp12GfYkYSJOrdYTL/C5D53bsE2/nBPuoiJKoWp5SN78v2Vr8ZPnB+/VbQ2pFA==} + '@rollup/rollup-freebsd-x64@4.32.0': + resolution: {integrity: sha512-wegiyBT6rawdpvnD9lmbOpx5Sph+yVZKHbhnSP9MqUEDX08G4UzMU+D87jrazGE7lRSyTRs6NEYHtzfkJ3FjjQ==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.28.0': - resolution: {integrity: sha512-WXveUPKtfqtaNvpf0iOb0M6xC64GzUX/OowbqfiCSXTdi/jLlOmH0Ba94/OkiY2yTGTwteo4/dsHRfh5bDCZ+w==} + '@rollup/rollup-linux-arm-gnueabihf@4.32.0': + resolution: {integrity: sha512-3pA7xecItbgOs1A5H58dDvOUEboG5UfpTq3WzAdF54acBbUM+olDJAPkgj1GRJ4ZqE12DZ9/hNS2QZk166v92A==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.28.0': - resolution: {integrity: sha512-yLc3O2NtOQR67lI79zsSc7lk31xjwcaocvdD1twL64PK1yNaIqCeWI9L5B4MFPAVGEVjH5k1oWSGuYX1Wutxpg==} + '@rollup/rollup-linux-arm-musleabihf@4.32.0': + resolution: {integrity: sha512-Y7XUZEVISGyge51QbYyYAEHwpGgmRrAxQXO3siyYo2kmaj72USSG8LtlQQgAtlGfxYiOwu+2BdbPjzEpcOpRmQ==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.28.0': - resolution: {integrity: sha512-+P9G9hjEpHucHRXqesY+3X9hD2wh0iNnJXX/QhS/J5vTdG6VhNYMxJ2rJkQOxRUd17u5mbMLHM7yWGZdAASfcg==} + '@rollup/rollup-linux-arm64-gnu@4.32.0': + resolution: {integrity: sha512-r7/OTF5MqeBrZo5omPXcTnjvv1GsrdH8a8RerARvDFiDwFpDVDnJyByYM/nX+mvks8XXsgPUxkwe/ltaX2VH7w==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.28.0': - resolution: {integrity: sha512-1xsm2rCKSTpKzi5/ypT5wfc+4bOGa/9yI/eaOLW0oMs7qpC542APWhl4A37AENGZ6St6GBMWhCCMM6tXgTIplw==} + '@rollup/rollup-linux-arm64-musl@4.32.0': + resolution: {integrity: sha512-HJbifC9vex9NqnlodV2BHVFNuzKL5OnsV2dvTw6e1dpZKkNjPG6WUq+nhEYV6Hv2Bv++BXkwcyoGlXnPrjAKXw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.28.0': - resolution: {integrity: sha512-zgWxMq8neVQeXL+ouSf6S7DoNeo6EPgi1eeqHXVKQxqPy1B2NvTbaOUWPn/7CfMKL7xvhV0/+fq/Z/J69g1WAQ==} + '@rollup/rollup-linux-loongarch64-gnu@4.32.0': + resolution: {integrity: sha512-VAEzZTD63YglFlWwRj3taofmkV1V3xhebDXffon7msNz4b14xKsz7utO6F8F4cqt8K/ktTl9rm88yryvDpsfOw==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.32.0': + resolution: {integrity: sha512-Sts5DST1jXAc9YH/iik1C9QRsLcCoOScf3dfbY5i4kH9RJpKxiTBXqm7qU5O6zTXBTEZry69bGszr3SMgYmMcQ==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.28.0': - resolution: {integrity: sha512-VEdVYacLniRxbRJLNtzwGt5vwS0ycYshofI7cWAfj7Vg5asqj+pt+Q6x4n+AONSZW/kVm+5nklde0qs2EUwU2g==} + '@rollup/rollup-linux-riscv64-gnu@4.32.0': + resolution: {integrity: sha512-qhlXeV9AqxIyY9/R1h1hBD6eMvQCO34ZmdYvry/K+/MBs6d1nRFLm6BOiITLVI+nFAAB9kUB6sdJRKyVHXnqZw==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.28.0': - resolution: {integrity: sha512-LQlP5t2hcDJh8HV8RELD9/xlYtEzJkm/aWGsauvdO2ulfl3QYRjqrKW+mGAIWP5kdNCBheqqqYIGElSRCaXfpw==} + '@rollup/rollup-linux-s390x-gnu@4.32.0': + resolution: {integrity: sha512-8ZGN7ExnV0qjXa155Rsfi6H8M4iBBwNLBM9lcVS+4NcSzOFaNqmt7djlox8pN1lWrRPMRRQ8NeDlozIGx3Omsw==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.28.0': - resolution: {integrity: sha512-Nl4KIzteVEKE9BdAvYoTkW19pa7LR/RBrT6F1dJCV/3pbjwDcaOq+edkP0LXuJ9kflW/xOK414X78r+K84+msw==} + '@rollup/rollup-linux-x64-gnu@4.32.0': + resolution: {integrity: sha512-VDzNHtLLI5s7xd/VubyS10mq6TxvZBp+4NRWoW+Hi3tgV05RtVm4qK99+dClwTN1McA6PHwob6DEJ6PlXbY83A==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.28.0': - resolution: {integrity: sha512-eKpJr4vBDOi4goT75MvW+0dXcNUqisK4jvibY9vDdlgLx+yekxSm55StsHbxUsRxSTt3JEQvlr3cGDkzcSP8bw==} + '@rollup/rollup-linux-x64-musl@4.32.0': + resolution: {integrity: sha512-qcb9qYDlkxz9DxJo7SDhWxTWV1gFuwznjbTiov289pASxlfGbaOD54mgbs9+z94VwrXtKTu+2RqwlSTbiOqxGg==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.28.0': - resolution: {integrity: sha512-Vi+WR62xWGsE/Oj+mD0FNAPY2MEox3cfyG0zLpotZdehPFXwz6lypkGs5y38Jd/NVSbOD02aVad6q6QYF7i8Bg==} + '@rollup/rollup-win32-arm64-msvc@4.32.0': + resolution: {integrity: sha512-pFDdotFDMXW2AXVbfdUEfidPAk/OtwE/Hd4eYMTNVVaCQ6Yl8et0meDaKNL63L44Haxv4UExpv9ydSf3aSayDg==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.28.0': - resolution: {integrity: sha512-kN/Vpip8emMLn/eOza+4JwqDZBL6MPNpkdaEsgUtW1NYN3DZvZqSQrbKzJcTL6hd8YNmFTn7XGWMwccOcJBL0A==} + '@rollup/rollup-win32-ia32-msvc@4.32.0': + resolution: {integrity: sha512-/TG7WfrCAjeRNDvI4+0AAMoHxea/USWhAzf9PVDFHbcqrQ7hMMKp4jZIy4VEjk72AAfN5k4TiSMRXRKf/0akSw==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.28.0': - resolution: {integrity: sha512-Bvno2/aZT6usSa7lRDL2+hMjVAGjuqaymF1ApZm31JXzniR/hvr14jpU+/z4X6Gt5BPlzosscyJZGUvguXIqeQ==} + '@rollup/rollup-win32-x64-msvc@4.32.0': + resolution: {integrity: sha512-5hqO5S3PTEO2E5VjCePxv40gIgyS2KvO7E7/vvC/NbIW4SIRamkMr1hqj+5Y67fbBWv/bQLB6KelBQmXlyCjWA==} cpu: [x64] os: [win32] @@ -1094,128 +1159,61 @@ packages: '@types/lodash@4.17.13': resolution: {integrity: sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==} - '@types/node@22.10.1': - resolution: {integrity: sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==} + '@types/node@22.10.10': + resolution: {integrity: sha512-X47y/mPNzxviAGY5TcYPtYL8JsY3kAq2n8fMmKoRCxq/c4v4pyGNCzM2R6+M5/umG4ZfHuT+sgqDYqWc9rJ6ww==} '@types/web-bluetooth@0.0.20': resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} - '@typescript-eslint/eslint-plugin@8.16.0': - resolution: {integrity: sha512-5YTHKV8MYlyMI6BaEG7crQ9BhSc8RxzshOReKwZwRWN0+XvvTOm+L/UYLCYxFpfwYuAAqhxiq4yae0CMFwbL7Q==} + '@typescript-eslint/eslint-plugin@8.21.0': + resolution: {integrity: sha512-eTH+UOR4I7WbdQnG4Z48ebIA6Bgi7WO8HvFEneeYBxG8qCOYgTOFPSg6ek9ITIDvGjDQzWHcoWHCDO2biByNzA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/eslint-plugin@8.17.0': - resolution: {integrity: sha512-HU1KAdW3Tt8zQkdvNoIijfWDMvdSweFYm4hWh+KwhPstv+sCmWb89hCIP8msFm9N1R/ooh9honpSuvqKWlYy3w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 - eslint: ^8.57.0 || ^9.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/parser@8.16.0': - resolution: {integrity: sha512-D7DbgGFtsqIPIFMPJwCad9Gfi/hC0PWErRRHFnaCWoEDYi5tQUDiJCTmGUbBiLzjqAck4KcXt9Ayj0CNlIrF+w==} + '@typescript-eslint/parser@8.21.0': + resolution: {integrity: sha512-Wy+/sdEH9kI3w9civgACwabHbKl+qIOu0uFZ9IMKzX3Jpv9og0ZBJrZExGrPpFAY7rWsXuxs5e7CPPP17A4eYA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/scope-manager@8.16.0': - resolution: {integrity: sha512-mwsZWubQvBki2t5565uxF0EYvG+FwdFb8bMtDuGQLdCCnGPrDEDvm1gtfynuKlnpzeBRqdFCkMf9jg1fnAK8sg==} + '@typescript-eslint/scope-manager@8.21.0': + resolution: {integrity: sha512-G3IBKz0/0IPfdeGRMbp+4rbjfSSdnGkXsM/pFZA8zM9t9klXDnB/YnKOBQ0GoPmoROa4bCq2NeHgJa5ydsQ4mA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.17.0': - resolution: {integrity: sha512-/ewp4XjvnxaREtqsZjF4Mfn078RD/9GmiEAtTeLQ7yFdKnqwTOgRMSvFz4et9U5RiJQ15WTGXPLj89zGusvxBg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/type-utils@8.16.0': - resolution: {integrity: sha512-IqZHGG+g1XCWX9NyqnI/0CX5LL8/18awQqmkZSl2ynn8F76j579dByc0jhfVSnSnhf7zv76mKBQv9HQFKvDCgg==} + '@typescript-eslint/type-utils@8.21.0': + resolution: {integrity: sha512-95OsL6J2BtzoBxHicoXHxgk3z+9P3BEcQTpBKriqiYzLKnM2DeSqs+sndMKdamU8FosiadQFT3D+BSL9EKnAJQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/type-utils@8.17.0': - resolution: {integrity: sha512-q38llWJYPd63rRnJ6wY/ZQqIzPrBCkPdpIsaCfkR3Q4t3p6sb422zougfad4TFW9+ElIFLVDzWGiGAfbb/v2qw==} + '@typescript-eslint/types@8.21.0': + resolution: {integrity: sha512-PAL6LUuQwotLW2a8VsySDBwYMm129vFm4tMVlylzdoTybTHaAi0oBp7Ac6LhSrHHOdLM3efH+nAR6hAWoMF89A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.21.0': + resolution: {integrity: sha512-x+aeKh/AjAArSauz0GiQZsjT8ciadNMHdkUSwBB9Z6PrKc/4knM4g3UfHml6oDJmKC88a6//cdxnO/+P2LkMcg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.8.0' + + '@typescript-eslint/utils@8.21.0': + resolution: {integrity: sha512-xcXBfcq0Kaxgj7dwejMbFyq7IOHgpNMtVuDveK7w3ZGwG9owKzhALVwKpTF2yrZmEwl9SWdetf3fxNzJQaVuxw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/types@8.16.0': - resolution: {integrity: sha512-NzrHj6thBAOSE4d9bsuRNMvk+BvaQvmY4dDglgkgGC0EW/tB3Kelnp3tAKH87GEwzoxgeQn9fNGRyFJM/xd+GQ==} + '@typescript-eslint/visitor-keys@8.21.0': + resolution: {integrity: sha512-BkLMNpdV6prozk8LlyK/SOoWLmUFi+ZD+pcqti9ILCbVvHGk1ui1g4jJOc2WDLaeExz2qWwojxlPce5PljcT3w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.17.0': - resolution: {integrity: sha512-gY2TVzeve3z6crqh2Ic7Cr+CAv6pfb0Egee7J5UAVWCpVvDI/F71wNfolIim4FE6hT15EbpZFVUj9j5i38jYXA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/typescript-estree@8.16.0': - resolution: {integrity: sha512-E2+9IzzXMc1iaBy9zmo+UYvluE3TW7bCGWSF41hVWUE01o8nzr1rvOQYSxelxr6StUvRcTMe633eY8mXASMaNw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/typescript-estree@8.17.0': - resolution: {integrity: sha512-JqkOopc1nRKZpX+opvKqnM3XUlM7LpFMD0lYxTqOTKQfCWAmxw45e3qlOCsEqEB2yuacujivudOFpCnqkBDNMw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/utils@8.16.0': - resolution: {integrity: sha512-C1zRy/mOL8Pj157GiX4kaw7iyRLKfJXBR3L82hk5kS/GyHcOFmy4YUq/zfZti72I9wnuQtA/+xzft4wCC8PJdA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/utils@8.17.0': - resolution: {integrity: sha512-bQC8BnEkxqG8HBGKwG9wXlZqg37RKSMY7v/X8VEWD8JG2JuTHuNK0VFvMPMUKQcbk6B+tf05k+4AShAEtCtJ/w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/visitor-keys@8.16.0': - resolution: {integrity: sha512-pq19gbaMOmFE3CbL0ZB8J8BFCo2ckfHBfaIsaOZgBIF4EoISJIdLX5xRhd0FGB0LlHReNRuzoJoMGpTjq8F2CQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/visitor-keys@8.17.0': - resolution: {integrity: sha512-1Hm7THLpO6ww5QU6H/Qp+AusUUl+z/CAm3cNZZ0jQvon9yicgO7Rwd+/WWRpMKLYV6p2UvdbR27c86rzCPpreg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@videojs/http-streaming@3.16.1': - resolution: {integrity: sha512-+5FXE0q8sRD6lPVdGsDL0N8q4+IiQEjMtoCSu0js1oftdCchP9bbhR9ac8XUGJUCZ53KoeY02izkjyGYK2hpGw==} + '@videojs/http-streaming@3.16.2': + resolution: {integrity: sha512-fvt4ko7FknxiT9FnjyNQt6q2px+awrkM+Orv7IB/4gldvj94u4fowGfmNHynnvNTPgPkdxHklGmFLGfclYw8HA==} engines: {node: '>=8', npm: '>=5'} peerDependencies: video.js: ^8.19.0 @@ -1241,14 +1239,14 @@ packages: vite: ^5.0.0 || ^6.0.0 vue: ^3.2.25 - '@volar/language-core@2.4.10': - resolution: {integrity: sha512-hG3Z13+nJmGaT+fnQzAkS0hjJRa2FCeqZt6Bd+oGNhUkQ+mTFsDETg5rqUTxyzIh5pSOGY7FHCWUS8G82AzLCA==} + '@volar/language-core@2.4.11': + resolution: {integrity: sha512-lN2C1+ByfW9/JRPpqScuZt/4OrUUse57GLI6TbLgTIqBVemdl1wNcZ1qYGEo2+Gw8coYLgCy7SuKqn6IrQcQgg==} - '@volar/source-map@2.4.10': - resolution: {integrity: sha512-OCV+b5ihV0RF3A7vEvNyHPi4G4kFa6ukPmyVocmqm5QzOd8r5yAtiNvaPEjl8dNvgC/lj4JPryeeHLdXd62rWA==} + '@volar/source-map@2.4.11': + resolution: {integrity: sha512-ZQpmafIGvaZMn/8iuvCFGrW3smeqkq/IIh9F1SdSx9aUl0J4Iurzd6/FhmjNO5g2ejF3rT45dKskgXWiofqlZQ==} - '@volar/typescript@2.4.10': - resolution: {integrity: sha512-F8ZtBMhSXyYKuBfGpYwqA5rsONnOwAVvjyE7KPYJ7wgZqo2roASqNWUnianOomJX5u1cxeRooHV59N0PhvEOgw==} + '@volar/typescript@2.4.11': + resolution: {integrity: sha512-2DT+Tdh88Spp5PyPbqhyoYavYCPDsqbHLFwcUI9K1NlY1YgUJvujGdrqUp0zWxnW7KWNTr3xSpMuv2WnaTKDAw==} '@vue/compiler-core@3.5.13': resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} @@ -1268,27 +1266,27 @@ packages: '@vue/devtools-api@6.6.4': resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} - '@vue/eslint-config-prettier@10.1.0': - resolution: {integrity: sha512-J6wV91y2pXc0Phha01k0WOHBTPsoSTf4xlmMjoKaeSxBpAdsgTppGF5RZRdOHM7OA74zAXD+VLANrtYXpiPKkQ==} + '@vue/eslint-config-prettier@10.2.0': + resolution: {integrity: sha512-GL3YBLwv/+b86yHcNNfPJxOTtVFJ4Mbc9UU3zR+KVoG7SwGTjPT+32fXamscNumElhcpXW3mT0DgzS9w32S7Bw==} peerDependencies: eslint: '>= 8.21.0' prettier: '>= 3.0.0' - '@vue/eslint-config-typescript@14.1.4': - resolution: {integrity: sha512-NcG1adLFde+t+TCaXlL38PHuZlBEuwDahgrPVyB052m9QeHOswVIAplMD2cXgH8vXieAVNF1+mXvyilpIO3+kg==} + '@vue/eslint-config-typescript@14.3.0': + resolution: {integrity: sha512-bOreIxlSC/xsUdhDdKIHb1grwJah+IokNeJ50LqA1StdOHeSPUxSIPNxyKgRx4YdjhyzC6TKtrCf6yYK99x3Uw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^9.10.0 eslint-plugin-vue: ^9.28.0 - typescript: ~5.6.3 + typescript: '>=4.8.4' peerDependenciesMeta: typescript: optional: true - '@vue/language-core@2.1.10': - resolution: {integrity: sha512-DAI289d0K3AB5TUG3xDp9OuQ71CnrujQwJrQnfuZDwo6eGNf0UoRlPuaVNO+Zrn65PC3j0oB2i7mNmVPggeGeQ==} + '@vue/language-core@2.2.0': + resolution: {integrity: sha512-O1ZZFaaBGkKbsRfnVH1ifOK1/1BUkyK+3SQsfnh6PmMmD4qJcTU8godCeA96jjDRTL6zgnK7YzCHfaUlH2r0Mw==} peerDependencies: - typescript: ~5.6.3 + typescript: '*' peerDependenciesMeta: typescript: optional: true @@ -1313,7 +1311,7 @@ packages: '@vue/tsconfig@0.7.0': resolution: {integrity: sha512-ku2uNz5MaZ9IerPPUyOHzyjhXoX2kVJaVf7hL315DC17vS6IiZRmmCPfggNbU16QTvM80+uYYy3eYJB59WCtvg==} peerDependencies: - typescript: ~5.6.3 + typescript: 5.x vue: ^3.4.0 peerDependenciesMeta: typescript: @@ -1321,11 +1319,11 @@ packages: vue: optional: true - '@vueuse/core@12.0.0': - resolution: {integrity: sha512-C12RukhXiJCbx4MGhjmd/gH52TjJsc3G0E0kQj/kb19H3Nt6n1CA4DRWuTdWWcaFRdlTe0npWDS942mvacvNBw==} + '@vueuse/core@12.5.0': + resolution: {integrity: sha512-GVyH1iYqNANwcahAx8JBm6awaNgvR/SwZ1fjr10b8l1HIgDp82ngNbfzJUgOgWEoxjL+URAggnlilAEXwCOZtg==} - '@vueuse/integrations@12.0.0': - resolution: {integrity: sha512-M16fkVp+i4je75I7uvifMbJKHFrjx2+0LuHEH9++iPJ11zc4SRy5NdRN0z2NR+a54eQ5Gs2Ds7pby5ST96zxCA==} + '@vueuse/integrations@12.5.0': + resolution: {integrity: sha512-HYLt8M6mjUfcoUOzyBcX2RjpfapIwHPBmQJtTmXOQW845Y/Osu9VuTJ5kPvnmWJ6IUa05WpblfOwZ+P0G4iZsQ==} peerDependencies: async-validator: ^4 axios: ^1 @@ -1365,11 +1363,11 @@ packages: universal-cookie: optional: true - '@vueuse/metadata@12.0.0': - resolution: {integrity: sha512-Yzimd1D3sjxTDOlF05HekU5aSGdKjxhuhRFHA7gDWLn57PRbBIh+SF5NmjhJ0WRgF3my7T8LBucyxdFJjIfRJQ==} + '@vueuse/metadata@12.5.0': + resolution: {integrity: sha512-Ui7Lo2a7AxrMAXRF+fAp9QsXuwTeeZ8fIB9wsLHqzq9MQk+2gMYE2IGJW48VMJ8ecvCB3z3GsGLKLbSasQ5Qlg==} - '@vueuse/shared@12.0.0': - resolution: {integrity: sha512-3i6qtcq2PIio5i/vVYidkkcgvmTjCqrf26u+Fd4LhnbBmIT6FN8y6q/GJERp8lfcB9zVEfjdV0Br0443qZuJpw==} + '@vueuse/shared@12.5.0': + resolution: {integrity: sha512-vMpcL1lStUU6O+kdj6YdHDixh0odjPAUM15uJ9f7MY781jcYkIwFA4iv2EfoIPO6vBmvutI1HxxAwmf0cx5ISQ==} '@xmldom/xmldom@0.7.13': resolution: {integrity: sha512-lm2GW5PkosIzccsaZIz7tp8cPADSIlIHWDFTR1N0SzfinhhYgeIQjFMz4rYzanCScr3DqQLeomUDArp6MWKm+g==} @@ -1380,8 +1378,8 @@ packages: resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} engines: {node: '>=10.0.0'} - ace-builds@1.36.5: - resolution: {integrity: sha512-mZ5KVanRT6nLRDLqtG/1YQQLX/gZVC/v526cm1Ru/MTSlrbweSmqv2ZT0d2GaHpJq035MwCMIrj+LgDAUnDXrg==} + ace-builds@1.37.5: + resolution: {integrity: sha512-VMJ4Cnhq6L9dwvOCyuyyvQuiVTSwdZC7zDKJBBBJJax0wGQ7MvzQZFoi0gMmCm2I4Zuv/ZbtwU/dlglIhCNLhw==} acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} @@ -1396,15 +1394,15 @@ packages: aes-decrypter@4.0.2: resolution: {integrity: sha512-lc+/9s6iJvuaRe5qDlMTpCFjnwpkeOXp8qP3oiZ5jsj1MRg+SBVUmmICrhxHvc8OELSmc+fEyyxAuppY6hrWzw==} - agent-base@7.1.1: - resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} + agent-base@7.1.3: + resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} engines: {node: '>= 14'} ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - alien-signals@0.2.2: - resolution: {integrity: sha512-cZIRkbERILsBOXTQmMrxc9hgpxglstn69zm+F1ARf4aPAzdAFYd6sBq87ErO0Fj3DV94tglcyHG5kQz9nDC/8A==} + alien-signals@0.4.14: + resolution: {integrity: sha512-itUAVzhczTmP2U5yX67xVpsbbOiquusbWVyA9N+sy6+r6YVbFkahXvNCeEPWEOMhwDYwbVbGHFkVL03N9I5g+Q==} ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} @@ -1508,8 +1506,8 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - concurrently@9.1.0: - resolution: {integrity: sha512-VxkzwMAn4LP7WyMnJNbHN5mKV9L2IbyDjpzemKr99sXNR3GqRNMMHdm7prV1ws9wg7ETj6WUkNOigZVsptwbgg==} + concurrently@9.1.2: + resolution: {integrity: sha512-H9MWcoPsYddwbOGM6difjVwVZHl63nwMEwDJG/L7VGtuaJhb12h2caPG2tVPWs7emuYix252iGfqOyrz1GczTQ==} engines: {node: '>=18'} hasBin: true @@ -1522,8 +1520,8 @@ packages: core-js-compat@3.39.0: resolution: {integrity: sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==} - core-js@3.39.0: - resolution: {integrity: sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g==} + core-js@3.40.0: + resolution: {integrity: sha512-7vsMc/Lty6AGnn7uFpYT56QesI5D2Y/UkgKounk87OP9Z2H9Z8kj6jzcSGAxFmUtDOS0ntK6lbQz+Nsa0Jj6mQ==} core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -1537,8 +1535,8 @@ packages: engines: {node: '>=4'} hasBin: true - cssstyle@4.1.0: - resolution: {integrity: sha512-h66W1URKpBS5YMI/V8PyXvTMFT8SupJ1IzoIV8IeBC/ji8WVmrO8dGlTi+2dh6whmdk6BiKJLD/ZBkhWbcg6nA==} + cssstyle@4.2.1: + resolution: {integrity: sha512-9+vem03dMXG7gDmZ62uqmRiMRNtinIZ9ZyuF6BdxzfOD+FdN5hretzynkn0ReS2DO2GSw76RWHs0UmJPI2zUjw==} engines: {node: '>=18'} csstype@3.1.3: @@ -1570,8 +1568,17 @@ packages: supports-color: optional: true - decimal.js@10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decimal.js@10.5.0: + resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==} deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} @@ -1607,8 +1614,8 @@ packages: resolution: {integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==} engines: {node: '>=0.12'} - esbuild@0.24.0: - resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==} + esbuild@0.24.2: + resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} engines: {node: '>=18'} hasBin: true @@ -1625,14 +1632,14 @@ packages: engines: {node: '>=6.0'} hasBin: true - eslint-config-prettier@9.1.0: - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + eslint-config-prettier@10.0.1: + resolution: {integrity: sha512-lZBts941cyJyeaooiKxAtzoPHTN+GbQTJFAIdQbRhA4/8whaAraEh47Whw/ZFfrjNSnlAxqfm9i0XVAEkULjCw==} hasBin: true peerDependencies: eslint: '>=7.0.0' - eslint-plugin-prettier@5.2.1: - resolution: {integrity: sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==} + eslint-plugin-prettier@5.2.3: + resolution: {integrity: sha512-qJ+y0FfCp/mQYQ/vWQ3s7eUlFEL4PyKfAJxsnYTJ4YT73nsJBWqmEpFryxV9OeUiqmsTsYJ5Y+KDNaeP31wrRw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: '@types/eslint': '>=8.0.0' @@ -1667,8 +1674,8 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.16.0: - resolution: {integrity: sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA==} + eslint@9.19.0: + resolution: {integrity: sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -1725,8 +1732,8 @@ packages: fast-diff@1.3.0: resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} fast-json-stable-stringify@2.1.0: @@ -1735,8 +1742,8 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + fastq@1.18.0: + resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==} file-entry-cache@8.0.0: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} @@ -1841,8 +1848,8 @@ packages: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} - https-proxy-agent@7.0.5: - resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} iconv-lite@0.6.3: @@ -1913,11 +1920,11 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - jsdom@25.0.1: - resolution: {integrity: sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==} + jsdom@26.0.0: + resolution: {integrity: sha512-BZYDGVAIriBWTpIxYzrXjv3E/4u8+/pSG5bQdIYCbNCGOvsPkDQfTVLAIXAf9ETdCpduCVTkDe2NNZ8NIwUVzw==} engines: {node: '>=18'} peerDependencies: - canvas: ^2.11.2 + canvas: ^3.0.0 peerDependenciesMeta: canvas: optional: true @@ -2008,6 +2015,9 @@ packages: lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -2017,16 +2027,16 @@ packages: magic-string@0.30.14: resolution: {integrity: sha512-5c99P1WKTed11ZC0HMJOj6CDIue6F8ySu+bJL+85q1zBEIY8IklrJ1eiKC2NDRh3Ct3FcvmJPyQHb9erXMTJNw==} - marked@15.0.3: - resolution: {integrity: sha512-Ai0cepvl2NHnTcO9jYDtcOEtVBNVYR31XnEA3BndO7f5As1wzpcOceSUM8FDkNLJNIODcLpDTWay/qQhqbuMvg==} + marked@15.0.6: + resolution: {integrity: sha512-Y07CUOE+HQXbVDCGl3LXggqJDbXDP2pArc2C1N1RRMN0ONiShoSsIInMd5Gsxupe7fKLpgimTV+HOJ9r7bA+pg==} engines: {node: '>= 18'} hasBin: true marks-pane@1.0.9: resolution: {integrity: sha512-Ahs4oeG90tbdPWwAJkAAoHg2lRR8lAs9mZXETNPO9hYg3AkjUJBKi1NQ4aaIQZVGrig7c/3NUV1jANl8rFTeMg==} - material-icons@1.13.12: - resolution: {integrity: sha512-/2YoaB79IjUK2B2JB+vIXXYGtBfHb/XG66LvoKVM5ykHW7yfrV5SP6d7KLX6iijY6/G9GqwgtPQ/sbhFnOURVA==} + material-icons@1.13.13: + resolution: {integrity: sha512-jYh0VkYvsYfArOIB1LqmmoXiONBk5YaIf0f8b5pTNQdVDl4b7htoqXuQF7G03fqFQpwvv1FcMdQ1rrLWd9ftWg==} meow@13.2.0: resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} @@ -2058,8 +2068,8 @@ packages: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} - mlly@1.7.3: - resolution: {integrity: sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==} + mlly@1.7.4: + resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} mpd-parser@1.3.1: resolution: {integrity: sha512-1FuyEWI5k2HcmhS1HkKnUAQV7yFPfXPht2DnRRGtoiiAAW+ESTbtEXIDpRkwdU+XyrQuwrIym7UkoPKsZ0SyFw==} @@ -2145,6 +2155,9 @@ packages: pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + pathe@2.0.2: + resolution: {integrity: sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w==} + picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -2156,15 +2169,12 @@ packages: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} - pinia@2.2.8: - resolution: {integrity: sha512-NRTYy2g+kju5tBRe0oNlriZIbMNvma8ZJrpHsp3qudyiMEA8jMmPPKQ2QMHg0Oc4BkUyQYWagACabrwriCK9HQ==} + pinia@2.3.1: + resolution: {integrity: sha512-khUlZSwt9xXCaTbbxFYBKDc/bWAGWJjOgvxETwkTN7KRm66EeT1ZdZj6i2ceh9sP2Pzqsbc704r2yngBrxBVug==} peerDependencies: - '@vue/composition-api': ^1.4.0 - typescript: ~5.6.3 - vue: ^2.6.14 || ^3.5.11 + typescript: '>=4.4.4' + vue: ^2.7.0 || ^3.5.11 peerDependenciesMeta: - '@vue/composition-api': - optional: true typescript: optional: true @@ -2172,16 +2182,16 @@ packages: resolution: {integrity: sha512-afRERtHn54AlwaF2/+LFszyAANTCggGilmcmILUzEjvs3XgFZT+xE6+QWQcAGmu4xajy+Xtj7acLOPdx5/eXWQ==} hasBin: true - pkg-types@1.2.1: - resolution: {integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==} + pkg-types@1.3.1: + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} - playwright-core@1.49.0: - resolution: {integrity: sha512-R+3KKTQF3npy5GTiKH/T+kdhoJfJojjHESR1YEWhYuEKRVfVaxH3+4+GvXE5xyCngCxhxnykk0Vlah9v8fs3jA==} + playwright-core@1.50.0: + resolution: {integrity: sha512-CXkSSlr4JaZs2tZHI40DsZUN/NIwgaUPsyLuOAaIZp2CyF2sN5MM5NJsyB188lFSSozFxQ5fPT4qM+f0tH/6wQ==} engines: {node: '>=18'} hasBin: true - playwright@1.49.0: - resolution: {integrity: sha512-eKpmys0UFDnfNb3vfsf8Vx2LEOtflgRebl0Im2eQQnYMA4Aqd+Zw8bEOB+7ZKvN76901mRnqdsiOGKxzVTbi7A==} + playwright@1.50.0: + resolution: {integrity: sha512-+GinGfGTrd2IfX1TA4N2gNmeIksSb+IAe589ZH+FlmpV3MYTx6+buChGIuDLQwrGNCw2lWibqV50fU510N7S+w==} engines: {node: '>=18'} hasBin: true @@ -2192,8 +2202,8 @@ packages: postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.4.49: - resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} + postcss@8.5.1: + resolution: {integrity: sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==} engines: {node: ^10 || ^12 || >=14} prelude-ls@1.2.1: @@ -2204,8 +2214,8 @@ packages: resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} engines: {node: '>=6.0.0'} - prettier@3.4.1: - resolution: {integrity: sha512-G+YdqtITVZmOJje6QkXQWzl3fSfMxFwm1tjTyo9exhkmWSqC4Yhd1+lug++IlR2mvRVAxEDDWYkQdeSztajqgg==} + prettier@3.4.2: + resolution: {integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==} engines: {node: '>=14'} hasBin: true @@ -2288,13 +2298,13 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rollup@4.28.0: - resolution: {integrity: sha512-G9GOrmgWHBma4YfCcX8PjH0qhXSdH8B4HDE2o4/jaxj93S4DPCIDoLcXz99eWMji4hB29UFCEd7B2gwGJDR9cQ==} + rollup@4.32.0: + resolution: {integrity: sha512-JmrhfQR31Q4AuNBjjAX4s+a/Pu/Q8Q9iwjWBsjRH1q52SPFE2NqRMK6fUZKKnvKO6id+h7JIRf0oYsph53eATg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - rrweb-cssom@0.7.1: - resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} + rrweb-cssom@0.8.0: + resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -2393,24 +2403,24 @@ packages: tar-mini@0.2.0: resolution: {integrity: sha512-+qfUHz700DWnRutdUsxRRVZ38G1Qr27OetwaMYTdg8hcPxf46U0S1Zf76dQMWRBmusOt2ZCK5kbIaiLkoGO7WQ==} - terser@5.36.0: - resolution: {integrity: sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==} + terser@5.37.0: + resolution: {integrity: sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==} engines: {node: '>=10'} hasBin: true - tldts-core@6.1.65: - resolution: {integrity: sha512-Uq5t0N0Oj4nQSbU8wFN1YYENvMthvwU13MQrMJRspYCGLSAZjAfoBOJki5IQpnBM/WFskxxC/gIOTwaedmHaSg==} + tldts-core@6.1.74: + resolution: {integrity: sha512-gTwtY6L2GfuxiL4CWpLknv9JDYYqBvKCk/BT5uAaAvCA0s6pzX7lr2IrkQZSUlnSjRHIjTl8ZwKCVXJ7XNRWYw==} - tldts@6.1.65: - resolution: {integrity: sha512-xU9gLTfAGsADQ2PcWee6Hg8RFAv0DnjMGVJmDnUmI8a9+nYmapMQix4afwrdaCtT+AqP4MaxEzu7cCrYmBPbzQ==} + tldts@6.1.74: + resolution: {integrity: sha512-O5vTZ1UmmEmrLl/59U9igitnSMlprALLaLgbv//dEvjobPT9vyURhHXKMCDLEhn3qxZFIkb9PwAfNYV0Ol7RPQ==} hasBin: true to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - tough-cookie@5.0.0: - resolution: {integrity: sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q==} + tough-cookie@5.1.0: + resolution: {integrity: sha512-rvZUv+7MoBYTiDmFPBrhL7Ujx9Sk+q9wwm22x8c8T5IJaR+Wsyc7TNxbVxo84kZoRJZZMazowFLqpankBEQrGg==} engines: {node: '>=16'} tr46@5.0.0: @@ -2421,17 +2431,17 @@ packages: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true - ts-api-utils@1.4.3: - resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} - engines: {node: '>=16'} + ts-api-utils@2.0.0: + resolution: {integrity: sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==} + engines: {node: '>=18.12'} peerDependencies: - typescript: ~5.6.3 + typescript: '>=4.8.4' tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tus-js-client@4.2.3: - resolution: {integrity: sha512-UkQUCeDWKh5AwArcasIJWcL5EP66XPypKQtsdPu82wNnTea8eAUHdpDx3DcfZgDERAiCII895zMYkXri4M1wzw==} + tus-js-client@4.3.1: + resolution: {integrity: sha512-ZLeYmjrkaU1fUsKbIi8JML52uAocjEZtBx4DKjRrqzrZa0O4MYwT6db+oqePlspV+FxXJAyFBc/L5gwUi2OFsg==} engines: {node: '>=18'} type-check@0.4.0: @@ -2445,15 +2455,12 @@ packages: type@2.7.3: resolution: {integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==} - typescript-eslint@8.16.0: - resolution: {integrity: sha512-wDkVmlY6O2do4V+lZd0GtRfbtXbeD0q9WygwXXSJnC1xorE8eqyC2L1tJimqpSeFrOzRlYtWnUp/uzgHQOgfBQ==} + typescript-eslint@8.21.0: + resolution: {integrity: sha512-txEKYY4XMKwPXxNkN8+AxAdX6iIJAPiJbHE/FpQccs/sxw8Lf26kqwC3cn0xkHlW8kEbLhkhCsjWuMveaY9Rxw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + typescript: '>=4.8.4 <5.8.0' typescript@5.6.3: resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} @@ -2482,8 +2489,8 @@ packages: resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} engines: {node: '>=4'} - unplugin@1.16.0: - resolution: {integrity: sha512-5liCNPuJW8dqh3+DM6uNM2EI3MLLpCKp/KY+9pB5M2S2SR2qvvDHhKgBOaTWEbZTAws3CXfB0rKTIolWKL05VQ==} + unplugin@1.16.1: + resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} engines: {node: '>=14.0.0'} update-browserslist-db@1.1.1: @@ -2504,8 +2511,8 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - video.js@8.20.0: - resolution: {integrity: sha512-VyXY/DbtfaI22gpWJdo8bmTcpPRfKg0SeQJBusRdIJF1RMI+er1BHpRreg67s5Qfd9ZeSbfKShUOwaxRft/tBw==} + video.js@8.21.0: + resolution: {integrity: sha512-zcwerRb257QAuWfi8NH9yEX7vrGKFthjfcONmOQ4lxFRpDAbAi+u5LAjCjMWqhJda6zEmxkgdDpOMW3Y21QpXA==} videojs-contrib-quality-levels@4.1.0: resolution: {integrity: sha512-TfrXJJg1Bv4t6TOCMEVMwF/CoS8iENYsWNKip8zfhB5kTcegiFYezEA0eHAJPU64ZC8NQbxQgOwAsYU8VXbOWA==} @@ -2533,8 +2540,8 @@ packages: peerDependencies: vite: ^2.0.0||^3.0.0||^4.0.0||^5.0.0 ||^6.0.0 - vite@6.0.2: - resolution: {integrity: sha512-XdQ+VsY2tJpBsKGs0wf3U/+azx8BBpYRHFAyKm5VeEZNOJZRB63q7Sc8Iup3k0TrN3KO6QgyzFf+opSbfY1y0g==} + vite@6.0.11: + resolution: {integrity: sha512-4VL9mQPKoHy4+FE0NnRE/kbY51TOfaknxAjt3fJbGJxhIpBZiqVzlZDEesWWsuREXHwNdAoOFZ9MkPEVXczHwg==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -2601,8 +2608,8 @@ packages: focus-trap: '>=7.2.0' vue: '>=3.2.0' - vue-i18n@10.0.5: - resolution: {integrity: sha512-9/gmDlCblz3i8ypu/afiIc/SUIfTTE1mr0mZhb9pk70xo2csHAM9mp2gdQ3KD2O0AM3Hz/5ypb+FycTj/lHlPQ==} + vue-i18n@11.0.1: + resolution: {integrity: sha512-pWAT8CusK8q9/EpN7V3oxwHwxWm6+Kp2PeTZmRGvdZTkUzMQDpbbmHp0TwQ8xw04XKm23cr6B4GL72y3W8Yekg==} engines: {node: '>= 16'} peerDependencies: vue: ^3.0.0 @@ -2610,8 +2617,8 @@ packages: vue-lazyload@3.0.0: resolution: {integrity: sha512-h2keL/Rj550dLgesgOtXJS9qOiSMmuJNeVlfNAYV1/IYwOQYaWk5mFJlwRxmZDK9YC5gECcFLYYj7z1lKSf9ug==} - vue-reader@1.2.15: - resolution: {integrity: sha512-kkBCm0Reqi0PRLOFxsaizDTeyMZ5C3+HIaJu6dLXnGteyYOFNkhwzN0HLntzaR6rLZiuc7E9iD2304UiV/rL5Q==} + vue-reader@1.2.17: + resolution: {integrity: sha512-VeTLTiGTAywj6Ipyr8No9AR177qGYsyl5asEm0Fd7bFjL4GtGiq8PH3iH+eVJKEfw1c0+9cCyw4tyJ62qDYtqw==} peerDependencies: '@vue/composition-api': ^1.0.0-rc.1 vue: ^2.0.0 || >=3.0.0 @@ -2629,16 +2636,16 @@ packages: peerDependencies: vue: ^3.0.2 - vue-tsc@2.1.10: - resolution: {integrity: sha512-RBNSfaaRHcN5uqVqJSZh++Gy/YUzryuv9u1aFWhsammDJXNtUiJMNoJ747lZcQ68wUQFx6E73y4FY3D8E7FGMA==} + vue-tsc@2.2.0: + resolution: {integrity: sha512-gtmM1sUuJ8aSb0KoAFmK9yMxb8TxjewmxqTJ1aKphD5Cbu0rULFY6+UQT51zW7SpUcenfPUuflKyVwyx9Qdnxg==} hasBin: true peerDependencies: - typescript: ~5.6.3 + typescript: '>=5.0.0' vue@3.5.13: resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==} peerDependencies: - typescript: ~5.6.3 + typescript: '*' peerDependenciesMeta: typescript: optional: true @@ -2662,8 +2669,8 @@ packages: resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} engines: {node: '>=18'} - whatwg-url@14.0.0: - resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} + whatwg-url@14.1.0: + resolution: {integrity: sha512-jlf/foYIKywAt3x/XWKZ/3rz8OSJPiWktjmk891alJUEjiVxKX9LEO92qH3hv4aJ0mN3MWPvGMCy8jQi95xK4w==} engines: {node: '>=18'} which@2.0.2: @@ -2713,8 +2720,8 @@ packages: resolution: {integrity: sha512-4wZWvE398hCP7O8n3nXKu/vdq1HcH01ixYlCREaJL5NUMwQ0g3MaGFUBNSlmBtKmhbtVG/Cm6lyYmSVTEVil8A==} engines: {node: ^14.17.0 || >=16.0.0} - yaml@2.6.1: - resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==} + yaml@2.7.0: + resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} engines: {node: '>= 14'} hasBin: true @@ -2737,6 +2744,14 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 + '@asamuzakjp/css-color@2.8.3': + dependencies: + '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + lru-cache: 10.4.3 + '@babel/code-frame@7.26.2': dependencies: '@babel/helper-validator-identifier': 7.25.9 @@ -2907,6 +2922,10 @@ snapshots: dependencies: '@babel/types': 7.26.0 + '@babel/parser@7.26.7': + dependencies: + '@babel/types': 7.26.7 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -3371,6 +3390,10 @@ snapshots: dependencies: regenerator-runtime: 0.14.1 + '@babel/runtime@7.26.7': + dependencies: + regenerator-runtime: 0.14.1 + '@babel/template@7.25.9': dependencies: '@babel/code-frame': 7.26.2 @@ -3394,103 +3417,133 @@ snapshots: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 + '@babel/types@7.26.7': + dependencies: + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@chenfengyuan/vue-number-input@2.0.1(vue@3.5.13(typescript@5.6.3))': dependencies: vue: 3.5.13(typescript@5.6.3) - '@esbuild/aix-ppc64@0.24.0': - optional: true + '@csstools/color-helpers@5.0.1': {} - '@esbuild/android-arm64@0.24.0': - optional: true - - '@esbuild/android-arm@0.24.0': - optional: true - - '@esbuild/android-x64@0.24.0': - optional: true - - '@esbuild/darwin-arm64@0.24.0': - optional: true - - '@esbuild/darwin-x64@0.24.0': - optional: true - - '@esbuild/freebsd-arm64@0.24.0': - optional: true - - '@esbuild/freebsd-x64@0.24.0': - optional: true - - '@esbuild/linux-arm64@0.24.0': - optional: true - - '@esbuild/linux-arm@0.24.0': - optional: true - - '@esbuild/linux-ia32@0.24.0': - optional: true - - '@esbuild/linux-loong64@0.24.0': - optional: true - - '@esbuild/linux-mips64el@0.24.0': - optional: true - - '@esbuild/linux-ppc64@0.24.0': - optional: true - - '@esbuild/linux-riscv64@0.24.0': - optional: true - - '@esbuild/linux-s390x@0.24.0': - optional: true - - '@esbuild/linux-x64@0.24.0': - optional: true - - '@esbuild/netbsd-x64@0.24.0': - optional: true - - '@esbuild/openbsd-arm64@0.24.0': - optional: true - - '@esbuild/openbsd-x64@0.24.0': - optional: true - - '@esbuild/sunos-x64@0.24.0': - optional: true - - '@esbuild/win32-arm64@0.24.0': - optional: true - - '@esbuild/win32-ia32@0.24.0': - optional: true - - '@esbuild/win32-x64@0.24.0': - optional: true - - '@eslint-community/eslint-utils@4.4.1(eslint@9.16.0)': + '@csstools/css-calc@2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': dependencies: - eslint: 9.16.0 + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + + '@csstools/css-color-parser@3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': + dependencies: + '@csstools/color-helpers': 5.0.1 + '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + + '@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3)': + dependencies: + '@csstools/css-tokenizer': 3.0.3 + + '@csstools/css-tokenizer@3.0.3': {} + + '@esbuild/aix-ppc64@0.24.2': + optional: true + + '@esbuild/android-arm64@0.24.2': + optional: true + + '@esbuild/android-arm@0.24.2': + optional: true + + '@esbuild/android-x64@0.24.2': + optional: true + + '@esbuild/darwin-arm64@0.24.2': + optional: true + + '@esbuild/darwin-x64@0.24.2': + optional: true + + '@esbuild/freebsd-arm64@0.24.2': + optional: true + + '@esbuild/freebsd-x64@0.24.2': + optional: true + + '@esbuild/linux-arm64@0.24.2': + optional: true + + '@esbuild/linux-arm@0.24.2': + optional: true + + '@esbuild/linux-ia32@0.24.2': + optional: true + + '@esbuild/linux-loong64@0.24.2': + optional: true + + '@esbuild/linux-mips64el@0.24.2': + optional: true + + '@esbuild/linux-ppc64@0.24.2': + optional: true + + '@esbuild/linux-riscv64@0.24.2': + optional: true + + '@esbuild/linux-s390x@0.24.2': + optional: true + + '@esbuild/linux-x64@0.24.2': + optional: true + + '@esbuild/netbsd-arm64@0.24.2': + optional: true + + '@esbuild/netbsd-x64@0.24.2': + optional: true + + '@esbuild/openbsd-arm64@0.24.2': + optional: true + + '@esbuild/openbsd-x64@0.24.2': + optional: true + + '@esbuild/sunos-x64@0.24.2': + optional: true + + '@esbuild/win32-arm64@0.24.2': + optional: true + + '@esbuild/win32-ia32@0.24.2': + optional: true + + '@esbuild/win32-x64@0.24.2': + optional: true + + '@eslint-community/eslint-utils@4.4.1(eslint@9.19.0)': + dependencies: + eslint: 9.19.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/config-array@0.19.0': + '@eslint/config-array@0.19.1': dependencies: - '@eslint/object-schema': 2.1.4 - debug: 4.3.7 + '@eslint/object-schema': 2.1.5 + debug: 4.4.0 minimatch: 3.1.2 transitivePeerDependencies: - supports-color - '@eslint/core@0.9.0': {} + '@eslint/core@0.10.0': + dependencies: + '@types/json-schema': 7.0.15 '@eslint/eslintrc@3.2.0': dependencies: ajv: 6.12.6 - debug: 4.3.7 + debug: 4.4.0 espree: 10.3.0 globals: 14.0.0 ignore: 5.3.2 @@ -3501,12 +3554,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.16.0': {} + '@eslint/js@9.19.0': {} - '@eslint/object-schema@2.1.4': {} + '@eslint/object-schema@2.1.5': {} - '@eslint/plugin-kit@0.2.3': + '@eslint/plugin-kit@0.2.5': dependencies: + '@eslint/core': 0.10.0 levn: 0.4.1 '@humanfs/core@0.19.1': {} @@ -3522,59 +3576,59 @@ snapshots: '@humanwhocodes/retry@0.4.1': {} - '@intlify/bundle-utils@10.0.0(vue-i18n@10.0.5(vue@3.5.13(typescript@5.6.3)))': + '@intlify/bundle-utils@10.0.0(vue-i18n@11.0.1(vue@3.5.13(typescript@5.6.3)))': dependencies: - '@intlify/message-compiler': 11.0.0-beta.2 - '@intlify/shared': 11.0.0-beta.2 + '@intlify/message-compiler': 11.0.0-rc.1 + '@intlify/shared': 11.0.0-rc.1 acorn: 8.14.0 escodegen: 2.1.0 estree-walker: 2.0.2 jsonc-eslint-parser: 2.4.0 - mlly: 1.7.3 + mlly: 1.7.4 source-map-js: 1.2.1 yaml-eslint-parser: 1.2.3 optionalDependencies: - vue-i18n: 10.0.5(vue@3.5.13(typescript@5.6.3)) + vue-i18n: 11.0.1(vue@3.5.13(typescript@5.6.3)) - '@intlify/core-base@10.0.5': + '@intlify/core-base@11.0.1': dependencies: - '@intlify/message-compiler': 10.0.5 - '@intlify/shared': 10.0.5 + '@intlify/message-compiler': 11.0.1 + '@intlify/shared': 11.0.1 - '@intlify/message-compiler@10.0.5': + '@intlify/message-compiler@11.0.0-rc.1': dependencies: - '@intlify/shared': 10.0.5 + '@intlify/shared': 11.0.0-rc.1 source-map-js: 1.2.1 - '@intlify/message-compiler@11.0.0-beta.2': + '@intlify/message-compiler@11.0.1': dependencies: - '@intlify/shared': 11.0.0-beta.2 + '@intlify/shared': 11.0.1 source-map-js: 1.2.1 - '@intlify/shared@10.0.5': {} + '@intlify/shared@11.0.0-rc.1': {} - '@intlify/shared@11.0.0-beta.2': {} + '@intlify/shared@11.0.1': {} - '@intlify/unplugin-vue-i18n@6.0.0(@vue/compiler-dom@3.5.13)(eslint@9.16.0)(rollup@4.28.0)(typescript@5.6.3)(vue-i18n@10.0.5(vue@3.5.13(typescript@5.6.3)))(vue@3.5.13(typescript@5.6.3))': + '@intlify/unplugin-vue-i18n@6.0.3(@vue/compiler-dom@3.5.13)(eslint@9.19.0)(rollup@4.32.0)(typescript@5.6.3)(vue-i18n@11.0.1(vue@3.5.13(typescript@5.6.3)))(vue@3.5.13(typescript@5.6.3))': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0) - '@intlify/bundle-utils': 10.0.0(vue-i18n@10.0.5(vue@3.5.13(typescript@5.6.3))) - '@intlify/shared': 10.0.5 - '@intlify/vue-i18n-extensions': 7.0.0(@intlify/shared@10.0.5)(@vue/compiler-dom@3.5.13)(vue-i18n@10.0.5(vue@3.5.13(typescript@5.6.3)))(vue@3.5.13(typescript@5.6.3)) - '@rollup/pluginutils': 5.1.3(rollup@4.28.0) - '@typescript-eslint/scope-manager': 8.16.0 - '@typescript-eslint/typescript-estree': 8.16.0(typescript@5.6.3) - debug: 4.3.7 - fast-glob: 3.3.2 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) + '@intlify/bundle-utils': 10.0.0(vue-i18n@11.0.1(vue@3.5.13(typescript@5.6.3))) + '@intlify/shared': 11.0.1 + '@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.0.1)(@vue/compiler-dom@3.5.13)(vue-i18n@11.0.1(vue@3.5.13(typescript@5.6.3)))(vue@3.5.13(typescript@5.6.3)) + '@rollup/pluginutils': 5.1.4(rollup@4.32.0) + '@typescript-eslint/scope-manager': 8.21.0 + '@typescript-eslint/typescript-estree': 8.21.0(typescript@5.6.3) + debug: 4.4.0 + fast-glob: 3.3.3 js-yaml: 4.1.0 json5: 2.2.3 pathe: 1.1.2 picocolors: 1.1.1 source-map-js: 1.2.1 - unplugin: 1.16.0 + unplugin: 1.16.1 vue: 3.5.13(typescript@5.6.3) optionalDependencies: - vue-i18n: 10.0.5(vue@3.5.13(typescript@5.6.3)) + vue-i18n: 11.0.1(vue@3.5.13(typescript@5.6.3)) transitivePeerDependencies: - '@vue/compiler-dom' - eslint @@ -3582,14 +3636,14 @@ snapshots: - supports-color - typescript - '@intlify/vue-i18n-extensions@7.0.0(@intlify/shared@10.0.5)(@vue/compiler-dom@3.5.13)(vue-i18n@10.0.5(vue@3.5.13(typescript@5.6.3)))(vue@3.5.13(typescript@5.6.3))': + '@intlify/vue-i18n-extensions@8.0.0(@intlify/shared@11.0.1)(@vue/compiler-dom@3.5.13)(vue-i18n@11.0.1(vue@3.5.13(typescript@5.6.3)))(vue@3.5.13(typescript@5.6.3))': dependencies: - '@babel/parser': 7.26.2 + '@babel/parser': 7.26.7 optionalDependencies: - '@intlify/shared': 10.0.5 + '@intlify/shared': 11.0.1 '@vue/compiler-dom': 3.5.13 vue: 3.5.13(typescript@5.6.3) - vue-i18n: 10.0.5(vue@3.5.13(typescript@5.6.3)) + vue-i18n: 11.0.1(vue@3.5.13(typescript@5.6.3)) '@jridgewell/gen-mapping@0.3.5': dependencies: @@ -3597,13 +3651,19 @@ snapshots: '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/gen-mapping@0.3.8': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/set-array@1.2.1': {} '@jridgewell/source-map@0.3.6': dependencies: - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 '@jridgewell/sourcemap-codec@1.5.0': {} @@ -3623,74 +3683,85 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 + fastq: 1.18.0 '@pkgr/core@0.1.1': {} - '@playwright/test@1.49.0': + '@playwright/test@1.50.0': dependencies: - playwright: 1.49.0 + playwright: 1.50.0 - '@rollup/pluginutils@5.1.3(rollup@4.28.0)': + '@rollup/pluginutils@5.1.3(rollup@4.32.0)': dependencies: '@types/estree': 1.0.6 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: - rollup: 4.28.0 + rollup: 4.32.0 - '@rollup/rollup-android-arm-eabi@4.28.0': + '@rollup/pluginutils@5.1.4(rollup@4.32.0)': + dependencies: + '@types/estree': 1.0.6 + estree-walker: 2.0.2 + picomatch: 4.0.2 + optionalDependencies: + rollup: 4.32.0 + + '@rollup/rollup-android-arm-eabi@4.32.0': optional: true - '@rollup/rollup-android-arm64@4.28.0': + '@rollup/rollup-android-arm64@4.32.0': optional: true - '@rollup/rollup-darwin-arm64@4.28.0': + '@rollup/rollup-darwin-arm64@4.32.0': optional: true - '@rollup/rollup-darwin-x64@4.28.0': + '@rollup/rollup-darwin-x64@4.32.0': optional: true - '@rollup/rollup-freebsd-arm64@4.28.0': + '@rollup/rollup-freebsd-arm64@4.32.0': optional: true - '@rollup/rollup-freebsd-x64@4.28.0': + '@rollup/rollup-freebsd-x64@4.32.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.28.0': + '@rollup/rollup-linux-arm-gnueabihf@4.32.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.28.0': + '@rollup/rollup-linux-arm-musleabihf@4.32.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.28.0': + '@rollup/rollup-linux-arm64-gnu@4.32.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.28.0': + '@rollup/rollup-linux-arm64-musl@4.32.0': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.28.0': + '@rollup/rollup-linux-loongarch64-gnu@4.32.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.28.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.32.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.28.0': + '@rollup/rollup-linux-riscv64-gnu@4.32.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.28.0': + '@rollup/rollup-linux-s390x-gnu@4.32.0': optional: true - '@rollup/rollup-linux-x64-musl@4.28.0': + '@rollup/rollup-linux-x64-gnu@4.32.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.28.0': + '@rollup/rollup-linux-x64-musl@4.32.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.28.0': + '@rollup/rollup-win32-arm64-msvc@4.32.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.28.0': + '@rollup/rollup-win32-ia32-msvc@4.32.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.32.0': optional: true '@tsconfig/node22@22.0.0': {} @@ -3709,214 +3780,140 @@ snapshots: '@types/lodash@4.17.13': {} - '@types/node@22.10.1': + '@types/node@22.10.10': dependencies: undici-types: 6.20.0 '@types/web-bluetooth@0.0.20': {} - '@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0)(typescript@5.6.3))(eslint@9.16.0)(typescript@5.6.3)': + '@typescript-eslint/eslint-plugin@8.21.0(@typescript-eslint/parser@8.21.0(eslint@9.19.0)(typescript@5.6.3))(eslint@9.19.0)(typescript@5.6.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.16.0(eslint@9.16.0)(typescript@5.6.3) - '@typescript-eslint/scope-manager': 8.16.0 - '@typescript-eslint/type-utils': 8.16.0(eslint@9.16.0)(typescript@5.6.3) - '@typescript-eslint/utils': 8.16.0(eslint@9.16.0)(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.16.0 - eslint: 9.16.0 + '@typescript-eslint/parser': 8.21.0(eslint@9.19.0)(typescript@5.6.3) + '@typescript-eslint/scope-manager': 8.21.0 + '@typescript-eslint/type-utils': 8.21.0(eslint@9.19.0)(typescript@5.6.3) + '@typescript-eslint/utils': 8.21.0(eslint@9.19.0)(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.21.0 + eslint: 9.19.0 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 1.4.3(typescript@5.6.3) - optionalDependencies: + ts-api-utils: 2.0.0(typescript@5.6.3) typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.17.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0)(typescript@5.6.3))(eslint@9.16.0)(typescript@5.6.3)': + '@typescript-eslint/parser@8.21.0(eslint@9.19.0)(typescript@5.6.3)': dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.16.0(eslint@9.16.0)(typescript@5.6.3) - '@typescript-eslint/scope-manager': 8.17.0 - '@typescript-eslint/type-utils': 8.17.0(eslint@9.16.0)(typescript@5.6.3) - '@typescript-eslint/utils': 8.17.0(eslint@9.16.0)(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.17.0 - eslint: 9.16.0 - graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare: 1.4.0 - ts-api-utils: 1.4.3(typescript@5.6.3) - optionalDependencies: + '@typescript-eslint/scope-manager': 8.21.0 + '@typescript-eslint/types': 8.21.0 + '@typescript-eslint/typescript-estree': 8.21.0(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.21.0 + debug: 4.4.0 + eslint: 9.19.0 typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.16.0(eslint@9.16.0)(typescript@5.6.3)': + '@typescript-eslint/scope-manager@8.21.0': dependencies: - '@typescript-eslint/scope-manager': 8.16.0 - '@typescript-eslint/types': 8.16.0 - '@typescript-eslint/typescript-estree': 8.16.0(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.16.0 - debug: 4.3.7 - eslint: 9.16.0 - optionalDependencies: + '@typescript-eslint/types': 8.21.0 + '@typescript-eslint/visitor-keys': 8.21.0 + + '@typescript-eslint/type-utils@8.21.0(eslint@9.19.0)(typescript@5.6.3)': + dependencies: + '@typescript-eslint/typescript-estree': 8.21.0(typescript@5.6.3) + '@typescript-eslint/utils': 8.21.0(eslint@9.19.0)(typescript@5.6.3) + debug: 4.4.0 + eslint: 9.19.0 + ts-api-utils: 2.0.0(typescript@5.6.3) typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.16.0': + '@typescript-eslint/types@8.21.0': {} + + '@typescript-eslint/typescript-estree@8.21.0(typescript@5.6.3)': dependencies: - '@typescript-eslint/types': 8.16.0 - '@typescript-eslint/visitor-keys': 8.16.0 - - '@typescript-eslint/scope-manager@8.17.0': - dependencies: - '@typescript-eslint/types': 8.17.0 - '@typescript-eslint/visitor-keys': 8.17.0 - - '@typescript-eslint/type-utils@8.16.0(eslint@9.16.0)(typescript@5.6.3)': - dependencies: - '@typescript-eslint/typescript-estree': 8.16.0(typescript@5.6.3) - '@typescript-eslint/utils': 8.16.0(eslint@9.16.0)(typescript@5.6.3) - debug: 4.3.7 - eslint: 9.16.0 - ts-api-utils: 1.4.3(typescript@5.6.3) - optionalDependencies: - typescript: 5.6.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/type-utils@8.17.0(eslint@9.16.0)(typescript@5.6.3)': - dependencies: - '@typescript-eslint/typescript-estree': 8.17.0(typescript@5.6.3) - '@typescript-eslint/utils': 8.17.0(eslint@9.16.0)(typescript@5.6.3) - debug: 4.3.7 - eslint: 9.16.0 - ts-api-utils: 1.4.3(typescript@5.6.3) - optionalDependencies: - typescript: 5.6.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@8.16.0': {} - - '@typescript-eslint/types@8.17.0': {} - - '@typescript-eslint/typescript-estree@8.16.0(typescript@5.6.3)': - dependencies: - '@typescript-eslint/types': 8.16.0 - '@typescript-eslint/visitor-keys': 8.16.0 - debug: 4.3.7 - fast-glob: 3.3.2 + '@typescript-eslint/types': 8.21.0 + '@typescript-eslint/visitor-keys': 8.21.0 + debug: 4.4.0 + fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 - ts-api-utils: 1.4.3(typescript@5.6.3) - optionalDependencies: + ts-api-utils: 2.0.0(typescript@5.6.3) typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.17.0(typescript@5.6.3)': + '@typescript-eslint/utils@8.21.0(eslint@9.19.0)(typescript@5.6.3)': dependencies: - '@typescript-eslint/types': 8.17.0 - '@typescript-eslint/visitor-keys': 8.17.0 - debug: 4.3.7 - fast-glob: 3.3.2 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.6.3 - ts-api-utils: 1.4.3(typescript@5.6.3) - optionalDependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) + '@typescript-eslint/scope-manager': 8.21.0 + '@typescript-eslint/types': 8.21.0 + '@typescript-eslint/typescript-estree': 8.21.0(typescript@5.6.3) + eslint: 9.19.0 typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.16.0(eslint@9.16.0)(typescript@5.6.3)': + '@typescript-eslint/visitor-keys@8.21.0': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0) - '@typescript-eslint/scope-manager': 8.16.0 - '@typescript-eslint/types': 8.16.0 - '@typescript-eslint/typescript-estree': 8.16.0(typescript@5.6.3) - eslint: 9.16.0 - optionalDependencies: - typescript: 5.6.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.17.0(eslint@9.16.0)(typescript@5.6.3)': - dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0) - '@typescript-eslint/scope-manager': 8.17.0 - '@typescript-eslint/types': 8.17.0 - '@typescript-eslint/typescript-estree': 8.17.0(typescript@5.6.3) - eslint: 9.16.0 - optionalDependencies: - typescript: 5.6.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/visitor-keys@8.16.0': - dependencies: - '@typescript-eslint/types': 8.16.0 + '@typescript-eslint/types': 8.21.0 eslint-visitor-keys: 4.2.0 - '@typescript-eslint/visitor-keys@8.17.0': + '@videojs/http-streaming@3.16.2(video.js@8.21.0)': dependencies: - '@typescript-eslint/types': 8.17.0 - eslint-visitor-keys: 4.2.0 - - '@videojs/http-streaming@3.16.1(video.js@8.20.0)': - dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.7 '@videojs/vhs-utils': 4.1.1 aes-decrypter: 4.0.2 global: 4.4.0 m3u8-parser: 7.2.0 mpd-parser: 1.3.1 mux.js: 7.1.0 - video.js: 8.20.0 + video.js: 8.21.0 '@videojs/vhs-utils@4.1.1': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.7 global: 4.4.0 '@videojs/xhr@2.7.0': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.7 global: 4.4.0 is-function: 1.0.2 - '@vitejs/plugin-legacy@6.0.0(terser@5.36.0)(vite@6.0.2(@types/node@22.10.1)(terser@5.36.0)(yaml@2.6.1))': + '@vitejs/plugin-legacy@6.0.0(terser@5.37.0)(vite@6.0.11(@types/node@22.10.10)(terser@5.37.0)(yaml@2.7.0))': dependencies: '@babel/core': 7.26.0 '@babel/preset-env': 7.26.0(@babel/core@7.26.0) browserslist: 4.24.2 browserslist-to-esbuild: 2.1.1(browserslist@4.24.2) - core-js: 3.39.0 + core-js: 3.40.0 magic-string: 0.30.14 regenerator-runtime: 0.14.1 systemjs: 6.15.1 - terser: 5.36.0 - vite: 6.0.2(@types/node@22.10.1)(terser@5.36.0)(yaml@2.6.1) + terser: 5.37.0 + vite: 6.0.11(@types/node@22.10.10)(terser@5.37.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.2.1(vite@6.0.2(@types/node@22.10.1)(terser@5.36.0)(yaml@2.6.1))(vue@3.5.13(typescript@5.6.3))': + '@vitejs/plugin-vue@5.2.1(vite@6.0.11(@types/node@22.10.10)(terser@5.37.0)(yaml@2.7.0))(vue@3.5.13(typescript@5.6.3))': dependencies: - vite: 6.0.2(@types/node@22.10.1)(terser@5.36.0)(yaml@2.6.1) + vite: 6.0.11(@types/node@22.10.10)(terser@5.37.0)(yaml@2.7.0) vue: 3.5.13(typescript@5.6.3) - '@volar/language-core@2.4.10': + '@volar/language-core@2.4.11': dependencies: - '@volar/source-map': 2.4.10 + '@volar/source-map': 2.4.11 - '@volar/source-map@2.4.10': {} + '@volar/source-map@2.4.11': {} - '@volar/typescript@2.4.10': + '@volar/typescript@2.4.11': dependencies: - '@volar/language-core': 2.4.10 + '@volar/language-core': 2.4.11 path-browserify: 1.0.1 vscode-uri: 3.0.8 @@ -3942,7 +3939,7 @@ snapshots: '@vue/shared': 3.5.13 estree-walker: 2.0.2 magic-string: 0.30.14 - postcss: 8.4.49 + postcss: 8.5.1 source-map-js: 1.2.1 '@vue/compiler-ssr@3.5.13': @@ -3957,36 +3954,35 @@ snapshots: '@vue/devtools-api@6.6.4': {} - '@vue/eslint-config-prettier@10.1.0(eslint@9.16.0)(prettier@3.4.1)': + '@vue/eslint-config-prettier@10.2.0(eslint@9.19.0)(prettier@3.4.2)': dependencies: - eslint: 9.16.0 - eslint-config-prettier: 9.1.0(eslint@9.16.0) - eslint-plugin-prettier: 5.2.1(eslint-config-prettier@9.1.0(eslint@9.16.0))(eslint@9.16.0)(prettier@3.4.1) - prettier: 3.4.1 + eslint: 9.19.0 + eslint-config-prettier: 10.0.1(eslint@9.19.0) + eslint-plugin-prettier: 5.2.3(eslint-config-prettier@10.0.1(eslint@9.19.0))(eslint@9.19.0)(prettier@3.4.2) + prettier: 3.4.2 transitivePeerDependencies: - '@types/eslint' - '@vue/eslint-config-typescript@14.1.4(@typescript-eslint/parser@8.16.0(eslint@9.16.0)(typescript@5.6.3))(eslint-plugin-vue@9.32.0(eslint@9.16.0))(eslint@9.16.0)(typescript@5.6.3)': + '@vue/eslint-config-typescript@14.3.0(eslint-plugin-vue@9.32.0(eslint@9.19.0))(eslint@9.19.0)(typescript@5.6.3)': dependencies: - '@typescript-eslint/eslint-plugin': 8.17.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0)(typescript@5.6.3))(eslint@9.16.0)(typescript@5.6.3) - eslint: 9.16.0 - eslint-plugin-vue: 9.32.0(eslint@9.16.0) - fast-glob: 3.3.2 - typescript-eslint: 8.16.0(eslint@9.16.0)(typescript@5.6.3) - vue-eslint-parser: 9.4.3(eslint@9.16.0) + '@typescript-eslint/utils': 8.21.0(eslint@9.19.0)(typescript@5.6.3) + eslint: 9.19.0 + eslint-plugin-vue: 9.32.0(eslint@9.19.0) + fast-glob: 3.3.3 + typescript-eslint: 8.21.0(eslint@9.19.0)(typescript@5.6.3) + vue-eslint-parser: 9.4.3(eslint@9.19.0) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - - '@typescript-eslint/parser' - supports-color - '@vue/language-core@2.1.10(typescript@5.6.3)': + '@vue/language-core@2.2.0(typescript@5.6.3)': dependencies: - '@volar/language-core': 2.4.10 + '@volar/language-core': 2.4.11 '@vue/compiler-dom': 3.5.13 '@vue/compiler-vue2': 2.7.16 '@vue/shared': 3.5.13 - alien-signals: 0.2.2 + alien-signals: 0.4.14 minimatch: 9.0.5 muggle-string: 0.4.1 path-browserify: 1.0.1 @@ -4022,19 +4018,19 @@ snapshots: typescript: 5.6.3 vue: 3.5.13(typescript@5.6.3) - '@vueuse/core@12.0.0(typescript@5.6.3)': + '@vueuse/core@12.5.0(typescript@5.6.3)': dependencies: '@types/web-bluetooth': 0.0.20 - '@vueuse/metadata': 12.0.0 - '@vueuse/shared': 12.0.0(typescript@5.6.3) + '@vueuse/metadata': 12.5.0 + '@vueuse/shared': 12.5.0(typescript@5.6.3) vue: 3.5.13(typescript@5.6.3) transitivePeerDependencies: - typescript - '@vueuse/integrations@12.0.0(focus-trap@7.6.2)(jwt-decode@4.0.0)(typescript@5.6.3)': + '@vueuse/integrations@12.5.0(focus-trap@7.6.2)(jwt-decode@4.0.0)(typescript@5.6.3)': dependencies: - '@vueuse/core': 12.0.0(typescript@5.6.3) - '@vueuse/shared': 12.0.0(typescript@5.6.3) + '@vueuse/core': 12.5.0(typescript@5.6.3) + '@vueuse/shared': 12.5.0(typescript@5.6.3) vue: 3.5.13(typescript@5.6.3) optionalDependencies: focus-trap: 7.6.2 @@ -4042,9 +4038,9 @@ snapshots: transitivePeerDependencies: - typescript - '@vueuse/metadata@12.0.0': {} + '@vueuse/metadata@12.5.0': {} - '@vueuse/shared@12.0.0(typescript@5.6.3)': + '@vueuse/shared@12.5.0(typescript@5.6.3)': dependencies: vue: 3.5.13(typescript@5.6.3) transitivePeerDependencies: @@ -4054,7 +4050,7 @@ snapshots: '@xmldom/xmldom@0.8.10': {} - ace-builds@1.36.5: {} + ace-builds@1.37.5: {} acorn-jsx@5.3.2(acorn@8.14.0): dependencies: @@ -4064,16 +4060,12 @@ snapshots: aes-decrypter@4.0.2: dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.7 '@videojs/vhs-utils': 4.1.1 global: 4.4.0 pkcs7: 1.0.4 - agent-base@7.1.1: - dependencies: - debug: 4.3.7 - transitivePeerDependencies: - - supports-color + agent-base@7.1.3: {} ajv@6.12.6: dependencies: @@ -4082,7 +4074,7 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - alien-signals@0.2.2: {} + alien-signals@0.4.14: {} ansi-regex@5.0.1: {} @@ -4094,14 +4086,14 @@ snapshots: asynckit@0.4.0: {} - autoprefixer@10.4.20(postcss@8.4.49): + autoprefixer@10.4.20(postcss@8.5.1): dependencies: browserslist: 4.24.2 caniuse-lite: 1.0.30001685 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 - postcss: 8.4.49 + postcss: 8.5.1 postcss-value-parser: 4.2.0 babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.26.0): @@ -4193,7 +4185,7 @@ snapshots: concat-map@0.0.1: {} - concurrently@9.1.0: + concurrently@9.1.2: dependencies: chalk: 4.1.2 lodash: 4.17.21 @@ -4211,7 +4203,7 @@ snapshots: dependencies: browserslist: 4.24.2 - core-js@3.39.0: {} + core-js@3.40.0: {} core-util-is@1.0.3: {} @@ -4223,9 +4215,10 @@ snapshots: cssesc@3.0.0: {} - cssstyle@4.1.0: + cssstyle@4.2.1: dependencies: - rrweb-cssom: 0.7.1 + '@asamuzakjp/css-color': 2.8.3 + rrweb-cssom: 0.8.0 csstype@3.1.3: {} @@ -4239,7 +4232,7 @@ snapshots: data-urls@5.0.0: dependencies: whatwg-mimetype: 4.0.0 - whatwg-url: 14.0.0 + whatwg-url: 14.1.0 dayjs@1.11.13: {} @@ -4249,7 +4242,11 @@ snapshots: dependencies: ms: 2.1.3 - decimal.js@10.4.3: {} + debug@4.4.0: + dependencies: + ms: 2.1.3 + + decimal.js@10.5.0: {} deep-is@0.1.4: {} @@ -4267,7 +4264,7 @@ snapshots: dependencies: '@types/localforage': 0.0.34 '@xmldom/xmldom': 0.7.13 - core-js: 3.39.0 + core-js: 3.40.0 event-emitter: 0.3.5 jszip: 3.10.1 localforage: 1.10.0 @@ -4293,32 +4290,33 @@ snapshots: d: 1.0.2 ext: 1.7.0 - esbuild@0.24.0: + esbuild@0.24.2: optionalDependencies: - '@esbuild/aix-ppc64': 0.24.0 - '@esbuild/android-arm': 0.24.0 - '@esbuild/android-arm64': 0.24.0 - '@esbuild/android-x64': 0.24.0 - '@esbuild/darwin-arm64': 0.24.0 - '@esbuild/darwin-x64': 0.24.0 - '@esbuild/freebsd-arm64': 0.24.0 - '@esbuild/freebsd-x64': 0.24.0 - '@esbuild/linux-arm': 0.24.0 - '@esbuild/linux-arm64': 0.24.0 - '@esbuild/linux-ia32': 0.24.0 - '@esbuild/linux-loong64': 0.24.0 - '@esbuild/linux-mips64el': 0.24.0 - '@esbuild/linux-ppc64': 0.24.0 - '@esbuild/linux-riscv64': 0.24.0 - '@esbuild/linux-s390x': 0.24.0 - '@esbuild/linux-x64': 0.24.0 - '@esbuild/netbsd-x64': 0.24.0 - '@esbuild/openbsd-arm64': 0.24.0 - '@esbuild/openbsd-x64': 0.24.0 - '@esbuild/sunos-x64': 0.24.0 - '@esbuild/win32-arm64': 0.24.0 - '@esbuild/win32-ia32': 0.24.0 - '@esbuild/win32-x64': 0.24.0 + '@esbuild/aix-ppc64': 0.24.2 + '@esbuild/android-arm': 0.24.2 + '@esbuild/android-arm64': 0.24.2 + '@esbuild/android-x64': 0.24.2 + '@esbuild/darwin-arm64': 0.24.2 + '@esbuild/darwin-x64': 0.24.2 + '@esbuild/freebsd-arm64': 0.24.2 + '@esbuild/freebsd-x64': 0.24.2 + '@esbuild/linux-arm': 0.24.2 + '@esbuild/linux-arm64': 0.24.2 + '@esbuild/linux-ia32': 0.24.2 + '@esbuild/linux-loong64': 0.24.2 + '@esbuild/linux-mips64el': 0.24.2 + '@esbuild/linux-ppc64': 0.24.2 + '@esbuild/linux-riscv64': 0.24.2 + '@esbuild/linux-s390x': 0.24.2 + '@esbuild/linux-x64': 0.24.2 + '@esbuild/netbsd-arm64': 0.24.2 + '@esbuild/netbsd-x64': 0.24.2 + '@esbuild/openbsd-arm64': 0.24.2 + '@esbuild/openbsd-x64': 0.24.2 + '@esbuild/sunos-x64': 0.24.2 + '@esbuild/win32-arm64': 0.24.2 + '@esbuild/win32-ia32': 0.24.2 + '@esbuild/win32-x64': 0.24.2 escalade@3.2.0: {} @@ -4332,29 +4330,29 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-prettier@9.1.0(eslint@9.16.0): + eslint-config-prettier@10.0.1(eslint@9.19.0): dependencies: - eslint: 9.16.0 + eslint: 9.19.0 - eslint-plugin-prettier@5.2.1(eslint-config-prettier@9.1.0(eslint@9.16.0))(eslint@9.16.0)(prettier@3.4.1): + eslint-plugin-prettier@5.2.3(eslint-config-prettier@10.0.1(eslint@9.19.0))(eslint@9.19.0)(prettier@3.4.2): dependencies: - eslint: 9.16.0 - prettier: 3.4.1 + eslint: 9.19.0 + prettier: 3.4.2 prettier-linter-helpers: 1.0.0 synckit: 0.9.2 optionalDependencies: - eslint-config-prettier: 9.1.0(eslint@9.16.0) + eslint-config-prettier: 10.0.1(eslint@9.19.0) - eslint-plugin-vue@9.32.0(eslint@9.16.0): + eslint-plugin-vue@9.32.0(eslint@9.19.0): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0) - eslint: 9.16.0 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) + eslint: 9.19.0 globals: 13.24.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.1.2 semver: 7.6.3 - vue-eslint-parser: 9.4.3(eslint@9.16.0) + vue-eslint-parser: 9.4.3(eslint@9.19.0) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color @@ -4373,15 +4371,15 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.16.0: + eslint@9.19.0: dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.19.0 - '@eslint/core': 0.9.0 + '@eslint/config-array': 0.19.1 + '@eslint/core': 0.10.0 '@eslint/eslintrc': 3.2.0 - '@eslint/js': 9.16.0 - '@eslint/plugin-kit': 0.2.3 + '@eslint/js': 9.19.0 + '@eslint/plugin-kit': 0.2.5 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.1 @@ -4390,7 +4388,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.3.7 + debug: 4.4.0 escape-string-regexp: 4.0.0 eslint-scope: 8.2.0 eslint-visitor-keys: 4.2.0 @@ -4460,7 +4458,7 @@ snapshots: fast-diff@1.3.0: {} - fast-glob@3.3.2: + fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 @@ -4472,7 +4470,7 @@ snapshots: fast-levenshtein@2.0.6: {} - fastq@1.17.1: + fastq@1.18.0: dependencies: reusify: 1.0.4 @@ -4561,15 +4559,15 @@ snapshots: http-proxy-agent@7.0.2: dependencies: - agent-base: 7.1.1 - debug: 4.3.7 + agent-base: 7.1.3 + debug: 4.4.0 transitivePeerDependencies: - supports-color - https-proxy-agent@7.0.5: + https-proxy-agent@7.0.6: dependencies: - agent-base: 7.1.1 - debug: 4.3.7 + agent-base: 7.1.3 + debug: 4.4.0 transitivePeerDependencies: - supports-color @@ -4622,27 +4620,27 @@ snapshots: dependencies: argparse: 2.0.1 - jsdom@25.0.1: + jsdom@26.0.0: dependencies: - cssstyle: 4.1.0 + cssstyle: 4.2.1 data-urls: 5.0.0 - decimal.js: 10.4.3 + decimal.js: 10.5.0 form-data: 4.0.1 html-encoding-sniffer: 4.0.0 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.5 + https-proxy-agent: 7.0.6 is-potential-custom-element-name: 1.0.1 nwsapi: 2.2.16 parse5: 7.2.1 - rrweb-cssom: 0.7.1 + rrweb-cssom: 0.8.0 saxes: 6.0.0 symbol-tree: 3.2.4 - tough-cookie: 5.0.0 + tough-cookie: 5.1.0 w3c-xmlserializer: 5.0.0 webidl-conversions: 7.0.0 whatwg-encoding: 3.1.1 whatwg-mimetype: 4.0.0 - whatwg-url: 14.0.0 + whatwg-url: 14.1.0 ws: 8.18.0 xml-name-validator: 5.0.0 transitivePeerDependencies: @@ -4735,13 +4733,15 @@ snapshots: lodash@4.17.21: {} + lru-cache@10.4.3: {} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 m3u8-parser@7.2.0: dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.7 '@videojs/vhs-utils': 4.1.1 global: 4.4.0 @@ -4749,11 +4749,11 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 - marked@15.0.3: {} + marked@15.0.6: {} marks-pane@1.0.9: {} - material-icons@1.13.12: {} + material-icons@1.13.13: {} meow@13.2.0: {} @@ -4782,16 +4782,16 @@ snapshots: dependencies: brace-expansion: 2.0.1 - mlly@1.7.3: + mlly@1.7.4: dependencies: acorn: 8.14.0 - pathe: 1.1.2 - pkg-types: 1.2.1 + pathe: 2.0.2 + pkg-types: 1.3.1 ufo: 1.5.4 mpd-parser@1.3.1: dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.7 '@videojs/vhs-utils': 4.1.1 '@xmldom/xmldom': 0.8.10 global: 4.4.0 @@ -4802,7 +4802,7 @@ snapshots: mux.js@7.1.0: dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.7 global: 4.4.0 nanoid@3.3.8: {} @@ -4862,35 +4862,39 @@ snapshots: pathe@1.1.2: {} + pathe@2.0.2: {} + picocolors@1.1.1: {} picomatch@2.3.1: {} picomatch@4.0.2: {} - pinia@2.2.8(typescript@5.6.3)(vue@3.5.13(typescript@5.6.3)): + pinia@2.3.1(typescript@5.6.3)(vue@3.5.13(typescript@5.6.3)): dependencies: '@vue/devtools-api': 6.6.4 vue: 3.5.13(typescript@5.6.3) vue-demi: 0.14.10(vue@3.5.13(typescript@5.6.3)) optionalDependencies: typescript: 5.6.3 + transitivePeerDependencies: + - '@vue/composition-api' pkcs7@1.0.4: dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.26.7 - pkg-types@1.2.1: + pkg-types@1.3.1: dependencies: confbox: 0.1.8 - mlly: 1.7.3 - pathe: 1.1.2 + mlly: 1.7.4 + pathe: 2.0.2 - playwright-core@1.49.0: {} + playwright-core@1.50.0: {} - playwright@1.49.0: + playwright@1.50.0: dependencies: - playwright-core: 1.49.0 + playwright-core: 1.50.0 optionalDependencies: fsevents: 2.3.2 @@ -4901,7 +4905,7 @@ snapshots: postcss-value-parser@4.2.0: {} - postcss@8.4.49: + postcss@8.5.1: dependencies: nanoid: 3.3.8 picocolors: 1.1.1 @@ -4913,7 +4917,7 @@ snapshots: dependencies: fast-diff: 1.3.0 - prettier@3.4.1: {} + prettier@3.4.2: {} pretty-bytes@6.1.1: {} @@ -4990,31 +4994,32 @@ snapshots: reusify@1.0.4: {} - rollup@4.28.0: + rollup@4.32.0: dependencies: '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.28.0 - '@rollup/rollup-android-arm64': 4.28.0 - '@rollup/rollup-darwin-arm64': 4.28.0 - '@rollup/rollup-darwin-x64': 4.28.0 - '@rollup/rollup-freebsd-arm64': 4.28.0 - '@rollup/rollup-freebsd-x64': 4.28.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.28.0 - '@rollup/rollup-linux-arm-musleabihf': 4.28.0 - '@rollup/rollup-linux-arm64-gnu': 4.28.0 - '@rollup/rollup-linux-arm64-musl': 4.28.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.28.0 - '@rollup/rollup-linux-riscv64-gnu': 4.28.0 - '@rollup/rollup-linux-s390x-gnu': 4.28.0 - '@rollup/rollup-linux-x64-gnu': 4.28.0 - '@rollup/rollup-linux-x64-musl': 4.28.0 - '@rollup/rollup-win32-arm64-msvc': 4.28.0 - '@rollup/rollup-win32-ia32-msvc': 4.28.0 - '@rollup/rollup-win32-x64-msvc': 4.28.0 + '@rollup/rollup-android-arm-eabi': 4.32.0 + '@rollup/rollup-android-arm64': 4.32.0 + '@rollup/rollup-darwin-arm64': 4.32.0 + '@rollup/rollup-darwin-x64': 4.32.0 + '@rollup/rollup-freebsd-arm64': 4.32.0 + '@rollup/rollup-freebsd-x64': 4.32.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.32.0 + '@rollup/rollup-linux-arm-musleabihf': 4.32.0 + '@rollup/rollup-linux-arm64-gnu': 4.32.0 + '@rollup/rollup-linux-arm64-musl': 4.32.0 + '@rollup/rollup-linux-loongarch64-gnu': 4.32.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.32.0 + '@rollup/rollup-linux-riscv64-gnu': 4.32.0 + '@rollup/rollup-linux-s390x-gnu': 4.32.0 + '@rollup/rollup-linux-x64-gnu': 4.32.0 + '@rollup/rollup-linux-x64-musl': 4.32.0 + '@rollup/rollup-win32-arm64-msvc': 4.32.0 + '@rollup/rollup-win32-ia32-msvc': 4.32.0 + '@rollup/rollup-win32-x64-msvc': 4.32.0 fsevents: 2.3.3 - rrweb-cssom@0.7.1: {} + rrweb-cssom@0.8.0: {} run-parallel@1.2.0: dependencies: @@ -5096,26 +5101,26 @@ snapshots: tar-mini@0.2.0: {} - terser@5.36.0: + terser@5.37.0: dependencies: '@jridgewell/source-map': 0.3.6 acorn: 8.14.0 commander: 2.20.3 source-map-support: 0.5.21 - tldts-core@6.1.65: {} + tldts-core@6.1.74: {} - tldts@6.1.65: + tldts@6.1.74: dependencies: - tldts-core: 6.1.65 + tldts-core: 6.1.74 to-regex-range@5.0.1: dependencies: is-number: 7.0.0 - tough-cookie@5.0.0: + tough-cookie@5.1.0: dependencies: - tldts: 6.1.65 + tldts: 6.1.74 tr46@5.0.0: dependencies: @@ -5123,13 +5128,13 @@ snapshots: tree-kill@1.2.2: {} - ts-api-utils@1.4.3(typescript@5.6.3): + ts-api-utils@2.0.0(typescript@5.6.3): dependencies: typescript: 5.6.3 tslib@2.8.1: {} - tus-js-client@4.2.3: + tus-js-client@4.3.1: dependencies: buffer-from: 1.1.2 combine-errors: 3.0.3 @@ -5147,13 +5152,12 @@ snapshots: type@2.7.3: {} - typescript-eslint@8.16.0(eslint@9.16.0)(typescript@5.6.3): + typescript-eslint@8.21.0(eslint@9.19.0)(typescript@5.6.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0)(typescript@5.6.3))(eslint@9.16.0)(typescript@5.6.3) - '@typescript-eslint/parser': 8.16.0(eslint@9.16.0)(typescript@5.6.3) - '@typescript-eslint/utils': 8.16.0(eslint@9.16.0)(typescript@5.6.3) - eslint: 9.16.0 - optionalDependencies: + '@typescript-eslint/eslint-plugin': 8.21.0(@typescript-eslint/parser@8.21.0(eslint@9.19.0)(typescript@5.6.3))(eslint@9.19.0)(typescript@5.6.3) + '@typescript-eslint/parser': 8.21.0(eslint@9.19.0)(typescript@5.6.3) + '@typescript-eslint/utils': 8.21.0(eslint@9.19.0)(typescript@5.6.3) + eslint: 9.19.0 typescript: 5.6.3 transitivePeerDependencies: - supports-color @@ -5175,7 +5179,7 @@ snapshots: unicode-property-aliases-ecmascript@2.1.0: {} - unplugin@1.16.0: + unplugin@1.16.1: dependencies: acorn: 8.14.0 webpack-virtual-modules: 0.6.2 @@ -5201,10 +5205,10 @@ snapshots: util-deprecate@1.0.2: {} - video.js@8.20.0: + video.js@8.21.0: dependencies: - '@babel/runtime': 7.26.0 - '@videojs/http-streaming': 3.16.1(video.js@8.20.0) + '@babel/runtime': 7.26.7 + '@videojs/http-streaming': 3.16.2(video.js@8.21.0) '@videojs/vhs-utils': 4.1.1 '@videojs/xhr': 2.7.0 aes-decrypter: 4.0.2 @@ -5212,46 +5216,46 @@ snapshots: m3u8-parser: 7.2.0 mpd-parser: 1.3.1 mux.js: 7.1.0 - videojs-contrib-quality-levels: 4.1.0(video.js@8.20.0) + videojs-contrib-quality-levels: 4.1.0(video.js@8.21.0) videojs-font: 4.2.0 videojs-vtt.js: 0.15.5 - videojs-contrib-quality-levels@4.1.0(video.js@8.20.0): + videojs-contrib-quality-levels@4.1.0(video.js@8.21.0): dependencies: global: 4.4.0 - video.js: 8.20.0 + video.js: 8.21.0 videojs-font@4.2.0: {} videojs-hotkeys@0.2.30: {} - videojs-mobile-ui@1.1.1(video.js@8.20.0): + videojs-mobile-ui@1.1.1(video.js@8.21.0): dependencies: global: 4.4.0 - video.js: 8.20.0 + video.js: 8.21.0 videojs-vtt.js@0.15.5: dependencies: global: 4.4.0 - vite-plugin-compression2@1.3.3(rollup@4.28.0)(vite@6.0.2(@types/node@22.10.1)(terser@5.36.0)(yaml@2.6.1)): + vite-plugin-compression2@1.3.3(rollup@4.32.0)(vite@6.0.11(@types/node@22.10.10)(terser@5.37.0)(yaml@2.7.0)): dependencies: - '@rollup/pluginutils': 5.1.3(rollup@4.28.0) + '@rollup/pluginutils': 5.1.3(rollup@4.32.0) tar-mini: 0.2.0 - vite: 6.0.2(@types/node@22.10.1)(terser@5.36.0)(yaml@2.6.1) + vite: 6.0.11(@types/node@22.10.10)(terser@5.37.0)(yaml@2.7.0) transitivePeerDependencies: - rollup - vite@6.0.2(@types/node@22.10.1)(terser@5.36.0)(yaml@2.6.1): + vite@6.0.11(@types/node@22.10.10)(terser@5.37.0)(yaml@2.7.0): dependencies: - esbuild: 0.24.0 - postcss: 8.4.49 - rollup: 4.28.0 + esbuild: 0.24.2 + postcss: 8.5.1 + rollup: 4.32.0 optionalDependencies: - '@types/node': 22.10.1 + '@types/node': 22.10.10 fsevents: 2.3.3 - terser: 5.36.0 - yaml: 2.6.1 + terser: 5.37.0 + yaml: 2.7.0 vscode-uri@3.0.8: {} @@ -5259,10 +5263,10 @@ snapshots: dependencies: vue: 3.5.13(typescript@5.6.3) - vue-eslint-parser@9.4.3(eslint@9.16.0): + vue-eslint-parser@9.4.3(eslint@9.19.0): dependencies: debug: 4.3.7 - eslint: 9.16.0 + eslint: 9.19.0 eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 @@ -5272,23 +5276,23 @@ snapshots: transitivePeerDependencies: - supports-color - vue-final-modal@4.5.5(@vueuse/core@12.0.0(typescript@5.6.3))(@vueuse/integrations@12.0.0(focus-trap@7.6.2)(jwt-decode@4.0.0)(typescript@5.6.3))(focus-trap@7.6.2)(vue@3.5.13(typescript@5.6.3)): + vue-final-modal@4.5.5(@vueuse/core@12.5.0(typescript@5.6.3))(@vueuse/integrations@12.5.0(focus-trap@7.6.2)(jwt-decode@4.0.0)(typescript@5.6.3))(focus-trap@7.6.2)(vue@3.5.13(typescript@5.6.3)): dependencies: - '@vueuse/core': 12.0.0(typescript@5.6.3) - '@vueuse/integrations': 12.0.0(focus-trap@7.6.2)(jwt-decode@4.0.0)(typescript@5.6.3) + '@vueuse/core': 12.5.0(typescript@5.6.3) + '@vueuse/integrations': 12.5.0(focus-trap@7.6.2)(jwt-decode@4.0.0)(typescript@5.6.3) focus-trap: 7.6.2 vue: 3.5.13(typescript@5.6.3) - vue-i18n@10.0.5(vue@3.5.13(typescript@5.6.3)): + vue-i18n@11.0.1(vue@3.5.13(typescript@5.6.3)): dependencies: - '@intlify/core-base': 10.0.5 - '@intlify/shared': 10.0.5 + '@intlify/core-base': 11.0.1 + '@intlify/shared': 11.0.1 '@vue/devtools-api': 6.6.4 vue: 3.5.13(typescript@5.6.3) vue-lazyload@3.0.0: {} - vue-reader@1.2.15(vue@3.5.13(typescript@5.6.3)): + vue-reader@1.2.17(vue@3.5.13(typescript@5.6.3)): dependencies: epubjs: 0.3.93 vue: 3.5.13(typescript@5.6.3) @@ -5303,11 +5307,10 @@ snapshots: dependencies: vue: 3.5.13(typescript@5.6.3) - vue-tsc@2.1.10(typescript@5.6.3): + vue-tsc@2.2.0(typescript@5.6.3): dependencies: - '@volar/typescript': 2.4.10 - '@vue/language-core': 2.1.10(typescript@5.6.3) - semver: 7.6.3 + '@volar/typescript': 2.4.11 + '@vue/language-core': 2.2.0(typescript@5.6.3) typescript: 5.6.3 vue@3.5.13(typescript@5.6.3): @@ -5334,7 +5337,7 @@ snapshots: whatwg-mimetype@4.0.0: {} - whatwg-url@14.0.0: + whatwg-url@14.1.0: dependencies: tr46: 5.0.0 webidl-conversions: 7.0.0 @@ -5367,9 +5370,9 @@ snapshots: dependencies: eslint-visitor-keys: 3.4.3 lodash: 4.17.21 - yaml: 2.6.1 + yaml: 2.7.0 - yaml@2.6.1: {} + yaml@2.7.0: {} yargs-parser@21.1.1: {} diff --git a/frontend/src/api/files.ts b/frontend/src/api/files.ts index a36de03f..928f5282 100644 --- a/frontend/src/api/files.ts +++ b/frontend/src/api/files.ts @@ -1,7 +1,8 @@ -import { createURL, fetchURL, removePrefix } from "./utils"; -import { baseURL } from "@/utils/constants"; import { useAuthStore } from "@/stores/auth"; +import { useLayoutStore } from "@/stores/layout"; +import { baseURL } from "@/utils/constants"; import { upload as postTus, useTus } from "./tus"; +import { createURL, fetchURL, removePrefix } from "./utils"; export async function fetch(url: string) { url = removePrefix(url); @@ -156,6 +157,7 @@ function moveCopy( overwrite = false, rename = false ) { + const layoutStore = useLayoutStore(); const promises = []; for (const item of items) { @@ -166,7 +168,7 @@ function moveCopy( }&destination=${to}&override=${overwrite}&rename=${rename}`; promises.push(resourceAction(url, "PATCH")); } - + layoutStore.closeHovers(); return Promise.all(promises); } diff --git a/frontend/src/api/users.ts b/frontend/src/api/users.ts index a44254fb..78096b49 100644 --- a/frontend/src/api/users.ts +++ b/frontend/src/api/users.ts @@ -25,7 +25,7 @@ export async function create(user: IUser) { throw new StatusError(await res.text(), res.status); } -export async function update(user: IUser, which = ["all"]) { +export async function update(user: Partial, which = ["all"]) { await fetchURL(`/api/users/${user.id}`, { method: "PUT", body: JSON.stringify({ diff --git a/frontend/src/components/Breadcrumbs.vue b/frontend/src/components/Breadcrumbs.vue index 6da88053..b6d1a768 100644 --- a/frontend/src/components/Breadcrumbs.vue +++ b/frontend/src/components/Breadcrumbs.vue @@ -34,7 +34,7 @@ const props = defineProps<{ const items = computed(() => { const relativePath = route.path.replace(props.base, ""); - let parts = relativePath.split("/"); + const parts = relativePath.split("/"); if (parts[0] === "") { parts.shift(); @@ -44,7 +44,7 @@ const items = computed(() => { parts.pop(); } - let breadcrumbs: BreadCrumb[] = []; + const breadcrumbs: BreadCrumb[] = []; for (let i = 0; i < parts.length; i++) { if (i === 0) { diff --git a/frontend/src/components/ProgressBar.vue b/frontend/src/components/ProgressBar.vue index a31192b3..2cb9474b 100644 --- a/frontend/src/components/ProgressBar.vue +++ b/frontend/src/components/ProgressBar.vue @@ -46,7 +46,7 @@ https://raw.githubusercontent.com/dzwillia/vue-simple-progress/master/src/compon diff --git a/frontend/src/css/fonts.css b/frontend/src/css/fonts.css index c32e1e01..2e65cff6 100644 --- a/frontend/src/css/fonts.css +++ b/frontend/src/css/fonts.css @@ -63,8 +63,8 @@ local("Roboto"), local("Roboto-Regular"), url(../assets/fonts/roboto/normal-latin-ext.woff2) format("woff2"); - unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, - U+A720-A7FF; + unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, + U+2C60-2C7F, U+A720-A7FF; } @font-face { @@ -142,8 +142,8 @@ local("Roboto Medium"), local("Roboto-Medium"), url(../assets/fonts/roboto/medium-latin-ext.woff2) format("woff2"); - unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, - U+A720-A7FF; + unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, + U+2C60-2C7F, U+A720-A7FF; } @font-face { @@ -221,8 +221,8 @@ local("Roboto Bold"), local("Roboto-Bold"), url(../assets/fonts/roboto/bold-latin-ext.woff2) format("woff2"); - unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, - U+A720-A7FF; + unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, + U+2C60-2C7F, U+A720-A7FF; } @font-face { diff --git a/frontend/src/i18n/es.json b/frontend/src/i18n/es.json index 06197a79..3e19ae11 100644 --- a/frontend/src/i18n/es.json +++ b/frontend/src/i18n/es.json @@ -173,7 +173,7 @@ "executeOnShellDescription": "Por defecto, FileBrowser ejecuta los comandos llamando directamente a sus binarios. Si quieres ejecutarlos en un shell en su lugar (como Bash o PowerShell), puedes definirlo aquí con los argumentos y banderas (flags) necesarios. Si se define, el comando que se ejecuta se añadirá como argumento. Esto se aplica tanto a los comandos de usuario como a los ganchos de eventos.", "globalRules": "Se trata de un conjunto global de reglas de permiso y rechazo. Se aplican a todos los usuarios. Puedes definir reglas específicas en la configuración de cada usuario para anular estas.", "globalSettings": "Ajustes globales", - "hideDotfiles": "", + "hideDotfiles": "Ocultar archivos empezados por punto", "insertPath": "Introduce la ruta", "insertRegex": "Introducir expresión regular", "instanceName": "Nombre de la instancia", diff --git a/frontend/src/i18n/index.ts b/frontend/src/i18n/index.ts index a16a0a6a..f0b0304b 100644 --- a/frontend/src/i18n/index.ts +++ b/frontend/src/i18n/index.ts @@ -142,7 +142,7 @@ export const i18n = createI18n({ export const isRtl = (locale?: string) => { // see below - // @ts-ignore + // @ts-expect-error incorrect type when legacy return rtlLanguages.includes(locale || i18n.global.locale.value); }; @@ -150,7 +150,7 @@ export function setLocale(locale: string) { dayjs.locale(locale); // according to doc u only need .value if legacy: false but they lied // https://vue-i18n.intlify.dev/guide/essentials/scope.html#local-scope-1 - //@ts-ignore + // @ts-expect-error incorrect type when legacy i18n.global.locale.value = locale; } diff --git a/frontend/src/i18n/ko.json b/frontend/src/i18n/ko.json index 046a712b..722da2d2 100644 --- a/frontend/src/i18n/ko.json +++ b/frontend/src/i18n/ko.json @@ -9,7 +9,7 @@ "create": "생성", "delete": "삭제", "download": "다운로드", - "hideDotfiles": "", + "hideDotfiles": "숨김파일(dotfile)을 표시 안함", "info": "정보", "more": "더보기", "move": "이동", @@ -38,7 +38,7 @@ "download": { "downloadFile": "파일 다운로드", "downloadFolder": "폴더 다운로드", - "downloadSelected": "" + "downloadSelected": "선택 항목 다운로드" }, "errors": { "forbidden": "접근 권한이 없습니다.", @@ -120,8 +120,8 @@ "scheduleMessage": "이 글을 공개할 시간을 알려주세요.", "show": "보기", "size": "크기", - "upload": "", - "uploadMessage": "" + "upload": "업로드", + "uploadMessage": "업로드 옵션을 선택하세요." }, "search": { "images": "이미지", @@ -160,7 +160,7 @@ "executeOnShellDescription": "기본적으로 File Browser 는 바이너리를 명령어로 호출하여 실행합니다. 쉘을 통해 실행하기를 원한다면, Bash 또는 PowerShell 에 필요한 인수와 플래그를 설정하세요. 사용자 명령어와 이벤트 훅에 모두 적용됩니다.", "globalRules": "규칙에 대한 전역설정으로 모든 사용자에게 적용됩니다. 지정된 규칙은 사용자 설정을 덮어쓰기 합니다.", "globalSettings": "전역 설정", - "hideDotfiles": "", + "hideDotfiles": "숨김파일(dotfile)을 표시하지 않습니다.", "insertPath": "경로 입력", "insertRegex": "정규식 입력", "instanceName": "인스턴스 이름", @@ -171,7 +171,7 @@ "newUser": "새로운 사용자", "password": "비밀번호", "passwordUpdated": "비밀번호 수정 완료!", - "path": "", + "path": "경로", "perm": { "create": "파일이나 디렉토리 생성하기", "delete": "화일이나 디렉토리 삭제하기", @@ -190,13 +190,13 @@ "rulesHelp": "사용자별로 규칙을 허용/방지를 지정할 수 있습니다. 방지된 파일은 보이지 않고 사용자들은 접근할 수 없습니다. 사용자의 접근 허용 범위와 관련해 정규표현식(regex)과 경로를 지원합니다.\n", "scope": "범위", "settingsUpdated": "설정 수정됨!", - "shareDuration": "", - "shareManagement": "", - "singleClick": "", + "shareDuration": "공유 기간", + "shareManagement": "공유 내역 관리", + "singleClick": "한번 클릭으로 파일과 폴더를 열도록 합니다.", "themes": { - "dark": "", - "light": "", - "title": "" + "dark": "다크테마", + "light": "라이트테마", + "title": "테마" }, "user": "사용자", "userCommands": "명령어", diff --git a/frontend/src/stores/layout.ts b/frontend/src/stores/layout.ts index 1911643a..faf8bca7 100644 --- a/frontend/src/stores/layout.ts +++ b/frontend/src/stores/layout.ts @@ -29,6 +29,12 @@ export const useLayoutStore = defineStore("layout", { toggleShell() { this.showShell = !this.showShell; }, + setCloseOnPrompt(closeFunction: () => Promise, onPrompt: string) { + const prompt = this.prompts.find((prompt) => prompt.prompt === onPrompt); + if (prompt) { + prompt.close = closeFunction; + } + }, showHover(value: PopupProps | string) { if (typeof value !== "object") { this.prompts.push({ @@ -36,6 +42,7 @@ export const useLayoutStore = defineStore("layout", { confirm: null, action: undefined, props: null, + close: null, }); return; } @@ -45,6 +52,7 @@ export const useLayoutStore = defineStore("layout", { confirm: value?.confirm, action: value?.action, props: value?.props, + close: value?.close, }); }, showError() { @@ -53,6 +61,7 @@ export const useLayoutStore = defineStore("layout", { confirm: null, action: undefined, props: null, + close: null, }); }, showSuccess() { @@ -61,10 +70,11 @@ export const useLayoutStore = defineStore("layout", { confirm: null, action: undefined, props: null, + close: null, }); }, closeHovers() { - this.prompts.pop(); + this.prompts.shift()?.close?.(); }, // easily reset state using `$reset` clearLayout() { diff --git a/frontend/src/types/layout.d.ts b/frontend/src/types/layout.d.ts index fa05a484..b625cc07 100644 --- a/frontend/src/types/layout.d.ts +++ b/frontend/src/types/layout.d.ts @@ -3,6 +3,7 @@ interface PopupProps { confirm?: any; action?: PopupAction; props?: any; + close?: (() => Promise) | null; } type PopupAction = (e: Event) => void; diff --git a/frontend/src/utils/auth.ts b/frontend/src/utils/auth.ts index a83719ce..b868d90f 100644 --- a/frontend/src/utils/auth.ts +++ b/frontend/src/utils/auth.ts @@ -24,7 +24,7 @@ export async function validateLogin() { await renew(localStorage.getItem("jwt")); } } catch (error) { - console.warn("Invalid JWT token in storage"); // eslint-disable-line + console.warn("Invalid JWT token in storage"); throw error; } } diff --git a/frontend/src/utils/buttons.ts b/frontend/src/utils/buttons.ts index 6a8ac249..30ed74f2 100644 --- a/frontend/src/utils/buttons.ts +++ b/frontend/src/utils/buttons.ts @@ -4,7 +4,7 @@ function loading(button: string) { ); if (el === undefined || el === null) { - console.log("Error getting button " + button); // eslint-disable-line + console.log("Error getting button " + button); return; } @@ -30,7 +30,7 @@ function done(button: string) { ); if (el === undefined || el === null) { - console.log("Error getting button " + button); // eslint-disable-line + console.log("Error getting button " + button); return; } @@ -51,7 +51,7 @@ function success(button: string) { ); if (el === undefined || el === null) { - console.log("Error getting button " + button); // eslint-disable-line + console.log("Error getting button " + button); return; } diff --git a/frontend/src/utils/clipboard.ts b/frontend/src/utils/clipboard.ts index 136f1ad4..23bb7895 100644 --- a/frontend/src/utils/clipboard.ts +++ b/frontend/src/utils/clipboard.ts @@ -1,39 +1,36 @@ // Based on code by the following links: // https://stackoverflow.com/a/74528564 // https://web.dev/articles/async-clipboard -export function copy(text: string) { + +interface ClipboardArgs { + text?: string; + data?: ClipboardItems; +} + +interface ClipboardOpts { + permission?: boolean; +} + +export function copy(data: ClipboardArgs, opts?: ClipboardOpts) { return new Promise((resolve, reject) => { if ( // Clipboard API requires secure context window.isSecureContext && - typeof navigator.clipboard !== "undefined" && - // @ts-ignore - navigator.permissions !== "undefined" + typeof navigator.clipboard !== "undefined" ) { - navigator.permissions - // @ts-ignore - .query({ name: "clipboard-write" }) - .then((permission) => { - if (permission.state === "granted" || permission.state === "prompt") { - // simple writeText should work for all modern browsers - navigator.clipboard.writeText(text).then(resolve).catch(reject); - } else { - reject(new Error("Permission not granted!")); - } - }) - .catch((e) => { - // Firefox doesn't support clipboard-write permission - if (navigator.userAgent.indexOf("Firefox") != -1) { - navigator.clipboard.writeText(text).then(resolve).catch(reject); - } else { - reject(e); - } - }); + if (opts?.permission) { + getPermission("clipboard-write") + .then(() => writeToClipboard(data).then(resolve).catch(reject)) + .catch(reject); + } else { + writeToClipboard(data).then(resolve).catch(reject); + } } else if ( document.queryCommandSupported && - document.queryCommandSupported("copy") + document.queryCommandSupported("copy") && + data.text // old method only supports text ) { - const textarea = createTemporaryTextarea(text); + const textarea = createTemporaryTextarea(data.text); const body = document.activeElement || document.body; try { body.appendChild(textarea); @@ -54,6 +51,35 @@ export function copy(text: string) { }); } +function getPermission(name: string) { + return new Promise((resolve, reject) => { + typeof navigator.permissions !== "undefined" && + navigator.permissions + // @ts-expect-error chrome specific api + .query({ name }) + .then((permission) => { + if (permission.state === "granted" || permission.state === "prompt") { + resolve(); + } else { + reject(new Error("Permission denied!")); + } + }); + }); +} + +function writeToClipboard(data: ClipboardArgs) { + if (data.text) { + return navigator.clipboard.writeText(data.text); + } + if (data.data) { + return navigator.clipboard.write(data.data); + } + + return new Promise((resolve, reject) => { + reject(new Error("No data was supplied!")); + }); +} + const styles = { fontSize: "12pt", position: "fixed", @@ -69,10 +95,10 @@ const styles = { background: "transparent", }; -const createTemporaryTextarea = (text: string) => { +function createTemporaryTextarea(text: string) { const textarea = document.createElement("textarea"); textarea.value = text; textarea.setAttribute("readonly", ""); Object.assign(textarea.style, styles); return textarea; -}; +} diff --git a/frontend/src/utils/css.ts b/frontend/src/utils/css.ts index d727786b..aca6c62a 100644 --- a/frontend/src/utils/css.ts +++ b/frontend/src/utils/css.ts @@ -6,13 +6,16 @@ export default function getRule(rules: string[]) { let result = null; const find = Array.prototype.find; - find.call(document.styleSheets, (styleSheet) => { - result = find.call(styleSheet.cssRules, (cssRule) => { + find.call(document.styleSheets, (styleSheet: CSSStyleSheet) => { + result = find.call(styleSheet.cssRules, (cssRule: CSSRule) => { let found = false; - if (cssRule instanceof window.CSSStyleRule) { + // faster than checking instanceof for every element + if (cssRule.constructor.name === "CSSStyleRule") { for (let i = 0; i < rules.length; i++) { - if (cssRule.selectorText.toLowerCase() === rules[i]) { + if ( + (cssRule as CSSStyleRule).selectorText.toLowerCase() === rules[i] + ) { found = true; } } @@ -24,5 +27,5 @@ export default function getRule(rules: string[]) { return result != null; }); - return result; + return result as CSSStyleRule | null; } diff --git a/frontend/src/utils/upload.ts b/frontend/src/utils/upload.ts index e7ce8bec..cdd974e8 100644 --- a/frontend/src/utils/upload.ts +++ b/frontend/src/utils/upload.ts @@ -1,3 +1,4 @@ +import { useLayoutStore } from "@/stores/layout"; import { useUploadStore } from "@/stores/upload"; import url from "@/utils/url"; @@ -126,6 +127,9 @@ export function handleFiles( overwrite = false ) { const uploadStore = useUploadStore(); + const layoutStore = useLayoutStore(); + + layoutStore.closeHovers(); for (const file of files) { const id = uploadStore.id; diff --git a/frontend/src/views/Share.vue b/frontend/src/views/Share.vue index 53f0cfb1..40b940b5 100644 --- a/frontend/src/views/Share.vue +++ b/frontend/src/views/Share.vue @@ -325,6 +325,7 @@ const token = ref(""); const audio = ref(); const tag = ref(false); +const $showError = inject("$showError")!; const $showSuccess = inject("$showSuccess")!; const { t } = useI18n({}); @@ -463,9 +464,9 @@ const download = () => { if (req.value === null) return false; layoutStore.closeHovers(); - let files: string[] = []; + const files: string[] = []; - for (let i of fileStore.selected) { + for (const i of fileStore.selected) { files.push(req.value.items[i].path); } @@ -488,13 +489,23 @@ const linkSelected = () => { }; const copyToClipboard = (text: string) => { - copy(text).then( + copy({ text }).then( () => { // clipboard successfully set $showSuccess(t("success.linkCopied")); }, () => { // clipboard write failed + copy({ text }, { permission: true }).then( + () => { + // clipboard successfully set + $showSuccess(t("success.linkCopied")); + }, + (e) => { + // clipboard write failed + $showError(e); + } + ); } ); }; diff --git a/frontend/src/views/files/Editor.vue b/frontend/src/views/files/Editor.vue index 7e4d7a9b..9e9b6b68 100644 --- a/frontend/src/views/files/Editor.vue +++ b/frontend/src/views/files/Editor.vue @@ -108,7 +108,7 @@ onMounted(() => { showPrintMargin: false, readOnly: fileStore.req?.type === "textImmutable", theme: "ace/theme/chrome", - mode: modelist.getModeForPath(fileStore.req?.name).mode, + mode: modelist.getModeForPath(fileStore.req!.name).mode, wrap: true, enableBasicAutocompletion: true, enableLiveAutocompletion: true, @@ -173,7 +173,7 @@ const close = () => { fileStore.updateRequest(null); - let uri = url.removeLastDir(route.path) + "/"; + const uri = url.removeLastDir(route.path) + "/"; router.push({ path: uri }); }; diff --git a/frontend/src/views/files/FileListing.vue b/frontend/src/views/files/FileListing.vue index 72171f4e..8fa48f72 100644 --- a/frontend/src/views/files/FileListing.vue +++ b/frontend/src/views/files/FileListing.vue @@ -523,12 +523,12 @@ const keyEvent = (event: KeyboardEvent) => { break; case "a": event.preventDefault(); - for (let file of items.value.files) { + for (const file of items.value.files) { if (fileStore.selected.indexOf(file.index) === -1) { fileStore.selected.push(file.index); } } - for (let dir of items.value.dirs) { + for (const dir of items.value.dirs) { if (fileStore.selected.indexOf(dir.index) === -1) { fileStore.selected.push(dir.index); } @@ -551,9 +551,9 @@ const copyCut = (event: Event | KeyboardEvent): void => { if (fileStore.req === null) return; - let items = []; + const items = []; - for (let i of fileStore.selected) { + for (const i of fileStore.selected) { items.push({ from: fileStore.req.items[i].url, name: fileStore.req.items[i].name, @@ -575,9 +575,9 @@ const paste = (event: Event) => { if ((event.target as HTMLElement).tagName?.toLowerCase() === "input") return; // TODO router location should it be - let items: any[] = []; + const items: any[] = []; - for (let item of clipboardStore.items) { + for (const item of clipboardStore.items) { const from = item.from.endsWith("/") ? item.from.slice(0, -1) : item.from; const to = route.path + encodeURIComponent(item.name); items.push({ from, to, name: item.name }); @@ -614,7 +614,7 @@ const paste = (event: Event) => { return; } - let conflict = upload.checkConflict(items, fileStore.req!.items); + const conflict = upload.checkConflict(items, fileStore.req!.items); let overwrite = false; let rename = false; @@ -640,14 +640,13 @@ const paste = (event: Event) => { const colunmsResize = () => { // Update the columns size based on the window width. - let items_ = css(["#listing.mosaic .item", ".mosaic#listing .item"]); + const items_ = css(["#listing.mosaic .item", ".mosaic#listing .item"]); if (items_ === null) return; let columns = Math.floor( (document.querySelector("main")?.offsetWidth ?? 0) / columnWidth.value ); if (columns === 0) columns = 1; - // @ts-ignore never type error items_.style.width = `calc(${100 / columns}% - 1em)`; }; @@ -677,11 +676,10 @@ const dragEnter = () => { // When the user starts dragging an item, put every // file on the listing with 50% opacity. - let items = document.getElementsByClassName("item"); + const items = document.getElementsByClassName("item"); - // @ts-ignore - Array.from(items).forEach((file: HTMLElement) => { - file.style.opacity = "0.5"; + Array.from(items).forEach((file: Element) => { + (file as HTMLElement).style.opacity = "0.5"; }); }; @@ -698,7 +696,7 @@ const drop = async (event: DragEvent) => { dragCounter.value = 0; resetOpacity(); - let dt = event.dataTransfer; + const dt = event.dataTransfer; let el: HTMLElement | null = event.target as HTMLElement; if (fileStore.req === null || dt === null || dt.files.length <= 0) return; @@ -709,7 +707,7 @@ const drop = async (event: DragEvent) => { } } - let files: UploadList = (await upload.scanFiles(dt)) as UploadList; + const files: UploadList = (await upload.scanFiles(dt)) as UploadList; let items = fileStore.req.items; let path = route.path.endsWith("/") ? route.path : route.path + "/"; @@ -729,7 +727,7 @@ const drop = async (event: DragEvent) => { } } - let conflict = upload.checkConflict(files, items); + const conflict = upload.checkConflict(files, items); if (conflict) { layoutStore.showHover({ @@ -753,12 +751,10 @@ const drop = async (event: DragEvent) => { }; const uploadInput = (event: Event) => { - layoutStore.closeHovers(); - - let files = (event.currentTarget as HTMLInputElement)?.files; + const files = (event.currentTarget as HTMLInputElement)?.files; if (files === null) return; - let folder_upload = !!files[0].webkitRelativePath; + const folder_upload = !!files[0].webkitRelativePath; const uploadFiles: UploadList = []; for (let i = 0; i < files.length; i++) { @@ -773,8 +769,8 @@ const uploadInput = (event: Event) => { }); } - let path = route.path.endsWith("/") ? route.path : route.path + "/"; - let conflict = upload.checkConflict(uploadFiles, fileStore.req!.items); + const path = route.path.endsWith("/") ? route.path : route.path + "/"; + const conflict = upload.checkConflict(uploadFiles, fileStore.req!.items); if (conflict) { layoutStore.showHover({ @@ -798,7 +794,7 @@ const uploadInput = (event: Event) => { }; const resetOpacity = () => { - let items = document.getElementsByClassName("item"); + const items = document.getElementsByClassName("item"); Array.from(items).forEach((file: Element) => { (file as HTMLElement).style.opacity = "1"; @@ -824,7 +820,6 @@ const sort = async (by: string) => { try { if (authStore.user?.id) { - // @ts-ignore await users.update({ id: authStore.user?.id, sorting: { by, asc } }, [ "sorting", ]); @@ -875,10 +870,10 @@ const download = () => { confirm: (format: any) => { layoutStore.closeHovers(); - let files = []; + const files = []; if (fileStore.selectedCount > 0 && fileStore.req !== null) { - for (let i of fileStore.selected) { + for (const i of fileStore.selected) { files.push(fileStore.req.items[i].url); } } else { @@ -901,13 +896,12 @@ const switchView = async () => { const data = { id: authStore.user?.id, - viewMode: modes[authStore.user?.viewMode ?? "list"] || "list", + viewMode: (modes[authStore.user?.viewMode ?? "list"] || + "list") as ViewModeType, }; - // @ts-ignore users.update(data, ["viewMode"]).catch($showError); - // @ts-ignore authStore.updateUser(data); setItemWeight(); diff --git a/frontend/src/views/files/Preview.vue b/frontend/src/views/files/Preview.vue index a4f2cfb7..4fd3d2c8 100644 --- a/frontend/src/views/files/Preview.vue +++ b/frontend/src/views/files/Preview.vue @@ -353,7 +353,7 @@ const updatePreview = async () => { autoPlay.value = false; } - let dirs = route.fullPath.split("/"); + const dirs = route.fullPath.split("/"); name.value = decodeURIComponent(dirs[dirs.length - 1]); if (!listing.value) { @@ -422,7 +422,7 @@ const toggleNavigation = throttle(function () { const close = () => { fileStore.updateRequest(null); - let uri = url.removeLastDir(route.path) + "/"; + const uri = url.removeLastDir(route.path) + "/"; router.push({ path: uri }); }; diff --git a/frontend/src/views/settings/Global.vue b/frontend/src/views/settings/Global.vue index 0b055ee2..5bbaec7f 100644 --- a/frontend/src/views/settings/Global.vue +++ b/frontend/src/views/settings/Global.vue @@ -282,7 +282,7 @@ const formattedChunkSize = computed({ // Define funcs const capitalize = (name: string, where: string | RegExp = "_") => { if (where === "caps") where = /(?=[A-Z])/; - let split = name.split(where); + const split = name.split(where); name = ""; for (let i = 0; i < split.length; i++) { @@ -294,7 +294,7 @@ const capitalize = (name: string, where: string | RegExp = "_") => { const save = async () => { if (settings.value === null) return false; - let newSettings: ISettings = { + const newSettings: ISettings = { ...settings.value, shell: settings.value?.shell @@ -376,7 +376,7 @@ onMounted(async () => { try { layoutStore.loading = true; const original: ISettings = await api.get(); - let newSettings: ISettings = { ...original, commands: {} }; + const newSettings: ISettings = { ...original, commands: {} }; const keys = Object.keys(original.commands) as Array; for (const key of keys) { diff --git a/frontend/src/views/settings/Shares.vue b/frontend/src/views/settings/Shares.vue index 478d595c..e1076ec9 100644 --- a/frontend/src/views/settings/Shares.vue +++ b/frontend/src/views/settings/Shares.vue @@ -87,12 +87,12 @@ onMounted(async () => { layoutStore.loading = true; try { - let newLinks = await api.list(); + const newLinks = await api.list(); if (authStore.user?.perm.admin) { - let userMap = new Map(); - for (let user of await users.getAll()) + const userMap = new Map(); + for (const user of await users.getAll()) userMap.set(user.id, user.username); - for (let link of newLinks) { + for (const link of newLinks) { if (link.userID && userMap.has(link.userID)) link.username = userMap.get(link.userID); } @@ -108,13 +108,23 @@ onMounted(async () => { }); const copyToClipboard = (text: string) => { - copy(text).then( + copy({ text }).then( () => { // clipboard successfully set $showSuccess(t("success.linkCopied")); }, () => { // clipboard write failed + copy({ text }, { permission: true }).then( + () => { + // clipboard successfully set + $showSuccess(t("success.linkCopied")); + }, + (e) => { + // clipboard write failed + $showError(e); + } + ); } ); }; diff --git a/frontend/src/views/settings/User.vue b/frontend/src/views/settings/User.vue index f12d5997..a0da68ce 100644 --- a/frontend/src/views/settings/User.vue +++ b/frontend/src/views/settings/User.vue @@ -90,7 +90,7 @@ const fetchData = async () => { try { if (isNew.value) { - let { defaults, createUserDir: _createUserDir } = await settings.get(); + const { defaults, createUserDir: _createUserDir } = await settings.get(); createUserDir.value = _createUserDir; user.value = { ...defaults, diff --git a/go.mod b/go.mod index b6be3d7b..a58d5c24 100644 --- a/go.mod +++ b/go.mod @@ -64,7 +64,7 @@ require ( github.com/yusufpapurcu/wmi v1.2.4 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8 // indirect - golang.org/x/net v0.23.0 // indirect + golang.org/x/net v0.33.0 // indirect golang.org/x/sys v0.28.0 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/ini.v1 v1.67.0 // indirect diff --git a/go.sum b/go.sum index 7254e9b5..4e451c05 100644 --- a/go.sum +++ b/go.sum @@ -190,8 +190,8 @@ golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200904194848-62affa334b73/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20221002022538-bcab6841153b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= -golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= -golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= +golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=