From 817e93e6b9f7419f205be4277dfb4201b7337d1a Mon Sep 17 00:00:00 2001 From: Tachibana Shin Date: Thu, 23 Nov 2023 11:04:10 +0700 Subject: [PATCH] chore: add update with OTA (#101) * chore: add update with OTA * chore: ci --- .github/workflows/android-release.yml | 7 +- .vscode/settings.json | 65 +-- README.md | 1 + package.json | 4 + pnpm-lock.yaml | 372 +++++++++++++++--- quasar.config.ts | 10 +- .../android/app/capacitor.build.gradle | 3 + .../android/capacitor.settings.gradle | 9 + src-capacitor/capacitor.config.json | 10 +- src-capacitor/package.json | 8 +- src/boot/capgo.ts | 16 + src/components/CheckForUpdate.vue | 45 ++- .../truyen-tranh/ListChapters.cy.ts | 2 +- src/stores/plugin.ts | 6 +- 14 files changed, 437 insertions(+), 121 deletions(-) create mode 100644 src/boot/capgo.ts diff --git a/.github/workflows/android-release.yml b/.github/workflows/android-release.yml index e5687563..686427d6 100644 --- a/.github/workflows/android-release.yml +++ b/.github/workflows/android-release.yml @@ -51,6 +51,9 @@ jobs: - name: Build Quasar run: pnpm build:android:ci + - name: Build zip update OTA + run: pnpm build:capgo + - name: Build Android App uses: anime-vsub/android-build-action@1.2.1 with: @@ -94,7 +97,9 @@ jobs: - uses: actions/upload-artifact@v2 with: name: apk-release.apk - path: ${{steps.sign_app.outputs.signedReleaseFile}} + path: | + {{steps.sign_app.outputs.signedReleaseFile}} + src-capacitor/git.shin.raiku_*.zip - name: Conventional Changelog Action uses: TriPSs/conventional-changelog-action@v3 diff --git a/.vscode/settings.json b/.vscode/settings.json index 15f51db4..fba286bb 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,15 +3,8 @@ "editor.guides.bracketPairs": true, "editor.formatOnSave": true, "editor.defaultFormatter": "esbenp.prettier-vscode", - "editor.codeActionsOnSave": [ - "source.fixAll.eslint" - ], - "eslint.validate": [ - "javascript", - "javascriptreact", - "typescript", - "vue" - ], + "editor.codeActionsOnSave": ["source.fixAll.eslint"], + "eslint.validate": ["javascript", "javascriptreact", "typescript", "vue"], "typescript.tsdk": "node_modules/typescript/lib", "cSpell.words": [ "Chương", @@ -26,25 +19,15 @@ "ionic.previewInEditor": true, "vue-i18n.i18nPaths": "src/i18n", "i18n-ally.keystyle": "flat", - "i18n-ally.localesPaths": [ - "src/i18n", - "src/i18n/messages" - ], + "i18n-ally.localesPaths": ["src/i18n", "src/i18n/messages"], "i18n-ally.extract.ignoredByFiles": { - "src/components/BrtPlayer.vue": [ - "Space", - "Space" - ], - "src/pages/[_type-normal]/[value].vue": [ - " • " - ], + "src/components/BrtPlayer.vue": ["Space", "Space"], + "src/pages/[_type-normal]/[value].vue": [" • "], "src/pages/phim/_season.vue": [ "${nameSeason} (${chaps[0].name} - ${\n chaps[chaps.length - 1].name\n })", "${name} - ${currentMetaSeason.name} Tập ${currentMetaChap.name}(${seasonId}/${currentMetaChap.id})" ], - "src/pages/tai-khoan/index.vue": [ - "bg-dark text-light-9" - ], + "src/pages/tai-khoan/index.vue": ["bg-dark text-light-9"], "src/pages/lich-chieu-phim.vue": [ "\n T{{ dayTextToNum(item.day) }}\n ", "/{{ item.month }}" @@ -52,9 +35,7 @@ "src/pages/news.vue": [ "•\n {{ dayjs(item.time).locale(\"vi\").fromNow() }}\n " ], - "src/pages/tai-khoan/edit-profile.vue": [ - "bg-dark text-light-9" - ], + "src/pages/tai-khoan/edit-profile.vue": ["bg-dark text-light-9"], "src/layouts/MainLayout.vue": [ "mailto:ogmo2r3q@duck.com?subject=Phản hồi ứng dụng web AnimeVsub", "bg-dark text-light-9", @@ -68,12 +49,8 @@ "• {{ t('_maxPage-trang', [data?.maxPage]) }}\n ", "• {{ t('_maxPage-trang', [data?.maxPage]) }}\n " ], - "src/apis/runs/ajax/rate.ts": [ - "${token_name}=${token_value}" - ], - "src/components/errors/cloudflare.vue": [ - ")\n " - ], + "src/apis/runs/ajax/rate.ts": ["${token_name}=${token_value}"], + "src/components/errors/cloudflare.vue": [")\n "], "src/components/errors/domain-strange.vue": [ "\n {{ extensionVersion ?? \"" ], @@ -83,27 +60,17 @@ "src/components/library/_components/EpControl.vue": [ "< data.pages.length\n ? downloading\n ? $t(\"dang-tai\")\n : $t(\"tam-dung\")\n : $t(\"finished\")\n }}" ], - "src/components/app/AppHeaderSearch.vue": [ - "Slash" - ], - "src/pages/tim-kiem.vue": [ - "\nmeta:\n hiddenHeader: $lt.md\n" - ], - "src/pages/index.vue": [ - "%" - ], - "src/pages/[...catchAll].vue": [ - "\nname: not_found\n" - ], + "src/components/app/AppHeaderSearch.vue": ["Slash"], + "src/pages/tim-kiem.vue": ["\nmeta:\n hiddenHeader: $lt.md\n"], + "src/pages/index.vue": ["%"], + "src/pages/[...catchAll].vue": ["\nname: not_found\n"], "src/pages/truyen-tranh/[zlug]/index.vue": [ "\nmeta:\n hiddenFooter: true\n hiddenDrawer: true\n hiddenHeader: $lt.md\n" ], "src/pages/truyen-tranh/[zlug]/[epName]/[epId].vue": [ "\nmeta:\n hiddenHeader: true\n hiddenDrawer: true\n hiddenFooter: true\n" ], - "src/components/PluginManagerDialog.vue": [ - "install plugin" - ], + "src/components/PluginManagerDialog.vue": ["install plugin"], "uno.config.ts": [ "overflow-y-scroll flex-shrink-1 mt-2 text-#eee text-opacity-70" ] @@ -116,9 +83,7 @@ ], "editor.tabCompletion": "on", "diffEditor.codeLens": true, - "typescript.preferences.autoImportFileExcludePatterns": [ - "vue-router" - ], + "typescript.preferences.autoImportFileExcludePatterns": ["vue-router"], "MutableAI.upsell": false, "[ruby]": { "editor.defaultFormatter": "mbessey.vscode-rufo" diff --git a/README.md b/README.md index 5e673026..fac7f75d 100644 --- a/README.md +++ b/README.md @@ -134,6 +134,7 @@ pnpm build:pwa ``` ### To be on + Moved to https://github.com/orgs/manga-raiku/projects/2 ### Customize the configuration diff --git a/package.json b/package.json index c017446b..d4f22953 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "build:ios": "pnpm build -m capacitor -T ios", "build:ios:ci": "cross-env TEST=true pnpm build:ios", "build:npm": "pnpm --filter ./npm/* run build", + "build:capgo": "pnpm -C src-capacitor exec pnpx @capgo/cli bundle zip", "typing": "vue-tsc --noEmit", "ci": "pnpm format && pnpm lint --fix && pnpm typing && pnpm test:unit:ci", "nx": "nx run-many -t", @@ -102,9 +103,12 @@ }, "devDependencies": { "@capacitor/app": "^5.0.6", + "@capacitor/browser": "^5.1.0", "@capacitor/core": "^5.5.1", "@capacitor/local-notifications": "^5.0.6", + "@capacitor/splash-screen": "^5.0.6", "@capacitor/status-bar": "^5.0.6", + "@capgo/capacitor-updater": "^5.3.34", "@iconify-json/ant-design": "^1.1.10", "@iconify-json/carbon": "^1.1.21", "@iconify-json/ep": "^1.1.12", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9231c073..135ef487 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -153,15 +153,24 @@ importers: '@capacitor/app': specifier: ^5.0.6 version: 5.0.6(@capacitor/core@5.5.1) + '@capacitor/browser': + specifier: ^5.1.0 + version: 5.1.0(@capacitor/core@5.5.1) '@capacitor/core': specifier: ^5.5.1 version: 5.5.1 '@capacitor/local-notifications': specifier: ^5.0.6 version: 5.0.6(@capacitor/core@5.5.1) + '@capacitor/splash-screen': + specifier: ^5.0.6 + version: 5.0.6(@capacitor/core@5.5.1) '@capacitor/status-bar': specifier: ^5.0.6 version: 5.0.6(@capacitor/core@5.5.1) + '@capgo/capacitor-updater': + specifier: ^5.3.34 + version: 5.3.34(@capacitor/core@5.5.1) '@iconify-json/ant-design': specifier: ^1.1.10 version: 1.1.10 @@ -499,6 +508,9 @@ importers: '@capacitor/app': specifier: ^5.0.6 version: 5.0.6(@capacitor/core@5.5.1) + '@capacitor/browser': + specifier: ^5.1.0 + version: 5.1.0(@capacitor/core@5.5.1) '@capacitor/cli': specifier: ^5.5.1 version: 5.5.1 @@ -517,9 +529,15 @@ importers: '@capacitor/network': specifier: ^5.0.6 version: 5.0.6(@capacitor/core@5.5.1) + '@capacitor/splash-screen': + specifier: ^5.0.6 + version: 5.0.6(@capacitor/core@5.5.1) '@capacitor/status-bar': specifier: ^5.0.6 version: 5.0.6(@capacitor/core@5.5.1) + '@capgo/capacitor-updater': + specifier: ^5.3.34 + version: 5.3.34(@capacitor/core@5.5.1) '@fontsource/caveat': specifier: ^5.0.15 version: 5.0.15 @@ -532,6 +550,10 @@ importers: '@tachibana-shin/capacitor-filesystem': specifier: ^5.0.2 version: 5.0.2(@capacitor/core@5.5.1) + devDependencies: + '@capgo/cli': + specifier: ^3.14.44 + version: 3.14.44 packages: @@ -2806,6 +2828,13 @@ packages: dependencies: '@capacitor/core': 5.5.1 + /@capacitor/browser@5.1.0(@capacitor/core@5.5.1): + resolution: {integrity: sha512-7togqchk2Tvq4SmLaWhcrd4x48ES/GEZsceM+29aun7WhxQEVcDU0cJsVdSU2LNFwNhWgPV2GW90etVd1B3OdQ==} + peerDependencies: + '@capacitor/core': ^5.0.0 + dependencies: + '@capacitor/core': 5.5.1 + /@capacitor/cli@5.5.1: resolution: {integrity: sha512-/oGd2IIc+k1H/fc7tUzP7vqMtZi0gNcJ4/4wUE2kzAnETxxxHXMM/2V62KfjCby/OOAzJbtI7n5OPlnWE9un1A==} engines: {node: '>=16.0.0'} @@ -2830,7 +2859,6 @@ packages: xml2js: 0.5.0 transitivePeerDependencies: - supports-color - dev: false /@capacitor/core@5.5.1: resolution: {integrity: sha512-VG6Iv8Q7ZAbvjodxpvjcSe0jfxUwZXnvjbi93ehuJ6eYP8U926qLSXyrT/DToZq+F6v/HyGyVgn3mrE/9jW2Tg==} @@ -2868,6 +2896,13 @@ packages: '@capacitor/core': 5.5.1 dev: false + /@capacitor/splash-screen@5.0.6(@capacitor/core@5.5.1): + resolution: {integrity: sha512-9B8wSm89D+LlshFw8B+mjPU8pJNf1WOx2mkMjMvcH0/EqxNaE+ZaO8lPCX+9WvWSEZs3O3l11qiSnOFHeK0t9A==} + peerDependencies: + '@capacitor/core': ^5.0.0 + dependencies: + '@capacitor/core': 5.5.1 + /@capacitor/status-bar@5.0.6(@capacitor/core@5.5.1): resolution: {integrity: sha512-7od8CxsBnot1XMK3IeOkproFL4hgoKoWAc3pwUvmDOkQsXoxwQm4SR9mLwQavv1XfxtHbFV9Ukd7FwMxOPSViw==} peerDependencies: @@ -2875,6 +2910,66 @@ packages: dependencies: '@capacitor/core': 5.5.1 + /@capgo/capacitor-updater@5.3.34(@capacitor/core@5.5.1): + resolution: {integrity: sha512-lZNFxlvk+w9fRowNRELDiGK2vPU4Vur99GmdjpTjIEmDCf3V1d4H+jLAuvd3moWhDuQUZMN37GL97gZ6797rEQ==} + peerDependencies: + '@capacitor/core': ^5.0.0 + dependencies: + '@capacitor/core': 5.5.1 + + /@capgo/cli@3.14.44: + resolution: {integrity: sha512-PSg0hYzUMAV2tHNPfroEfBXweaoJKszx1f5TclikYoYjFdPGYjRXR2uxCW562HTOHu1UF+XCnlgoHUtVQBvWgw==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + hasBin: true + dependencies: + '@capacitor/cli': 5.5.1 + '@capgo/find-package-manager': 0.0.7 + '@clack/prompts': 0.7.0 + '@supabase/supabase-js': 2.38.4 + '@tomasklaen/checksum': 1.1.0 + '@trufflesuite/spinnies': 0.1.1 + adm-zip: 0.5.10 + axios: 1.5.0 + ci-info: 3.9.0 + commander: 11.1.0 + console-table-printer: 2.11.2 + fs-extra: 11.1.1 + get-latest-version: 5.1.0 + logsnag: 1.0.0 + mime: 3.0.0 + node-dir: 0.1.17 + open: 9.1.0 + prettyjson: 1.2.5 + prompt-sync: 4.2.0 + qrcode: 1.5.3 + semver: 7.5.4 + transitivePeerDependencies: + - debug + - encoding + - supports-color + dev: true + + /@capgo/find-package-manager@0.0.7: + resolution: {integrity: sha512-Wxrx0nhWZgksvgriMBLKoagMV0Yl67PvGnf9TRExZM73NDkiYfu23VcY6m+yJwqtapb9G9zyOH5Qs0CFuqBx+Q==} + dev: true + + /@clack/core@0.3.3: + resolution: {integrity: sha512-5ZGyb75BUBjlll6eOa1m/IZBxwk91dooBWhPSL67sWcLS0zt9SnswRL0l26TVdBhb0wnWORRxUn//uH6n4z7+A==} + dependencies: + picocolors: 1.0.0 + sisteransi: 1.0.5 + dev: true + + /@clack/prompts@0.7.0: + resolution: {integrity: sha512-0MhX9/B4iL6Re04jPrttDm+BsP8y6mS7byuv0BvXgdXhbV5PdlsHt55dvNsuBCPZ7xq1oTAOOuotR9NFbQyMSA==} + dependencies: + '@clack/core': 0.3.3 + picocolors: 1.0.0 + sisteransi: 1.0.5 + dev: true + bundledDependencies: + - is-unicode-supported + /@colors/colors@1.5.0: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} @@ -3949,7 +4044,6 @@ packages: tslib: 2.6.2 transitivePeerDependencies: - supports-color - dev: false /@ionic/utils-array@2.1.6: resolution: {integrity: sha512-0JZ1Zkp3wURnv8oq6Qt7fMPo5MpjbLoUoa9Bu2Q4PJuSDWM8H8gwF3dQO7VTeUj3/0o1IB1wGkFWZZYgUXZMUg==} @@ -3959,7 +4053,6 @@ packages: tslib: 2.6.2 transitivePeerDependencies: - supports-color - dev: false /@ionic/utils-fs@3.1.7: resolution: {integrity: sha512-2EknRvMVfhnyhL1VhFkSLa5gOcycK91VnjfrTB0kbqkTFCOXyXgVLI5whzq7SLrgD9t1aqos3lMMQyVzaQ5gVA==} @@ -3971,7 +4064,6 @@ packages: tslib: 2.6.2 transitivePeerDependencies: - supports-color - dev: false /@ionic/utils-object@2.1.6: resolution: {integrity: sha512-vCl7sl6JjBHFw99CuAqHljYJpcE88YaH2ZW4ELiC/Zwxl5tiwn4kbdP/gxi2OT3MQb1vOtgAmSNRtusvgxI8ww==} @@ -3981,7 +4073,6 @@ packages: tslib: 2.6.2 transitivePeerDependencies: - supports-color - dev: false /@ionic/utils-process@2.1.11: resolution: {integrity: sha512-Uavxn+x8j3rDlZEk1X7YnaN6wCgbCwYQOeIjv/m94i1dzslqWhqIHEqxEyeE8HsT5Negboagg7GtQiABy+BLbA==} @@ -3995,7 +4086,6 @@ packages: tslib: 2.6.2 transitivePeerDependencies: - supports-color - dev: false /@ionic/utils-stream@3.1.6: resolution: {integrity: sha512-4+Kitey1lTA1yGtnigeYNhV/0tggI3lWBMjC7tBs1K9GXa/q7q4CtOISppdh8QgtOhrhAXS2Igp8rbko/Cj+lA==} @@ -4005,7 +4095,6 @@ packages: tslib: 2.6.2 transitivePeerDependencies: - supports-color - dev: false /@ionic/utils-subprocess@2.1.13: resolution: {integrity: sha512-wguf0zfmca1UA1uF2kmbr/4jukrizlYlpIdtG1FdEaGrof8d5djdwg+g3jHe5dTR88urUQ3Gw68Yhs242dgGrg==} @@ -4021,7 +4110,6 @@ packages: tslib: 2.6.2 transitivePeerDependencies: - supports-color - dev: false /@ionic/utils-terminal@2.3.4: resolution: {integrity: sha512-cEiMFl3jklE0sW60r8JHH3ijFTwh/jkdEKWbylSyExQwZ8pPuwoXz7gpkWoJRLuoRHHSvg+wzNYyPJazIHfoJA==} @@ -4038,7 +4126,6 @@ packages: wrap-ansi: 7.0.0 transitivePeerDependencies: - supports-color - dev: false /@istanbuljs/load-nyc-config@1.1.0: resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} @@ -5173,26 +5260,22 @@ packages: resolution: {integrity: sha512-BNzC5XhCzzCaggJ8s53DP+WeHHGT/NfTsx2wUSSGKR2/ikLFQTBCDzMvGz/PxYMqRko/LwncQtKXGOYp1PkPaw==} dependencies: '@supabase/node-fetch': 2.6.15 - dev: false /@supabase/gotrue-js@2.57.0: resolution: {integrity: sha512-/CcAW40aPKgp9/w9WgXVUQFg1AOdvFR687ONOMjASPBuC6FsNbKlcXp4pc+rwKNtxyxDkBbR+x7zj/8g00r/Og==} dependencies: '@supabase/node-fetch': 2.6.15 - dev: false /@supabase/node-fetch@2.6.15: resolution: {integrity: sha512-1ibVeYUacxWYi9i0cf5efil6adJ9WRyZBLivgjs+AUpewx1F3xPi7gLgaASI2SmIQxPoCEjAsLAzKPgMJVgOUQ==} engines: {node: 4.x || >=6.0.0} dependencies: whatwg-url: 5.0.0 - dev: false /@supabase/postgrest-js@1.8.6: resolution: {integrity: sha512-iiEgF6o/pBumdFe/A2HSG/xx3L6ap7OO3IpTB2hsamNiH/gWb8ru4Z8bdwZjN4sQQttxgsIgZVMsNLkTOCOQhw==} dependencies: '@supabase/node-fetch': 2.6.15 - dev: false /@supabase/realtime-js@2.8.4: resolution: {integrity: sha512-5C9slLTGikHnYmAnIBOaPogAgbcNY68vnIyE6GpqIKjHElVb6LIi4clwNcjHSj4z6szuvvzj8T/+ePEgGEGekw==} @@ -5203,13 +5286,11 @@ packages: websocket: 1.0.34 transitivePeerDependencies: - supports-color - dev: false /@supabase/storage-js@2.5.4: resolution: {integrity: sha512-yspHD19I9uQUgfTh0J94+/r/g6hnhdQmw6Y7OWqr/EbnL6uvicGV1i1UDkkmeUHqfF9Mbt2sLtuxRycYyKv2ew==} dependencies: '@supabase/node-fetch': 2.6.15 - dev: false /@supabase/supabase-js@2.38.4: resolution: {integrity: sha512-bYwxm/GosvRqOMIv6YP7qUTZWi/trgHtDWUEZDEmyRHW24d0JYIb1GOt6RaO2hsWlecn88DAJIpjoNbprocgRA==} @@ -5222,7 +5303,6 @@ packages: '@supabase/storage-js': 2.5.4 transitivePeerDependencies: - supports-color - dev: false /@surma/rollup-plugin-off-main-thread@2.2.3: resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} @@ -5327,11 +5407,26 @@ packages: resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} dev: true + /@tomasklaen/checksum@1.1.0: + resolution: {integrity: sha512-jAGjpszbwjDLZIYN435TX5Db/HFFfnQ5MotcCEUdzqiL9nBwwh1gGEpZtsmGvj5AS1dq03fzwqmxbnTWfgSL3Q==} + engines: {node: '>=12'} + dependencies: + crc32-stream: 4.0.3 + dev: true + /@tootallnate/once@2.0.0: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} dev: true + /@trufflesuite/spinnies@0.1.1: + resolution: {integrity: sha512-jltEtmFJj6xmQqr85gP8OqBHCEiId+zw+uAsb3DyLLRD17O6sySW6Afa2Z/jpzSafj+32ssDfLJ+c0of1NLqcA==} + dependencies: + chalk: 4.1.2 + cli-cursor: 3.1.0 + strip-ansi: 6.0.1 + dev: true + /@trysound/sax@0.2.0: resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} engines: {node: '>=10.13.0'} @@ -5433,7 +5528,6 @@ packages: resolution: {integrity: sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==} dependencies: '@types/node': 18.8.0 - dev: false /@types/group-array@1.0.1: resolution: {integrity: sha512-nKXCoKYLl3dux5EI6MJ0kSKzXqTByrZGCft6lab1MzbJ9crbRQYGDIAYJvGVnf+zMWK36DNmPTQQqF66TKUZ8A==} @@ -5526,7 +5620,6 @@ packages: /@types/phoenix@1.6.0: resolution: {integrity: sha512-qwfpsHmFuhAS/dVd4uBIraMxRd56vwBUYQGZ6GpXnFuM2XMRFJbIyruFKKlW2daQliuYZwe0qfn/UjFCDKic5g==} - dev: false /@types/prompts@2.4.5: resolution: {integrity: sha512-TvrzGMCwARi2qqXcD7VmvMvfMP3F7JRQpeEHECK0oufRNZInoBqzd8v/1zksKFE5XW8OOGto/5FsDT8lnpvGRA==} @@ -5592,7 +5685,6 @@ packages: /@types/slice-ansi@4.0.0: resolution: {integrity: sha512-+OpjSaq85gvlZAYINyzKpLeiFkSC4EsC6IIiT6v6TLSU5k5U83fHGj9Lel8oKEXM0HqgrMVCjXPDPVICtxF7EQ==} - dev: false /@types/trusted-types@2.0.3: resolution: {integrity: sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==} @@ -5628,7 +5720,6 @@ packages: resolution: {integrity: sha512-NbsqiNX9CnEfC1Z0Vf4mE1SgAJ07JnRYcNex7AJ9zAVzmiGHmjKFEk7O4TJIsgv2B1sLEb6owKFZrACwdYngsQ==} dependencies: '@types/node': 18.8.0 - dev: false /@types/yauzl@2.10.3: resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} @@ -6802,7 +6893,6 @@ packages: /@xmldom/xmldom@0.8.10: resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} engines: {node: '>=10.0.0'} - dev: false /@xtuc/ieee754@1.2.0: resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} @@ -6903,6 +6993,11 @@ packages: hasBin: true dev: true + /adm-zip@0.5.10: + resolution: {integrity: sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==} + engines: {node: '>=6.0'} + dev: true + /agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} @@ -6980,6 +7075,11 @@ packages: dependencies: type-fest: 0.21.3 + /ansi-regex@4.1.1: + resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} + engines: {node: '>=6'} + dev: true + /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -7300,7 +7400,7 @@ packages: /axios@0.27.2(debug@4.3.4): resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==} dependencies: - follow-redirects: 1.15.2(debug@4.3.4) + follow-redirects: 1.15.3(debug@4.3.4) form-data: 4.0.0 transitivePeerDependencies: - debug @@ -7309,7 +7409,7 @@ packages: /axios@1.1.3: resolution: {integrity: sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA==} dependencies: - follow-redirects: 1.15.2(debug@4.3.4) + follow-redirects: 1.15.2 form-data: 4.0.0 proxy-from-env: 1.1.0 transitivePeerDependencies: @@ -7319,7 +7419,7 @@ packages: /axios@1.5.0: resolution: {integrity: sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==} dependencies: - follow-redirects: 1.15.2(debug@4.3.4) + follow-redirects: 1.15.3(debug@4.3.4) form-data: 4.0.0 proxy-from-env: 1.1.0 transitivePeerDependencies: @@ -7576,7 +7676,6 @@ packages: engines: {node: '>= 5.10.0'} dependencies: big-integer: 1.6.51 - dev: false /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -7654,7 +7753,6 @@ packages: requiresBuild: true dependencies: node-gyp-build: 4.6.0 - dev: false /builtin-modules@3.3.0: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} @@ -8134,6 +8232,11 @@ packages: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} dev: true + /colors@1.4.0: + resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} + engines: {node: '>=0.1.90'} + dev: true + /combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -8151,6 +8254,11 @@ packages: engines: {node: '>=14'} dev: true + /commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} + dev: true + /commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -8172,7 +8280,6 @@ packages: /commander@9.5.0: resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} engines: {node: ^12.20.0 || >=14} - dev: false /common-path-prefix@3.0.0: resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} @@ -8267,6 +8374,12 @@ packages: engines: {node: ^14.18.0 || >=16.10.0} dev: false + /console-table-printer@2.11.2: + resolution: {integrity: sha512-uuUHie0sfPP542TKGzPFal0W1wo1beuKAqIZdaavcONx8OoqdnJRKjkinbRTOta4FaCa1RcIL+7mMJWX3pQGVg==} + dependencies: + simple-wcswidth: 1.0.1 + dev: true + /content-disposition@0.5.4: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} @@ -8500,7 +8613,6 @@ packages: dependencies: es5-ext: 0.10.62 type: 1.2.0 - dev: false /damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} @@ -8611,6 +8723,13 @@ packages: dependencies: mimic-response: 3.1.0 + /decompress-response@7.0.0: + resolution: {integrity: sha512-6IvPrADQyyPGLpMnUh6kfKiqy7SrbXbjoUuZ90WMBJKErzv2pCiwlGEXjRX9/54OnTq+XFVnkOnOMzclLI5aEA==} + engines: {node: '>=10'} + dependencies: + mimic-response: 3.1.0 + dev: true + /decompress-tar@4.1.1: resolution: {integrity: sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==} engines: {node: '>=4'} @@ -8793,6 +8912,10 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true + /dijkstrajs@1.0.3: + resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} + dev: true + /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -8963,6 +9086,10 @@ packages: /emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + /encode-utf8@1.0.3: + resolution: {integrity: sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==} + dev: true + /encodeurl@1.0.2: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} @@ -8993,7 +9120,6 @@ packages: /env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} - dev: false /envalid@7.3.1: resolution: {integrity: sha512-KL1YRwn8WcoF/Ty7t+yLLtZol01xr9ZJMTjzoGRM8NaSU+nQQjSWOQKKJhJP2P57bpdakJ9jbxqQX4fGTOicZg==} @@ -9098,7 +9224,6 @@ packages: es6-iterator: 2.0.3 es6-symbol: 3.1.3 next-tick: 1.1.0 - dev: false /es6-error@4.1.1: resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} @@ -9110,7 +9235,6 @@ packages: d: 1.0.1 es5-ext: 0.10.62 es6-symbol: 3.1.3 - dev: false /es6-object-assign@1.1.0: resolution: {integrity: sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==} @@ -9121,7 +9245,6 @@ packages: dependencies: d: 1.0.1 ext: 1.7.0 - dev: false /esbuild-android-64@0.14.51: resolution: {integrity: sha512-6FOuKTHnC86dtrKDmdSj2CkcKF8PnqkaIXqvgydqfJmqBazCPdw+relrMlhGjkvVdiiGV70rpdnyFmA65ekBCQ==} @@ -10235,7 +10358,6 @@ packages: resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} dependencies: type: 2.7.2 - dev: false /extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} @@ -10522,7 +10644,7 @@ packages: /flatted@3.2.7: resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} - /follow-redirects@1.15.2(debug@4.3.4): + /follow-redirects@1.15.2: resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} engines: {node: '>=4.0'} peerDependencies: @@ -10530,11 +10652,9 @@ packages: peerDependenciesMeta: debug: optional: true - dependencies: - debug: 4.3.4(supports-color@8.1.1) dev: true - /follow-redirects@1.15.3: + /follow-redirects@1.15.3(debug@4.3.4): resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==} engines: {node: '>=4.0'} peerDependencies: @@ -10542,6 +10662,8 @@ packages: peerDependenciesMeta: debug: optional: true + dependencies: + debug: 4.3.4(supports-color@8.1.1) /for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} @@ -10690,6 +10812,36 @@ packages: has-proto: 1.0.1 has-symbols: 1.0.3 + /get-it@8.4.4: + resolution: {integrity: sha512-Pu3pnJfnYuLEhwJgMlFqk19ugvtazzTxh7rg8wATaBL4c5Fy4ahM5B+bGdluiNSNYYK89F5vSa+N3sTa/qqtlg==} + engines: {node: '>=14.0.0'} + dependencies: + debug: 4.3.4(supports-color@8.1.1) + decompress-response: 7.0.0 + follow-redirects: 1.15.3(debug@4.3.4) + into-stream: 6.0.0 + is-plain-object: 5.0.0 + is-retry-allowed: 2.2.0 + is-stream: 2.0.1 + parse-headers: 2.0.5 + progress-stream: 2.0.0 + tunnel-agent: 0.6.0 + transitivePeerDependencies: + - supports-color + dev: true + + /get-latest-version@5.1.0: + resolution: {integrity: sha512-Q6IBWr/zzw57zIkJmNhI23eRTw3nZ4BWWK034meLwOYU9L3J3IpXiyM73u2pYUwN6U7ahkerCwg2T0jlxiLwsw==} + engines: {node: '>=14.18'} + dependencies: + get-it: 8.4.4 + registry-auth-token: 5.0.2 + registry-url: 5.1.0 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + dev: true + /get-own-enumerable-property-symbols@3.0.2: resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} @@ -10873,7 +11025,6 @@ packages: minimatch: 8.0.4 minipass: 4.2.8 path-scurry: 1.10.1 - dev: false /global-dirs@3.0.1: resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} @@ -11243,7 +11394,7 @@ packages: engines: {node: '>=8.0.0'} dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.15.3 + follow-redirects: 1.15.3(debug@4.3.4) requires-port: 1.0.0 transitivePeerDependencies: - debug @@ -11401,7 +11552,6 @@ packages: /ini@3.0.1: resolution: {integrity: sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - dev: false /inquirer@8.2.6: resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} @@ -11439,6 +11589,14 @@ packages: p-is-promise: 1.1.0 dev: true + /into-stream@6.0.0: + resolution: {integrity: sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==} + engines: {node: '>=10'} + dependencies: + from2: 2.3.0 + p-is-promise: 3.0.0 + dev: true + /inversify@6.0.1: resolution: {integrity: sha512-B3ex30927698TJENHR++8FfEaJGqoWOgI6ZY5Ht/nLUsFCwHn6akbwtnUAPCgUepAnTpe2qHxhDNjoKLyz6rgQ==} dev: true @@ -11670,6 +11828,11 @@ packages: dependencies: isobject: 3.0.1 + /is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + dev: true + /is-png@2.0.0: resolution: {integrity: sha512-4KPGizaVGj2LK7xwJIz8o5B2ubu1D/vcQsgOGFEDlpcvgZHto4gBnyd0ig7Ws+67ixmwKoNmu0hYnpo6AaKb5g==} engines: {node: '>=8'} @@ -11700,6 +11863,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /is-retry-allowed@2.2.0: + resolution: {integrity: sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==} + engines: {node: '>=10'} + dev: true + /is-set@2.0.2: resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} dev: true @@ -11805,6 +11973,15 @@ packages: resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} engines: {node: '>=0.10.0'} + /isomorphic-fetch@3.0.0: + resolution: {integrity: sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==} + dependencies: + node-fetch: 2.7.0 + whatwg-fetch: 3.6.19 + transitivePeerDependencies: + - encoding + dev: true + /isstream@0.1.2: resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} dev: true @@ -12389,6 +12566,14 @@ packages: wrap-ansi: 6.2.0 dev: true + /logsnag@1.0.0: + resolution: {integrity: sha512-HMzjh75OR5EVY7Be4Rw8TcDTIY5UPsrXF1HvQ6EzDi21x5cQcDzi4Ts0Y/ruPCbxKY2KG17YjeeTzErXFewFBg==} + dependencies: + isomorphic-fetch: 3.0.0 + transitivePeerDependencies: + - encoding + dev: true + /loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true @@ -12422,7 +12607,6 @@ packages: /lru-cache@10.0.1: resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==} engines: {node: 14 || >=16.14} - dev: false /lru-cache@4.0.1: resolution: {integrity: sha512-MX0ZnRoVTWXBiNe9dysqKXjvhmQgHsOirh/2rerIVJ8sbQeMxc5OPj0HDpVV3bYjdE6GTHrPf8BEHJqWHFkjHA==} @@ -12604,6 +12788,12 @@ packages: engines: {node: '>=4'} hasBin: true + /mime@3.0.0: + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + engines: {node: '>=10.0.0'} + hasBin: true + dev: true + /mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -12658,7 +12848,6 @@ packages: engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 - dev: false /minimatch@9.0.1: resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==} @@ -12686,7 +12875,6 @@ packages: /minipass@4.2.8: resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} engines: {node: '>=8'} - dev: false /minipass@5.0.0: resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} @@ -12695,7 +12883,6 @@ packages: /minipass@7.0.4: resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} engines: {node: '>=16 || 14 >=14.17'} - dev: false /minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} @@ -12826,7 +13013,6 @@ packages: yauzl: 2.10.0 transitivePeerDependencies: - supports-color - dev: false /natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} @@ -12844,7 +13030,6 @@ packages: /next-tick@1.1.0: resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} - dev: false /nice-try@1.0.5: resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} @@ -12874,6 +13059,13 @@ packages: resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} dev: true + /node-dir@0.1.17: + resolution: {integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==} + engines: {node: '>= 0.10.5'} + dependencies: + minimatch: 3.1.2 + dev: true + /node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} @@ -13367,6 +13559,11 @@ packages: engines: {node: '>=4'} dev: true + /p-is-promise@3.0.0: + resolution: {integrity: sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==} + engines: {node: '>=8'} + dev: true + /p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -13584,7 +13781,6 @@ packages: dependencies: lru-cache: 10.0.1 minipass: 7.0.4 - dev: false /path-to-regexp@0.1.7: resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} @@ -13733,7 +13929,6 @@ packages: '@xmldom/xmldom': 0.8.10 base64-js: 1.5.1 xmlbuilder: 15.1.1 - dev: false /pluralize@8.0.0: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} @@ -13750,6 +13945,11 @@ packages: engines: {node: '>=4.0.0'} dev: true + /pngjs@5.0.0: + resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} + engines: {node: '>=10.13.0'} + dev: true + /pngquant-bin@6.0.1: resolution: {integrity: sha512-Q3PUyolfktf+hYio6wsg3SanQzEU/v8aICg/WpzxXcuCMRb7H2Q81okfpcEztbMvw25ILjd3a87doj2N9kvbpQ==} engines: {node: '>=10'} @@ -13852,6 +14052,14 @@ packages: react-is: 18.2.0 dev: true + /prettyjson@1.2.5: + resolution: {integrity: sha512-rksPWtoZb2ZpT5OVgtmy0KHVM+Dca3iVwWY9ifwhcexfjebtgjg3wmrUt9PvJ59XIYBcknQeYHD8IAnVlh9lAw==} + hasBin: true + dependencies: + colors: 1.4.0 + minimist: 1.2.8 + dev: true + /process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -13867,6 +14075,19 @@ packages: engines: {node: '>= 0.6.0'} dev: true + /progress-stream@2.0.0: + resolution: {integrity: sha512-xJwOWR46jcXUq6EH9yYyqp+I52skPySOeHfkxOZ2IY1AiBi/sFJhbhAKHoV3OTw/omQ45KTio9215dRJ2Yxd3Q==} + dependencies: + speedometer: 1.0.0 + through2: 2.0.5 + dev: true + + /prompt-sync@4.2.0: + resolution: {integrity: sha512-BuEzzc5zptP5LsgV5MZETjDaKSWfchl5U9Luiu8SKp7iZWD5tZalOxvNcZRwv+d2phNFr8xlbxmFNcRKfJOzJw==} + dependencies: + strip-ansi: 5.2.0 + dev: true + /prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} @@ -13932,6 +14153,17 @@ packages: dependencies: escape-goat: 4.0.0 + /qrcode@1.5.3: + resolution: {integrity: sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==} + engines: {node: '>=10.13.0'} + hasBin: true + dependencies: + dijkstrajs: 1.0.3 + encode-utf8: 1.0.3 + pngjs: 5.0.0 + yargs: 15.4.1 + dev: true + /qs@6.10.4: resolution: {integrity: sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==} engines: {node: '>=0.6'} @@ -14171,6 +14403,13 @@ packages: dependencies: '@pnpm/npm-conf': 2.2.2 + /registry-url@5.1.0: + resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==} + engines: {node: '>=8'} + dependencies: + rc: 1.2.8 + dev: true + /registry-url@6.0.1: resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==} engines: {node: '>=12'} @@ -14314,7 +14553,6 @@ packages: hasBin: true dependencies: glob: 9.3.5 - dev: false /rollup-plugin-terser@7.0.2(rollup@2.77.3): resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} @@ -14673,6 +14911,10 @@ packages: is-arrayish: 0.3.2 dev: true + /simple-wcswidth@1.0.1: + resolution: {integrity: sha512-xMO/8eNREtaROt7tJvWJqHBDTMFN4eiQ5I4JRMuilwfnFcV5W9u7RUkueNkdw0jPqGMX36iCywelS5yilTuOxg==} + dev: true + /sirv@2.0.3: resolution: {integrity: sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==} engines: {node: '>= 10'} @@ -14793,10 +15035,13 @@ packages: resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} dev: false + /speedometer@1.0.0: + resolution: {integrity: sha512-lgxErLl/7A5+vgIIXsh9MbeukOaCb2axgQ+bKCdIE+ibNT4XNYGNCR1qFEGq6F+YDASXK3Fh/c5FgtZchFolxw==} + dev: true + /split2@4.2.0: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} engines: {node: '>= 10.x'} - dev: false /split@0.3.3: resolution: {integrity: sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==} @@ -14969,6 +15214,13 @@ packages: char-regex: 1.0.2 dev: true + /strip-ansi@5.2.0: + resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} + engines: {node: '>=6'} + dependencies: + ansi-regex: 4.1.1 + dev: true + /strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -15342,11 +15594,17 @@ packages: resolution: {integrity: sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g==} dev: true + /through2@2.0.5: + resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + dependencies: + readable-stream: 2.3.8 + xtend: 4.0.2 + dev: true + /through2@4.0.2: resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} dependencies: readable-stream: 3.6.2 - dev: false /through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} @@ -15472,7 +15730,6 @@ packages: /tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true - dev: false /trim-repeated@1.0.0: resolution: {integrity: sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==} @@ -15624,11 +15881,9 @@ packages: /type@1.2.0: resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==} - dev: false /type@2.7.2: resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} - dev: false /typed-array-length@1.0.4: resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} @@ -16040,7 +16295,6 @@ packages: requiresBuild: true dependencies: node-gyp-build: 4.6.0 - dev: false /utif@2.0.1: resolution: {integrity: sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==} @@ -16771,7 +17025,6 @@ packages: yaeti: 0.0.6 transitivePeerDependencies: - supports-color - dev: false /well-known-symbols@2.0.0: resolution: {integrity: sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==} @@ -16785,6 +17038,10 @@ packages: iconv-lite: 0.6.3 dev: true + /whatwg-fetch@3.6.19: + resolution: {integrity: sha512-d67JP4dHSbm2TrpFj8AbO8DnL1JXL5J9u0Kq2xW6d0TFDbCA3Muhdt8orXC22utleTVj7Prqt82baN6RBvnEgw==} + dev: true + /whatwg-mimetype@3.0.0: resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} engines: {node: '>=12'} @@ -17140,7 +17397,6 @@ packages: dependencies: sax: 1.3.0 xmlbuilder: 11.0.1 - dev: false /xmlbuilder@11.0.1: resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} @@ -17149,7 +17405,6 @@ packages: /xmlbuilder@15.1.1: resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==} engines: {node: '>=8.0'} - dev: false /xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} @@ -17171,7 +17426,6 @@ packages: /yaeti@0.0.6: resolution: {integrity: sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==} engines: {node: '>=0.10.32'} - dev: false /yallist@2.1.2: resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} diff --git a/quasar.config.ts b/quasar.config.ts index 3a7e82fa..76284173 100644 --- a/quasar.config.ts +++ b/quasar.config.ts @@ -55,7 +55,15 @@ export default configure((/* ctx */) => { // app boot file (/src/boot) // --> boot files are part of "main.js" // https://v2.quasar.dev/quasar-cli-vite/boot-files - boot: ["supabase", "i18n", "head", "gtag", "local-notification", "unocss"], + boot: [ + "supabase", + "i18n", + "head", + "gtag", + "local-notification", + "capgo", + "unocss" + ], // https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#css css: ["app.scss"], diff --git a/src-capacitor/android/app/capacitor.build.gradle b/src-capacitor/android/app/capacitor.build.gradle index 2698cd34..f079ac5a 100644 --- a/src-capacitor/android/app/capacitor.build.gradle +++ b/src-capacitor/android/app/capacitor.build.gradle @@ -11,7 +11,10 @@ apply from: "../capacitor-cordova-android-plugins/cordova.variables.gradle" dependencies { implementation project(':capacitor-app') implementation project(':capacitor-device') + implementation project(':capacitor-local-notifications') implementation project(':capacitor-network') + implementation project(':capacitor-status-bar') + implementation project(':capgo-capacitor-updater') implementation project(':tachibana-shin-capacitor-filesystem') } diff --git a/src-capacitor/android/capacitor.settings.gradle b/src-capacitor/android/capacitor.settings.gradle index 34095579..e13098d8 100644 --- a/src-capacitor/android/capacitor.settings.gradle +++ b/src-capacitor/android/capacitor.settings.gradle @@ -8,8 +8,17 @@ project(':capacitor-app').projectDir = new File('../../node_modules/.pnpm/@capac include ':capacitor-device' project(':capacitor-device').projectDir = new File('../../node_modules/.pnpm/@capacitor+device@5.0.6_@capacitor+core@5.5.1/node_modules/@capacitor/device/android') +include ':capacitor-local-notifications' +project(':capacitor-local-notifications').projectDir = new File('../../node_modules/.pnpm/@capacitor+local-notifications@5.0.6_@capacitor+core@5.5.1/node_modules/@capacitor/local-notifications/android') + include ':capacitor-network' project(':capacitor-network').projectDir = new File('../../node_modules/.pnpm/@capacitor+network@5.0.6_@capacitor+core@5.5.1/node_modules/@capacitor/network/android') +include ':capacitor-status-bar' +project(':capacitor-status-bar').projectDir = new File('../../node_modules/.pnpm/@capacitor+status-bar@5.0.6_@capacitor+core@5.5.1/node_modules/@capacitor/status-bar/android') + +include ':capgo-capacitor-updater' +project(':capgo-capacitor-updater').projectDir = new File('../../node_modules/.pnpm/@capgo+capacitor-updater@5.3.34_@capacitor+core@5.5.1/node_modules/@capgo/capacitor-updater/android') + include ':tachibana-shin-capacitor-filesystem' project(':tachibana-shin-capacitor-filesystem').projectDir = new File('../../node_modules/.pnpm/@tachibana-shin+capacitor-filesystem@5.0.2_@capacitor+core@5.5.1/node_modules/@tachibana-shin/capacitor-filesystem/android') diff --git a/src-capacitor/capacitor.config.json b/src-capacitor/capacitor.config.json index b09a2e02..3d1249e1 100644 --- a/src-capacitor/capacitor.config.json +++ b/src-capacitor/capacitor.config.json @@ -4,8 +4,14 @@ "bundledWebRuntime": false, "npmClient": "pnpm", "webDir": "www", + "plugins": { + "CapacitorUpdater": { + "autoUpdate": false, + "updateUrl": "https://services.mangaraiku.eu.org/v1/auto_update", + "statsUrl": "" + } + }, "server": { - "androidScheme": "https", - "url": "http://192.168.0.104:9500" + "androidScheme": "https" } } diff --git a/src-capacitor/package.json b/src-capacitor/package.json index a75d4163..139b169d 100644 --- a/src-capacitor/package.json +++ b/src-capacitor/package.json @@ -1,22 +1,28 @@ { "name": "Raiku", - "version": "0.0.55", + "version": "0.0.69", "description": "App reading manga, comic safe, free, private and ad-free.", "author": "Tachibana Shin <45375496+tachibana-shin@users.noreply.github.com>", "private": true, "dependencies": { "@capacitor/android": "^5.5.1", "@capacitor/app": "^5.0.6", + "@capacitor/browser": "^5.1.0", "@capacitor/cli": "^5.5.1", "@capacitor/core": "^5.5.1", "@capacitor/device": "^5.0.6", "@capacitor/ios": "^5.5.1", "@capacitor/local-notifications": "^5.0.6", "@capacitor/network": "^5.0.6", + "@capacitor/splash-screen": "^5.0.6", "@capacitor/status-bar": "^5.0.6", + "@capgo/capacitor-updater": "^5.3.34", "@fontsource/caveat": "^5.0.15", "@quasar/app-vite": "^1.6.2", "@quasar/cli": "^2.3.0", "@tachibana-shin/capacitor-filesystem": "^5.0.2" + }, + "devDependencies": { + "@capgo/cli": "^3.14.44" } } diff --git a/src/boot/capgo.ts b/src/boot/capgo.ts new file mode 100644 index 00000000..86cc3e2c --- /dev/null +++ b/src/boot/capgo.ts @@ -0,0 +1,16 @@ +import { CapacitorUpdater } from "@capgo/capacitor-updater" + +export const notifyAppReady = CapacitorUpdater.notifyAppReady() + +// void CapacitorUpdater.addListener("updateAvailable", async (res) => { +// try { +// const { value } = await Dialog.confirm({ +// title: "Update Available", +// message: `Version ${res.bundle.version} is available. Would you like to update now?` +// }) + +// if (value) void CapacitorUpdater.set(res.bundle) +// } catch (error) { +// console.log(error) +// } +// }) diff --git a/src/components/CheckForUpdate.vue b/src/components/CheckForUpdate.vue index 6cbce644..ff005459 100644 --- a/src/components/CheckForUpdate.vue +++ b/src/components/CheckForUpdate.vue @@ -33,10 +33,8 @@ color="main" :label="$t('cap-nhat')" target="_blank" - :href=" - newVersion?.assets[0]?.browser_download_url ?? - 'https://github.com/manga-raiku/raiku-app' - " + :loading="updating" + @click="update" /> @@ -45,6 +43,9 @@ diff --git a/src/components/truyen-tranh/ListChapters.cy.ts b/src/components/truyen-tranh/ListChapters.cy.ts index c655bae1..7d060c36 100644 --- a/src/components/truyen-tranh/ListChapters.cy.ts +++ b/src/components/truyen-tranh/ListChapters.cy.ts @@ -5,7 +5,7 @@ import type { Chapter } from "raiku-pgs/plugin" import $ListChapters from "./ListChapters.vue" // eslint-disable-next-line @typescript-eslint/no-explicit-any -const ListChapters = $ListChapters as unknown as any +const ListChapters = $ListChapters as unknown as any setActivePinia(createPinia()) diff --git a/src/stores/plugin.ts b/src/stores/plugin.ts index dd00ed6d..fd2b9405 100644 --- a/src/stores/plugin.ts +++ b/src/stores/plugin.ts @@ -355,8 +355,10 @@ export const usePluginStore = defineStore("plugin", () => { } return ( // eslint-disable-next-line @typescript-eslint/no-explicit-any - LocalNotifications as unknown as any - ).sendNotification(notification) + (LocalNotifications as unknown as any).sendNotification( + notification + ) + ) }) .catch((err) => { WARN(err)