From 38bc986bb3745ea9731de89529a6617e58878868 Mon Sep 17 00:00:00 2001 From: Michel Roux Date: Fri, 13 Sep 2024 08:56:04 +0200 Subject: [PATCH 1/8] refactor: :construction: introducing typescript (not working now) --- .eslintrc.js | 1 + package-lock.json | 580 ++++++++++++------ package.json | 15 +- src/App.vue | 2 +- src/components/Atoms/AppContent.vue | 4 +- src/components/Atoms/AppNavigation.vue | 4 +- src/components/Atoms/EmptyContent.vue | 2 +- src/components/Atoms/Loading.vue | 2 +- src/components/Atoms/Modal.vue | 8 +- src/components/Atoms/SafeHtml.vue | 2 +- src/components/Discover/AddRss.vue | 6 +- src/components/Discover/Search.vue | 16 +- src/components/Discover/Toplist.vue | 4 +- src/components/Feed/Banner.vue | 6 +- src/components/Feed/Episode.vue | 10 +- src/components/Feed/Episodes.vue | 10 +- src/components/Feed/Favorite.vue | 6 +- src/components/Player/Bar.vue | 2 +- src/components/Player/Controls.vue | 2 +- src/components/Player/Infos.vue | 4 +- src/components/Player/ProgressBar.vue | 2 +- src/components/Player/Timer.vue | 4 +- src/components/Player/Volume.vue | 2 +- src/components/Settings/Filters.vue | 2 +- src/components/Settings/Speed.vue | 2 +- src/components/Sidebar/Subscription.vue | 6 +- src/components/Sidebar/Subscriptions.vue | 4 +- src/{main.js => main.ts} | 4 +- src/{router.js => router.ts} | 0 src/store/{player.js => player.ts} | 51 +- src/store/settings.js | 31 - src/store/settings.ts | 36 ++ .../{subscriptions.js => subscriptions.ts} | 2 +- src/utils/{cookies.js => cookies.ts} | 4 +- src/utils/debounce.js | 12 - src/utils/{size.js => size.ts} | 4 +- src/utils/{status.js => status.ts} | 6 +- src/utils/{time.js => time.ts} | 12 +- src/utils/toast.js | 12 - src/utils/toast.ts | 14 + src/utils/types.ts | 33 + src/utils/url.js | 4 - src/utils/url.ts | 5 + src/views/Feed.vue | 2 +- src/views/Home.vue | 2 +- tsconfig.json | 19 + vite.config.mjs => vite.config.ts | 2 +- 47 files changed, 636 insertions(+), 327 deletions(-) rename src/{main.js => main.ts} (66%) rename src/{router.js => router.ts} (100%) rename src/store/{player.js => player.ts} (66%) delete mode 100644 src/store/settings.js create mode 100644 src/store/settings.ts rename src/store/{subscriptions.js => subscriptions.ts} (95%) rename src/utils/{cookies.js => cookies.ts} (85%) delete mode 100644 src/utils/debounce.js rename src/utils/{size.js => size.ts} (65%) rename src/utils/{status.js => status.ts} (69%) rename src/utils/{time.js => time.ts} (78%) delete mode 100644 src/utils/toast.js create mode 100644 src/utils/toast.ts create mode 100644 src/utils/types.ts delete mode 100644 src/utils/url.js create mode 100644 src/utils/url.ts create mode 100644 tsconfig.json rename vite.config.mjs => vite.config.ts (95%) diff --git a/.eslintrc.js b/.eslintrc.js index 313669d..0147cc8 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -4,6 +4,7 @@ module.exports = { 'plugin:pinia/recommended', 'plugin:prettier/recommended', ], + parser: 'vue-eslint-parser', rules: { 'jsdoc/require-jsdoc': 'off', 'vue/first-attribute-linebreak': 'off', diff --git a/package-lock.json b/package-lock.json index bab0426..57fa922 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,10 +15,11 @@ "@nextcloud/vue": "9.0.0-alpha.5", "dompurify": "^3.1.6", "linkify-html": "^4.1.3", + "petite-utils": "^0.0.5-3", "pinia": "^2.2.2", "toastify-js": "^1.12.0", - "vite": "^5.4.3", - "vite-plugin-vue-devtools": "^7.4.4", + "vite": "^5.4.4", + "vite-plugin-vue-devtools": "^7.4.5", "vue": "^3.5.4", "vue-material-design-icons": "^5.3.0", "vue-router": "^4.4.4" @@ -28,9 +29,15 @@ "@nextcloud/eslint-config": "^8.4.1", "@nextcloud/prettier-config": "^1.1.0", "@nextcloud/stylelint-config": "^3.0.1", + "@types/toastify-js": "^1.12.3", + "@vue/tsconfig": "^0.5.1", "eslint-config-prettier": "^9.1.0", "eslint-plugin-pinia": "^0.4.1", - "eslint-plugin-prettier": "^5.2.1" + "eslint-plugin-prettier": "^5.2.1", + "ts-node": "^10.9.2", + "typescript": "^5.6.2", + "vue-eslint-parser": "^9.4.3", + "vue-tsc": "^2.1.6" } }, "node_modules/@ampproject/remapping": { @@ -515,6 +522,28 @@ "vue": "^3.2.0" } }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, "node_modules/@csstools/css-parser-algorithms": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.1.tgz", @@ -1494,6 +1523,14 @@ "npm": "^10.0.0" } }, + "node_modules/@nextcloud/event-bus/node_modules/@types/node": { + "version": "20.16.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.5.tgz", + "integrity": "sha512-VwYCweNo3ERajwy0IUlqqcyZ8/A7Zwa9ZP3MnENWcB11AejO+tLy3pu850goUW2FC/IJMdZUfKpX/yxL1gymCA==", + "dependencies": { + "undici-types": "~6.19.2" + } + }, "node_modules/@nextcloud/event-bus/node_modules/semver": { "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", @@ -1821,9 +1858,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.2.tgz", - "integrity": "sha512-fSuPrt0ZO8uXeS+xP3b+yYTCBUd05MoSp2N/MFOgjhhUhMmchXlpTQrTpI8T+YAwAQuK7MafsCOxW7VrPMrJcg==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.3.tgz", + "integrity": "sha512-MmKSfaB9GX+zXl6E8z4koOr/xU63AMVleLEa64v7R0QF/ZloMs5vcD1sHgM64GXXS1csaJutG+ddtzcueI/BLg==", "cpu": [ "arm" ], @@ -1833,9 +1870,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.2.tgz", - "integrity": "sha512-xGU5ZQmPlsjQS6tzTTGwMsnKUtu0WVbl0hYpTPauvbRAnmIvpInhJtgjj3mcuJpEiuUw4v1s4BimkdfDWlh7gA==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.3.tgz", + "integrity": "sha512-zrt8ecH07PE3sB4jPOggweBjJMzI1JG5xI2DIsUbkA+7K+Gkjys6eV7i9pOenNSDJH3eOr/jLb/PzqtmdwDq5g==", "cpu": [ "arm64" ], @@ -1845,9 +1882,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.2.tgz", - "integrity": "sha512-99AhQ3/ZMxU7jw34Sq8brzXqWH/bMnf7ZVhvLk9QU2cOepbQSVTns6qoErJmSiAvU3InRqC2RRZ5ovh1KN0d0Q==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.3.tgz", + "integrity": "sha512-P0UxIOrKNBFTQaXTxOH4RxuEBVCgEA5UTNV6Yz7z9QHnUJ7eLX9reOd/NYMO3+XZO2cco19mXTxDMXxit4R/eQ==", "cpu": [ "arm64" ], @@ -1857,9 +1894,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.2.tgz", - "integrity": "sha512-ZbRaUvw2iN/y37x6dY50D8m2BnDbBjlnMPotDi/qITMJ4sIxNY33HArjikDyakhSv0+ybdUxhWxE6kTI4oX26w==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.3.tgz", + "integrity": "sha512-L1M0vKGO5ASKntqtsFEjTq/fD91vAqnzeaF6sfNAy55aD+Hi2pBI5DKwCO+UNDQHWsDViJLqshxOahXyLSh3EA==", "cpu": [ "x64" ], @@ -1869,9 +1906,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.2.tgz", - "integrity": "sha512-ztRJJMiE8nnU1YFcdbd9BcH6bGWG1z+jP+IPW2oDUAPxPjo9dverIOyXz76m6IPA6udEL12reYeLojzW2cYL7w==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.3.tgz", + "integrity": "sha512-btVgIsCjuYFKUjopPoWiDqmoUXQDiW2A4C3Mtmp5vACm7/GnyuprqIDPNczeyR5W8rTXEbkmrJux7cJmD99D2g==", "cpu": [ "arm" ], @@ -1881,9 +1918,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.2.tgz", - "integrity": "sha512-flOcGHDZajGKYpLV0JNc0VFH361M7rnV1ee+NTeC/BQQ1/0pllYcFmxpagltANYt8FYf9+kL6RSk80Ziwyhr7w==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.3.tgz", + "integrity": "sha512-zmjbSphplZlau6ZTkxd3+NMtE4UKVy7U4aVFMmHcgO5CUbw17ZP6QCgyxhzGaU/wFFdTfiojjbLG3/0p9HhAqA==", "cpu": [ "arm" ], @@ -1893,9 +1930,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.2.tgz", - "integrity": "sha512-69CF19Kp3TdMopyteO/LJbWufOzqqXzkrv4L2sP8kfMaAQ6iwky7NoXTp7bD6/irKgknDKM0P9E/1l5XxVQAhw==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.3.tgz", + "integrity": "sha512-nSZfcZtAnQPRZmUkUQwZq2OjQciR6tEoJaZVFvLHsj0MF6QhNMg0fQ6mUOsiCUpTqxTx0/O6gX0V/nYc7LrgPw==", "cpu": [ "arm64" ], @@ -1905,9 +1942,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.2.tgz", - "integrity": "sha512-48pD/fJkTiHAZTnZwR0VzHrao70/4MlzJrq0ZsILjLW/Ab/1XlVUStYyGt7tdyIiVSlGZbnliqmult/QGA2O2w==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.3.tgz", + "integrity": "sha512-MnvSPGO8KJXIMGlQDYfvYS3IosFN2rKsvxRpPO2l2cum+Z3exiExLwVU+GExL96pn8IP+GdH8Tz70EpBhO0sIQ==", "cpu": [ "arm64" ], @@ -1917,9 +1954,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.2.tgz", - "integrity": "sha512-cZdyuInj0ofc7mAQpKcPR2a2iu4YM4FQfuUzCVA2u4HI95lCwzjoPtdWjdpDKyHxI0UO82bLDoOaLfpZ/wviyQ==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.3.tgz", + "integrity": "sha512-+W+p/9QNDr2vE2AXU0qIy0qQE75E8RTwTwgqS2G5CRQ11vzq0tbnfBd6brWhS9bCRjAjepJe2fvvkvS3dno+iw==", "cpu": [ "ppc64" ], @@ -1929,9 +1966,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.2.tgz", - "integrity": "sha512-RL56JMT6NwQ0lXIQmMIWr1SW28z4E4pOhRRNqwWZeXpRlykRIlEpSWdsgNWJbYBEWD84eocjSGDu/XxbYeCmwg==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.3.tgz", + "integrity": "sha512-yXH6K6KfqGXaxHrtr+Uoy+JpNlUlI46BKVyonGiaD74ravdnF9BUNC+vV+SIuB96hUMGShhKV693rF9QDfO6nQ==", "cpu": [ "riscv64" ], @@ -1941,9 +1978,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.2.tgz", - "integrity": "sha512-PMxkrWS9z38bCr3rWvDFVGD6sFeZJw4iQlhrup7ReGmfn7Oukrr/zweLhYX6v2/8J6Cep9IEA/SmjXjCmSbrMQ==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.3.tgz", + "integrity": "sha512-R8cwY9wcnApN/KDYWTH4gV/ypvy9yZUHlbJvfaiXSB48JO3KpwSpjOGqO4jnGkLDSk1hgjYkTbTt6Q7uvPf8eg==", "cpu": [ "s390x" ], @@ -1953,9 +1990,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.2.tgz", - "integrity": "sha512-B90tYAUoLhU22olrafY3JQCFLnT3NglazdwkHyxNDYF/zAxJt5fJUB/yBoWFoIQ7SQj+KLe3iL4BhOMa9fzgpw==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.3.tgz", + "integrity": "sha512-kZPbX/NOPh0vhS5sI+dR8L1bU2cSO9FgxwM8r7wHzGydzfSjLRCFAT87GR5U9scj2rhzN3JPYVC7NoBbl4FZ0g==", "cpu": [ "x64" ], @@ -1965,9 +2002,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.2.tgz", - "integrity": "sha512-7twFizNXudESmC9oneLGIUmoHiiLppz/Xs5uJQ4ShvE6234K0VB1/aJYU3f/4g7PhssLGKBVCC37uRkkOi8wjg==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.3.tgz", + "integrity": "sha512-S0Yq+xA1VEH66uiMNhijsWAafffydd2X5b77eLHfRmfLsRSpbiAWiRHV6DEpz6aOToPsgid7TI9rGd6zB1rhbg==", "cpu": [ "x64" ], @@ -1977,9 +2014,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.2.tgz", - "integrity": "sha512-9rRero0E7qTeYf6+rFh3AErTNU1VCQg2mn7CQcI44vNUWM9Ze7MSRS/9RFuSsox+vstRt97+x3sOhEey024FRQ==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.3.tgz", + "integrity": "sha512-9isNzeL34yquCPyerog+IMCNxKR8XYmGd0tHSV+OVx0TmE0aJOo9uw4fZfUuk2qxobP5sug6vNdZR6u7Mw7Q+Q==", "cpu": [ "arm64" ], @@ -1989,9 +2026,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.2.tgz", - "integrity": "sha512-5rA4vjlqgrpbFVVHX3qkrCo/fZTj1q0Xxpg+Z7yIo3J2AilW7t2+n6Q8Jrx+4MrYpAnjttTYF8rr7bP46BPzRw==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.3.tgz", + "integrity": "sha512-nMIdKnfZfzn1Vsk+RuOvl43ONTZXoAPUUxgcU0tXooqg4YrAqzfKzVenqqk2g5efWh46/D28cKFrOzDSW28gTA==", "cpu": [ "ia32" ], @@ -2001,9 +2038,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.2.tgz", - "integrity": "sha512-6UUxd0+SKomjdzuAcp+HAmxw1FlGBnl1v2yEPSabtx4lBfdXHDVsW7+lQkgz9cNFJGY3AWR7+V8P5BqkD9L9nA==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.3.tgz", + "integrity": "sha512-fOvu7PCQjAj4eWDEuD8Xz5gpzFqXzGlxHZozHP4b9Jxv9APtdxL6STqztDzMLuRXEc4UpXGGhx029Xgm91QBeA==", "cpu": [ "x64" ], @@ -2137,6 +2174,30 @@ "sprintf-js": "~1.0.2" } }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true + }, "node_modules/@types/argparse": { "version": "1.0.38", "resolved": "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.38.tgz", @@ -2213,9 +2274,11 @@ "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" }, "node_modules/@types/node": { - "version": "20.16.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.5.tgz", - "integrity": "sha512-VwYCweNo3ERajwy0IUlqqcyZ8/A7Zwa9ZP3MnENWcB11AejO+tLy3pu850goUW2FC/IJMdZUfKpX/yxL1gymCA==", + "version": "22.5.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.4.tgz", + "integrity": "sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==", + "devOptional": true, + "peer": true, "dependencies": { "undici-types": "~6.19.2" } @@ -2225,6 +2288,12 @@ "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz", "integrity": "sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==" }, + "node_modules/@types/toastify-js": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/@types/toastify-js/-/toastify-js-1.12.3.tgz", + "integrity": "sha512-9RjLlbAHMSaae/KZNHGv19VG4gcLIm3YjvacCXBtfMfYn26h76YP5oxXI8k26q4iKXCB9LNfv18lsoS0JnFPTg==", + "dev": true + }, "node_modules/@types/trusted-types": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", @@ -2493,23 +2562,40 @@ } }, "node_modules/@volar/typescript": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.11.1.tgz", - "integrity": "sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.4.tgz", + "integrity": "sha512-QQMQRVj0fVHJ3XdRKiS1LclhG0VBXdFYlyuHRQF/xLk2PuJuHNWP26MDZNvEVCvnyUQuUQhIAfylwY5TGPgc6w==", + "dev": true, "dependencies": { - "@volar/language-core": "1.11.1", - "path-browserify": "^1.0.1" + "@volar/language-core": "2.4.4", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" } }, + "node_modules/@volar/typescript/node_modules/@volar/language-core": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.4.tgz", + "integrity": "sha512-kO9k4kTLfxpg+6lq7/KAIv3m2d62IHuCL6GbVgYZTpfKvIGoAIlDxK7pFcB/eczN2+ydg/vnyaeZ6SGyZrJw2w==", + "dev": true, + "dependencies": { + "@volar/source-map": "2.4.4" + } + }, + "node_modules/@volar/typescript/node_modules/@volar/source-map": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.4.tgz", + "integrity": "sha512-xG3PZqOP2haG8XG4Pg3PD1UGDAdqZg24Ru8c/qYjYAnmcj6GBR64mstx+bZux5QOyRaJK+/lNM/RnpvBD3489g==", + "dev": true + }, "node_modules/@vue/babel-helper-vue-transform-on": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.2.4.tgz", - "integrity": "sha512-3L9zXWRN2jvmLjtSyw9vtcO5KTSCfKhCD5rEZM+024bc+4dKSzTjIABl/5b+uZ5nXe5y31uUMxxLo1PdXkYaig==" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.2.5.tgz", + "integrity": "sha512-lOz4t39ZdmU4DJAa2hwPYmKc8EsuGa2U0L9KaZaOJUt0UwQNjNA3AZTq6uEivhOKhhG1Wvy96SvYBoFmCg3uuw==" }, "node_modules/@vue/babel-plugin-jsx": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.2.4.tgz", - "integrity": "sha512-jwAVtHUaDfOGGT1EmVKBi0anXOtPvsuKbImcdnHXluaJQ6GEJzshf1JMTtMRx2fPiG7BZjNmyMv+NdZY2OyZEA==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.2.5.tgz", + "integrity": "sha512-zTrNmOd4939H9KsRIGmmzn3q2zvv1mjxkYZHgqHZgDrXz5B1Q3WyGEjO2f+JrmKghvl1JIRcvo63LgM1kH5zFg==", "dependencies": { "@babel/helper-module-imports": "^7.24.7", "@babel/helper-plugin-utils": "^7.24.8", @@ -2517,8 +2603,8 @@ "@babel/template": "^7.25.0", "@babel/traverse": "^7.25.6", "@babel/types": "^7.25.6", - "@vue/babel-helper-vue-transform-on": "1.2.4", - "@vue/babel-plugin-resolve-type": "1.2.4", + "@vue/babel-helper-vue-transform-on": "1.2.5", + "@vue/babel-plugin-resolve-type": "1.2.5", "html-tags": "^3.3.1", "svg-tags": "^1.0.0" }, @@ -2532,9 +2618,9 @@ } }, "node_modules/@vue/babel-plugin-resolve-type": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.2.4.tgz", - "integrity": "sha512-jWcJAmfKvc/xT2XBC4JAmy2eezNjU3CLfeDecl2Ge3tSjJCTmKJWkEhHdzXyx9Nr6PbIcQrFKhCaEDobhSrPqw==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.2.5.tgz", + "integrity": "sha512-U/ibkQrf5sx0XXRnUZD1mo5F7PkpKyTbfXM3a3rC4YnUz6crHEz9Jg09jzzL6QYlXNto/9CePdOg/c87O4Nlfg==", "dependencies": { "@babel/code-frame": "^7.24.7", "@babel/helper-module-imports": "^7.24.7", @@ -2596,6 +2682,16 @@ "@vue/shared": "3.5.5" } }, + "node_modules/@vue/compiler-vue2": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", + "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", + "dev": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, "node_modules/@vue/devtools-api": { "version": "6.6.4", "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", @@ -2605,7 +2701,6 @@ "version": "7.4.5", "resolved": "https://registry.npmjs.org/@vue/devtools-core/-/devtools-core-7.4.5.tgz", "integrity": "sha512-QwrgKYxwafJUJrKRvJGbzQLuGt0BC1P4qTr4qlEKgOOs+GV0n6zTry2oeHiwmj5H6pOkLoHnwFMOTB9rFtn9QQ==", - "license": "MIT", "dependencies": { "@vue/devtools-kit": "^7.4.5", "@vue/devtools-shared": "^7.4.5", @@ -2622,7 +2717,6 @@ "version": "7.4.5", "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.4.5.tgz", "integrity": "sha512-Uuki4Z6Bc/ExvtlPkeDNGSAe4580R+HPcVABfTE9TF7BTz3Nntk7vxIRUyWblZkUEcB/x+wn2uofyt5i2LaUew==", - "license": "MIT", "dependencies": { "@vue/devtools-shared": "^7.4.5", "birpc": "^0.2.17", @@ -2637,7 +2731,6 @@ "version": "7.4.5", "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.4.5.tgz", "integrity": "sha512-2XgUOkL/7QDmyYI9J7cm+rz/qBhcGv+W5+i1fhwdQ0HQ1RowhdK66F0QBuJSz/5k12opJY8eN6m03/XZMs7imQ==", - "license": "MIT", "dependencies": { "rfdc": "^1.4.1" } @@ -2741,6 +2834,12 @@ "integrity": "sha512-0KyMXyEgnmFAs6rNUL+6eUHtUCqCaNrVd+AW3MX3LyA0Yry5SA0Km03CDKiOua1x1WWnIr+W9+S0GMFoSDWERQ==", "license": "MIT" }, + "node_modules/@vue/tsconfig": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.5.1.tgz", + "integrity": "sha512-VcZK7MvpjuTPx2w6blwnwZAu5/LgBUtejFOi3pPGQFXQN5Ela03FUtd2Qtg4yWGGissVL0dr6Ro1LfOFh+PCuQ==", + "dev": true + }, "node_modules/@vueuse/components": { "version": "10.11.1", "resolved": "https://registry.npmjs.org/@vueuse/components/-/components-10.11.1.tgz", @@ -2875,11 +2974,22 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, - "peer": true, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dev": true, + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -2939,6 +3049,12 @@ "node": ">=14" } }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -3199,7 +3315,6 @@ "version": "0.2.17", "resolved": "https://registry.npmjs.org/birpc/-/birpc-0.2.17.tgz", "integrity": "sha512-+hkTxhot+dWsLpp3gia5AkVHIsKlZybNT5gIYiDlNzJrmYPcTM9k5/w2uaj3IPpd7LlEYpmCj4Jj1nC41VhDFg==", - "license": "MIT", "funding": { "url": "https://github.com/sponsors/antfu" } @@ -3746,7 +3861,6 @@ "version": "3.0.5", "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz", "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==", - "license": "MIT", "dependencies": { "is-what": "^4.1.8" }, @@ -4176,6 +4290,15 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/diffie-hellman": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", @@ -4292,9 +4415,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.19", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.19.tgz", - "integrity": "sha512-kpLJJi3zxTR1U828P+LIUDZ5ohixyo68/IcYOHLqnbTPr/wdgn4i1ECvmALN9E16JPA6cvCG5UG79gVwVdEK5w==" + "version": "1.5.20", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.20.tgz", + "integrity": "sha512-74mdl6Fs1HHzK9SUX4CKFxAtAe3nUns48y79TskHNAG6fGOlLfyKA4j855x+0b5u8rWJIrlaG9tcTPstMlwjIw==" }, "node_modules/elliptic": { "version": "6.5.7", @@ -5357,7 +5480,6 @@ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, - "peer": true, "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", @@ -5375,7 +5497,6 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, - "peer": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -5388,7 +5509,6 @@ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, - "peer": true, "dependencies": { "estraverse": "^5.1.0" }, @@ -5401,7 +5521,6 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "peer": true, "engines": { "node": ">=4.0" } @@ -5411,7 +5530,6 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, - "peer": true, "dependencies": { "estraverse": "^5.2.0" }, @@ -5424,7 +5542,6 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "peer": true, "engines": { "node": ">=4.0" } @@ -5704,9 +5821,9 @@ } }, "node_modules/focus-trap": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.5.4.tgz", - "integrity": "sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.6.0.tgz", + "integrity": "sha512-1td0l3pMkWJLFipobUcGaf+5DTY4PLDDrcqoSaKP8ediO/CoWCCYk/fT/Y2A4e6TNB+Sh6clRJCjOPPnKoNHnQ==", "dependencies": { "tabbable": "^6.2.0" } @@ -5889,9 +6006,9 @@ } }, "node_modules/get-tsconfig": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.0.tgz", - "integrity": "sha512-Pgba6TExTZ0FJAn1qkJAjIeKoDJ3CsI2ChuLohJnZl/tTU8MVrq3b+2t5UOPfRa4RMsorClBjJALkJUMjG1PAw==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", + "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", "dev": true, "peer": true, "dependencies": { @@ -6254,8 +6371,7 @@ "node_modules/hookable": { "version": "5.5.3", "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", - "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", - "license": "MIT" + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==" }, "node_modules/html-tags": { "version": "3.3.1", @@ -6302,9 +6418,9 @@ } }, "node_modules/ical.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ical.js/-/ical.js-2.0.1.tgz", - "integrity": "sha512-uYYb1CwTXbd9NP/xTtgQZ5ivv6bpUjQu9VM98s3X78L3XRu00uJW5ZtmnLwyxhztpf5fSiRyDpFW7ZNCePlaPw==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ical.js/-/ical.js-2.1.0.tgz", + "integrity": "sha512-BOVfrH55xQ6kpS3muGvIXIg2l7p+eoe12/oS7R5yrO3TL/j/bLsR0PR+tYQESFbyTbvGgPHn9zQ6tI4FWyuSaQ==" }, "node_modules/ieee754": { "version": "1.2.1", @@ -6400,9 +6516,9 @@ "peer": true }, "node_modules/inline-style-parser": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.3.tgz", - "integrity": "sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g==" + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz", + "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==" }, "node_modules/internal-slot": { "version": "1.0.7", @@ -6916,7 +7032,6 @@ "version": "4.1.16", "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", - "license": "MIT", "engines": { "node": ">=12.13" }, @@ -7190,6 +7305,12 @@ "@jridgewell/sourcemap-codec": "^1.5.0" } }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, "node_modules/markdown-table": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", @@ -8177,8 +8298,7 @@ "node_modules/mitt": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", - "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", - "license": "MIT" + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==" }, "node_modules/moment": { "version": "2.30.1", @@ -8685,6 +8805,11 @@ "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==" }, + "node_modules/petite-utils": { + "version": "0.0.5-3", + "resolved": "https://registry.npmjs.org/petite-utils/-/petite-utils-0.0.5-3.tgz", + "integrity": "sha512-oeuwgChhxtYMuxyaHzSo8aoix+pjTKBnHlii04uMRhUIaazCCCG4NAkGwdpnvgfdYE2ajVhnARoFtdRujJuUjA==" + }, "node_modules/picocolors": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", @@ -9302,8 +9427,7 @@ "node_modules/rfdc": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", - "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", - "license": "MIT" + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==" }, "node_modules/rimraf": { "version": "3.0.2", @@ -9332,9 +9456,9 @@ } }, "node_modules/rollup": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.2.tgz", - "integrity": "sha512-e3TapAgYf9xjdLvKQCkQTnbTKd4a6jwlpQSJJFokHGaX2IVjoEqkIIhiQfqsi0cdwlOD+tQGuOd5AJkc5RngBw==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.3.tgz", + "integrity": "sha512-7sqRtBNnEbcBtMeRVc6VRsJMmpI+JU1z9VTvW8D4gXIYQFz0aLcsE6rRkyghZkLfEgUZgVvOG7A5CVz/VW5GIA==", "dependencies": { "@types/estree": "1.0.5" }, @@ -9346,22 +9470,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.21.2", - "@rollup/rollup-android-arm64": "4.21.2", - "@rollup/rollup-darwin-arm64": "4.21.2", - "@rollup/rollup-darwin-x64": "4.21.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.21.2", - "@rollup/rollup-linux-arm-musleabihf": "4.21.2", - "@rollup/rollup-linux-arm64-gnu": "4.21.2", - "@rollup/rollup-linux-arm64-musl": "4.21.2", - "@rollup/rollup-linux-powerpc64le-gnu": "4.21.2", - "@rollup/rollup-linux-riscv64-gnu": "4.21.2", - "@rollup/rollup-linux-s390x-gnu": "4.21.2", - "@rollup/rollup-linux-x64-gnu": "4.21.2", - "@rollup/rollup-linux-x64-musl": "4.21.2", - "@rollup/rollup-win32-arm64-msvc": "4.21.2", - "@rollup/rollup-win32-ia32-msvc": "4.21.2", - "@rollup/rollup-win32-x64-msvc": "4.21.2", + "@rollup/rollup-android-arm-eabi": "4.21.3", + "@rollup/rollup-android-arm64": "4.21.3", + "@rollup/rollup-darwin-arm64": "4.21.3", + "@rollup/rollup-darwin-x64": "4.21.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.21.3", + "@rollup/rollup-linux-arm-musleabihf": "4.21.3", + "@rollup/rollup-linux-arm64-gnu": "4.21.3", + "@rollup/rollup-linux-arm64-musl": "4.21.3", + "@rollup/rollup-linux-powerpc64le-gnu": "4.21.3", + "@rollup/rollup-linux-riscv64-gnu": "4.21.3", + "@rollup/rollup-linux-s390x-gnu": "4.21.3", + "@rollup/rollup-linux-x64-gnu": "4.21.3", + "@rollup/rollup-linux-x64-musl": "4.21.3", + "@rollup/rollup-win32-arm64-msvc": "4.21.3", + "@rollup/rollup-win32-ia32-msvc": "4.21.3", + "@rollup/rollup-win32-x64-msvc": "4.21.3", "fsevents": "~2.3.2" } }, @@ -9929,7 +10053,6 @@ "version": "14.0.1", "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz", "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==", - "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -10160,11 +10283,11 @@ "peer": true }, "node_modules/style-to-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.7.tgz", - "integrity": "sha512-uSjr59G5u6fbxUfKbb8GcqMGT3Xs9v5IbPkjb0S16GyOeBLAzSRK0CixBv5YrYvzO6TDLzIS6QCn78tkqWngPw==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", + "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==", "dependencies": { - "inline-style-parser": "0.2.3" + "inline-style-parser": "0.2.4" } }, "node_modules/stylelint": { @@ -10331,9 +10454,9 @@ } }, "node_modules/stylelint-scss": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.5.1.tgz", - "integrity": "sha512-ZLqdqihm6uDYkrsOeD6YWb+stZI8Wn92kUNDhE4M+g9g1aCnRv0JlOrttFiAJJwaNzpdQgX3YJb5vDQXVuO9Ww==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.6.0.tgz", + "integrity": "sha512-aK2Rdt41Jt9Gv/ClMN5BYhP7xR3IEoRMDKpJkIDI9frZQ6KkxeLishusxs2JtEGZdJWXvPoBOhswNxj3gx8L/g==", "dev": true, "peer": true, "dependencies": { @@ -10341,8 +10464,8 @@ "is-plain-object": "5.0.0", "known-css-properties": "^0.34.0", "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.4", - "postcss-selector-parser": "^6.1.1", + "postcss-resolve-nested-selector": "^0.1.6", + "postcss-selector-parser": "^6.1.2", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -10456,7 +10579,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.1.tgz", "integrity": "sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==", - "license": "MIT", "dependencies": { "copy-anything": "^3.0.2" }, @@ -10689,6 +10811,49 @@ "typescript": ">=4.2.0" } }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, "node_modules/tsconfig-paths": { "version": "3.15.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", @@ -10833,7 +10998,6 @@ "version": "5.6.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -11035,6 +11199,12 @@ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, "node_modules/validator": { "version": "13.12.0", "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz", @@ -11173,6 +11343,42 @@ } } }, + "node_modules/vite-plugin-dts/node_modules/@volar/typescript": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.11.1.tgz", + "integrity": "sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==", + "dependencies": { + "@volar/language-core": "1.11.1", + "path-browserify": "^1.0.1" + } + }, + "node_modules/vite-plugin-dts/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/vite-plugin-dts/node_modules/vue-tsc": { + "version": "1.8.27", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.8.27.tgz", + "integrity": "sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==", + "dependencies": { + "@volar/typescript": "~1.11.1", + "@vue/language-core": "1.8.27", + "semver": "^7.5.4" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": "*" + } + }, "node_modules/vite-plugin-inspect": { "version": "0.8.7", "resolved": "https://registry.npmjs.org/vite-plugin-inspect/-/vite-plugin-inspect-0.8.7.tgz", @@ -11254,7 +11460,6 @@ "version": "7.4.5", "resolved": "https://registry.npmjs.org/vite-plugin-vue-devtools/-/vite-plugin-vue-devtools-7.4.5.tgz", "integrity": "sha512-8D9Dv7uw620r96uI45M7hCyfsBA9KwttdmxA/DAd0/1KpuGmrFEhNwo4ob/sjaou1noAeK2TrnKdW+sFMR6aKQ==", - "license": "MIT", "dependencies": { "@vue/devtools-core": "^7.4.5", "@vue/devtools-kit": "^7.4.5", @@ -11297,7 +11502,6 @@ "cpu": [ "ppc64" ], - "license": "MIT", "optional": true, "os": [ "aix" @@ -11313,7 +11517,6 @@ "cpu": [ "arm" ], - "license": "MIT", "optional": true, "os": [ "android" @@ -11329,7 +11532,6 @@ "cpu": [ "arm64" ], - "license": "MIT", "optional": true, "os": [ "android" @@ -11345,7 +11547,6 @@ "cpu": [ "x64" ], - "license": "MIT", "optional": true, "os": [ "android" @@ -11361,7 +11562,6 @@ "cpu": [ "arm64" ], - "license": "MIT", "optional": true, "os": [ "darwin" @@ -11377,7 +11577,6 @@ "cpu": [ "x64" ], - "license": "MIT", "optional": true, "os": [ "darwin" @@ -11393,7 +11592,6 @@ "cpu": [ "arm64" ], - "license": "MIT", "optional": true, "os": [ "freebsd" @@ -11409,7 +11607,6 @@ "cpu": [ "x64" ], - "license": "MIT", "optional": true, "os": [ "freebsd" @@ -11425,7 +11622,6 @@ "cpu": [ "arm" ], - "license": "MIT", "optional": true, "os": [ "linux" @@ -11441,7 +11637,6 @@ "cpu": [ "arm64" ], - "license": "MIT", "optional": true, "os": [ "linux" @@ -11457,7 +11652,6 @@ "cpu": [ "ia32" ], - "license": "MIT", "optional": true, "os": [ "linux" @@ -11473,7 +11667,6 @@ "cpu": [ "loong64" ], - "license": "MIT", "optional": true, "os": [ "linux" @@ -11489,7 +11682,6 @@ "cpu": [ "mips64el" ], - "license": "MIT", "optional": true, "os": [ "linux" @@ -11505,7 +11697,6 @@ "cpu": [ "ppc64" ], - "license": "MIT", "optional": true, "os": [ "linux" @@ -11521,7 +11712,6 @@ "cpu": [ "riscv64" ], - "license": "MIT", "optional": true, "os": [ "linux" @@ -11537,7 +11727,6 @@ "cpu": [ "s390x" ], - "license": "MIT", "optional": true, "os": [ "linux" @@ -11553,7 +11742,6 @@ "cpu": [ "x64" ], - "license": "MIT", "optional": true, "os": [ "linux" @@ -11569,7 +11757,6 @@ "cpu": [ "x64" ], - "license": "MIT", "optional": true, "os": [ "netbsd" @@ -11585,7 +11772,6 @@ "cpu": [ "x64" ], - "license": "MIT", "optional": true, "os": [ "openbsd" @@ -11601,7 +11787,6 @@ "cpu": [ "x64" ], - "license": "MIT", "optional": true, "os": [ "sunos" @@ -11617,7 +11802,6 @@ "cpu": [ "arm64" ], - "license": "MIT", "optional": true, "os": [ "win32" @@ -11633,7 +11817,6 @@ "cpu": [ "ia32" ], - "license": "MIT", "optional": true, "os": [ "win32" @@ -11649,7 +11832,6 @@ "cpu": [ "x64" ], - "license": "MIT", "optional": true, "os": [ "win32" @@ -11663,7 +11845,6 @@ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "hasInstallScript": true, - "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -11701,6 +11882,12 @@ "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" }, + "node_modules/vscode-uri": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", + "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", + "dev": true + }, "node_modules/vue": { "version": "3.5.5", "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.5.tgz", @@ -11739,7 +11926,6 @@ "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz", "integrity": "sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==", "dev": true, - "peer": true, "dependencies": { "debug": "^4.3.4", "eslint-scope": "^7.1.1", @@ -11764,7 +11950,6 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, - "peer": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -11781,7 +11966,6 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, - "peer": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -11794,7 +11978,6 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "peer": true, "engines": { "node": ">=4.0" } @@ -11804,7 +11987,6 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "peer": true, "bin": { "semver": "bin/semver.js" }, @@ -11858,25 +12040,72 @@ } }, "node_modules/vue-tsc": { - "version": "1.8.27", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.8.27.tgz", - "integrity": "sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.1.6.tgz", + "integrity": "sha512-f98dyZp5FOukcYmbFpuSCJ4Z0vHSOSmxGttZJCsFeX0M4w/Rsq0s4uKXjcSRsZqsRgQa6z7SfuO+y0HVICE57Q==", + "dev": true, "dependencies": { - "@volar/typescript": "~1.11.1", - "@vue/language-core": "1.8.27", + "@volar/typescript": "~2.4.1", + "@vue/language-core": "2.1.6", "semver": "^7.5.4" }, "bin": { "vue-tsc": "bin/vue-tsc.js" }, "peerDependencies": { - "typescript": "*" + "typescript": ">=5.0.0" } }, + "node_modules/vue-tsc/node_modules/@volar/language-core": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.4.tgz", + "integrity": "sha512-kO9k4kTLfxpg+6lq7/KAIv3m2d62IHuCL6GbVgYZTpfKvIGoAIlDxK7pFcB/eczN2+ydg/vnyaeZ6SGyZrJw2w==", + "dev": true, + "dependencies": { + "@volar/source-map": "2.4.4" + } + }, + "node_modules/vue-tsc/node_modules/@volar/source-map": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.4.tgz", + "integrity": "sha512-xG3PZqOP2haG8XG4Pg3PD1UGDAdqZg24Ru8c/qYjYAnmcj6GBR64mstx+bZux5QOyRaJK+/lNM/RnpvBD3489g==", + "dev": true + }, + "node_modules/vue-tsc/node_modules/@vue/language-core": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.1.6.tgz", + "integrity": "sha512-MW569cSky9R/ooKMh6xa2g1D0AtRKbL56k83dzus/bx//RDJk24RHWkMzbAlXjMdDNyxAaagKPRquBIxkxlCkg==", + "dev": true, + "dependencies": { + "@volar/language-core": "~2.4.1", + "@vue/compiler-dom": "^3.4.0", + "@vue/compiler-vue2": "^2.7.16", + "@vue/shared": "^3.4.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-tsc/node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "dev": true + }, "node_modules/vue-tsc/node_modules/semver": { "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, "bin": { "semver": "bin/semver.js" }, @@ -11987,6 +12216,15 @@ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index d21fc44..d416fe2 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "repod", "license": "AGPL-3.0-or-later", "scripts": { - "build": "vite build --mode production", + "build": "vue-tsc && vite build --mode production", "dev": "vite build --mode development", "dev:watch": "vite build --mode development --watch", "watch": "npm run dev:watch", @@ -24,10 +24,11 @@ "@nextcloud/vue": "9.0.0-alpha.5", "dompurify": "^3.1.6", "linkify-html": "^4.1.3", + "petite-utils": "^0.0.5-3", "pinia": "^2.2.2", "toastify-js": "^1.12.0", - "vite": "^5.4.3", - "vite-plugin-vue-devtools": "^7.4.4", + "vite": "^5.4.4", + "vite-plugin-vue-devtools": "^7.4.5", "vue": "^3.5.4", "vue-material-design-icons": "^5.3.0", "vue-router": "^4.4.4" @@ -37,8 +38,14 @@ "@nextcloud/eslint-config": "^8.4.1", "@nextcloud/prettier-config": "^1.1.0", "@nextcloud/stylelint-config": "^3.0.1", + "@types/toastify-js": "^1.12.3", + "@vue/tsconfig": "^0.5.1", "eslint-config-prettier": "^9.1.0", "eslint-plugin-pinia": "^0.4.1", - "eslint-plugin-prettier": "^5.2.1" + "eslint-plugin-prettier": "^5.2.1", + "ts-node": "^10.9.2", + "typescript": "^5.6.2", + "vue-eslint-parser": "^9.4.3", + "vue-tsc": "^2.1.6" } } diff --git a/src/App.vue b/src/App.vue index a8bd6ed..9c0a468 100644 --- a/src/App.vue +++ b/src/App.vue @@ -15,7 +15,7 @@ import GPodder from './views/GPodder.vue' import { NcContent } from '@nextcloud/vue' import Subscriptions from './components/Sidebar/Subscriptions.vue' import { loadState } from '@nextcloud/initial-state' -import { usePlayer } from './store/player.js' +import { usePlayer } from './store/player.ts' export default { name: 'App', diff --git a/src/components/Atoms/AppContent.vue b/src/components/Atoms/AppContent.vue index 72477db..f47bc14 100644 --- a/src/components/Atoms/AppContent.vue +++ b/src/components/Atoms/AppContent.vue @@ -4,10 +4,10 @@ - diff --git a/src/components/Atoms/SafeHtml.vue b/src/components/Atoms/SafeHtml.vue index f236126..e5abf3b 100644 --- a/src/components/Atoms/SafeHtml.vue +++ b/src/components/Atoms/SafeHtml.vue @@ -2,7 +2,7 @@
- diff --git a/src/components/Discover/Toplist.vue b/src/components/Discover/Toplist.vue index 7a0baf8..71fff17 100644 --- a/src/components/Discover/Toplist.vue +++ b/src/components/Discover/Toplist.vue @@ -12,11 +12,13 @@
- diff --git a/src/components/Feed/Episode.vue b/src/components/Feed/Episode.vue index e56c09c..5ea59a9 100644 --- a/src/components/Feed/Episode.vue +++ b/src/components/Feed/Episode.vue @@ -2,7 +2,11 @@ @@ -88,7 +92,7 @@ - diff --git a/src/components/Settings/Filters.vue b/src/components/Settings/Filters.vue index d138faf..91c816d 100644 --- a/src/components/Settings/Filters.vue +++ b/src/components/Settings/Filters.vue @@ -39,11 +39,12 @@ - diff --git a/src/components/Settings/Import.vue b/src/components/Settings/Import.vue index 3b15fac..09c33ad 100644 --- a/src/components/Settings/Import.vue +++ b/src/components/Settings/Import.vue @@ -29,12 +29,13 @@ - diff --git a/src/components/Settings/Settings.vue b/src/components/Settings/Settings.vue index 7d07062..816e33e 100644 --- a/src/components/Settings/Settings.vue +++ b/src/components/Settings/Settings.vue @@ -8,7 +8,7 @@ - diff --git a/src/store/player.ts b/src/store/player.ts index f0a4e8e..2076e74 100644 --- a/src/store/player.ts +++ b/src/store/player.ts @@ -1,4 +1,4 @@ -import type { EpisodeInterface } from '../utils/types' +import type { EpisodeActionInterface, EpisodeInterface } from '../utils/types' import axios from '@nextcloud/axios' import { defineStore } from 'pinia' import { formatEpisodeTimestamp } from '../utils/time' @@ -39,7 +39,7 @@ export const usePlayer = defineStore('player', { audio.load() try { - const action = await axios.get( + const action = await axios.get( generateUrl('/apps/repod/episodes/action?url={url}', { url: this.episode.url, }), diff --git a/src/store/settings.ts b/src/store/settings.ts index 8d257de..a3af2ff 100644 --- a/src/store/settings.ts +++ b/src/store/settings.ts @@ -24,7 +24,7 @@ export const useSettings = defineStore('settings', { } }, actions: { - setFilters(filters: FiltersInterface) { + setFilters(filters: Partial) { this.filters = { ...this.filters, ...filters } setCookie('repod.filters', JSON.stringify(this.filters), 365) }, diff --git a/src/store/subscriptions.ts b/src/store/subscriptions.ts index 691a11c..6230291 100644 --- a/src/store/subscriptions.ts +++ b/src/store/subscriptions.ts @@ -1,6 +1,6 @@ import type { + PersonalSettingsMetricsInterface, PodcastDataInterface, - PodcastMetricsInterface, SubscriptionInterface, } from '../utils/types' import { getCookie, setCookie } from '../utils/cookies' @@ -23,7 +23,7 @@ export const useSubscriptions = defineStore('subscriptions', { favorites = JSON.parse(getCookie('repod.favorites') || '[]') || [] } catch {} - const metrics = await axios.get( + const metrics = await axios.get( generateUrl('/apps/gpoddersync/personal_settings/metrics'), ) this.subs = [...metrics.data.subscriptions] diff --git a/src/utils/types.ts b/src/utils/types.ts index f8bd115..bcae018 100644 --- a/src/utils/types.ts +++ b/src/utils/types.ts @@ -47,23 +47,27 @@ export interface PodcastDataInterface { } export interface PodcastMetricsInterface { - subscriptions: [ - { - url: string - listenedSeconds: number - actionCounts: { - delete: number - download: number - flattr: number - new: number - play: number - } - }, - ] + url: string + listenedSeconds: number + actionCounts: { + delete: number + download: number + flattr: number + new: number + play: number + } } export interface SubscriptionInterface { data?: PodcastDataInterface isFavorite: boolean - metrics: PodcastMetricsInterface['subscriptions'][0] + metrics: PodcastMetricsInterface +} + +export interface PersonalSettingsMetricsInterface { + subscriptions: PodcastMetricsInterface[] +} + +export interface PersonalSettingsPodcastDataInterface { + data: PodcastDataInterface } diff --git a/src/views/Discover.vue b/src/views/Discover.vue index c9113fa..1440016 100644 --- a/src/views/Discover.vue +++ b/src/views/Discover.vue @@ -12,13 +12,14 @@ - diff --git a/src/views/Feed.vue b/src/views/Feed.vue index 209ddcb..4705f73 100644 --- a/src/views/Feed.vue +++ b/src/views/Feed.vue @@ -6,27 +6,23 @@ - + - diff --git a/src/views/GPodder.vue b/src/views/GPodder.vue index adf0f25..b113909 100644 --- a/src/views/GPodder.vue +++ b/src/views/GPodder.vue @@ -13,12 +13,13 @@ - diff --git a/src/views/Home.vue b/src/views/Home.vue index 3d8546b..5158787 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -1,7 +1,7 @@ -
    -
  • - +
      +
    • +
    - diff --git a/stylelint.config.js b/stylelint.config.cjs similarity index 100% rename from stylelint.config.js rename to stylelint.config.cjs diff --git a/vite.config.ts b/vite.config.ts index 7687397..a1e705c 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -4,11 +4,6 @@ import vueDevTools from 'vite-plugin-vue-devtools' const config = defineConfig(({ mode }) => ({ build: { - rollupOptions: { - output: { - entryFileNames: 'js/[name].js', - }, - }, sourcemap: mode !== 'production', }, define: { From 1e1bb03c234629ef2036f9513b3a1e39af83c126 Mon Sep 17 00:00:00 2001 From: Michel Roux Date: Fri, 13 Sep 2024 17:52:10 +0200 Subject: [PATCH 4/8] chore: :arrow_up: update locks --- composer.json | 2 +- composer.lock | 14 +++++++------- lib/Controller/PageController.php | 2 +- package-lock.json | 8 ++++---- package.json | 2 +- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/composer.json b/composer.json index f1b21ca..d10e6c2 100644 --- a/composer.json +++ b/composer.json @@ -15,7 +15,7 @@ "psalm": "psalm --threads=1 --no-cache --show-info=true" }, "require-dev": { - "nextcloud/ocp": "^29.0.6", + "nextcloud/ocp": "^30.0.0", "roave/security-advisories": "dev-latest", "nextcloud/coding-standard": "^1.2.3", "vimeo/psalm": "^5.26.1" diff --git a/composer.lock b/composer.lock index 81e91e0..6f53f1d 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "d1d678bc8d001322808264320c120173", + "content-hash": "f21708cb7d3f7f4033053536e295e633", "packages": [], "packages-dev": [ { @@ -755,7 +755,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-stable29": "29.0.0-dev" + "dev-stable30": "30.0.0-dev" } }, "notification-url": "https://packagist.org/downloads/", @@ -1312,12 +1312,12 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "ed0688c3e18bf76d2a17fb243b99acb52c2e29ef" + "reference": "fb263701a24214c3176ef23bfa98a7cbc59aa659" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/ed0688c3e18bf76d2a17fb243b99acb52c2e29ef", - "reference": "ed0688c3e18bf76d2a17fb243b99acb52c2e29ef", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/fb263701a24214c3176ef23bfa98a7cbc59aa659", + "reference": "fb263701a24214c3176ef23bfa98a7cbc59aa659", "shasum": "" }, "conflict": { @@ -1769,7 +1769,7 @@ "phpmyfaq/phpmyfaq": "<3.2.5|==3.2.5", "phpoffice/common": "<0.2.9", "phpoffice/phpexcel": "<1.8", - "phpoffice/phpspreadsheet": "<1.29.1|>=2,<2.2.1", + "phpoffice/phpspreadsheet": "<1.29.1|>=2,<2.1.1|>=2.2,<2.2.1", "phpseclib/phpseclib": "<2.0.47|>=3,<3.0.36", "phpservermon/phpservermon": "<3.6", "phpsysinfo/phpsysinfo": "<3.4.3", @@ -2126,7 +2126,7 @@ "type": "tidelift" } ], - "time": "2024-09-10T18:06:22+00:00" + "time": "2024-09-13T14:04:35+00:00" }, { "name": "sebastian/diff", diff --git a/lib/Controller/PageController.php b/lib/Controller/PageController.php index ee5b9bb..423bc17 100644 --- a/lib/Controller/PageController.php +++ b/lib/Controller/PageController.php @@ -26,7 +26,7 @@ class PageController extends Controller * @NoCSRFRequired */ public function index(): TemplateResponse { - Util::addScript(Application::APP_ID, Application::APP_ID . '-main'); + Util::addScript(Application::APP_ID, Application::APP_ID.'-main'); $csp = new ContentSecurityPolicy(); $csp->addAllowedImageDomain('*'); diff --git a/package-lock.json b/package-lock.json index 3ccf5b2..09f42f3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "toastify-js": "^1.12.0", "vite": "^5.4.5", "vite-plugin-vue-devtools": "^7.4.5", - "vue": "^3.5.4", + "vue": "^3.5.5", "vue-material-design-icons": "^5.3.0", "vue-router": "^4.4.5" }, @@ -7485,9 +7485,9 @@ } }, "node_modules/mdast-util-mdx-expression": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.0.tgz", - "integrity": "sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", + "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", diff --git a/package.json b/package.json index 71b1f19..4bf2d2d 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "toastify-js": "^1.12.0", "vite": "^5.4.5", "vite-plugin-vue-devtools": "^7.4.5", - "vue": "^3.5.4", + "vue": "^3.5.5", "vue-material-design-icons": "^5.3.0", "vue-router": "^4.4.5" }, From 23280d68b9c7ea8f844a65d3289e9099827add10 Mon Sep 17 00:00:00 2001 From: Michel Roux Date: Sat, 14 Sep 2024 16:04:25 +0200 Subject: [PATCH 5/8] fix: :bug: fix all small bugs --- .eslintrc.cjs | 2 +- package-lock.json | 56 +++++++++++-------------- package.json | 3 +- src/components/Discover/Search.vue | 54 ++++++++++++------------ src/components/Sidebar/Subscription.vue | 4 +- src/store/settings.ts | 5 +++ src/store/subscriptions.ts | 6 +-- 7 files changed, 65 insertions(+), 65 deletions(-) diff --git a/.eslintrc.cjs b/.eslintrc.cjs index aaed83c..ac523ba 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -1,7 +1,7 @@ module.exports = { extends: [ '@nextcloud', - '@vue/eslint-config-typescript', + '@vue/eslint-config-typescript/recommended', 'plugin:pinia/recommended', 'plugin:prettier/recommended', ], diff --git a/package-lock.json b/package-lock.json index 09f42f3..7e757f7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,6 @@ "@nextcloud/vue": "9.0.0-alpha.5", "dompurify": "^3.1.6", "linkify-html": "^4.1.3", - "petite-utils": "^0.0.5-3", "pinia": "^2.2.2", "toastify-js": "^1.12.0", "vite": "^5.4.5", @@ -36,7 +35,7 @@ "eslint-plugin-pinia": "^0.4.1", "eslint-plugin-prettier": "^5.2.1", "ts-node": "^10.9.2", - "typescript": "5.5.4", + "typescript": "5.5", "vue-eslint-parser": "^9.4.3", "vue-tsc": "^2.1.6" } @@ -2272,9 +2271,9 @@ "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" }, "node_modules/@types/node": { - "version": "22.5.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.4.tgz", - "integrity": "sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==", + "version": "22.5.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.5.tgz", + "integrity": "sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA==", "devOptional": true, "peer": true, "dependencies": { @@ -2550,29 +2549,29 @@ } }, "node_modules/@volar/typescript": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.4.tgz", - "integrity": "sha512-QQMQRVj0fVHJ3XdRKiS1LclhG0VBXdFYlyuHRQF/xLk2PuJuHNWP26MDZNvEVCvnyUQuUQhIAfylwY5TGPgc6w==", + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.5.tgz", + "integrity": "sha512-mcT1mHvLljAEtHviVcBuOyAwwMKz1ibXTi5uYtP/pf4XxoAzpdkQ+Br2IC0NPCvLCbjPZmbf3I0udndkfB1CDg==", "dev": true, "dependencies": { - "@volar/language-core": "2.4.4", + "@volar/language-core": "2.4.5", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } }, "node_modules/@volar/typescript/node_modules/@volar/language-core": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.4.tgz", - "integrity": "sha512-kO9k4kTLfxpg+6lq7/KAIv3m2d62IHuCL6GbVgYZTpfKvIGoAIlDxK7pFcB/eczN2+ydg/vnyaeZ6SGyZrJw2w==", + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.5.tgz", + "integrity": "sha512-F4tA0DCO5Q1F5mScHmca0umsi2ufKULAnMOVBfMsZdT4myhVl4WdKRwCaKcfOkIEuyrAVvtq1ESBdZ+rSyLVww==", "dev": true, "dependencies": { - "@volar/source-map": "2.4.4" + "@volar/source-map": "2.4.5" } }, "node_modules/@volar/typescript/node_modules/@volar/source-map": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.4.tgz", - "integrity": "sha512-xG3PZqOP2haG8XG4Pg3PD1UGDAdqZg24Ru8c/qYjYAnmcj6GBR64mstx+bZux5QOyRaJK+/lNM/RnpvBD3489g==", + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.5.tgz", + "integrity": "sha512-varwD7RaKE2J/Z+Zu6j3mNNJbNT394qIxXwdvz/4ao/vxOfyClZpSDtLKkwWmecinkOVos5+PWkWraelfMLfpw==", "dev": true }, "node_modules/@vue/babel-helper-vue-transform-on": { @@ -4401,9 +4400,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.22", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.22.tgz", - "integrity": "sha512-tKYm5YHPU1djz0O+CGJ+oJIvimtsCcwR2Z9w7Skh08lUdyzXY5djods3q+z2JkWdb7tCcmM//eVavSRAiaPRNg==" + "version": "1.5.23", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.23.tgz", + "integrity": "sha512-mBhODedOXg4v5QWwl21DjM5amzjmI1zw9EPrPK/5Wx7C8jt33bpZNrC7OhHUG3pxRtbLpr3W2dXT+Ph1SsfRZA==" }, "node_modules/elliptic": { "version": "6.5.7", @@ -8788,11 +8787,6 @@ "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==" }, - "node_modules/petite-utils": { - "version": "0.0.5-3", - "resolved": "https://registry.npmjs.org/petite-utils/-/petite-utils-0.0.5-3.tgz", - "integrity": "sha512-oeuwgChhxtYMuxyaHzSo8aoix+pjTKBnHlii04uMRhUIaazCCCG4NAkGwdpnvgfdYE2ajVhnARoFtdRujJuUjA==" - }, "node_modules/picocolors": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", @@ -12038,18 +12032,18 @@ } }, "node_modules/vue-tsc/node_modules/@volar/language-core": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.4.tgz", - "integrity": "sha512-kO9k4kTLfxpg+6lq7/KAIv3m2d62IHuCL6GbVgYZTpfKvIGoAIlDxK7pFcB/eczN2+ydg/vnyaeZ6SGyZrJw2w==", + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.5.tgz", + "integrity": "sha512-F4tA0DCO5Q1F5mScHmca0umsi2ufKULAnMOVBfMsZdT4myhVl4WdKRwCaKcfOkIEuyrAVvtq1ESBdZ+rSyLVww==", "dev": true, "dependencies": { - "@volar/source-map": "2.4.4" + "@volar/source-map": "2.4.5" } }, "node_modules/vue-tsc/node_modules/@volar/source-map": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.4.tgz", - "integrity": "sha512-xG3PZqOP2haG8XG4Pg3PD1UGDAdqZg24Ru8c/qYjYAnmcj6GBR64mstx+bZux5QOyRaJK+/lNM/RnpvBD3489g==", + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.5.tgz", + "integrity": "sha512-varwD7RaKE2J/Z+Zu6j3mNNJbNT394qIxXwdvz/4ao/vxOfyClZpSDtLKkwWmecinkOVos5+PWkWraelfMLfpw==", "dev": true }, "node_modules/vue-tsc/node_modules/@vue/language-core": { diff --git a/package.json b/package.json index 4bf2d2d..6a7142a 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,6 @@ "@nextcloud/vue": "9.0.0-alpha.5", "dompurify": "^3.1.6", "linkify-html": "^4.1.3", - "petite-utils": "^0.0.5-3", "pinia": "^2.2.2", "toastify-js": "^1.12.0", "vite": "^5.4.5", @@ -43,7 +42,7 @@ "eslint-plugin-pinia": "^0.4.1", "eslint-plugin-prettier": "^5.2.1", "ts-node": "^10.9.2", - "typescript": "5.5.4", + "typescript": "5.5", "vue-eslint-parser": "^9.4.3", "vue-tsc": "^2.1.6" }, diff --git a/src/components/Discover/Search.vue b/src/components/Discover/Search.vue index 0160603..0f41103 100644 --- a/src/components/Discover/Search.vue +++ b/src/components/Discover/Search.vue @@ -41,7 +41,6 @@ import Loading from '../Atoms/Loading.vue' import PlusIcon from 'vue-material-design-icons/Plus.vue' import type { PodcastDataInterface } from '../../utils/types.ts' import axios from '@nextcloud/axios' -import { debounce } from 'petite-utils' import { formatLocaleDate } from '../../utils/time.ts' import { generateUrl } from '@nextcloud/router' import { showError } from '../../utils/toast.ts' @@ -67,36 +66,17 @@ export default { data: () => ({ feeds: [] as PodcastDataInterface[], loading: false, + timeout: null as NodeJS.Timeout | null, }), computed: { ...mapState(useSubscriptions, ['getSubByUrl']), }, watch: { value() { - const that = this - debounce(async function () { - try { - that.loading = true - const currentSearch = that.value - const feeds = await axios.get( - generateUrl('/apps/repod/search?q={value}', { - value: currentSearch, - }), - ) - if (currentSearch === that.value) { - that.feeds = [...feeds.data].sort( - (a, b) => b.fetchedAtUnix - a.fetchedAtUnix, - ) - } - } catch (e) { - console.error(e) - showError(t('repod', 'Could not fetch search results')) - } finally { - if (that.feeds) { - that.loading = false - } - } - }, 200) + if (this.timeout) { + clearTimeout(this.timeout) + } + this.timeout = setTimeout(this.search, 200) }, }, methods: { @@ -117,9 +97,31 @@ export default { console.error(e) showError(t('repod', 'Error while adding the feed')) } - this.fetch() }, + async search() { + try { + this.loading = true + const currentSearch = this.value + const feeds = await axios.get( + generateUrl('/apps/repod/search?q={value}', { + value: currentSearch, + }), + ) + if (currentSearch === this.value) { + this.feeds = [...feeds.data].sort( + (a, b) => b.fetchedAtUnix - a.fetchedAtUnix, + ) + } + } catch (e) { + console.error(e) + showError(t('repod', 'Could not fetch search results')) + } finally { + if (this.feeds) { + this.loading = false + } + } + }, }, } diff --git a/src/components/Sidebar/Subscription.vue b/src/components/Sidebar/Subscription.vue index 0325b2a..110d962 100644 --- a/src/components/Sidebar/Subscription.vue +++ b/src/components/Sidebar/Subscription.vue @@ -91,7 +91,7 @@ export default { }, ), ) - this.addFavoriteData(podcastData.data.data) + this.addMetadatas(this.url, podcastData.data.data) } catch (e) { this.failed = true console.error(e) @@ -100,7 +100,7 @@ export default { } }, methods: { - ...mapActions(useSubscriptions, ['fetch', 'addFavoriteData', 'setFavorite']), + ...mapActions(useSubscriptions, ['fetch', 'addMetadatas', 'setFavorite']), t, toFeedUrl, async deleteSubscription() { diff --git a/src/store/settings.ts b/src/store/settings.ts index a3af2ff..2fa94b8 100644 --- a/src/store/settings.ts +++ b/src/store/settings.ts @@ -6,6 +6,11 @@ export const useSettings = defineStore('settings', { state: () => { try { const filters = JSON.parse(getCookie('repod.filters') || '{}') || {} + + if (!filters.length) { + throw new Error('Empty cookie') + } + return { filters: { listened: filters.listened, diff --git a/src/store/subscriptions.ts b/src/store/subscriptions.ts index 6230291..73e6a6e 100644 --- a/src/store/subscriptions.ts +++ b/src/store/subscriptions.ts @@ -34,13 +34,13 @@ export const useSubscriptions = defineStore('subscriptions', { data: this.subs.find((s) => s.metrics.url === sub.url)?.data, })) }, - addFavoriteData(data: PodcastDataInterface) { + addMetadatas(link: string, data: PodcastDataInterface) { this.subs = this.subs.map((sub) => - sub.metrics.url === data.link ? { ...sub, data } : sub, + sub.metrics.url === link ? { ...sub, data } : sub, ) }, setFavorite(link: string, isFavorite: boolean) { - this.subs.map((sub) => + this.subs = this.subs.map((sub) => sub.metrics.url === link ? { ...sub, isFavorite } : sub, ) From 3cea8d350520f44c831fafe55b33c418fcecd77f Mon Sep 17 00:00:00 2001 From: Michel Roux Date: Sat, 14 Sep 2024 16:54:56 +0200 Subject: [PATCH 6/8] fix: :art: improve small tips --- src/components/Atoms/Modal.vue | 5 +++-- src/components/Feed/Banner.vue | 3 +-- src/components/Feed/Episode.vue | 2 +- src/components/Feed/Episodes.vue | 3 --- src/main.ts | 2 +- src/store/player.ts | 25 +++++++++++-------------- src/store/settings.ts | 4 ++-- src/store/subscriptions.ts | 5 +++-- 8 files changed, 22 insertions(+), 27 deletions(-) diff --git a/src/components/Atoms/Modal.vue b/src/components/Atoms/Modal.vue index 56d33d0..500c844 100644 --- a/src/components/Atoms/Modal.vue +++ b/src/components/Atoms/Modal.vue @@ -6,7 +6,7 @@ :size="256" :url="episode.image" />

    {{ episode.name }}

    - +