From eb0094c1899c7a2a488368e29538e8e473e52c37 Mon Sep 17 00:00:00 2001 From: imsyy Date: Sun, 9 Nov 2025 00:39:55 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat:=20=E4=BC=98=E5=8C=96=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E6=92=AD=E6=94=BE=E6=96=B9=E5=BC=8F=20&=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E4=B8=80=E4=BA=9B=E6=A1=8C=E9=9D=A2=E6=AD=8C=E8=AF=8D?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=20#536?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components.d.ts | 1 - package.json | 13 +- pnpm-lock.yaml | 449 ++++++++++++++--------- src/assets/data/lyricConfig.ts | 2 + src/components/List/SongList.vue | 8 +- src/components/Setting/LyricsSetting.vue | 46 ++- src/components/Setting/OtherSetting.vue | 4 +- src/stores/setting.ts | 2 +- src/types/desktop-lyric.d.ts | 4 + src/utils/player.ts | 146 ++++---- src/utils/request.ts | 15 +- src/views/DesktopLyric/index.vue | 14 +- src/views/List/album.vue | 1 + src/views/List/liked.vue | 3 +- src/views/List/playlist.vue | 1 + src/views/List/radio.vue | 1 + 16 files changed, 441 insertions(+), 269 deletions(-) diff --git a/components.d.ts b/components.d.ts index 3c9cc2d..d2f44b8 100644 --- a/components.d.ts +++ b/components.d.ts @@ -101,7 +101,6 @@ declare module 'vue' { NQrCode: typeof import('naive-ui')['NQrCode'] NRadio: typeof import('naive-ui')['NRadio'] NRadioGroup: typeof import('naive-ui')['NRadioGroup'] - NResult: typeof import('naive-ui')['NResult'] NScrollbar: typeof import('naive-ui')['NScrollbar'] NSelect: typeof import('naive-ui')['NSelect'] NSkeleton: typeof import('naive-ui')['NSkeleton'] diff --git a/package.json b/package.json index 1c8417f..d8b3904 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "@electron-toolkit/utils": "^4.0.0", "@imsyy/color-utils": "^1.0.2", "@material/material-color-utilities": "^0.3.0", - "@neteasecloudmusicapienhanced/api": "^4.29.12", + "@neteasecloudmusicapienhanced/api": "^4.29.15", "@pixi/app": "^7.4.3", "@pixi/core": "^7.4.3", "@pixi/display": "^7.4.3", @@ -49,7 +49,8 @@ "@pixi/filter-color-matrix": "^7.4.3", "@pixi/sprite": "^7.4.3", "@vueuse/core": "^13.9.0", - "axios": "^1.12.2", + "axios": "^1.13.2", + "axios-retry": "^4.5.0", "change-case": "^5.4.4", "dayjs": "^1.11.18", "electron-dl": "^4.0.0", @@ -91,7 +92,7 @@ "@vitejs/plugin-vue": "^6.0.1", "ajv": "^8.17.1", "crypto-js": "^4.2.0", - "electron": "^38.2.2", + "electron": "38.2.2", "electron-builder": "^26.0.12", "electron-log": "^5.4.3", "electron-vite": "^4.0.1", @@ -107,13 +108,13 @@ "typescript": "^5.9.3", "unplugin-auto-import": "^20.2.0", "unplugin-vue-components": "^29.1.0", - "vite": "^7.1.9", + "vite": "^7.2.2", "vite-plugin-compression": "^0.5.1", "vite-plugin-vue-devtools": "^8.0.3", "vite-plugin-wasm": "^3.5.0", - "vue": "^3.5.22", + "vue": "^3.5.24", "vue-router": "^4.5.1", - "vue-tsc": "^3.1.1" + "vue-tsc": "^3.1.3" }, "pnpm": { "overrides": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2c65dba..da316ff 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,7 +20,7 @@ importers: version: 0.3.0 '@applemusic-like-lyrics/vue': specifier: ^0.1.5 - version: 0.1.5(@pixi/app@7.4.3(@pixi/core@7.4.3)(@pixi/display@7.4.3(@pixi/core@7.4.3)))(@pixi/core@7.4.3)(@pixi/display@7.4.3(@pixi/core@7.4.3))(@pixi/filter-blur@7.4.3(@pixi/core@7.4.3))(@pixi/filter-bulge-pinch@5.1.1(@pixi/core@7.4.3))(@pixi/filter-color-matrix@7.4.3(@pixi/core@7.4.3))(@pixi/sprite@7.4.3(@pixi/core@7.4.3)(@pixi/display@7.4.3(@pixi/core@7.4.3)))(jss-preset-default@10.10.0)(jss@10.10.0)(vue@3.5.22(typescript@5.9.3)) + version: 0.1.5(@pixi/app@7.4.3(@pixi/core@7.4.3)(@pixi/display@7.4.3(@pixi/core@7.4.3)))(@pixi/core@7.4.3)(@pixi/display@7.4.3(@pixi/core@7.4.3))(@pixi/filter-blur@7.4.3(@pixi/core@7.4.3))(@pixi/filter-bulge-pinch@5.1.1(@pixi/core@7.4.3))(@pixi/filter-color-matrix@7.4.3(@pixi/core@7.4.3))(@pixi/sprite@7.4.3(@pixi/core@7.4.3)(@pixi/display@7.4.3(@pixi/core@7.4.3)))(jss-preset-default@10.10.0)(jss@10.10.0)(vue@3.5.24(typescript@5.9.3)) '@electron-toolkit/preload': specifier: ^3.0.2 version: 3.0.2(electron@38.2.2) @@ -34,8 +34,8 @@ importers: specifier: ^0.3.0 version: 0.3.0 '@neteasecloudmusicapienhanced/api': - specifier: ^4.29.12 - version: 4.29.12 + specifier: ^4.29.15 + version: 4.29.15 '@pixi/app': specifier: ^7.4.3 version: 7.4.3(@pixi/core@7.4.3)(@pixi/display@7.4.3(@pixi/core@7.4.3)) @@ -59,10 +59,13 @@ importers: version: 7.4.3(@pixi/core@7.4.3)(@pixi/display@7.4.3(@pixi/core@7.4.3)) '@vueuse/core': specifier: ^13.9.0 - version: 13.9.0(vue@3.5.22(typescript@5.9.3)) + version: 13.9.0(vue@3.5.24(typescript@5.9.3)) axios: - specifier: ^1.12.2 - version: 1.12.2 + specifier: ^1.13.2 + version: 1.13.2 + axios-retry: + specifier: ^4.5.0 + version: 4.5.0(axios@1.13.2) change-case: specifier: ^5.4.4 version: 5.4.4 @@ -119,16 +122,16 @@ importers: version: 11.9.0 pinia: specifier: ^3.0.3 - version: 3.0.3(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)) + version: 3.0.3(typescript@5.9.3)(vue@3.5.24(typescript@5.9.3)) pinia-plugin-persistedstate: specifier: ^4.5.0 - version: 4.5.0(pinia@3.0.3(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))) + version: 4.5.0(pinia@3.0.3(typescript@5.9.3)(vue@3.5.24(typescript@5.9.3))) plyr: specifier: ^3.8.3 version: 3.8.3 vue-virt-list: specifier: ^1.6.1 - version: 1.6.1(vue@3.5.22(typescript@5.9.3)) + version: 1.6.1(vue@3.5.24(typescript@5.9.3)) devDependencies: '@electron-toolkit/tsconfig': specifier: ^2.0.0 @@ -168,7 +171,7 @@ importers: version: 8.46.1(eslint@9.37.0)(typescript@5.9.3) '@vitejs/plugin-vue': specifier: ^6.0.1 - version: 6.0.1(vite@7.1.10(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.22(typescript@5.9.3)) + version: 6.0.1(vite@7.2.2(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.24(typescript@5.9.3)) ajv: specifier: ^8.17.1 version: 8.17.1 @@ -176,7 +179,7 @@ importers: specifier: ^4.2.0 version: 4.2.0 electron: - specifier: ^38.2.2 + specifier: 38.2.2 version: 38.2.2 electron-builder: specifier: ^26.0.12 @@ -186,7 +189,7 @@ importers: version: 5.4.3 electron-vite: specifier: ^4.0.1 - version: 4.0.1(vite@7.1.10(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0)) + version: 4.0.1(vite@7.2.2(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0)) eslint: specifier: ^9.37.0 version: 9.37.0 @@ -201,7 +204,7 @@ importers: version: 5.6.1 naive-ui: specifier: ^2.43.1 - version: 2.43.1(vue@3.5.22(typescript@5.9.3)) + version: 2.43.1(vue@3.5.24(typescript@5.9.3)) node-taglib-sharp: specifier: ^6.0.1 version: 6.0.1 @@ -219,31 +222,31 @@ importers: version: 5.9.3 unplugin-auto-import: specifier: ^20.2.0 - version: 20.2.0(@vueuse/core@13.9.0(vue@3.5.22(typescript@5.9.3))) + version: 20.2.0(@vueuse/core@13.9.0(vue@3.5.24(typescript@5.9.3))) unplugin-vue-components: specifier: ^29.1.0 - version: 29.1.0(@babel/parser@7.28.5)(vue@3.5.22(typescript@5.9.3)) + version: 29.1.0(@babel/parser@7.28.5)(vue@3.5.24(typescript@5.9.3)) vite: - specifier: ^7.1.9 - version: 7.1.10(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0) + specifier: ^7.2.2 + version: 7.2.2(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0) vite-plugin-compression: specifier: ^0.5.1 - version: 0.5.1(vite@7.1.10(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0)) + version: 0.5.1(vite@7.2.2(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0)) vite-plugin-vue-devtools: specifier: ^8.0.3 - version: 8.0.3(vite@7.1.10(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.22(typescript@5.9.3)) + version: 8.0.3(vite@7.2.2(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.24(typescript@5.9.3)) vite-plugin-wasm: specifier: ^3.5.0 - version: 3.5.0(vite@7.1.10(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0)) + version: 3.5.0(vite@7.2.2(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0)) vue: - specifier: ^3.5.22 - version: 3.5.22(typescript@5.9.3) + specifier: ^3.5.24 + version: 3.5.24(typescript@5.9.3) vue-router: specifier: ^4.5.1 - version: 4.6.0(vue@3.5.22(typescript@5.9.3)) + version: 4.6.0(vue@3.5.24(typescript@5.9.3)) vue-tsc: - specifier: ^3.1.1 - version: 3.1.1(typescript@5.9.3) + specifier: ^3.1.3 + version: 3.1.3(typescript@5.9.3) packages: @@ -964,8 +967,8 @@ packages: '@material/material-color-utilities@0.3.0': resolution: {integrity: sha512-ztmtTd6xwnuh2/xu+Vb01btgV8SQWYCaK56CkRK8gEkWe5TuDyBcYJ0wgkMRn+2VcE9KUmhvkz+N9GHrqw/C0g==} - '@neteasecloudmusicapienhanced/api@4.29.12': - resolution: {integrity: sha512-oIT+XgjMN/m0e1C7c+KUKee9AMjAziJY28aZ2m4yAAJyMkAwgcMHpNs9nQ91U8FRHGwX4TNXoWGX1Tczx484TA==} + '@neteasecloudmusicapienhanced/api@4.29.15': + resolution: {integrity: sha512-/dw0ON90NDXJnULEyKzGEvKjjkJyHYb9fJgKa1dxsN5AIN/tXNAu4AV2vMJcPGfA/NV7iRnLDEPS8ocJCbCU2w==} engines: {node: '>=12'} hasBin: true @@ -1347,8 +1350,8 @@ packages: '@types/ndarray@1.0.14': resolution: {integrity: sha512-oANmFZMnFQvb219SSBIhI1Ih/r4CvHDOzkWyJS/XRqkMrGH5/kaPSA1hQhdIBzouaE+5KpE/f5ylI9cujmckQg==} - '@types/node@22.18.10': - resolution: {integrity: sha512-anNG/V/Efn/YZY4pRzbACnKxNKoBng2VTFydVu8RRs5hQjikP8CQfaeAV59VFSCzKNp90mXiVXW2QzV56rwMrg==} + '@types/node@22.19.0': + resolution: {integrity: sha512-xpr/lmLPQEj+TUnHmR+Ab91/glhJvsqcjB+yY0Ix9GO70H6Lb4FHH5GeqdOE5btAx7eIMwuHkp4H2MSkLcqWbA==} '@types/node@24.7.2': resolution: {integrity: sha512-/NbVmcGTP+lj5oa4yiYxxeBjRivKQ5Ns1eSZeB99ExsEQ6rX5XYU1Zy/gGxY/ilqtD4Etx9mKyrPxZRetiahhA==} @@ -1467,15 +1470,27 @@ packages: '@vue/compiler-core@3.5.22': resolution: {integrity: sha512-jQ0pFPmZwTEiRNSb+i9Ow/I/cHv2tXYqsnHKKyCQ08irI2kdF5qmYedmF8si8mA7zepUFmJ2hqzS8CQmNOWOkQ==} + '@vue/compiler-core@3.5.24': + resolution: {integrity: sha512-eDl5H57AOpNakGNAkFDH+y7kTqrQpJkZFXhWZQGyx/5Wh7B1uQYvcWkvZi11BDhscPgj8N7XV3oRwiPnx1Vrig==} + '@vue/compiler-dom@3.5.22': resolution: {integrity: sha512-W8RknzUM1BLkypvdz10OVsGxnMAuSIZs9Wdx1vzA3mL5fNMN15rhrSCLiTm6blWeACwUwizzPVqGJgOGBEN/hA==} + '@vue/compiler-dom@3.5.24': + resolution: {integrity: sha512-1QHGAvs53gXkWdd3ZMGYuvQFXHW4ksKWPG8HP8/2BscrbZ0brw183q2oNWjMrSWImYLHxHrx1ItBQr50I/q2zw==} + '@vue/compiler-sfc@3.5.22': resolution: {integrity: sha512-tbTR1zKGce4Lj+JLzFXDq36K4vcSZbJ1RBu8FxcDv1IGRz//Dh2EBqksyGVypz3kXpshIfWKGOCcqpSbyGWRJQ==} + '@vue/compiler-sfc@3.5.24': + resolution: {integrity: sha512-8EG5YPRgmTB+YxYBM3VXy8zHD9SWHUJLIGPhDovo3Z8VOgvP+O7UP5vl0J4BBPWYD9vxtBabzW1EuEZ+Cqs14g==} + '@vue/compiler-ssr@3.5.22': resolution: {integrity: sha512-GdgyLvg4R+7T8Nk2Mlighx7XGxq/fJf9jaVofc3IL0EPesTE86cP/8DD1lT3h1JeZr2ySBvyqKQJgbS54IX1Ww==} + '@vue/compiler-ssr@3.5.24': + resolution: {integrity: sha512-trOvMWNBMQ/odMRHW7Ae1CdfYx+7MuiQu62Jtu36gMLXcaoqKvAyh+P73sYG9ll+6jLB6QPovqoKGGZROzkFFg==} + '@vue/devtools-api@6.6.4': resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} @@ -1499,31 +1514,34 @@ packages: '@vue/devtools-shared@8.0.3': resolution: {integrity: sha512-s/QNll7TlpbADFZrPVsaUNPCOF8NvQgtgmmB7Tip6pLf/HcOvBTly0lfLQ0Eylu9FQ4OqBhFpLyBgwykiSf8zw==} - '@vue/language-core@3.1.1': - resolution: {integrity: sha512-qjMY3Q+hUCjdH+jLrQapqgpsJ0rd/2mAY02lZoHG3VFJZZZKLjAlV+Oo9QmWIT4jh8+Rx8RUGUi++d7T9Wb6Mw==} + '@vue/language-core@3.1.3': + resolution: {integrity: sha512-KpR1F/eGAG9D1RZ0/T6zWJs6dh/pRLfY5WupecyYKJ1fjVmDMgTPw9wXmKv2rBjo4zCJiOSiyB8BDP1OUwpMEA==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true - '@vue/reactivity@3.5.22': - resolution: {integrity: sha512-f2Wux4v/Z2pqc9+4SmgZC1p73Z53fyD90NFWXiX9AKVnVBEvLFOWCEgJD3GdGnlxPZt01PSlfmLqbLYzY/Fw4A==} + '@vue/reactivity@3.5.24': + resolution: {integrity: sha512-BM8kBhtlkkbnyl4q+HiF5R5BL0ycDPfihowulm02q3WYp2vxgPcJuZO866qa/0u3idbMntKEtVNuAUp5bw4teg==} - '@vue/runtime-core@3.5.22': - resolution: {integrity: sha512-EHo4W/eiYeAzRTN5PCextDUZ0dMs9I8mQ2Fy+OkzvRPUYQEyK9yAjbasrMCXbLNhF7P0OUyivLjIy0yc6VrLJQ==} + '@vue/runtime-core@3.5.24': + resolution: {integrity: sha512-RYP/byyKDgNIqfX/gNb2PB55dJmM97jc9wyF3jK7QUInYKypK2exmZMNwnjueWwGceEkP6NChd3D2ZVEp9undQ==} - '@vue/runtime-dom@3.5.22': - resolution: {integrity: sha512-Av60jsryAkI023PlN7LsqrfPvwfxOd2yAwtReCjeuugTJTkgrksYJJstg1e12qle0NarkfhfFu1ox2D+cQotww==} + '@vue/runtime-dom@3.5.24': + resolution: {integrity: sha512-Z8ANhr/i0XIluonHVjbUkjvn+CyrxbXRIxR7wn7+X7xlcb7dJsfITZbkVOeJZdP8VZwfrWRsWdShH6pngMxRjw==} - '@vue/server-renderer@3.5.22': - resolution: {integrity: sha512-gXjo+ao0oHYTSswF+a3KRHZ1WszxIqO7u6XwNHqcqb9JfyIL/pbWrrh/xLv7jeDqla9u+LK7yfZKHih1e1RKAQ==} + '@vue/server-renderer@3.5.24': + resolution: {integrity: sha512-Yh2j2Y4G/0/4z/xJ1Bad4mxaAk++C2v4kaa8oSYTMJBJ00/ndPuxCnWeot0/7/qafQFLh5pr6xeV6SdMcE/G1w==} peerDependencies: - vue: 3.5.22 + vue: 3.5.24 '@vue/shared@3.5.22': resolution: {integrity: sha512-F4yc6palwq3TT0u+FYf0Ns4Tfl9GRFURDN2gWG7L1ecIaS/4fCIuFOjMTnCyjsu/OK6vaDKLCrGAa+KvvH+h4w==} + '@vue/shared@3.5.24': + resolution: {integrity: sha512-9cwHL2EsJBdi8NY22pngYYWzkTDhld6fAD6jlaeloNGciNSJL6bLpbxVgXl96X00Jtc6YWQv96YA/0sxex/k1A==} + '@vueuse/core@13.9.0': resolution: {integrity: sha512-ts3regBQyURfCE2BcytLqzm8+MmLlo5Ln/KLoxDVcsZ2gzIwVNnQpQOL/UKV8alUqjSZOlpFZcRNsLRqj+OzyA==} peerDependencies: @@ -1600,8 +1618,8 @@ packages: ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} - alien-signals@3.0.0: - resolution: {integrity: sha512-JHoRJf18Y6HN4/KZALr3iU+0vW9LKG+8FMThQlbn4+gv8utsLIkwpomjElGPccGeNwh0FI2HN6BLnyFLo6OyLQ==} + alien-signals@3.1.0: + resolution: {integrity: sha512-yufC6VpSy8tK3I0lO67pjumo5JvDQVQyr38+3OHqe6CHl1t2VZekKZ7EKKZSqk0cRmE7U7tfZbpXiKNzuc+ckg==} ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} @@ -1687,8 +1705,13 @@ packages: avvio@9.1.0: resolution: {integrity: sha512-fYASnYi600CsH/j9EQov7lECAniYiBFiiAtBNuZYLA2leLe9qOvZzqYHFjtIj6gD2VMoMLP14834LFWvr4IfDw==} - axios@1.12.2: - resolution: {integrity: sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==} + axios-retry@4.5.0: + resolution: {integrity: sha512-aR99oXhpEDGo0UuAlYcn2iGRds30k366Zfa05XWScR9QaQD4JYiP3/1Qt1u7YlefUOK+cn0CcwoL1oefavQUlQ==} + peerDependencies: + axios: 0.x || 1.x + + axios@1.13.2: + resolution: {integrity: sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==} balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -1869,6 +1892,10 @@ packages: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} + cliui@9.0.1: + resolution: {integrity: sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==} + engines: {node: '>=20'} + clone-response@1.0.3: resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} @@ -2220,6 +2247,9 @@ packages: engines: {node: '>= 12.20.55'} hasBin: true + emoji-regex@10.6.0: + resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -2600,6 +2630,10 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} + get-east-asian-width@1.4.0: + resolution: {integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==} + engines: {node: '>=18'} + get-intrinsic@1.3.0: resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} @@ -2874,6 +2908,10 @@ packages: is-promise@4.0.0: resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} + is-retry-allowed@2.2.0: + resolution: {integrity: sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==} + engines: {node: '>=10'} + is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} @@ -3099,6 +3137,9 @@ packages: magic-string@0.30.19: resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + make-fetch-happen@10.2.1: resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -3264,10 +3305,6 @@ packages: resolution: {integrity: sha512-J7VqD8FY6KRcm75Fzj86FPsckiD/EdvO5OS3P+JiMf/2krP3TcAseZYfkic6eFeJ0iBhhzcdxgfu8hLW95aXXw==} engines: {node: '>=18'} - music-metadata@7.14.0: - resolution: {integrity: sha512-xrm3w7SV0Wk+OythZcSbaI8mcr/KHd0knJieu8bVpaPfMv/Agz5EooCAPz3OR5hbYMiUG6dgAPKZKnMzV+3amA==} - engines: {node: '>=10'} - naive-ui@2.43.1: resolution: {integrity: sha512-w52W0mOhdOGt4uucFSZmP0DI44PCsFyuxeLSs9aoUThfIuxms90MYjv46Qrr7xprjyJRw5RU6vYpCx4o9ind3A==} peerDependencies: @@ -3989,6 +4026,10 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} @@ -4306,8 +4347,8 @@ packages: peerDependencies: vite: ^2 || ^3 || ^4 || ^5 || ^6 || ^7 - vite@7.1.10: - resolution: {integrity: sha512-CmuvUBzVJ/e3HGxhg6cYk88NGgTnBoOo7ogtfJJ0fefUWAxN/WDSUa50o+oVBxuIhO8FoEZW0j2eW7sfjs5EtA==} + vite@7.2.2: + resolution: {integrity: sha512-BxAKBWmIbrDgrokdGZH1IgkIk/5mMHDreLDmCJ0qpyJaAteP8NvMhkwr/ZCQNqNH97bw/dANTE9PDzqwJghfMQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -4376,8 +4417,8 @@ packages: peerDependencies: vue: ^3.5.0 - vue-tsc@3.1.1: - resolution: {integrity: sha512-fyixKxFniOVgn+L/4+g8zCG6dflLLt01Agz9jl3TO45Bgk87NZJRmJVPsiK+ouq3LB91jJCbOV+pDkzYTxbI7A==} + vue-tsc@3.1.3: + resolution: {integrity: sha512-StMNfZHwPIXQgY3KxPKM0Jsoc8b46mDV3Fn2UlHCBIwRJApjqrSwqeMYgWf0zpN+g857y74pv7GWuBm+UqQe1w==} hasBin: true peerDependencies: typescript: '>=5.0.0' @@ -4391,8 +4432,8 @@ packages: '@vue/composition-api': optional: true - vue@3.5.22: - resolution: {integrity: sha512-toaZjQ3a/G/mYaLSbV+QsQhIdMo9x5rrqIpYRObsJ6T/J+RyCSFwN2LHNVH9v8uIcljDNa3QzPVdv3Y6b9hAJQ==} + vue@3.5.24: + resolution: {integrity: sha512-uTHDOpVQTMjcGgrqFPSb8iO2m1DUvo+WbGqoXQz8Y1CeBYQ0FXf2z1gLRaBtHjlRz7zZUBHxjVB5VTLzYkvftg==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -4437,6 +4478,10 @@ packages: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} engines: {node: '>=12'} + wrap-ansi@9.0.2: + resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} + engines: {node: '>=18'} + wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -4496,6 +4541,10 @@ packages: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} + yargs-parser@22.0.0: + resolution: {integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==} + engines: {node: ^20.19.0 || ^22.12.0 || >=23} + yargs@15.4.1: resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} engines: {node: '>=8'} @@ -4504,6 +4553,10 @@ packages: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} + yargs@18.0.0: + resolution: {integrity: sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==} + engines: {node: ^20.19.0 || ^22.12.0 || >=23} + yauzl@2.10.0: resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} @@ -4530,10 +4583,10 @@ snapshots: '@applemusic-like-lyrics/lyric@0.3.0': {} - '@applemusic-like-lyrics/vue@0.1.5(@pixi/app@7.4.3(@pixi/core@7.4.3)(@pixi/display@7.4.3(@pixi/core@7.4.3)))(@pixi/core@7.4.3)(@pixi/display@7.4.3(@pixi/core@7.4.3))(@pixi/filter-blur@7.4.3(@pixi/core@7.4.3))(@pixi/filter-bulge-pinch@5.1.1(@pixi/core@7.4.3))(@pixi/filter-color-matrix@7.4.3(@pixi/core@7.4.3))(@pixi/sprite@7.4.3(@pixi/core@7.4.3)(@pixi/display@7.4.3(@pixi/core@7.4.3)))(jss-preset-default@10.10.0)(jss@10.10.0)(vue@3.5.22(typescript@5.9.3))': + '@applemusic-like-lyrics/vue@0.1.5(@pixi/app@7.4.3(@pixi/core@7.4.3)(@pixi/display@7.4.3(@pixi/core@7.4.3)))(@pixi/core@7.4.3)(@pixi/display@7.4.3(@pixi/core@7.4.3))(@pixi/filter-blur@7.4.3(@pixi/core@7.4.3))(@pixi/filter-bulge-pinch@5.1.1(@pixi/core@7.4.3))(@pixi/filter-color-matrix@7.4.3(@pixi/core@7.4.3))(@pixi/sprite@7.4.3(@pixi/core@7.4.3)(@pixi/display@7.4.3(@pixi/core@7.4.3)))(jss-preset-default@10.10.0)(jss@10.10.0)(vue@3.5.24(typescript@5.9.3))': dependencies: '@applemusic-like-lyrics/core': 0.1.3(@pixi/app@7.4.3(@pixi/core@7.4.3)(@pixi/display@7.4.3(@pixi/core@7.4.3)))(@pixi/core@7.4.3)(@pixi/display@7.4.3(@pixi/core@7.4.3))(@pixi/filter-blur@7.4.3(@pixi/core@7.4.3))(@pixi/filter-bulge-pinch@5.1.1(@pixi/core@7.4.3))(@pixi/filter-color-matrix@7.4.3(@pixi/core@7.4.3))(@pixi/sprite@7.4.3(@pixi/core@7.4.3)(@pixi/display@7.4.3(@pixi/core@7.4.3)))(jss-preset-default@10.10.0)(jss@10.10.0) - vue: 3.5.22(typescript@5.9.3) + vue: 3.5.24(typescript@5.9.3) transitivePeerDependencies: - '@pixi/app' - '@pixi/core' @@ -4782,9 +4835,9 @@ snapshots: dependencies: css-render: 0.15.14 - '@css-render/vue3-ssr@0.15.14(vue@3.5.22(typescript@5.9.3))': + '@css-render/vue3-ssr@0.15.14(vue@3.5.24(typescript@5.9.3))': dependencies: - vue: 3.5.22(typescript@5.9.3) + vue: 3.5.24(typescript@5.9.3) '@develar/schema-utils@2.6.5': dependencies: @@ -5278,23 +5331,23 @@ snapshots: '@material/material-color-utilities@0.3.0': {} - '@neteasecloudmusicapienhanced/api@4.29.12': + '@neteasecloudmusicapienhanced/api@4.29.15': dependencies: '@unblockneteasemusic/server': 0.28.0 - axios: 1.12.2 + axios: 1.13.2 crypto-js: 4.2.0 dotenv: 17.2.3 express: 5.1.0 express-fileupload: 1.5.2 md5: 2.3.0 - music-metadata: 7.14.0 + music-metadata: 11.9.0 node-forge: 1.3.1 pac-proxy-agent: 7.2.0 qrcode: 1.5.4 safe-decode-uri-component: 1.2.1 tunnel: 0.0.6 xml2js: 0.6.2 - yargs: 17.7.2 + yargs: 18.0.0 transitivePeerDependencies: - debug - supports-color @@ -5597,7 +5650,7 @@ snapshots: '@types/ndarray@1.0.14': {} - '@types/node@22.18.10': + '@types/node@22.19.0': dependencies: undici-types: 6.21.0 @@ -5724,11 +5777,11 @@ snapshots: pino: 6.14.0 pino-pretty: 7.6.1 - '@vitejs/plugin-vue@6.0.1(vite@7.1.10(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.22(typescript@5.9.3))': + '@vitejs/plugin-vue@6.0.1(vite@7.2.2(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.24(typescript@5.9.3))': dependencies: '@rolldown/pluginutils': 1.0.0-beta.29 - vite: 7.1.10(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0) - vue: 3.5.22(typescript@5.9.3) + vite: 7.2.2(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0) + vue: 3.5.24(typescript@5.9.3) '@volar/language-core@2.4.23': dependencies: @@ -5779,11 +5832,24 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.1 + '@vue/compiler-core@3.5.24': + dependencies: + '@babel/parser': 7.28.5 + '@vue/shared': 3.5.24 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + '@vue/compiler-dom@3.5.22': dependencies: '@vue/compiler-core': 3.5.22 '@vue/shared': 3.5.22 + '@vue/compiler-dom@3.5.24': + dependencies: + '@vue/compiler-core': 3.5.24 + '@vue/shared': 3.5.24 + '@vue/compiler-sfc@3.5.22': dependencies: '@babel/parser': 7.28.4 @@ -5796,26 +5862,43 @@ snapshots: postcss: 8.5.6 source-map-js: 1.2.1 + '@vue/compiler-sfc@3.5.24': + dependencies: + '@babel/parser': 7.28.5 + '@vue/compiler-core': 3.5.24 + '@vue/compiler-dom': 3.5.24 + '@vue/compiler-ssr': 3.5.24 + '@vue/shared': 3.5.24 + estree-walker: 2.0.2 + magic-string: 0.30.21 + postcss: 8.5.6 + source-map-js: 1.2.1 + '@vue/compiler-ssr@3.5.22': dependencies: '@vue/compiler-dom': 3.5.22 '@vue/shared': 3.5.22 + '@vue/compiler-ssr@3.5.24': + dependencies: + '@vue/compiler-dom': 3.5.24 + '@vue/shared': 3.5.24 + '@vue/devtools-api@6.6.4': {} '@vue/devtools-api@7.7.7': dependencies: '@vue/devtools-kit': 7.7.7 - '@vue/devtools-core@8.0.3(vite@7.1.10(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.22(typescript@5.9.3))': + '@vue/devtools-core@8.0.3(vite@7.2.2(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.24(typescript@5.9.3))': dependencies: '@vue/devtools-kit': 8.0.3 '@vue/devtools-shared': 8.0.3 mitt: 3.0.1 nanoid: 5.1.6 pathe: 2.0.3 - vite-hot-client: 2.1.0(vite@7.1.10(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0)) - vue: 3.5.22(typescript@5.9.3) + vite-hot-client: 2.1.0(vite@7.2.2(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0)) + vue: 3.5.24(typescript@5.9.3) transitivePeerDependencies: - vite @@ -5847,54 +5930,56 @@ snapshots: dependencies: rfdc: 1.4.1 - '@vue/language-core@3.1.1(typescript@5.9.3)': + '@vue/language-core@3.1.3(typescript@5.9.3)': dependencies: '@volar/language-core': 2.4.23 - '@vue/compiler-dom': 3.5.22 - '@vue/shared': 3.5.22 - alien-signals: 3.0.0 + '@vue/compiler-dom': 3.5.24 + '@vue/shared': 3.5.24 + alien-signals: 3.1.0 muggle-string: 0.4.1 path-browserify: 1.0.1 picomatch: 4.0.3 optionalDependencies: typescript: 5.9.3 - '@vue/reactivity@3.5.22': + '@vue/reactivity@3.5.24': dependencies: - '@vue/shared': 3.5.22 + '@vue/shared': 3.5.24 - '@vue/runtime-core@3.5.22': + '@vue/runtime-core@3.5.24': dependencies: - '@vue/reactivity': 3.5.22 - '@vue/shared': 3.5.22 + '@vue/reactivity': 3.5.24 + '@vue/shared': 3.5.24 - '@vue/runtime-dom@3.5.22': + '@vue/runtime-dom@3.5.24': dependencies: - '@vue/reactivity': 3.5.22 - '@vue/runtime-core': 3.5.22 - '@vue/shared': 3.5.22 + '@vue/reactivity': 3.5.24 + '@vue/runtime-core': 3.5.24 + '@vue/shared': 3.5.24 csstype: 3.1.3 - '@vue/server-renderer@3.5.22(vue@3.5.22(typescript@5.9.3))': + '@vue/server-renderer@3.5.24(vue@3.5.24(typescript@5.9.3))': dependencies: - '@vue/compiler-ssr': 3.5.22 - '@vue/shared': 3.5.22 - vue: 3.5.22(typescript@5.9.3) + '@vue/compiler-ssr': 3.5.24 + '@vue/shared': 3.5.24 + vue: 3.5.24(typescript@5.9.3) '@vue/shared@3.5.22': {} - '@vueuse/core@13.9.0(vue@3.5.22(typescript@5.9.3))': + '@vue/shared@3.5.24': {} + + '@vueuse/core@13.9.0(vue@3.5.24(typescript@5.9.3))': dependencies: '@types/web-bluetooth': 0.0.21 '@vueuse/metadata': 13.9.0 - '@vueuse/shared': 13.9.0(vue@3.5.22(typescript@5.9.3)) - vue: 3.5.22(typescript@5.9.3) + '@vueuse/shared': 13.9.0(vue@3.5.24(typescript@5.9.3)) + vue: 3.5.24(typescript@5.9.3) '@vueuse/metadata@13.9.0': {} - '@vueuse/shared@13.9.0(vue@3.5.22(typescript@5.9.3))': + '@vueuse/shared@13.9.0(vue@3.5.24(typescript@5.9.3))': dependencies: - vue: 3.5.22(typescript@5.9.3) + vue: 3.5.24(typescript@5.9.3) '@xmldom/xmldom@0.8.11': {} @@ -5956,7 +6041,7 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - alien-signals@3.0.0: {} + alien-signals@3.1.0: {} ansi-regex@5.0.1: {} @@ -6063,7 +6148,12 @@ snapshots: '@fastify/error': 4.2.0 fastq: 1.19.1 - axios@1.12.2: + axios-retry@4.5.0(axios@1.13.2): + dependencies: + axios: 1.13.2 + is-retry-allowed: 2.2.0 + + axios@1.13.2: dependencies: follow-redirects: 1.15.11 form-data: 4.0.4 @@ -6302,6 +6392,12 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + cliui@9.0.1: + dependencies: + string-width: 7.2.0 + strip-ansi: 7.1.2 + wrap-ansi: 9.0.2 + clone-response@1.0.3: dependencies: mimic-response: 1.0.1 @@ -6662,7 +6758,7 @@ snapshots: transitivePeerDependencies: - supports-color - electron-vite@4.0.1(vite@7.1.10(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0)): + electron-vite@4.0.1(vite@7.2.2(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0)): dependencies: '@babel/core': 7.28.4 '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.4) @@ -6670,7 +6766,7 @@ snapshots: esbuild: 0.25.10 magic-string: 0.30.19 picocolors: 1.1.1 - vite: 7.1.10(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0) + vite: 7.2.2(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0) transitivePeerDependencies: - supports-color @@ -6689,11 +6785,13 @@ snapshots: electron@38.2.2: dependencies: '@electron/get': 2.0.3 - '@types/node': 22.18.10 + '@types/node': 22.19.0 extract-zip: 2.0.1 transitivePeerDependencies: - supports-color + emoji-regex@10.6.0: {} + emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} @@ -7149,6 +7247,8 @@ snapshots: get-caller-file@2.0.5: {} + get-east-asian-width@1.4.0: {} + get-intrinsic@1.3.0: dependencies: call-bind-apply-helpers: 1.0.2 @@ -7433,6 +7533,8 @@ snapshots: is-promise@4.0.0: {} + is-retry-allowed@2.2.0: {} + is-unicode-supported@0.1.0: {} is-what@4.1.16: {} @@ -7684,6 +7786,10 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + make-fetch-happen@10.2.1: dependencies: agentkeepalive: 4.6.0 @@ -7848,22 +7954,10 @@ snapshots: transitivePeerDependencies: - supports-color - music-metadata@7.14.0: - dependencies: - '@tokenizer/token': 0.3.0 - content-type: 1.0.5 - debug: 4.4.3 - file-type: 16.5.4 - media-typer: 1.1.0 - strtok3: 6.3.0 - token-types: 4.2.1 - transitivePeerDependencies: - - supports-color - - naive-ui@2.43.1(vue@3.5.22(typescript@5.9.3)): + naive-ui@2.43.1(vue@3.5.24(typescript@5.9.3)): dependencies: '@css-render/plugin-bem': 0.15.14(css-render@0.15.14) - '@css-render/vue3-ssr': 0.15.14(vue@3.5.22(typescript@5.9.3)) + '@css-render/vue3-ssr': 0.15.14(vue@3.5.24(typescript@5.9.3)) '@types/katex': 0.16.7 '@types/lodash': 4.17.20 '@types/lodash-es': 4.17.12 @@ -7878,10 +7972,10 @@ snapshots: lodash-es: 4.17.21 seemly: 0.3.10 treemate: 0.3.11 - vdirs: 0.1.8(vue@3.5.22(typescript@5.9.3)) - vooks: 0.2.12(vue@3.5.22(typescript@5.9.3)) - vue: 3.5.22(typescript@5.9.3) - vueuc: 0.4.65(vue@3.5.22(typescript@5.9.3)) + vdirs: 0.1.8(vue@3.5.24(typescript@5.9.3)) + vooks: 0.2.12(vue@3.5.24(typescript@5.9.3)) + vue: 3.5.24(typescript@5.9.3) + vueuc: 0.4.65(vue@3.5.24(typescript@5.9.3)) nanoid@3.3.11: {} @@ -8097,18 +8191,18 @@ snapshots: picomatch@4.0.3: {} - pinia-plugin-persistedstate@4.5.0(pinia@3.0.3(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))): + pinia-plugin-persistedstate@4.5.0(pinia@3.0.3(typescript@5.9.3)(vue@3.5.24(typescript@5.9.3))): dependencies: deep-pick-omit: 1.2.1 defu: 6.1.4 destr: 2.0.5 optionalDependencies: - pinia: 3.0.3(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)) + pinia: 3.0.3(typescript@5.9.3)(vue@3.5.24(typescript@5.9.3)) - pinia@3.0.3(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)): + pinia@3.0.3(typescript@5.9.3)(vue@3.5.24(typescript@5.9.3)): dependencies: '@vue/devtools-api': 7.7.7 - vue: 3.5.22(typescript@5.9.3) + vue: 3.5.24(typescript@5.9.3) optionalDependencies: typescript: 5.9.3 @@ -8656,6 +8750,12 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.1.2 + string-width@7.2.0: + dependencies: + emoji-regex: 10.6.0 + get-east-asian-width: 1.4.0 + strip-ansi: 7.1.2 + string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 @@ -8853,7 +8953,7 @@ snapshots: unpipe@1.0.0: {} - unplugin-auto-import@20.2.0(@vueuse/core@13.9.0(vue@3.5.22(typescript@5.9.3))): + unplugin-auto-import@20.2.0(@vueuse/core@13.9.0(vue@3.5.24(typescript@5.9.3))): dependencies: local-pkg: 1.1.2 magic-string: 0.30.19 @@ -8862,14 +8962,14 @@ snapshots: unplugin: 2.3.10 unplugin-utils: 0.3.1 optionalDependencies: - '@vueuse/core': 13.9.0(vue@3.5.22(typescript@5.9.3)) + '@vueuse/core': 13.9.0(vue@3.5.24(typescript@5.9.3)) unplugin-utils@0.3.1: dependencies: pathe: 2.0.3 picomatch: 4.0.3 - unplugin-vue-components@29.1.0(@babel/parser@7.28.5)(vue@3.5.22(typescript@5.9.3)): + unplugin-vue-components@29.1.0(@babel/parser@7.28.5)(vue@3.5.24(typescript@5.9.3)): dependencies: chokidar: 3.6.0 debug: 4.4.3 @@ -8879,7 +8979,7 @@ snapshots: tinyglobby: 0.2.15 unplugin: 2.3.10 unplugin-utils: 0.3.1 - vue: 3.5.22(typescript@5.9.3) + vue: 3.5.24(typescript@5.9.3) optionalDependencies: '@babel/parser': 7.28.5 transitivePeerDependencies: @@ -8922,10 +9022,10 @@ snapshots: vary@1.1.2: {} - vdirs@0.1.8(vue@3.5.22(typescript@5.9.3)): + vdirs@0.1.8(vue@3.5.24(typescript@5.9.3)): dependencies: evtd: 0.2.4 - vue: 3.5.22(typescript@5.9.3) + vue: 3.5.24(typescript@5.9.3) verror@1.10.1: dependencies: @@ -8934,26 +9034,26 @@ snapshots: extsprintf: 1.4.1 optional: true - vite-dev-rpc@1.1.0(vite@7.1.10(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0)): + vite-dev-rpc@1.1.0(vite@7.2.2(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0)): dependencies: birpc: 2.6.1 - vite: 7.1.10(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0) - vite-hot-client: 2.1.0(vite@7.1.10(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0)) + vite: 7.2.2(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0) + vite-hot-client: 2.1.0(vite@7.2.2(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0)) - vite-hot-client@2.1.0(vite@7.1.10(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0)): + vite-hot-client@2.1.0(vite@7.2.2(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0)): dependencies: - vite: 7.1.10(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0) + vite: 7.2.2(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0) - vite-plugin-compression@0.5.1(vite@7.1.10(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0)): + vite-plugin-compression@0.5.1(vite@7.2.2(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0)): dependencies: chalk: 4.1.2 debug: 4.4.3 fs-extra: 10.1.0 - vite: 7.1.10(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0) + vite: 7.2.2(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0) transitivePeerDependencies: - supports-color - vite-plugin-inspect@11.3.3(vite@7.1.10(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0)): + vite-plugin-inspect@11.3.3(vite@7.2.2(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0)): dependencies: ansis: 4.2.0 debug: 4.4.3 @@ -8963,26 +9063,26 @@ snapshots: perfect-debounce: 2.0.0 sirv: 3.0.2 unplugin-utils: 0.3.1 - vite: 7.1.10(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0) - vite-dev-rpc: 1.1.0(vite@7.1.10(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0)) + vite: 7.2.2(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0) + vite-dev-rpc: 1.1.0(vite@7.2.2(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0)) transitivePeerDependencies: - supports-color - vite-plugin-vue-devtools@8.0.3(vite@7.1.10(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.22(typescript@5.9.3)): + vite-plugin-vue-devtools@8.0.3(vite@7.2.2(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.24(typescript@5.9.3)): dependencies: - '@vue/devtools-core': 8.0.3(vite@7.1.10(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.22(typescript@5.9.3)) + '@vue/devtools-core': 8.0.3(vite@7.2.2(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.24(typescript@5.9.3)) '@vue/devtools-kit': 8.0.3 '@vue/devtools-shared': 8.0.3 sirv: 3.0.2 - vite: 7.1.10(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0) - vite-plugin-inspect: 11.3.3(vite@7.1.10(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0)) - vite-plugin-vue-inspector: 5.3.2(vite@7.1.10(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0)) + vite: 7.2.2(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0) + vite-plugin-inspect: 11.3.3(vite@7.2.2(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0)) + vite-plugin-vue-inspector: 5.3.2(vite@7.2.2(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0)) transitivePeerDependencies: - '@nuxt/kit' - supports-color - vue - vite-plugin-vue-inspector@5.3.2(vite@7.1.10(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0)): + vite-plugin-vue-inspector@5.3.2(vite@7.2.2(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0)): dependencies: '@babel/core': 7.28.4 '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.4) @@ -8993,15 +9093,15 @@ snapshots: '@vue/compiler-dom': 3.5.22 kolorist: 1.8.0 magic-string: 0.30.19 - vite: 7.1.10(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0) + vite: 7.2.2(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0) transitivePeerDependencies: - supports-color - vite-plugin-wasm@3.5.0(vite@7.1.10(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0)): + vite-plugin-wasm@3.5.0(vite@7.2.2(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0)): dependencies: - vite: 7.1.10(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0) + vite: 7.2.2(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0) - vite@7.1.10(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0): + vite@7.2.2(@types/node@24.7.2)(sass@1.93.2)(terser@5.44.0): dependencies: esbuild: 0.25.10 fdir: 6.5.0(picomatch@4.0.3) @@ -9015,16 +9115,16 @@ snapshots: sass: 1.93.2 terser: 5.44.0 - vooks@0.2.12(vue@3.5.22(typescript@5.9.3)): + vooks@0.2.12(vue@3.5.24(typescript@5.9.3)): dependencies: evtd: 0.2.4 - vue: 3.5.22(typescript@5.9.3) + vue: 3.5.24(typescript@5.9.3) vscode-uri@3.1.0: {} - vue-demi@0.14.10(vue@3.5.22(typescript@5.9.3)): + vue-demi@0.14.10(vue@3.5.24(typescript@5.9.3)): dependencies: - vue: 3.5.22(typescript@5.9.3) + vue: 3.5.24(typescript@5.9.3) vue-eslint-parser@10.2.0(eslint@9.37.0): dependencies: @@ -9038,42 +9138,42 @@ snapshots: transitivePeerDependencies: - supports-color - vue-router@4.6.0(vue@3.5.22(typescript@5.9.3)): + vue-router@4.6.0(vue@3.5.24(typescript@5.9.3)): dependencies: '@vue/devtools-api': 6.6.4 - vue: 3.5.22(typescript@5.9.3) + vue: 3.5.24(typescript@5.9.3) - vue-tsc@3.1.1(typescript@5.9.3): + vue-tsc@3.1.3(typescript@5.9.3): dependencies: '@volar/typescript': 2.4.23 - '@vue/language-core': 3.1.1(typescript@5.9.3) + '@vue/language-core': 3.1.3(typescript@5.9.3) typescript: 5.9.3 - vue-virt-list@1.6.1(vue@3.5.22(typescript@5.9.3)): + vue-virt-list@1.6.1(vue@3.5.24(typescript@5.9.3)): dependencies: - vue: 3.5.22(typescript@5.9.3) - vue-demi: 0.14.10(vue@3.5.22(typescript@5.9.3)) + vue: 3.5.24(typescript@5.9.3) + vue-demi: 0.14.10(vue@3.5.24(typescript@5.9.3)) - vue@3.5.22(typescript@5.9.3): + vue@3.5.24(typescript@5.9.3): dependencies: - '@vue/compiler-dom': 3.5.22 - '@vue/compiler-sfc': 3.5.22 - '@vue/runtime-dom': 3.5.22 - '@vue/server-renderer': 3.5.22(vue@3.5.22(typescript@5.9.3)) - '@vue/shared': 3.5.22 + '@vue/compiler-dom': 3.5.24 + '@vue/compiler-sfc': 3.5.24 + '@vue/runtime-dom': 3.5.24 + '@vue/server-renderer': 3.5.24(vue@3.5.24(typescript@5.9.3)) + '@vue/shared': 3.5.24 optionalDependencies: typescript: 5.9.3 - vueuc@0.4.65(vue@3.5.22(typescript@5.9.3)): + vueuc@0.4.65(vue@3.5.24(typescript@5.9.3)): dependencies: - '@css-render/vue3-ssr': 0.15.14(vue@3.5.22(typescript@5.9.3)) + '@css-render/vue3-ssr': 0.15.14(vue@3.5.24(typescript@5.9.3)) '@juggle/resize-observer': 3.4.0 css-render: 0.15.14 evtd: 0.2.4 seemly: 0.3.10 - vdirs: 0.1.8(vue@3.5.22(typescript@5.9.3)) - vooks: 0.2.12(vue@3.5.22(typescript@5.9.3)) - vue: 3.5.22(typescript@5.9.3) + vdirs: 0.1.8(vue@3.5.24(typescript@5.9.3)) + vooks: 0.2.12(vue@3.5.24(typescript@5.9.3)) + vue: 3.5.24(typescript@5.9.3) wcwidth@1.0.1: dependencies: @@ -9109,6 +9209,12 @@ snapshots: string-width: 5.1.2 strip-ansi: 7.1.2 + wrap-ansi@9.0.2: + dependencies: + ansi-styles: 6.2.3 + string-width: 7.2.0 + strip-ansi: 7.1.2 + wrappy@1.0.2: {} ws@8.18.3: {} @@ -9145,6 +9251,8 @@ snapshots: yargs-parser@21.1.1: {} + yargs-parser@22.0.0: {} + yargs@15.4.1: dependencies: cliui: 6.0.0 @@ -9169,6 +9277,15 @@ snapshots: y18n: 5.0.8 yargs-parser: 21.1.1 + yargs@18.0.0: + dependencies: + cliui: 9.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + string-width: 7.2.0 + y18n: 5.0.8 + yargs-parser: 22.0.0 + yauzl@2.10.0: dependencies: buffer-crc32: 0.2.13 diff --git a/src/assets/data/lyricConfig.ts b/src/assets/data/lyricConfig.ts index 22598d9..f48353f 100644 --- a/src/assets/data/lyricConfig.ts +++ b/src/assets/data/lyricConfig.ts @@ -8,6 +8,8 @@ const config: LyricConfig = { fontFamily: "system-ui", fontSize: 24, fontIsBold: false, + showTran: true, + showYrc: true, isDoubleLine: true, position: "both", limitBounds: false, diff --git a/src/components/List/SongList.vue b/src/components/List/SongList.vue index 2247579..9db54f9 100644 --- a/src/components/List/SongList.vue +++ b/src/components/List/SongList.vue @@ -60,7 +60,11 @@ :hiddenCover="hiddenCover" :hiddenAlbum="hiddenAlbum" :hiddenSize="hiddenSize" - @dblclick.stop="player.updatePlayList(listData, itemData, playListId)" + @dblclick.stop=" + doubleClickAction === 'add' + ? player.addNextSong(itemData, true) + : player.updatePlayList(listData, itemData, playListId) + " @contextmenu.stop=" songListMenuRef?.openDropdown( $event, @@ -153,6 +157,8 @@ const props = withDefaults( playListId?: number; // 是否为每日推荐 isDailyRecommend?: boolean; + // 双击播放操作 + doubleClickAction?: "all" | "add"; }>(), { type: "song", diff --git a/src/components/Setting/LyricsSetting.vue b/src/components/Setting/LyricsSetting.vue index a8b1055..6a4e123 100644 --- a/src/components/Setting/LyricsSetting.vue +++ b/src/components/Setting/LyricsSetting.vue @@ -416,6 +416,30 @@ /> + +
+ 显示逐字歌词 + 是否显示桌面歌词逐字效果 +
+ +
+ +
+ 显示翻译 + 是否显示桌面歌词翻译 +
+ +
文字加粗 @@ -549,13 +573,21 @@ const saveDesktopLyricConfig = () => { const restoreDesktopLyricConfig = () => { try { if (!isElectron) return; - window.electron.ipcRenderer.send( - "update-desktop-lyric-option", - defaultDesktopLyricConfig, - true, - ); - window.$message.success("桌面歌词配置已恢复默认"); - console.log(defaultDesktopLyricConfig, desktopLyricConfig); + window.$dialog.warning({ + title: "警告", + content: "此操作将恢复所有桌面歌词配置为默认值,是否继续?", + positiveText: "确定", + negativeText: "取消", + onPositiveClick: () => { + window.electron.ipcRenderer.send( + "update-desktop-lyric-option", + defaultDesktopLyricConfig, + true, + ); + window.$message.success("桌面歌词配置已恢复默认"); + console.log(defaultDesktopLyricConfig, desktopLyricConfig); + }, + }); } catch (error) { console.error("Failed to save options:", error); window.$message.error("桌面歌词配置恢复默认失败"); diff --git a/src/components/Setting/OtherSetting.vue b/src/components/Setting/OtherSetting.vue index 30d78f7..6685615 100644 --- a/src/components/Setting/OtherSetting.vue +++ b/src/components/Setting/OtherSetting.vue @@ -13,12 +13,12 @@
真实 IP 地址 - 可在此处输入国内 IP + 可在此处输入国内 IP,不填写则为随机