diff --git a/eslint.config.js b/eslint.config.js
index 05cc5939..c4549bae 100644
--- a/eslint.config.js
+++ b/eslint.config.js
@@ -14,6 +14,7 @@ module.exports = antfu({
},
},
],
+ 'no-alert': 'off',
},
eslint: {
ignorePatterns: [
diff --git a/package.json b/package.json
index e3d3b9fb..cec16c21 100644
--- a/package.json
+++ b/package.json
@@ -3,7 +3,7 @@
"displayName": "BewlyBewly",
"version": "0.14.3",
"private": true,
- "packageManager": "pnpm@8.14.1",
+ "packageManager": "pnpm@8.15.0",
"description": "Just make a few small changes to your Bilibili homepage.",
"homepage": "https://github.com/hakadao/BewlyBewly",
"scripts": {
@@ -37,36 +37,36 @@
"dplayer": "^1.27.1",
"md5": "^2.3.0",
"mitt": "^3.0.1",
- "overlayscrollbars": "^2.4.5",
- "overlayscrollbars-vue": "^0.5.6",
+ "overlayscrollbars": "^2.4.7",
+ "overlayscrollbars-vue": "^0.5.7",
"pinia": "^2.1.7",
"qrcode.vue": "^3.4.1",
- "vue-i18n": "^9.7.0",
+ "vue-i18n": "^9.9.0",
"vue-toastification": "2.0.0-rc.5",
"vuedraggable": "^4.1.0"
},
"devDependencies": {
- "@antfu/eslint-config": "^2.6.1",
- "@ffflorian/jszip-cli": "^3.5.1",
- "@iconify/json": "^2.2.143",
+ "@antfu/eslint-config": "^2.6.3",
+ "@ffflorian/jszip-cli": "^3.6.2",
+ "@iconify/json": "^2.2.176",
"@iconify/vue": "^4.1.1",
"@intlify/unplugin-vue-i18n": "^0.8.2",
"@rollup/plugin-replace": "^5.0.5",
"@types/dplayer": "^1.25.5",
"@types/fs-extra": "^9.0.13",
- "@types/node": "^18.18.10",
+ "@types/node": "^18.19.10",
"@types/webextension-polyfill": "^0.9.2",
"@typescript-eslint/eslint-plugin": "^5.62.0",
"@typescript-eslint/parser": "^5.62.0",
"@unocss/reset": "^0.54.3",
"@vitejs/plugin-vue": "^3.2.0",
- "@vue/compiler-sfc": "^3.3.8",
- "@vue/test-utils": "^2.4.2",
- "@vueuse/core": "^10.6.1",
+ "@vue/compiler-sfc": "^3.4.15",
+ "@vue/test-utils": "^2.4.4",
+ "@vueuse/core": "^10.7.2",
"chokidar": "^3.5.3",
"cross-env": "^7.0.3",
"crx": "^5.0.1",
- "eslint": "^8.54.0",
+ "eslint": "^8.56.0",
"esno": "^4.0.0",
"fs-extra": "^10.1.0",
"jsdom": "^20.0.3",
@@ -74,9 +74,9 @@
"lint-staged": "^15.2.0",
"npm-run-all": "^4.1.5",
"rimraf": "^3.0.2",
- "sass": "^1.69.5",
+ "sass": "^1.70.0",
"simple-git-hooks": "^2.9.0",
- "terser": "^5.24.0",
+ "terser": "^5.27.0",
"tsup": "^6.7.0",
"typescript": "^4.9.5",
"unocss": "^0.54.3",
@@ -85,9 +85,9 @@
"unplugin-vue-components": "^0.22.12",
"vite": "^3.2.8",
"vitest": "^0.24.5",
- "vue": "^3.3.8",
+ "vue": "^3.4.15",
"vue-demi": "^0.13.11",
- "web-ext": "^7.8.0",
+ "web-ext": "^7.11.0",
"webext-bridge": "^5.0.5",
"webextension-polyfill": "^0.10.0"
},
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index d645930f..d71b9f86 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -18,40 +18,40 @@ dependencies:
specifier: ^3.0.1
version: 3.0.1
overlayscrollbars:
- specifier: ^2.4.5
- version: 2.4.6
+ specifier: ^2.4.7
+ version: 2.4.7
overlayscrollbars-vue:
- specifier: ^0.5.6
- version: 0.5.6(overlayscrollbars@2.4.6)(vue@3.4.13)
+ specifier: ^0.5.7
+ version: 0.5.7(overlayscrollbars@2.4.7)(vue@3.4.15)
pinia:
specifier: ^2.1.7
- version: 2.1.7(typescript@4.9.5)(vue@3.4.13)
+ version: 2.1.7(typescript@4.9.5)(vue@3.4.15)
qrcode.vue:
specifier: ^3.4.1
- version: 3.4.1(vue@3.4.13)
+ version: 3.4.1(vue@3.4.15)
vue-i18n:
- specifier: ^9.7.0
- version: 9.9.0(vue@3.4.13)
+ specifier: ^9.9.0
+ version: 9.9.0(vue@3.4.15)
vue-toastification:
specifier: 2.0.0-rc.5
- version: 2.0.0-rc.5(vue@3.4.13)
+ version: 2.0.0-rc.5(vue@3.4.15)
vuedraggable:
specifier: ^4.1.0
- version: 4.1.0(vue@3.4.13)
+ version: 4.1.0(vue@3.4.15)
devDependencies:
'@antfu/eslint-config':
- specifier: ^2.6.1
- version: 2.6.2(@vue/compiler-sfc@3.4.13)(eslint@8.56.0)(typescript@4.9.5)(vitest@0.24.5)
+ specifier: ^2.6.3
+ version: 2.6.3(@vue/compiler-sfc@3.4.15)(eslint@8.56.0)(typescript@4.9.5)(vitest@0.24.5)
'@ffflorian/jszip-cli':
- specifier: ^3.5.1
+ specifier: ^3.6.2
version: 3.6.2(typescript@4.9.5)
'@iconify/json':
- specifier: ^2.2.143
- version: 2.2.168
+ specifier: ^2.2.176
+ version: 2.2.176
'@iconify/vue':
specifier: ^4.1.1
- version: 4.1.1(vue@3.4.13)
+ version: 4.1.1(vue@3.4.15)
'@intlify/unplugin-vue-i18n':
specifier: ^0.8.2
version: 0.8.2(vue-i18n@9.9.0)
@@ -65,8 +65,8 @@ devDependencies:
specifier: ^9.0.13
version: 9.0.13
'@types/node':
- specifier: ^18.18.10
- version: 18.19.6
+ specifier: ^18.19.10
+ version: 18.19.10
'@types/webextension-polyfill':
specifier: ^0.9.2
version: 0.9.2
@@ -81,16 +81,16 @@ devDependencies:
version: 0.54.3
'@vitejs/plugin-vue':
specifier: ^3.2.0
- version: 3.2.0(vite@3.2.8)(vue@3.4.13)
+ version: 3.2.0(vite@3.2.8)(vue@3.4.15)
'@vue/compiler-sfc':
- specifier: ^3.3.8
- version: 3.4.13
+ specifier: ^3.4.15
+ version: 3.4.15
'@vue/test-utils':
- specifier: ^2.4.2
- version: 2.4.3(vue@3.4.13)
+ specifier: ^2.4.4
+ version: 2.4.4(vue@3.4.15)
'@vueuse/core':
- specifier: ^10.6.1
- version: 10.7.2(vue@3.4.13)
+ specifier: ^10.7.2
+ version: 10.7.2(vue@3.4.15)
chokidar:
specifier: ^3.5.3
version: 3.5.3
@@ -101,7 +101,7 @@ devDependencies:
specifier: ^5.0.1
version: 5.0.1
eslint:
- specifier: ^8.54.0
+ specifier: ^8.56.0
version: 8.56.0
esno:
specifier: ^4.0.0
@@ -125,14 +125,14 @@ devDependencies:
specifier: ^3.0.2
version: 3.0.2
sass:
- specifier: ^1.69.5
- version: 1.69.7
+ specifier: ^1.70.0
+ version: 1.70.0
simple-git-hooks:
specifier: ^2.9.0
version: 2.9.0
terser:
- specifier: ^5.24.0
- version: 5.26.0
+ specifier: ^5.27.0
+ version: 5.27.0
tsup:
specifier: ^6.7.0
version: 6.7.0(postcss@8.4.33)(typescript@4.9.5)
@@ -147,25 +147,25 @@ devDependencies:
version: 0.11.5(@vueuse/core@10.7.2)
unplugin-icons:
specifier: ^0.14.15
- version: 0.14.15(@vue/compiler-sfc@3.4.13)
+ version: 0.14.15(@vue/compiler-sfc@3.4.15)
unplugin-vue-components:
specifier: ^0.22.12
- version: 0.22.12(vue@3.4.13)
+ version: 0.22.12(vue@3.4.15)
vite:
specifier: ^3.2.8
- version: 3.2.8(@types/node@18.19.6)(sass@1.69.7)(terser@5.26.0)
+ version: 3.2.8(@types/node@18.19.10)(sass@1.70.0)(terser@5.27.0)
vitest:
specifier: ^0.24.5
- version: 0.24.5(jsdom@20.0.3)(sass@1.69.7)(terser@5.26.0)
+ version: 0.24.5(jsdom@20.0.3)(sass@1.70.0)(terser@5.27.0)
vue:
- specifier: ^3.3.8
- version: 3.4.13(typescript@4.9.5)
+ specifier: ^3.4.15
+ version: 3.4.15(typescript@4.9.5)
vue-demi:
specifier: ^0.13.11
- version: 0.13.11(vue@3.4.13)
+ version: 0.13.11(vue@3.4.15)
web-ext:
- specifier: ^7.8.0
- version: 7.10.0
+ specifier: ^7.11.0
+ version: 7.11.0
webext-bridge:
specifier: ^5.0.5
version: 5.0.5
@@ -188,8 +188,8 @@ packages:
'@jridgewell/trace-mapping': 0.3.21
dev: true
- /@antfu/eslint-config@2.6.2(@vue/compiler-sfc@3.4.13)(eslint@8.56.0)(typescript@4.9.5)(vitest@0.24.5):
- resolution: {integrity: sha512-iHJtFrJLE0gc+oQGxe8I2vpXwhn2wAbz2kqunSPhiOt39yV6yuoE+NJt5nstzy0INKfjSL2teQKlr4g7E2bVhA==}
+ /@antfu/eslint-config@2.6.3(@vue/compiler-sfc@3.4.15)(eslint@8.56.0)(typescript@4.9.5)(vitest@0.24.5):
+ resolution: {integrity: sha512-sfkamrOatMwMZkp14mBerHKIw8FY0SD1iCb5UZ6Y5hgb+FeDpNQPlVA0i2PN95TQ8NSYyPC1QnoM+UA5NSl0Kg==}
hasBin: true
peerDependencies:
'@unocss/eslint-plugin': '>=0.50.0'
@@ -221,28 +221,28 @@ packages:
'@eslint-types/jsdoc': 46.8.2-1
'@eslint-types/typescript-eslint': 6.18.1
'@eslint-types/unicorn': 50.0.1
- '@stylistic/eslint-plugin': 1.5.3(eslint@8.56.0)(typescript@4.9.5)
- '@typescript-eslint/eslint-plugin': 6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@4.9.5)
- '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@4.9.5)
+ '@stylistic/eslint-plugin': 1.5.4(eslint@8.56.0)(typescript@4.9.5)
+ '@typescript-eslint/eslint-plugin': 6.19.1(@typescript-eslint/parser@6.19.1)(eslint@8.56.0)(typescript@4.9.5)
+ '@typescript-eslint/parser': 6.19.1(eslint@8.56.0)(typescript@4.9.5)
eslint: 8.56.0
eslint-config-flat-gitignore: 0.1.2
eslint-merge-processors: 0.1.0(eslint@8.56.0)
eslint-plugin-antfu: 2.1.1(eslint@8.56.0)
eslint-plugin-eslint-comments: 3.2.0(eslint@8.56.0)
- eslint-plugin-i: 2.29.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)
+ eslint-plugin-i: 2.29.1(@typescript-eslint/parser@6.19.1)(eslint@8.56.0)
eslint-plugin-jsdoc: 48.0.2(eslint@8.56.0)
- eslint-plugin-jsonc: 2.11.2(eslint@8.56.0)
+ eslint-plugin-jsonc: 2.13.0(eslint@8.56.0)
eslint-plugin-markdown: 3.0.1(eslint@8.56.0)
eslint-plugin-n: 16.6.2(eslint@8.56.0)
eslint-plugin-no-only-tests: 3.1.0
eslint-plugin-perfectionist: 2.5.0(eslint@8.56.0)(typescript@4.9.5)(vue-eslint-parser@9.4.0)
- eslint-plugin-toml: 0.8.0(eslint@8.56.0)
+ eslint-plugin-toml: 0.9.2(eslint@8.56.0)
eslint-plugin-unicorn: 50.0.1(eslint@8.56.0)
- eslint-plugin-unused-imports: 3.0.0(@typescript-eslint/eslint-plugin@6.18.1)(eslint@8.56.0)
- eslint-plugin-vitest: 0.3.20(@typescript-eslint/eslint-plugin@6.18.1)(eslint@8.56.0)(typescript@4.9.5)(vitest@0.24.5)
+ eslint-plugin-unused-imports: 3.0.0(@typescript-eslint/eslint-plugin@6.19.1)(eslint@8.56.0)
+ eslint-plugin-vitest: 0.3.20(@typescript-eslint/eslint-plugin@6.19.1)(eslint@8.56.0)(typescript@4.9.5)(vitest@0.24.5)
eslint-plugin-vue: 9.20.1(eslint@8.56.0)
- eslint-plugin-yml: 1.11.0(eslint@8.56.0)
- eslint-processor-vue-blocks: 0.1.1(@vue/compiler-sfc@3.4.13)(eslint@8.56.0)
+ eslint-plugin-yml: 1.12.2(eslint@8.56.0)
+ eslint-processor-vue-blocks: 0.1.1(@vue/compiler-sfc@3.4.15)(eslint@8.56.0)
globals: 13.24.0
jsonc-eslint-parser: 2.4.0
local-pkg: 0.5.0
@@ -881,8 +881,8 @@ packages:
resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==}
dev: true
- /@iconify/json@2.2.168:
- resolution: {integrity: sha512-NuimrvW7/BfOK97Kx0YMWG8UMcqdfc0GZ0mZfewA90Qvl3+dchLmbyvNXnFraUFrrS8Luie3P6R0+3gHE9DnIA==}
+ /@iconify/json@2.2.176:
+ resolution: {integrity: sha512-Pw1MA57OZdzyrJgGHzZXVnoht8vndv4aM6I3xj4SeimF14HA3e101Ignnlw2h/+Yjujf43jH7doPIVAhgCTFMw==}
dependencies:
'@iconify/types': 2.0.0
pathe: 1.1.2
@@ -905,13 +905,13 @@ packages:
- supports-color
dev: true
- /@iconify/vue@4.1.1(vue@3.4.13):
+ /@iconify/vue@4.1.1(vue@3.4.15):
resolution: {integrity: sha512-RL85Bm/DAe8y6rT6pux7D2FJSiUEM/TPfyK7GrbAOfTSwrhvwJW+S5yijdGcmtXouA8MtuH9C7l4hiSE4mLMjg==}
peerDependencies:
vue: '>=3'
dependencies:
'@iconify/types': 2.0.0
- vue: 3.4.13(typescript@4.9.5)
+ vue: 3.4.15(typescript@4.9.5)
dev: true
/@intlify/bundle-utils@4.0.0(vue-i18n@9.9.0):
@@ -930,7 +930,7 @@ packages:
'@intlify/shared': 9.4.1
jsonc-eslint-parser: 1.4.1
source-map: 0.6.1
- vue-i18n: 9.9.0(vue@3.4.13)
+ vue-i18n: 9.9.0(vue@3.4.15)
yaml-eslint-parser: 0.3.2
dev: true
@@ -983,7 +983,7 @@ packages:
'@intlify/bundle-utils': 4.0.0(vue-i18n@9.9.0)
'@intlify/shared': 9.4.1
'@rollup/pluginutils': 4.2.1
- '@vue/compiler-sfc': 3.4.13
+ '@vue/compiler-sfc': 3.4.15
debug: 4.3.4
fast-glob: 3.3.2
js-yaml: 4.1.0
@@ -992,7 +992,7 @@ packages:
picocolors: 1.0.0
source-map: 0.6.1
unplugin: 1.6.0
- vue-i18n: 9.9.0(vue@3.4.13)
+ vue-i18n: 9.9.0(vue@3.4.15)
transitivePeerDependencies:
- supports-color
dev: true
@@ -1045,8 +1045,8 @@ packages:
'@jridgewell/sourcemap-codec': 1.4.15
dev: true
- /@mdn/browser-compat-data@5.5.4:
- resolution: {integrity: sha512-3Ut58LMJig1igriRHsbRHd7tRi4zz3dlnM/6msgl6FqDglxWZLN+ikYsluOg4D6CFmsXBq5WyYF/7HLwHMzDzA==}
+ /@mdn/browser-compat-data@5.5.7:
+ resolution: {integrity: sha512-DoHTZ/TjtNfUu9eiqJd+x3IcCQrhS+yOYU436TKUnlE36jZwNbK535D1CmTsSYdi/UcdCWNm5KRQZ9g1tlZCPw==}
dev: true
/@nodelib/fs.scandir@2.1.5:
@@ -1146,8 +1146,8 @@ packages:
engines: {node: '>=14.16'}
dev: true
- /@stylistic/eslint-plugin-js@1.5.3(eslint@8.56.0):
- resolution: {integrity: sha512-XlKnm82fD7Sw9kQ6FFigE0tobvptNBXZWsdfoKmUyK7bNxHsAHOFT8zJGY3j3MjZ0Fe7rLTu86hX/vOl0bRRdQ==}
+ /@stylistic/eslint-plugin-js@1.5.4(eslint@8.56.0):
+ resolution: {integrity: sha512-3ctWb3NvJNV1MsrZN91cYp2EGInLPSoZKphXIbIRx/zjZxKwLDr9z4LMOWtqjq14li/OgqUUcMq5pj8fgbLoTw==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
eslint: '>=8.40.0'
@@ -1159,53 +1159,53 @@ packages:
espree: 9.6.1
dev: true
- /@stylistic/eslint-plugin-jsx@1.5.3(eslint@8.56.0):
- resolution: {integrity: sha512-gKXWFmvg3B4e6G+bVz2p37icjj3gS5lzazZD6oLjmQ2b0Lw527VpnxGjWxQ16keKXtrVzUfebakjskOoALg3CQ==}
+ /@stylistic/eslint-plugin-jsx@1.5.4(eslint@8.56.0):
+ resolution: {integrity: sha512-JUfrpCkeBCqt1IZ4QsP4WgxGza4PhK4LPbc0VnCjHKygl+rgqoDAovqOuzFJ49wJ4Ix3r6OIHFuwiBGswZEVvg==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
eslint: '>=8.40.0'
dependencies:
- '@stylistic/eslint-plugin-js': 1.5.3(eslint@8.56.0)
+ '@stylistic/eslint-plugin-js': 1.5.4(eslint@8.56.0)
eslint: 8.56.0
estraverse: 5.3.0
dev: true
- /@stylistic/eslint-plugin-plus@1.5.3(eslint@8.56.0)(typescript@4.9.5):
- resolution: {integrity: sha512-fuOBySbH4dbfY4Dwvu+zg5y+e0lALHTyQske5+a2zNC8Ejnx4rFlVjYOmaVFtxFhTD4V0vM7o21Ozci0igcxKg==}
+ /@stylistic/eslint-plugin-plus@1.5.4(eslint@8.56.0)(typescript@4.9.5):
+ resolution: {integrity: sha512-dI0Cs5vYX/0uMhQDY+NK0cKQ0Pe9B6jWYxd0Ndud+mNloDaVLrsmJocK4zn+YfhGEDs1E4Nk5uAPZEumIpDuSg==}
peerDependencies:
eslint: '*'
dependencies:
- '@typescript-eslint/utils': 6.18.1(eslint@8.56.0)(typescript@4.9.5)
+ '@typescript-eslint/utils': 6.19.1(eslint@8.56.0)(typescript@4.9.5)
eslint: 8.56.0
transitivePeerDependencies:
- supports-color
- typescript
dev: true
- /@stylistic/eslint-plugin-ts@1.5.3(eslint@8.56.0)(typescript@4.9.5):
- resolution: {integrity: sha512-/gUEqGo0gpFeu220YmC0788VliKnmTaAz4pI82KA5cUuCp6OzEhGlrNkb1eevMwH0RRgyND20HJxOYvEGlwu+w==}
+ /@stylistic/eslint-plugin-ts@1.5.4(eslint@8.56.0)(typescript@4.9.5):
+ resolution: {integrity: sha512-NZDFVIlVNjuPvhT+0Cidm5IS3emtx338xbJTqs2xfOVRDGTpYwRHhNVEGa1rFOpYHmv0sAj6+OXbMDn7ul0K/g==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
eslint: '>=8.40.0'
dependencies:
- '@stylistic/eslint-plugin-js': 1.5.3(eslint@8.56.0)
- '@typescript-eslint/utils': 6.18.1(eslint@8.56.0)(typescript@4.9.5)
+ '@stylistic/eslint-plugin-js': 1.5.4(eslint@8.56.0)
+ '@typescript-eslint/utils': 6.19.1(eslint@8.56.0)(typescript@4.9.5)
eslint: 8.56.0
transitivePeerDependencies:
- supports-color
- typescript
dev: true
- /@stylistic/eslint-plugin@1.5.3(eslint@8.56.0)(typescript@4.9.5):
- resolution: {integrity: sha512-Vee+hHKaCd8DPRoRJTCV+mOFz+zFIaA9QiNJaAvgBzmPkcDnSC7Ewh518fN6SSNe9psS8TDIpcxd1g5v4MSY5A==}
+ /@stylistic/eslint-plugin@1.5.4(eslint@8.56.0)(typescript@4.9.5):
+ resolution: {integrity: sha512-zWPXr+O67GC9KDAFkbL1U9UVqE6Iv69YMKhkIECCmE0GvClUJwdfsimm4XebEDondV7kfjMrTDZaYfrI5aS0Jg==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
eslint: '>=8.40.0'
dependencies:
- '@stylistic/eslint-plugin-js': 1.5.3(eslint@8.56.0)
- '@stylistic/eslint-plugin-jsx': 1.5.3(eslint@8.56.0)
- '@stylistic/eslint-plugin-plus': 1.5.3(eslint@8.56.0)(typescript@4.9.5)
- '@stylistic/eslint-plugin-ts': 1.5.3(eslint@8.56.0)(typescript@4.9.5)
+ '@stylistic/eslint-plugin-js': 1.5.4(eslint@8.56.0)
+ '@stylistic/eslint-plugin-jsx': 1.5.4(eslint@8.56.0)
+ '@stylistic/eslint-plugin-plus': 1.5.4(eslint@8.56.0)(typescript@4.9.5)
+ '@stylistic/eslint-plugin-ts': 1.5.4(eslint@8.56.0)(typescript@4.9.5)
eslint: 8.56.0
transitivePeerDependencies:
- supports-color
@@ -1245,7 +1245,7 @@ packages:
/@types/fs-extra@9.0.13:
resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==}
dependencies:
- '@types/node': 18.19.6
+ '@types/node': 18.19.10
dev: true
/@types/http-cache-semantics@4.0.4:
@@ -1270,8 +1270,8 @@ packages:
resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==}
dev: true
- /@types/node@18.19.6:
- resolution: {integrity: sha512-X36s5CXMrrJOs2lQCdDF68apW4Rfx9ixYMawlepwmE4Anezv/AV2LSpKD1Ub8DAc+urp5bk0BGZ6NtmBitfnsg==}
+ /@types/node@18.19.10:
+ resolution: {integrity: sha512-IZD8kAM02AW1HRDTPOlz3npFava678pr8Ie9Vp8uRhBROXAv8MXT2pCnGZZAKYdromsNQLHQcfWQ6EOatVLtqA==}
dependencies:
undici-types: 5.26.5
dev: true
@@ -1303,7 +1303,7 @@ packages:
/@types/yauzl@2.10.3:
resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==}
dependencies:
- '@types/node': 18.19.6
+ '@types/node': 18.19.10
dev: true
/@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.56.0)(typescript@4.9.5):
@@ -1334,8 +1334,8 @@ packages:
- supports-color
dev: true
- /@typescript-eslint/eslint-plugin@6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@4.9.5):
- resolution: {integrity: sha512-nISDRYnnIpk7VCFrGcu1rnZfM1Dh9LRHnfgdkjcbi/l7g16VYRri3TjXi9Ir4lOZSw5N/gnV/3H7jIPQ8Q4daA==}
+ /@typescript-eslint/eslint-plugin@6.19.1(@typescript-eslint/parser@6.19.1)(eslint@8.56.0)(typescript@4.9.5):
+ resolution: {integrity: sha512-roQScUGFruWod9CEyoV5KlCYrubC/fvG8/1zXuT0WTcxX87GnMMmnksMwSg99lo1xiKrBzw2icsJPMAw1OtKxg==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
'@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha
@@ -1346,11 +1346,11 @@ packages:
optional: true
dependencies:
'@eslint-community/regexpp': 4.10.0
- '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@4.9.5)
- '@typescript-eslint/scope-manager': 6.18.1
- '@typescript-eslint/type-utils': 6.18.1(eslint@8.56.0)(typescript@4.9.5)
- '@typescript-eslint/utils': 6.18.1(eslint@8.56.0)(typescript@4.9.5)
- '@typescript-eslint/visitor-keys': 6.18.1
+ '@typescript-eslint/parser': 6.19.1(eslint@8.56.0)(typescript@4.9.5)
+ '@typescript-eslint/scope-manager': 6.19.1
+ '@typescript-eslint/type-utils': 6.19.1(eslint@8.56.0)(typescript@4.9.5)
+ '@typescript-eslint/utils': 6.19.1(eslint@8.56.0)(typescript@4.9.5)
+ '@typescript-eslint/visitor-keys': 6.19.1
debug: 4.3.4
eslint: 8.56.0
graphemer: 1.4.0
@@ -1383,8 +1383,8 @@ packages:
- supports-color
dev: true
- /@typescript-eslint/parser@6.18.1(eslint@8.56.0)(typescript@4.9.5):
- resolution: {integrity: sha512-zct/MdJnVaRRNy9e84XnVtRv9Vf91/qqe+hZJtKanjojud4wAVy/7lXxJmMyX6X6J+xc6c//YEWvpeif8cAhWA==}
+ /@typescript-eslint/parser@6.19.1(eslint@8.56.0)(typescript@4.9.5):
+ resolution: {integrity: sha512-WEfX22ziAh6pRE9jnbkkLGp/4RhTpffr2ZK5bJ18M8mIfA8A+k97U9ZyaXCEJRlmMHh7R9MJZWXp/r73DzINVQ==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
@@ -1393,10 +1393,10 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/scope-manager': 6.18.1
- '@typescript-eslint/types': 6.18.1
- '@typescript-eslint/typescript-estree': 6.18.1(typescript@4.9.5)
- '@typescript-eslint/visitor-keys': 6.18.1
+ '@typescript-eslint/scope-manager': 6.19.1
+ '@typescript-eslint/types': 6.19.1
+ '@typescript-eslint/typescript-estree': 6.19.1(typescript@4.9.5)
+ '@typescript-eslint/visitor-keys': 6.19.1
debug: 4.3.4
eslint: 8.56.0
typescript: 4.9.5
@@ -1420,6 +1420,14 @@ packages:
'@typescript-eslint/visitor-keys': 6.18.1
dev: true
+ /@typescript-eslint/scope-manager@6.19.1:
+ resolution: {integrity: sha512-4CdXYjKf6/6aKNMSly/BP4iCSOpvMmqtDzRtqFyyAae3z5kkqEjKndR5vDHL8rSuMIIWP8u4Mw4VxLyxZW6D5w==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ dependencies:
+ '@typescript-eslint/types': 6.19.1
+ '@typescript-eslint/visitor-keys': 6.19.1
+ dev: true
+
/@typescript-eslint/type-utils@5.62.0(eslint@8.56.0)(typescript@4.9.5):
resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -1440,8 +1448,8 @@ packages:
- supports-color
dev: true
- /@typescript-eslint/type-utils@6.18.1(eslint@8.56.0)(typescript@4.9.5):
- resolution: {integrity: sha512-wyOSKhuzHeU/5pcRDP2G2Ndci+4g653V43gXTpt4nbyoIOAASkGDA9JIAgbQCdCkcr1MvpSYWzxTz0olCn8+/Q==}
+ /@typescript-eslint/type-utils@6.19.1(eslint@8.56.0)(typescript@4.9.5):
+ resolution: {integrity: sha512-0vdyld3ecfxJuddDjACUvlAeYNrHP/pDeQk2pWBR2ESeEzQhg52DF53AbI9QCBkYE23lgkhLCZNkHn2hEXXYIg==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
@@ -1450,8 +1458,8 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/typescript-estree': 6.18.1(typescript@4.9.5)
- '@typescript-eslint/utils': 6.18.1(eslint@8.56.0)(typescript@4.9.5)
+ '@typescript-eslint/typescript-estree': 6.19.1(typescript@4.9.5)
+ '@typescript-eslint/utils': 6.19.1(eslint@8.56.0)(typescript@4.9.5)
debug: 4.3.4
eslint: 8.56.0
ts-api-utils: 1.0.3(typescript@4.9.5)
@@ -1470,6 +1478,11 @@ packages:
engines: {node: ^16.0.0 || >=18.0.0}
dev: true
+ /@typescript-eslint/types@6.19.1:
+ resolution: {integrity: sha512-6+bk6FEtBhvfYvpHsDgAL3uo4BfvnTnoge5LrrCj2eJN8g3IJdLTD4B/jK3Q6vo4Ql/Hoip9I8aB6fF+6RfDqg==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ dev: true
+
/@typescript-eslint/typescript-estree@5.62.0(typescript@4.9.5):
resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -1513,6 +1526,28 @@ packages:
- supports-color
dev: true
+ /@typescript-eslint/typescript-estree@6.19.1(typescript@4.9.5):
+ resolution: {integrity: sha512-aFdAxuhzBFRWhy+H20nYu19+Km+gFfwNO4TEqyszkMcgBDYQjmPJ61erHxuT2ESJXhlhrO7I5EFIlZ+qGR8oVA==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/types': 6.19.1
+ '@typescript-eslint/visitor-keys': 6.19.1
+ debug: 4.3.4
+ globby: 11.1.0
+ is-glob: 4.0.3
+ minimatch: 9.0.3
+ semver: 7.5.4
+ ts-api-utils: 1.0.3(typescript@4.9.5)
+ typescript: 4.9.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/@typescript-eslint/utils@5.62.0(eslint@8.56.0)(typescript@4.9.5):
resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -1552,6 +1587,25 @@ packages:
- typescript
dev: true
+ /@typescript-eslint/utils@6.19.1(eslint@8.56.0)(typescript@4.9.5):
+ resolution: {integrity: sha512-JvjfEZuP5WoMqwh9SPAPDSHSg9FBHHGhjPugSRxu5jMfjvBpq5/sGTD+9M9aQ5sh6iJ8AY/Kk/oUYVEMAPwi7w==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ peerDependencies:
+ eslint: ^7.0.0 || ^8.0.0
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
+ '@types/json-schema': 7.0.15
+ '@types/semver': 7.5.6
+ '@typescript-eslint/scope-manager': 6.19.1
+ '@typescript-eslint/types': 6.19.1
+ '@typescript-eslint/typescript-estree': 6.19.1(typescript@4.9.5)
+ eslint: 8.56.0
+ semver: 7.5.4
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+ dev: true
+
/@typescript-eslint/visitor-keys@5.62.0:
resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -1568,6 +1622,14 @@ packages:
eslint-visitor-keys: 3.4.3
dev: true
+ /@typescript-eslint/visitor-keys@6.19.1:
+ resolution: {integrity: sha512-gkdtIO+xSO/SmI0W68DBg4u1KElmIUo3vXzgHyGPs6cxgB0sa3TlptRAAE0hUY1hM6FcDKEv7aIwiTGm76cXfQ==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ dependencies:
+ '@typescript-eslint/types': 6.19.1
+ eslint-visitor-keys: 3.4.3
+ dev: true
+
/@ungap/structured-clone@1.2.0:
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
dev: true
@@ -1756,91 +1818,91 @@ packages:
chokidar: 3.5.3
fast-glob: 3.3.2
magic-string: 0.30.5
- vite: 3.2.8(@types/node@18.19.6)(sass@1.69.7)(terser@5.26.0)
+ vite: 3.2.8(@types/node@18.19.10)(sass@1.70.0)(terser@5.27.0)
transitivePeerDependencies:
- rollup
dev: true
- /@vitejs/plugin-vue@3.2.0(vite@3.2.8)(vue@3.4.13):
+ /@vitejs/plugin-vue@3.2.0(vite@3.2.8)(vue@3.4.15):
resolution: {integrity: sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
vite: ^3.0.0
vue: ^3.2.25
dependencies:
- vite: 3.2.8(@types/node@18.19.6)(sass@1.69.7)(terser@5.26.0)
- vue: 3.4.13(typescript@4.9.5)
+ vite: 3.2.8(@types/node@18.19.10)(sass@1.70.0)(terser@5.27.0)
+ vue: 3.4.15(typescript@4.9.5)
dev: true
- /@vue/compiler-core@3.4.13:
- resolution: {integrity: sha512-zGUdmB3j3Irn9z51GXLJ5s0EAHxmsm5/eXl0y6MBaajMeOAaiT4+zaDoxui4Ets98dwIRr8BBaqXXHtHSfm+KA==}
+ /@vue/compiler-core@3.4.15:
+ resolution: {integrity: sha512-XcJQVOaxTKCnth1vCxEChteGuwG6wqnUHxAm1DO3gCz0+uXKaJNx8/digSz4dLALCy8n2lKq24jSUs8segoqIw==}
dependencies:
'@babel/parser': 7.23.6
- '@vue/shared': 3.4.13
+ '@vue/shared': 3.4.15
entities: 4.5.0
estree-walker: 2.0.2
source-map-js: 1.0.2
- /@vue/compiler-dom@3.4.13:
- resolution: {integrity: sha512-XSNbpr5Rs3kCfVAmBqMu/HDwOS+RL6y28ZZjDlnDUuf146pRWt2sQkwhsOYc9uu2lxjjJy2NcyOkK7MBLVEc7w==}
+ /@vue/compiler-dom@3.4.15:
+ resolution: {integrity: sha512-wox0aasVV74zoXyblarOM3AZQz/Z+OunYcIHe1OsGclCHt8RsRm04DObjefaI82u6XDzv+qGWZ24tIsRAIi5MQ==}
dependencies:
- '@vue/compiler-core': 3.4.13
- '@vue/shared': 3.4.13
+ '@vue/compiler-core': 3.4.15
+ '@vue/shared': 3.4.15
- /@vue/compiler-sfc@3.4.13:
- resolution: {integrity: sha512-SkpmQN8xIFBd5onT413DFSDdjxULJf6jmJg/t3w/DZ9I8ZzyNlLIBLO0qFLewVHyHCiAgpPZlWqSRZXYrawk3Q==}
+ /@vue/compiler-sfc@3.4.15:
+ resolution: {integrity: sha512-LCn5M6QpkpFsh3GQvs2mJUOAlBQcCco8D60Bcqmf3O3w5a+KWS5GvYbrrJBkgvL1BDnTp+e8q0lXCLgHhKguBA==}
dependencies:
'@babel/parser': 7.23.6
- '@vue/compiler-core': 3.4.13
- '@vue/compiler-dom': 3.4.13
- '@vue/compiler-ssr': 3.4.13
- '@vue/shared': 3.4.13
+ '@vue/compiler-core': 3.4.15
+ '@vue/compiler-dom': 3.4.15
+ '@vue/compiler-ssr': 3.4.15
+ '@vue/shared': 3.4.15
estree-walker: 2.0.2
magic-string: 0.30.5
postcss: 8.4.33
source-map-js: 1.0.2
- /@vue/compiler-ssr@3.4.13:
- resolution: {integrity: sha512-rwnw9SVBgD6eGKh8UucnwztieQo/R3RQrEGpE0b0cxb2xxvJeLs/fe7DoYlhEfaSyzM/qD5odkK87hl3G3oW+A==}
+ /@vue/compiler-ssr@3.4.15:
+ resolution: {integrity: sha512-1jdeQyiGznr8gjFDadVmOJqZiLNSsMa5ZgqavkPZ8O2wjHv0tVuAEsw5hTdUoUW4232vpBbL/wJhzVW/JwY1Uw==}
dependencies:
- '@vue/compiler-dom': 3.4.13
- '@vue/shared': 3.4.13
+ '@vue/compiler-dom': 3.4.15
+ '@vue/shared': 3.4.15
/@vue/devtools-api@6.5.1:
resolution: {integrity: sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==}
- /@vue/reactivity@3.4.13:
- resolution: {integrity: sha512-/ZdUOrGKkGVONzVJkfDqNcn2fLMvaa5VlYx2KwTbnRbX06YZ4GJE0PVTmWzIxtBYdpSTLLXgw3pDggO+96KXzg==}
+ /@vue/reactivity@3.4.15:
+ resolution: {integrity: sha512-55yJh2bsff20K5O84MxSvXKPHHt17I2EomHznvFiJCAZpJTNW8IuLj1xZWMLELRhBK3kkFV/1ErZGHJfah7i7w==}
dependencies:
- '@vue/shared': 3.4.13
+ '@vue/shared': 3.4.15
- /@vue/runtime-core@3.4.13:
- resolution: {integrity: sha512-Ov4d4At7z3goxqzSqQxdfVYEcN5HY4dM1uDYL6Hu/Es9Za9BEN602zyjWhhi2+BEki5F9NizRSvn02k/tqNWlg==}
+ /@vue/runtime-core@3.4.15:
+ resolution: {integrity: sha512-6E3by5m6v1AkW0McCeAyhHTw+3y17YCOKG0U0HDKDscV4Hs0kgNT5G+GCHak16jKgcCDHpI9xe5NKb8sdLCLdw==}
dependencies:
- '@vue/reactivity': 3.4.13
- '@vue/shared': 3.4.13
+ '@vue/reactivity': 3.4.15
+ '@vue/shared': 3.4.15
- /@vue/runtime-dom@3.4.13:
- resolution: {integrity: sha512-ynde9p16eEV3u1VCxUre2e0nKzD0l3NzH0r599+bXeLT1Yhac8Atcot3iL9XNqwolxYCI89KBII+2MSVzfrz6w==}
+ /@vue/runtime-dom@3.4.15:
+ resolution: {integrity: sha512-EVW8D6vfFVq3V/yDKNPBFkZKGMFSvZrUQmx196o/v2tHKdwWdiZjYUBS+0Ez3+ohRyF8Njwy/6FH5gYJ75liUw==}
dependencies:
- '@vue/runtime-core': 3.4.13
- '@vue/shared': 3.4.13
+ '@vue/runtime-core': 3.4.15
+ '@vue/shared': 3.4.15
csstype: 3.1.3
- /@vue/server-renderer@3.4.13(vue@3.4.13):
- resolution: {integrity: sha512-hkw+UQyDZZtSn1q30nObMfc8beVEQv2pG08nghigxGw+iOWodR+tWSuJak0mzWAHlP/xt/qLc//dG6igfgvGEA==}
+ /@vue/server-renderer@3.4.15(vue@3.4.15):
+ resolution: {integrity: sha512-3HYzaidu9cHjrT+qGUuDhFYvF/j643bHC6uUN9BgM11DVy+pM6ATsG6uPBLnkwOgs7BpJABReLmpL3ZPAsUaqw==}
peerDependencies:
- vue: 3.4.13
+ vue: 3.4.15
dependencies:
- '@vue/compiler-ssr': 3.4.13
- '@vue/shared': 3.4.13
- vue: 3.4.13(typescript@4.9.5)
+ '@vue/compiler-ssr': 3.4.15
+ '@vue/shared': 3.4.15
+ vue: 3.4.15(typescript@4.9.5)
- /@vue/shared@3.4.13:
- resolution: {integrity: sha512-56crFKLPpzk85WXX1L1c0QzPOuoapWlPVys8eMG8kkRmqdMjWUqK8KpFdE2d7BQA4CEbXwyyHPq6MpFr8H9rcg==}
+ /@vue/shared@3.4.15:
+ resolution: {integrity: sha512-KzfPTxVaWfB+eGcGdbSf4CWdaXcGDqckoeXUh7SB3fZdEtzPCK2Vq9B/lRRL3yutax/LWITz+SwvgyOxz5V75g==}
- /@vue/test-utils@2.4.3(vue@3.4.13):
- resolution: {integrity: sha512-F4K7mF+ad++VlTrxMJVRnenKSJmO6fkQt2wpRDiKDesQMkfpniGWsqEi/JevxGBo2qEkwwjvTUAoiGJLNx++CA==}
+ /@vue/test-utils@2.4.4(vue@3.4.15):
+ resolution: {integrity: sha512-8jkRxz8pNhClAf4Co4ZrpAoFISdvT3nuSkUlY6Ys6rmTpw3DMWG/X3mw3gQ7QJzgCZO9f+zuE2kW57fi09MW7Q==}
peerDependencies:
'@vue/server-renderer': ^3.0.1
vue: ^3.0.1
@@ -1849,17 +1911,17 @@ packages:
optional: true
dependencies:
js-beautify: 1.14.11
- vue: 3.4.13(typescript@4.9.5)
+ vue: 3.4.15(typescript@4.9.5)
vue-component-type-helpers: 1.8.27
dev: true
- /@vueuse/core@10.7.2(vue@3.4.13):
+ /@vueuse/core@10.7.2(vue@3.4.15):
resolution: {integrity: sha512-AOyAL2rK0By62Hm+iqQn6Rbu8bfmbgaIMXcE3TSr7BdQ42wnSFlwIdPjInO62onYsEMK/yDMU8C6oGfDAtZ2qQ==}
dependencies:
'@types/web-bluetooth': 0.0.20
'@vueuse/metadata': 10.7.2
- '@vueuse/shared': 10.7.2(vue@3.4.13)
- vue-demi: 0.14.6(vue@3.4.13)
+ '@vueuse/shared': 10.7.2(vue@3.4.15)
+ vue-demi: 0.14.6(vue@3.4.15)
transitivePeerDependencies:
- '@vue/composition-api'
- vue
@@ -1869,10 +1931,10 @@ packages:
resolution: {integrity: sha512-kCWPb4J2KGrwLtn1eJwaJD742u1k5h6v/St5wFe8Quih90+k2a0JP8BS4Zp34XUuJqS2AxFYMb1wjUL8HfhWsQ==}
dev: true
- /@vueuse/shared@10.7.2(vue@3.4.13):
+ /@vueuse/shared@10.7.2(vue@3.4.15):
resolution: {integrity: sha512-qFbXoxS44pi2FkgFjPvF4h7c9oMDutpyBdcJdMYIMg9XyXli2meFMuaKn+UMgsClo//Th6+beeCgqweT/79BVA==}
dependencies:
- vue-demi: 0.14.6(vue@3.4.13)
+ vue-demi: 0.14.6(vue@3.4.15)
transitivePeerDependencies:
- '@vue/composition-api'
- vue
@@ -1935,13 +1997,13 @@ packages:
hasBin: true
dev: true
- /addons-linter@6.20.0(node-fetch@3.3.1):
- resolution: {integrity: sha512-u3nnnz+dZS5sOAJMF/DdVnjLVDqqbLbpdTNEbCEPIwKlAIDR+FbHHrgRp3JWJw2gvwZuZCmYStQd/G5Llp0nFg==}
+ /addons-linter@6.21.0(node-fetch@3.3.1):
+ resolution: {integrity: sha512-4GBn14BR16FZE7dog6uz+1HO6V3B+mAVxmbwxRhed2y5eyrwIW832TmEpku+5A5bbovBZ4gilXEtBsl6A1AMmg==}
engines: {node: '>=16.0.0'}
hasBin: true
dependencies:
'@fluent/syntax': 0.19.0
- '@mdn/browser-compat-data': 5.5.4
+ '@mdn/browser-compat-data': 5.5.7
addons-moz-compare: 1.3.0
addons-scanner-utils: 9.9.0(node-fetch@3.3.1)
ajv: 8.12.0
@@ -2522,7 +2584,7 @@ packages:
engines: {node: '>=12.13.0'}
hasBin: true
dependencies:
- '@types/node': 18.19.6
+ '@types/node': 18.19.10
escape-string-regexp: 4.0.0
is-wsl: 2.2.0
lighthouse-logger: 1.4.2
@@ -3535,6 +3597,16 @@ packages:
eslint: 8.56.0
dev: true
+ /eslint-compat-utils@0.4.1(eslint@8.56.0):
+ resolution: {integrity: sha512-5N7ZaJG5pZxUeNNJfUchurLVrunD1xJvyg5kYOIVF8kg1f3ajTikmAu/5fZ9w100omNPOoMjngRszh/Q/uFGMg==}
+ engines: {node: '>=12'}
+ peerDependencies:
+ eslint: '>=6.0.0'
+ dependencies:
+ eslint: 8.56.0
+ semver: 7.5.4
+ dev: true
+
/eslint-config-flat-gitignore@0.1.2:
resolution: {integrity: sha512-PcBsqtd5QHEZH4ROvpnRN4EP0qcHh9voCCHgtyHxnJZHGspJREcZn7oPqRG/GfWt9m3C0fkC2l5CuBtMig2wXQ==}
dependencies:
@@ -3559,7 +3631,7 @@ packages:
eslint: 8.56.0
dev: true
- /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0):
+ /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0):
resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==}
engines: {node: '>=4'}
peerDependencies:
@@ -3580,7 +3652,7 @@ packages:
eslint-import-resolver-webpack:
optional: true
dependencies:
- '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@4.9.5)
+ '@typescript-eslint/parser': 6.19.1(eslint@8.56.0)(typescript@4.9.5)
debug: 3.2.7
eslint: 8.56.0
eslint-import-resolver-node: 0.3.9
@@ -3619,7 +3691,7 @@ packages:
ignore: 5.3.0
dev: true
- /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0):
+ /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.19.1)(eslint@8.56.0):
resolution: {integrity: sha512-ORizX37MelIWLbMyqI7hi8VJMf7A0CskMmYkB+lkCX3aF4pkGV7kwx5bSEb4qx7Yce2rAf9s34HqDRPjGRZPNQ==}
engines: {node: '>=12'}
peerDependencies:
@@ -3629,7 +3701,7 @@ packages:
doctrine: 3.0.0
eslint: 8.56.0
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0)
+ eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0)
get-tsconfig: 4.7.2
is-glob: 4.0.3
minimatch: 3.1.2
@@ -3661,19 +3733,20 @@ packages:
- supports-color
dev: true
- /eslint-plugin-jsonc@2.11.2(eslint@8.56.0):
- resolution: {integrity: sha512-F6A0MZhIGRBPOswzzn4tJFXXkPLiLwJaMlQwz/Qj1qx+bV5MCn79vBeJh2ynMmtqqHloi54KDCnsT/KWrcCcnQ==}
+ /eslint-plugin-jsonc@2.13.0(eslint@8.56.0):
+ resolution: {integrity: sha512-2wWdJfpO/UbZzPDABuUVvlUQjfMJa2p2iQfYt/oWxOMpXCcjuiMUSaA02gtY/Dbu82vpaSqc+O7Xq6ECHwtIxA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: '>=6.0.0'
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
eslint: 8.56.0
- eslint-compat-utils: 0.1.2(eslint@8.56.0)
+ eslint-compat-utils: 0.4.1(eslint@8.56.0)
espree: 9.6.1
graphemer: 1.4.0
jsonc-eslint-parser: 2.4.0
natural-compare: 1.4.0
+ synckit: 0.6.2
dev: true
/eslint-plugin-markdown@3.0.1(eslint@8.56.0):
@@ -3749,15 +3822,15 @@ packages:
- typescript
dev: true
- /eslint-plugin-toml@0.8.0(eslint@8.56.0):
- resolution: {integrity: sha512-vNfoLQq60nK5FTr6x9F/SK3ZcbMsHzfgXsoDLhoCqgGtpzoAmsZrFB+efKEjjLT9wdIL6sKbz4taLKpB9sU8Hw==}
+ /eslint-plugin-toml@0.9.2(eslint@8.56.0):
+ resolution: {integrity: sha512-ri0xf63PYf3pIq/WY9BIwrqxZmGTIwSkAO0bHddI0ajUwN4KGz6W8vOvdXFHOpRdRfzxlmXze/vfsY/aTEXESg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: '>=6.0.0'
dependencies:
debug: 4.3.4
eslint: 8.56.0
- eslint-compat-utils: 0.1.2(eslint@8.56.0)
+ eslint-compat-utils: 0.4.1(eslint@8.56.0)
lodash: 4.17.21
toml-eslint-parser: 0.9.3
transitivePeerDependencies:
@@ -3791,7 +3864,7 @@ packages:
- supports-color
dev: true
- /eslint-plugin-unused-imports@3.0.0(@typescript-eslint/eslint-plugin@6.18.1)(eslint@8.56.0):
+ /eslint-plugin-unused-imports@3.0.0(@typescript-eslint/eslint-plugin@6.19.1)(eslint@8.56.0):
resolution: {integrity: sha512-sduiswLJfZHeeBJ+MQaG+xYzSWdRXoSw61DpU13mzWumCkR0ufD0HmO4kdNokjrkluMHpj/7PJeN35pgbhW3kw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -3801,12 +3874,12 @@ packages:
'@typescript-eslint/eslint-plugin':
optional: true
dependencies:
- '@typescript-eslint/eslint-plugin': 6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@4.9.5)
+ '@typescript-eslint/eslint-plugin': 6.19.1(@typescript-eslint/parser@6.19.1)(eslint@8.56.0)(typescript@4.9.5)
eslint: 8.56.0
eslint-rule-composer: 0.3.0
dev: true
- /eslint-plugin-vitest@0.3.20(@typescript-eslint/eslint-plugin@6.18.1)(eslint@8.56.0)(typescript@4.9.5)(vitest@0.24.5):
+ /eslint-plugin-vitest@0.3.20(@typescript-eslint/eslint-plugin@6.19.1)(eslint@8.56.0)(typescript@4.9.5)(vitest@0.24.5):
resolution: {integrity: sha512-O05k4j9TGMOkkghj9dRgpeLDyOSiVIxQWgNDPfhYPm5ioJsehcYV/zkRLekQs+c8+RBCVXucSED3fYOyy2EoWA==}
engines: {node: ^18.0.0 || >= 20.0.0}
peerDependencies:
@@ -3819,10 +3892,10 @@ packages:
vitest:
optional: true
dependencies:
- '@typescript-eslint/eslint-plugin': 6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@4.9.5)
+ '@typescript-eslint/eslint-plugin': 6.19.1(@typescript-eslint/parser@6.19.1)(eslint@8.56.0)(typescript@4.9.5)
'@typescript-eslint/utils': 6.18.1(eslint@8.56.0)(typescript@4.9.5)
eslint: 8.56.0
- vitest: 0.24.5(jsdom@20.0.3)(sass@1.69.7)(terser@5.26.0)
+ vitest: 0.24.5(jsdom@20.0.3)(sass@1.70.0)(terser@5.27.0)
transitivePeerDependencies:
- supports-color
- typescript
@@ -3846,15 +3919,15 @@ packages:
- supports-color
dev: true
- /eslint-plugin-yml@1.11.0(eslint@8.56.0):
- resolution: {integrity: sha512-NBZP1NDGy0u38pY5ieix75jxS9GNOJy9xd4gQa0rU4gWbfEsVhKDwuFaQ6RJpDbv6Lq5TtcAZS/YnAc0oeRw0w==}
+ /eslint-plugin-yml@1.12.2(eslint@8.56.0):
+ resolution: {integrity: sha512-hvS9p08FhPT7i/ynwl7/Wt7ke7Rf4P2D6fT8lZlL43peZDTsHtH2A0SIFQ7Kt7+mJ6if6P+FX3iJhMkdnxQwpg==}
engines: {node: ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: '>=6.0.0'
dependencies:
debug: 4.3.4
eslint: 8.56.0
- eslint-compat-utils: 0.1.2(eslint@8.56.0)
+ eslint-compat-utils: 0.4.1(eslint@8.56.0)
lodash: 4.17.21
natural-compare: 1.4.0
yaml-eslint-parser: 1.2.2
@@ -3862,13 +3935,13 @@ packages:
- supports-color
dev: true
- /eslint-processor-vue-blocks@0.1.1(@vue/compiler-sfc@3.4.13)(eslint@8.56.0):
+ /eslint-processor-vue-blocks@0.1.1(@vue/compiler-sfc@3.4.15)(eslint@8.56.0):
resolution: {integrity: sha512-9+dU5lU881log570oBwpelaJmOfOzSniben7IWEDRYQPPWwlvaV7NhOtsTuUWDqpYT+dtKKWPsgz4OkOi+aZnA==}
peerDependencies:
'@vue/compiler-sfc': ^3.3.0
eslint: ^8.50.0
dependencies:
- '@vue/compiler-sfc': 3.4.13
+ '@vue/compiler-sfc': 3.4.15
eslint: 8.56.0
dev: true
@@ -5988,18 +6061,18 @@ packages:
engines: {node: '>= 0.4.0'}
dev: true
- /overlayscrollbars-vue@0.5.6(overlayscrollbars@2.4.6)(vue@3.4.13):
- resolution: {integrity: sha512-gBraPkblG/pE6P74+q0vOnULzmD1sePth7S3D6Cb8hLLLrkJNE66cNWzxUgVPtUP3gp5PK6R3rZsxNNo3Xs3GQ==}
+ /overlayscrollbars-vue@0.5.7(overlayscrollbars@2.4.7)(vue@3.4.15):
+ resolution: {integrity: sha512-i+jjyFXcCWlDhN3nOo0kt81NgwaixEvY60H/G2iixF2pAm4BnXi/i6muSWb5+rATd4I5TYnA+k5QYHmdI/Wvew==}
peerDependencies:
overlayscrollbars: ^2.0.0
vue: ^3.2.25
dependencies:
- overlayscrollbars: 2.4.6
- vue: 3.4.13(typescript@4.9.5)
+ overlayscrollbars: 2.4.7
+ vue: 3.4.15(typescript@4.9.5)
dev: false
- /overlayscrollbars@2.4.6:
- resolution: {integrity: sha512-C7tmhetwMv9frEvIT/RfkAVEgbjRNz/Gh2zE8BVmN+jl35GRaAnz73rlGQCMRoC2arpACAXyMNnJkzHb7GBrcA==}
+ /overlayscrollbars@2.4.7:
+ resolution: {integrity: sha512-02X2/nHno35dzebCx+EO2tRDaKAOltZqUKdUqvq3Pt8htCuhJbYi+mjr0CYerVeGRRoZ2Uo6/8XrNg//DJJ+GA==}
dev: false
/p-cancelable@3.0.0:
@@ -6230,7 +6303,7 @@ packages:
engines: {node: '>=4'}
dev: true
- /pinia@2.1.7(typescript@4.9.5)(vue@3.4.13):
+ /pinia@2.1.7(typescript@4.9.5)(vue@3.4.15):
resolution: {integrity: sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==}
peerDependencies:
'@vue/composition-api': ^1.4.0
@@ -6244,8 +6317,8 @@ packages:
dependencies:
'@vue/devtools-api': 6.5.1
typescript: 4.9.5
- vue: 3.4.13(typescript@4.9.5)
- vue-demi: 0.14.6(vue@3.4.13)
+ vue: 3.4.15(typescript@4.9.5)
+ vue-demi: 0.14.6(vue@3.4.15)
dev: false
/pino-abstract-transport@1.1.0:
@@ -6404,12 +6477,12 @@ packages:
escape-goat: 4.0.0
dev: true
- /qrcode.vue@3.4.1(vue@3.4.13):
+ /qrcode.vue@3.4.1(vue@3.4.15):
resolution: {integrity: sha512-wq/zHsifH4FJ1GXQi8/wNxD1KfQkckIpjK1KPTc/qwYU5/Bkd4me0w4xZSg6EXk6xLBkVDE0zxVagewv5EMAVA==}
peerDependencies:
vue: ^3.0.0
dependencies:
- vue: 3.4.13(typescript@4.9.5)
+ vue: 3.4.15(typescript@4.9.5)
dev: false
/qs@6.5.3:
@@ -6748,8 +6821,8 @@ packages:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
dev: true
- /sass@1.69.7:
- resolution: {integrity: sha512-rzj2soDeZ8wtE2egyLXgOOHQvaC2iosZrkF6v3EUG+tBwEvhqUCzm0VP3k9gHF9LXbSrRhT5SksoI56Iw8NPnQ==}
+ /sass@1.70.0:
+ resolution: {integrity: sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ==}
engines: {node: '>=14.0.0'}
hasBin: true
dependencies:
@@ -6882,6 +6955,7 @@ packages:
/sign-addon@5.3.0:
resolution: {integrity: sha512-7nHlCzhQgVMLBNiXVEgbG/raq48awOW0lYMN5uo1BaB3mp0+k8M8pvDwbfTlr3apcxZJsk9HQsAW1POwoJugpQ==}
+ deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
dependencies:
common-tags: 1.8.2
core-js: 3.29.0
@@ -7259,6 +7333,13 @@ packages:
resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
dev: true
+ /synckit@0.6.2:
+ resolution: {integrity: sha512-Vhf+bUa//YSTYKseDiiEuQmhGCoIF3CVBhunm3r/DQnYiGT4JssmnKQc44BIyOZRK2pKjXXAgbhfmbeoC9CJpA==}
+ engines: {node: '>=12.20'}
+ dependencies:
+ tslib: 2.6.2
+ dev: true
+
/tar-stream@2.2.0:
resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==}
engines: {node: '>=6'}
@@ -7270,8 +7351,8 @@ packages:
readable-stream: 3.6.2
dev: true
- /terser@5.26.0:
- resolution: {integrity: sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ==}
+ /terser@5.27.0:
+ resolution: {integrity: sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==}
engines: {node: '>=10'}
hasBin: true
dependencies:
@@ -7352,7 +7433,7 @@ packages:
dev: true
/tosource@1.0.0:
- resolution: {integrity: sha1-QtiN0RZhi88A1hBt1URvNCeQL/E=}
+ resolution: {integrity: sha512-N6g8eQ1eerw6Y1pBhdgkubWIiPFwXa2POSUrlL8jth5CyyEWNWzoGKRkO3CaO7Jx27hlJP54muB3btIAbx4MPg==}
engines: {node: '>=0.4.0'}
dev: true
@@ -7414,6 +7495,10 @@ packages:
resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
dev: true
+ /tslib@2.6.2:
+ resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
+ dev: true
+
/tsup@6.7.0(postcss@8.4.33)(typescript@4.9.5):
resolution: {integrity: sha512-L3o8hGkaHnu5TdJns+mCqFsDBo83bJ44rlK7e6VdanIvpea4ArPcU3swWGsLVbXak1PqQx/V+SSmFPujBK+zEQ==}
engines: {node: '>=14.18'}
@@ -7696,7 +7781,7 @@ packages:
dependencies:
'@antfu/utils': 0.7.7
'@rollup/pluginutils': 5.1.0
- '@vueuse/core': 10.7.2(vue@3.4.13)
+ '@vueuse/core': 10.7.2(vue@3.4.15)
local-pkg: 0.4.3
magic-string: 0.26.7
unimport: 1.3.0
@@ -7705,7 +7790,7 @@ packages:
- rollup
dev: true
- /unplugin-icons@0.14.15(@vue/compiler-sfc@3.4.13):
+ /unplugin-icons@0.14.15(@vue/compiler-sfc@3.4.15):
resolution: {integrity: sha512-J6YBA+fUzVM2IZPXCK3Pnk36jYVwQ6lkjRgOnZaXNIxpMDsmwDqrE1AGJ0zUbfuEoOa90OBGc0OPfN1r+qlSIQ==}
peerDependencies:
'@svgr/core': '>=5.5.0'
@@ -7725,7 +7810,7 @@ packages:
'@antfu/install-pkg': 0.1.1
'@antfu/utils': 0.7.7
'@iconify/utils': 2.1.14
- '@vue/compiler-sfc': 3.4.13
+ '@vue/compiler-sfc': 3.4.15
debug: 4.3.4
kolorist: 1.8.0
local-pkg: 0.4.3
@@ -7734,7 +7819,7 @@ packages:
- supports-color
dev: true
- /unplugin-vue-components@0.22.12(vue@3.4.13):
+ /unplugin-vue-components@0.22.12(vue@3.4.15):
resolution: {integrity: sha512-FxyzsuBvMCYPIk+8cgscGBQ345tvwVu+qY5IhE++eorkyvA4Z1TiD/HCiim+Kbqozl10i4K+z+NCa2WO2jexRA==}
engines: {node: '>=14'}
peerDependencies:
@@ -7754,7 +7839,7 @@ packages:
minimatch: 5.1.6
resolve: 1.22.8
unplugin: 1.6.0
- vue: 3.4.13(typescript@4.9.5)
+ vue: 3.4.15(typescript@4.9.5)
transitivePeerDependencies:
- rollup
- supports-color
@@ -7849,7 +7934,7 @@ packages:
extsprintf: 1.3.0
dev: true
- /vite@3.2.8(@types/node@18.19.6)(sass@1.69.7)(terser@5.26.0):
+ /vite@3.2.8(@types/node@18.19.10)(sass@1.70.0)(terser@5.27.0):
resolution: {integrity: sha512-EtQU16PLIJpAZol2cTLttNP1mX6L0SyI0pgQB1VOoWeQnMSvtiwovV3D6NcjN8CZQWWyESD2v5NGnpz5RvgOZA==}
engines: {node: ^14.18.0 || >=16.0.0}
hasBin: true
@@ -7874,18 +7959,18 @@ packages:
terser:
optional: true
dependencies:
- '@types/node': 18.19.6
+ '@types/node': 18.19.10
esbuild: 0.15.18
postcss: 8.4.33
resolve: 1.22.8
rollup: 2.79.1
- sass: 1.69.7
- terser: 5.26.0
+ sass: 1.70.0
+ terser: 5.27.0
optionalDependencies:
fsevents: 2.3.3
dev: true
- /vitest@0.24.5(jsdom@20.0.3)(sass@1.69.7)(terser@5.26.0):
+ /vitest@0.24.5(jsdom@20.0.3)(sass@1.70.0)(terser@5.27.0):
resolution: {integrity: sha512-zw6JhPUHtLILQDe5Q39b/SzoITkG+R7hcFjuthp4xsi6zpmfQPOZcHodZ+3bqoWl4EdGK/p1fuMiEwdxgbGLOA==}
engines: {node: '>=v14.16.0'}
hasBin: true
@@ -7909,7 +7994,7 @@ packages:
dependencies:
'@types/chai': 4.3.11
'@types/chai-subset': 1.3.5
- '@types/node': 18.19.6
+ '@types/node': 18.19.10
chai: 4.4.1
debug: 4.3.4
jsdom: 20.0.3
@@ -7918,7 +8003,7 @@ packages:
tinybench: 2.5.1
tinypool: 0.3.1
tinyspy: 1.1.1
- vite: 3.2.8(@types/node@18.19.6)(sass@1.69.7)(terser@5.26.0)
+ vite: 3.2.8(@types/node@18.19.10)(sass@1.70.0)(terser@5.27.0)
transitivePeerDependencies:
- less
- sass
@@ -7932,7 +8017,7 @@ packages:
resolution: {integrity: sha512-0vOfAtI67UjeO1G6UiX5Kd76CqaQ67wrRZiOe7UAb9Jm6GzlUr/fC7CV90XfwapJRjpCMaZFhv1V0ajWRmE9Dg==}
dev: true
- /vue-demi@0.13.11(vue@3.4.13):
+ /vue-demi@0.13.11(vue@3.4.15):
resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==}
engines: {node: '>=12'}
hasBin: true
@@ -7944,10 +8029,10 @@ packages:
'@vue/composition-api':
optional: true
dependencies:
- vue: 3.4.13(typescript@4.9.5)
+ vue: 3.4.15(typescript@4.9.5)
dev: true
- /vue-demi@0.14.6(vue@3.4.13):
+ /vue-demi@0.14.6(vue@3.4.15):
resolution: {integrity: sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==}
engines: {node: '>=12'}
hasBin: true
@@ -7959,7 +8044,7 @@ packages:
'@vue/composition-api':
optional: true
dependencies:
- vue: 3.4.13(typescript@4.9.5)
+ vue: 3.4.15(typescript@4.9.5)
/vue-eslint-parser@9.4.0(eslint@8.56.0):
resolution: {integrity: sha512-7KsNBb6gHFA75BtneJsoK/dbZ281whUIwFYdQxA68QrCrGMXYzUMbPDHGcOQ0OocIVKrWSKWXZ4mL7tonCXoUw==}
@@ -7979,7 +8064,7 @@ packages:
- supports-color
dev: true
- /vue-i18n@9.9.0(vue@3.4.13):
+ /vue-i18n@9.9.0(vue@3.4.15):
resolution: {integrity: sha512-xQ5SxszUAqK5n84N+uUyHH/PiQl9xZ24FOxyAaNonmOQgXeN+rD9z/6DStOpOxNFQn4Cgcquot05gZc+CdOujA==}
engines: {node: '>= 16'}
peerDependencies:
@@ -7988,38 +8073,38 @@ packages:
'@intlify/core-base': 9.9.0
'@intlify/shared': 9.9.0
'@vue/devtools-api': 6.5.1
- vue: 3.4.13(typescript@4.9.5)
+ vue: 3.4.15(typescript@4.9.5)
- /vue-toastification@2.0.0-rc.5(vue@3.4.13):
+ /vue-toastification@2.0.0-rc.5(vue@3.4.15):
resolution: {integrity: sha512-q73e5jy6gucEO/U+P48hqX+/qyXDozAGmaGgLFm5tXX4wJBcVsnGp4e/iJqlm9xzHETYOilUuwOUje2Qg1JdwA==}
peerDependencies:
vue: ^3.0.2
dependencies:
- vue: 3.4.13(typescript@4.9.5)
+ vue: 3.4.15(typescript@4.9.5)
dev: false
- /vue@3.4.13(typescript@4.9.5):
- resolution: {integrity: sha512-FE3UZ0p+oUZTwz+SzlH/hDFg+XsVRFvwmx0LXjdD1pRK/cO4fu5v6ltAZji4za4IBih3dV78elUK3di8v3pWIg==}
+ /vue@3.4.15(typescript@4.9.5):
+ resolution: {integrity: sha512-jC0GH4KkWLWJOEQjOpkqU1bQsBwf4R1rsFtw5GQJbjHVKWDzO6P0nWWBTmjp1xSemAioDFj1jdaK1qa3DnMQoQ==}
peerDependencies:
typescript: '*'
peerDependenciesMeta:
typescript:
optional: true
dependencies:
- '@vue/compiler-dom': 3.4.13
- '@vue/compiler-sfc': 3.4.13
- '@vue/runtime-dom': 3.4.13
- '@vue/server-renderer': 3.4.13(vue@3.4.13)
- '@vue/shared': 3.4.13
+ '@vue/compiler-dom': 3.4.15
+ '@vue/compiler-sfc': 3.4.15
+ '@vue/runtime-dom': 3.4.15
+ '@vue/server-renderer': 3.4.15(vue@3.4.15)
+ '@vue/shared': 3.4.15
typescript: 4.9.5
- /vuedraggable@4.1.0(vue@3.4.13):
+ /vuedraggable@4.1.0(vue@3.4.15):
resolution: {integrity: sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==}
peerDependencies:
vue: ^3.0.1
dependencies:
sortablejs: 1.14.0
- vue: 3.4.13(typescript@4.9.5)
+ vue: 3.4.15(typescript@4.9.5)
dev: false
/w3c-xmlserializer@4.0.0:
@@ -8043,14 +8128,14 @@ packages:
defaults: 1.0.4
dev: true
- /web-ext@7.10.0:
- resolution: {integrity: sha512-UTh4n/F6tvJrfYxICuJMkc7N4Qp3GrmQ1XIXTuc8XDt1tKFPfmKMa0D/kJZKoPg8PJud7j5TT3EtTqMqzPj8Rg==}
+ /web-ext@7.11.0:
+ resolution: {integrity: sha512-EG6YXHITNDJB/h6Rc5FF08eMoN45sZPBBIIlEraBzxJ0RdJZ8Z3xvUUawbDwt+mowfv9X0XRWlLSwdWbRKgojg==}
engines: {node: '>=14.0.0', npm: '>=6.9.0'}
hasBin: true
dependencies:
'@babel/runtime': 7.21.0
'@devicefarmer/adbkit': 3.2.3
- addons-linter: 6.20.0(node-fetch@3.3.1)
+ addons-linter: 6.21.0(node-fetch@3.3.1)
bunyan: 1.8.15
camelcase: 7.0.1
chrome-launcher: 0.15.1
diff --git a/src/_locales/cmn-CN.yml b/src/_locales/cmn-CN.yml
index 115b30d8..fa4049cd 100644
--- a/src/_locales/cmn-CN.yml
+++ b/src/_locales/cmn-CN.yml
@@ -23,6 +23,7 @@ common:
disable: 禁用
refresh: 刷新
reset: 重置
+ no_more_content: 没有更多内容了
settings:
title: 设置
diff --git a/src/_locales/cmn-TW.yml b/src/_locales/cmn-TW.yml
index 5428ca1f..011b2ae0 100644
--- a/src/_locales/cmn-TW.yml
+++ b/src/_locales/cmn-TW.yml
@@ -23,6 +23,7 @@ common:
disable: 停用
refresh: 重新整理
reset: 重置
+ no_more_content: 沒有更多內容了
settings:
title: 設定
diff --git a/src/_locales/en.yml b/src/_locales/en.yml
index 788823ff..bc8e7c27 100644
--- a/src/_locales/en.yml
+++ b/src/_locales/en.yml
@@ -23,6 +23,7 @@ common:
disable: Disable
refresh: Refresh
reset: Reset
+ no_more_content: No more content now, owari da
settings:
title: Settings
diff --git a/src/_locales/jyut.yml b/src/_locales/jyut.yml
index 28cfce2d..6dd5d331 100644
--- a/src/_locales/jyut.yml
+++ b/src/_locales/jyut.yml
@@ -23,6 +23,7 @@ common:
disable: 閂埋
refresh: 重新整理
reset: 重置
+ no_more_content: 唔使睇喇,冇嘢喇
settings:
title: 設定
diff --git a/src/components/Dock/Dock.vue b/src/components/Dock/Dock.vue
index fa67426a..0c8901f5 100644
--- a/src/components/Dock/Dock.vue
+++ b/src/components/Dock/Dock.vue
@@ -1,7 +1,6 @@
diff --git a/src/contentScripts/views/App.vue b/src/contentScripts/views/App.vue
index cd1fa532..6eff75ef 100644
--- a/src/contentScripts/views/App.vue
+++ b/src/contentScripts/views/App.vue
@@ -1,28 +1,32 @@
@@ -330,12 +331,12 @@ provide('mainAppRef', mainAppRef)
-
+
diff --git a/src/contentScripts/views/Favorites/Favorites.vue b/src/contentScripts/views/Favorites/Favorites.vue
index 476c230d..7b0b137a 100644
--- a/src/contentScripts/views/Favorites/Favorites.vue
+++ b/src/contentScripts/views/Favorites/Favorites.vue
@@ -19,7 +19,7 @@ const activatedCategoryCover = ref('')
const shouldMoveCtrlBarUp = ref(false)
const currentPageNum = ref(1)
const keyword = ref('')
-
+const { handlePageRefresh, handleReachBottom } = useBewlyApp()
const isLoading = ref(true)
const isFullPageLoading = ref(false)
const noMoreContent = ref()
@@ -28,20 +28,8 @@ onMounted(async () => {
await getFavoriteCategories()
changeCategory(favoriteCategories[0])
- emitter.off('reachBottom')
- emitter.on('reachBottom', () => {
- if (isLoading.value)
- return
+ initPageAction()
- if (!noMoreContent.value)
- getFavoriteResources(selectedCategory.value!.id, ++currentPageNum.value, keyword.value)
- })
-
- emitter.off('pageRefresh')
- emitter.on('pageRefresh', async () => {
- favoriteResources.length = 0
- handleSearch()
- })
emitter.off('topBarVisibleChange')
emitter.on('topBarVisibleChange', (val) => {
shouldMoveCtrlBarUp.value = false
@@ -60,11 +48,29 @@ onMounted(async () => {
})
onUnmounted(() => {
- emitter.off('reachBottom')
- emitter.off('pageRefresh')
emitter.off('topBarVisibleChange')
})
+function initPageAction() {
+ handleReachBottom.value = async () => {
+ if (isLoading.value)
+ return
+ if (noMoreContent.value)
+ return
+
+ await getFavoriteResources(selectedCategory.value!.id, ++currentPageNum.value, keyword.value)
+ }
+
+ handlePageRefresh.value = () => {
+ if (isLoading.value)
+ return
+ favoriteResources.length = 0
+ currentPageNum.value = 1
+ noMoreContent.value = false
+ handleSearch()
+ }
+}
+
async function getFavoriteCategories() {
await browser.runtime
.sendMessage({
@@ -128,14 +134,17 @@ async function getFavoriteResources(
async function changeCategory(categoryItem: FavoriteCategory) {
currentPageNum.value = 1
selectedCategory.value = categoryItem
-
+ noMoreContent.value = false
favoriteResources.length = 0
+
getFavoriteResources(categoryItem.id, 1)
}
function handleSearch() {
currentPageNum.value = 1
favoriteResources.length = 0
+ noMoreContent.value = false
+
getFavoriteResources(selectedCategory.value!.id, currentPageNum.value, keyword.value)
}
@@ -225,6 +234,9 @@ function handleUnfavorite(favoriteResource: FavoriteResource) {
+
+
+
()
-const noMoreContent = ref()
+const noMoreContent = ref(false)
const historyList = reactive>([])
const currentPageNum = ref(1)
const keyword = ref()
const historyStatus = ref()
+const { handlePageRefresh, handleReachBottom } = useBewlyApp()
const HistoryBusiness = computed(() => {
return Business
})
-watch(
- () => keyword.value,
- (newValue, oldValue) => {
- if (newValue === oldValue)
- return
- emitter.on('reachBottom', () => {
- if (isLoading.value)
- return
-
- if (!noMoreContent.value) {
- if (keyword.value)
- searchHistoryList()
- else getHistoryList()
- }
- })
- },
-)
-
onMounted(() => {
getHistoryList()
getHistoryPauseStatus()
- emitter.off('reachBottom')
- emitter.on('reachBottom', () => {
+ initPageAction()
+})
+
+function initPageAction() {
+ handleReachBottom.value = () => {
if (isLoading.value)
return
+ if (noMoreContent.value)
+ return
- if (!noMoreContent.value) {
- if (keyword.value)
- searchHistoryList()
- else getHistoryList()
- }
- })
+ if (keyword.value)
+ searchHistoryList()
+ else
+ getHistoryList()
+ }
- emitter.off('pageRefresh')
- emitter.on('pageRefresh', async () => {
+ handlePageRefresh.value = () => {
historyList.length = 0
+ currentPageNum.value = 1
+ noMoreContent.value = false
getHistoryList()
- })
-})
-
-onUnmounted(() => {
- emitter.off('reachBottom')
- emitter.off('pageRefresh')
-})
+ }
+}
/**
* Get history list
@@ -128,6 +110,7 @@ function searchHistoryList() {
function handleSearch() {
historyList.length = 0
currentPageNum.value = 1
+ noMoreContent.value = false
if (keyword.value)
searchHistoryList()
else getHistoryList()
@@ -151,7 +134,7 @@ function deleteHistoryItem(index: number, historyItem: HistoryItem) {
* @param item history item
* @return {string} url
*/
-function getHistoryUrl(item: HistoryItem) {
+function getHistoryUrl(item: HistoryItem): string {
// anime
if (item.history.business === 'pgc') {
return removeHttpFromUrl(item.uri)
@@ -220,7 +203,6 @@ function clearAllHistory() {
}
function handleClearAllWatchHistory() {
- // eslint-disable-next-line no-alert
const result = confirm(
t('history.clear_all_watch_history_confirm'),
)
@@ -229,7 +211,6 @@ function handleClearAllWatchHistory() {
}
function handlePauseWatchHistory() {
- // eslint-disable-next-line no-alert
const result = confirm(
t('history.pause_watch_history_confirm'),
)
@@ -238,7 +219,6 @@ function handlePauseWatchHistory() {
}
function handleTurnOnWatchHistory() {
- // eslint-disable-next-line no-alert
const result = confirm(
t('history.turn_on_watch_history_confirm'),
)
@@ -258,7 +238,7 @@ function jumpToLoginPage() {
{{ $t('history.title') }}
-
+
-
+
+
+
+
+
import { useI18n } from 'vue-i18n'
-import ForYou from './components/ForYou.vue'
-import Following from './components/Following.vue'
-import Trending from './components/Trending.vue'
-import Ranking from './components/Ranking.vue'
-import SubscribedSeries from './components/SubscribedSeries.vue'
import type { HomeTab } from './types'
import { HomeSubPage } from './types'
import emitter from '~/utils/mitt'
@@ -12,13 +7,19 @@ import { settings } from '~/logic'
const { t } = useI18n()
-const handleBackToTop = inject('handleBackToTop') as (targetScrollTop: number) => void
+const { handleBackToTop } = useBewlyApp()
-const recommendContentKey = ref(`recommendContent${Number(new Date())}`)
const activatedPage = ref(HomeSubPage.ForYou)
-const pages = { ForYou, Following, SubscribedSeries, Trending, Ranking }
+const pages = {
+ [HomeSubPage.ForYou]: defineAsyncComponent(() => import('./components/ForYou.vue')),
+ [HomeSubPage.Following]: defineAsyncComponent(() => import('./components/Following.vue')),
+ [HomeSubPage.SubscribedSeries]: defineAsyncComponent(() => import('./components/SubscribedSeries.vue')),
+ [HomeSubPage.Trending]: defineAsyncComponent(() => import('./components/Trending.vue')),
+ [HomeSubPage.Ranking]: defineAsyncComponent(() => import('./components/Ranking.vue')),
+}
const showSearchPageMode = ref(false)
const shouldMoveTabsUp = ref(false)
+const tabContentLoading = ref(false)
const tabs = computed((): HomeTab[] => {
return [
@@ -51,10 +52,6 @@ watch(() => activatedPage.value, () => {
onMounted(() => {
showSearchPageMode.value = true
- emitter.off('pageRefresh')
- emitter.on('pageRefresh', async () => {
- recommendContentKey.value = `recommendContent${Number(new Date())}`
- })
emitter.off('topBarVisibleChange')
emitter.on('topBarVisibleChange', (val) => {
shouldMoveTabsUp.value = false
@@ -73,9 +70,18 @@ onMounted(() => {
})
onUnmounted(() => {
- emitter.off('pageRefresh')
emitter.off('topBarVisibleChange')
})
+
+function handleChangeTab(tab: HomeTab) {
+ // When the content of a tab is loading, prevent switching to another tab.
+ // Since `initPageAction()` within the tab replaces the `handleReachBottom` and `handlePageRefresh` functions.
+ // Therefore, this will lead to a failure in refreshing the data of the current tab
+ // because `handlePageRefresh` and `handleReachBottom` has been replaced
+ // now they are set to refresh the data of the tab you switched to
+ if (!tabContentLoading.value)
+ activatedPage.value = tab.value
+}
@@ -150,7 +156,8 @@ onUnmounted(() => {
px-4 lh-35px bg="$bew-elevated-1 hover:$bew-elevated-1-hover" backdrop-glass rounded="$bew-radius"
cursor-pointer shadow="$bew-shadow-1" box-border border="1 $bew-border-color" duration-300
:class="{ 'tab-activated': activatedPage === tab.value }"
- @click="activatedPage = tab.value"
+ :style="{ opacity: activatedPage !== tab.value && tabContentLoading ? 0.4 : 1 }"
+ @click="handleChangeTab(tab)"
>
{{ tab.label }}
@@ -158,7 +165,13 @@ onUnmounted(() => {
-
+
+
+
diff --git a/src/contentScripts/views/Home/components/Following.vue b/src/contentScripts/views/Home/components/Following.vue
index 45201fc1..db2f3961 100644
--- a/src/contentScripts/views/Home/components/Following.vue
+++ b/src/contentScripts/views/Home/components/Following.vue
@@ -1,7 +1,11 @@
diff --git a/src/contentScripts/views/WatchLater/WatchLater.vue b/src/contentScripts/views/WatchLater/WatchLater.vue
index 57d516db..f531eda5 100644
--- a/src/contentScripts/views/WatchLater/WatchLater.vue
+++ b/src/contentScripts/views/WatchLater/WatchLater.vue
@@ -3,7 +3,6 @@ import { useDateFormat } from '@vueuse/core'
import { useI18n } from 'vue-i18n'
import { getCSRF, openLinkToNewTab, removeHttpFromUrl } from '~/utils/main'
import { calcCurrentTime } from '~/utils/dataFormatter'
-import emitter from '~/utils/mitt'
import type { List as VideoItem, WatchLaterResult } from '~/models/video/watchLater'
const { t } = useI18n()
@@ -11,20 +10,22 @@ const { t } = useI18n()
const isLoading = ref()
const noMoreContent = ref()
const watchLaterList = reactive([])
+const { handlePageRefresh } = useBewlyApp()
onMounted(() => {
getAllWatchLaterList()
+ initPageAction()
+})
+
+function initPageAction() {
+ handlePageRefresh.value = () => {
+ if (isLoading.value)
+ return
- emitter.off('pageRefresh')
- emitter.on('pageRefresh', async () => {
watchLaterList.length = 0
getAllWatchLaterList()
- })
-})
-
-onUnmounted(() => {
- emitter.off('pageRefresh')
-})
+ }
+}
/**
* Get watch later list
@@ -58,7 +59,6 @@ function deleteWatchLaterItem(index: number, aid: number) {
}
function handleClearAllWatchLater() {
- // eslint-disable-next-line no-alert
const result = confirm(
t('watch_later.clear_all_confirm'),
)
@@ -77,7 +77,6 @@ function handleClearAllWatchLater() {
}
function handleRemoveWatchedVideos() {
- // eslint-disable-next-line no-alert
const result = confirm(
t('watch_later.remove_watched_videos_confirm'),
)
diff --git a/src/logic/common-setup.ts b/src/logic/common-setup.ts
index ce8b2a33..cd3cd80a 100644
--- a/src/logic/common-setup.ts
+++ b/src/logic/common-setup.ts
@@ -4,7 +4,6 @@ import Toast, { POSITION } from 'vue-toastification'
import { createPinia } from 'pinia'
import { i18n } from '~/utils/i18n'
import 'vue-toastification/dist/index.css'
-import 'overlayscrollbars/overlayscrollbars.css'
const pinia = createPinia()
@@ -29,6 +28,4 @@ export async function setupApp(app: App) {
position: POSITION.TOP_CENTER,
})
app.use(pinia)
- const { OverlayScrollbarsComponent } = await import('overlayscrollbars-vue')
- app.component('OverlayScrollbarsComponent', OverlayScrollbarsComponent)
}
diff --git a/src/utils/authProvider.ts b/src/utils/authProvider.ts
index 20f1d063..c3a7d5d7 100644
--- a/src/utils/authProvider.ts
+++ b/src/utils/authProvider.ts
@@ -1,11 +1,4 @@
-/**
- * 感謝這份專案給出的獲取accessKey的方法
- * https://github.com/indefined/UserScripts/blob/42e20281d2e4d7bce16b5c8033b67ccb6ad312e9/bilibiliHome/bilibiliHome.user.js#L1149
- * TODO: 解耦,避免直接操作DOM
- */
-
-/* eslint-disable no-throw-literal */
-import browser from 'webextension-polyfill'
+// import browser from 'webextension-polyfill'
import { appSign } from './appSign'
import { accessKey } from '~/logic/storage'
@@ -14,63 +7,66 @@ export function revokeAccessKey() {
}
/**
- * @deprecated
- * @param t
- * @param element
+ * 感謝這份專案給出的獲取accessKey的方法
+ * https://github.com/indefined/UserScripts/blob/42e20281d2e4d7bce16b5c8033b67ccb6ad312e9/bilibiliHome/bilibiliHome.user.js#L1149
*/
-export function grantAccessKey(t: any, element: HTMLButtonElement): void {
- const originalInnerHTML = element.innerHTML
- element.innerHTML = `
- Loading...
- `
- element.style.pointerEvents = 'none'
- element.disabled = true
+// /**
+// * @deprecated
+// * @param t
+// * @param element
+// */
+// export function grantAccessKey(t: any, element: HTMLButtonElement): void {
+// const originalInnerHTML = element.innerHTML
+// element.innerHTML = `
+// Loading...
+// `
+// element.style.pointerEvents = 'none'
+// element.disabled = true
- const tip = t('auth.err_tip')
- fetch(
- 'https://passport.bilibili.com/login/app/third?appkey=5fd5a7d8bfd9b0e6'
- + '&api=https%3A%2F%2Fwww.mcbbs.net%2Ftemplate%2Fmcbbs%2Fimage%2Fspecial_photo_bg.png&sign=04224646d1fea004e79606d3b038c84a',
- {
- method: 'GET',
- credentials: 'include',
- },
- )
- .then(res => res.json())
- .then((data) => {
- if (data.code || !data.data)
- throw { tip, msg: data.msg || data.message || data.code, data }
- else if (!data.data.has_login)
- throw { tip, msg: t('auth.plz_login_first'), data }
- else if (!data.data.confirm_uri)
- throw { tip, msg: t('auth.receive_verified_url_err'), data }
- else return data.data.confirm_uri
- })
- .then(
- url =>
- browser.runtime
- .sendMessage({
- contentScriptQuery: 'getAccessKey',
- confirmUri: url,
- })
- .then((res: { accessKey: string }) => {
- accessKey.value = res.accessKey
- return Promise.resolve()
- })
- .catch((err: any) => {
- // eslint-disable-next-line prefer-promise-reject-errors
- return Promise.reject({ tip, msg: t('auth.failed_to_get_accesskey'), data: err })
- }),
- )
- .catch((error) => {
- element.innerHTML = originalInnerHTML
- element.style.pointerEvents = 'auto'
- element.disabled = false
+// const tip = t('auth.err_tip')
+// fetch(
+// 'https://passport.bilibili.com/login/app/third?appkey=5fd5a7d8bfd9b0e6'
+// + '&api=https%3A%2F%2Fwww.mcbbs.net%2Ftemplate%2Fmcbbs%2Fimage%2Fspecial_photo_bg.png&sign=04224646d1fea004e79606d3b038c84a',
+// {
+// method: 'GET',
+// credentials: 'include',
+// },
+// )
+// .then(res => res.json())
+// .then((data) => {
+// if (data.code || !data.data)
+// throw { tip, msg: data.msg || data.message || data.code, data }
+// else if (!data.data.has_login)
+// throw { tip, msg: t('auth.plz_login_first'), data }
+// else if (!data.data.confirm_uri)
+// throw { tip, msg: t('auth.receive_verified_url_err'), data }
+// else return data.data.confirm_uri
+// })
+// .then(
+// url =>
+// browser.runtime
+// .sendMessage({
+// contentScriptQuery: 'getAccessKey',
+// confirmUri: url,
+// })
+// .then((res: { accessKey: string }) => {
+// accessKey.value = res.accessKey
+// return Promise.resolve()
+// })
+// .catch((err: any) => {
+// // eslint-disable-next-line prefer-promise-reject-errors
+// return Promise.reject({ tip, msg: t('auth.failed_to_get_accesskey'), data: err })
+// }),
+// )
+// .catch((error) => {
+// element.innerHTML = originalInnerHTML
+// element.style.pointerEvents = 'auto'
+// element.disabled = false
- // eslint-disable-next-line no-alert
- alert(`${error.tip}: ${error.msg}`)
- console.error(`${error.msg}: `, error.data)
- })
-}
+// alert(`${error.tip}: ${error.msg}`)
+// console.error(`${error.msg}: `, error.data)
+// })
+// }
// https://socialsisteryi.github.io/bilibili-API-collect/docs/misc/sign/APPKey.html#appkey
export const TVAppKey = {
diff --git a/src/utils/main.ts b/src/utils/main.ts
index 39696e40..b2364bc1 100644
--- a/src/utils/main.ts
+++ b/src/utils/main.ts
@@ -100,11 +100,11 @@ export function injectCSS(css: string): HTMLStyleElement {
/**
* delay
- * @param time delay time
+ * @param ms milliseconds delay time
*/
-export function delay(time: number) {
+export function delay(ms: number) {
return new Promise((resolve) => {
- setTimeout(resolve, time)
+ setTimeout(resolve, ms)
})
}
diff --git a/vite.config.ts b/vite.config.ts
index 214fcaab..f16a2b7b 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -33,11 +33,13 @@ export const sharedConfig: UserConfig = {
],
},
],
+ dirs: [r('src/composables')],
dts: r('src/auto-imports.d.ts'),
}),
// https://github.com/antfu/unplugin-vue-components
Components({
+ extensions: ['vue', 'ts'],
dirs: [r('src/components')],
// generate `components.d.ts` for ts support with Volar
dts: r('src/components.d.ts'),