diff --git a/components.d.ts b/components.d.ts index 48f6afd..d635890 100644 --- a/components.d.ts +++ b/components.d.ts @@ -92,11 +92,9 @@ declare module 'vue' { NOl: typeof import('naive-ui')['NOl'] NP: typeof import('naive-ui')['NP'] NPopover: typeof import('naive-ui')['NPopover'] - NProgress: typeof import('naive-ui')['NProgress'] 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/electron/server/index.ts b/electron/server/index.ts index 8dd77dc..0edd11a 100644 --- a/electron/server/index.ts +++ b/electron/server/index.ts @@ -46,7 +46,7 @@ const initAppServer = async () => { server.register(initNcmAPI, { prefix: "/api" }); server.register(initUnblockAPI, { prefix: "/api" }); // 启动端口 - const port = Number(import.meta.env["VITE_SERVER_PORT"] || 25884); + const port = Number(process.env["VITE_SERVER_PORT"] || 25884); await server.listen({ port }); log.info(`🌐 Starting AppServer on port ${port}`); return server; diff --git a/package.json b/package.json index d528136..2cf801e 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "@pixi/sprite": "^7.4.3", "@vueuse/core": "^12.8.2", "NeteaseCloudMusicApi": "^4.27.0", - "axios": "^1.8.4", + "axios": "^1.11.0", "change-case": "^5.4.4", "dayjs": "^1.11.13", "electron-dl": "^4.0.0", @@ -99,7 +99,7 @@ "eslint-plugin-vue": "^9.33.0", "fast-glob": "^3.3.3", "fastify": "^5.3.1", - "naive-ui": "^2.41.0", + "naive-ui": "^2.42.0", "node-taglib-sharp": "^6.0.1", "prettier": "^3.5.3", "sass": "^1.86.3", @@ -110,9 +110,9 @@ "vite": "^5.4.18", "vite-plugin-compression": "^0.5.1", "vite-plugin-wasm": "^3.4.1", - "vue": "^3.5.13", + "vue": "^3.5.18", "vue-router": "^4.5.0", - "vue-tsc": "^2.2.8" + "vue-tsc": "^3.0.5" }, "pnpm": { "overrides": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 59f8e70..175ad00 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,7 +20,7 @@ importers: version: 0.2.4 '@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.13(typescript@5.8.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.18(typescript@5.8.3)) '@electron-toolkit/preload': specifier: ^3.0.1 version: 3.0.1(electron@35.1.5) @@ -61,8 +61,8 @@ importers: specifier: ^4.27.0 version: 4.27.0 axios: - specifier: ^1.8.4 - version: 1.8.4 + specifier: ^1.11.0 + version: 1.11.0 change-case: specifier: ^5.4.4 version: 5.4.4 @@ -119,16 +119,16 @@ importers: version: 10.5.1 pinia: specifier: ^2.3.1 - version: 2.3.1(typescript@5.8.3)(vue@3.5.13(typescript@5.8.3)) + version: 2.3.1(typescript@5.8.3)(vue@3.5.18(typescript@5.8.3)) pinia-plugin-persistedstate: specifier: ^4.2.0 - version: 4.2.0(pinia@2.3.1(typescript@5.8.3)(vue@3.5.13(typescript@5.8.3))) + version: 4.2.0(pinia@2.3.1(typescript@5.8.3)(vue@3.5.18(typescript@5.8.3))) plyr: specifier: ^3.7.8 version: 3.7.8 vue-virt-list: specifier: ^1.5.10 - version: 1.5.10(vue@3.5.13(typescript@5.8.3)) + version: 1.5.10(vue@3.5.18(typescript@5.8.3)) devDependencies: '@electron-toolkit/tsconfig': specifier: ^1.0.1 @@ -168,7 +168,7 @@ importers: version: 8.30.1(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3) '@vitejs/plugin-vue': specifier: ^5.2.3 - version: 5.2.3(vite@5.4.18(@types/node@22.14.1)(sass@1.86.3)(terser@5.39.0))(vue@3.5.13(typescript@5.8.3)) + version: 5.2.3(vite@5.4.18(@types/node@22.14.1)(sass@1.86.3)(terser@5.39.0))(vue@3.5.18(typescript@5.8.3)) ajv: specifier: ^8.17.1 version: 8.17.1 @@ -200,8 +200,8 @@ importers: specifier: ^5.3.1 version: 5.3.1 naive-ui: - specifier: ^2.41.0 - version: 2.41.0(vue@3.5.13(typescript@5.8.3)) + specifier: ^2.42.0 + version: 2.42.0(vue@3.5.18(typescript@5.8.3)) node-taglib-sharp: specifier: ^6.0.1 version: 6.0.1 @@ -222,7 +222,7 @@ importers: version: 0.19.0(@nuxt/kit@3.16.2)(@vueuse/core@12.8.2(typescript@5.8.3))(rollup@4.40.0) unplugin-vue-components: specifier: ^28.5.0 - version: 28.5.0(@babel/parser@7.27.0)(@nuxt/kit@3.16.2)(vue@3.5.13(typescript@5.8.3)) + version: 28.5.0(@babel/parser@7.28.3)(@nuxt/kit@3.16.2)(vue@3.5.18(typescript@5.8.3)) vite: specifier: ^5.4.18 version: 5.4.18(@types/node@22.14.1)(sass@1.86.3)(terser@5.39.0) @@ -233,14 +233,14 @@ importers: specifier: ^3.4.1 version: 3.4.1(vite@5.4.18(@types/node@22.14.1)(sass@1.86.3)(terser@5.39.0)) vue: - specifier: ^3.5.13 - version: 3.5.13(typescript@5.8.3) + specifier: ^3.5.18 + version: 3.5.18(typescript@5.8.3) vue-router: specifier: ^4.5.0 - version: 4.5.0(vue@3.5.13(typescript@5.8.3)) + version: 4.5.0(vue@3.5.18(typescript@5.8.3)) vue-tsc: - specifier: ^2.2.8 - version: 2.2.8(typescript@5.8.3) + specifier: ^3.0.5 + version: 3.0.5(typescript@5.8.3) packages: @@ -313,10 +313,18 @@ packages: resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.25.9': resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.27.1': + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.25.9': resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} engines: {node: '>=6.9.0'} @@ -330,6 +338,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.28.3': + resolution: {integrity: sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-transform-arrow-functions@7.25.9': resolution: {integrity: sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==} engines: {node: '>=6.9.0'} @@ -352,6 +365,10 @@ packages: resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==} engines: {node: '>=6.9.0'} + '@babel/types@7.28.2': + resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} + engines: {node: '>=6.9.0'} + '@css-render/plugin-bem@0.15.14': resolution: {integrity: sha512-QK513CJ7yEQxm/P3EwsI+d+ha8kSOcjGvD6SevM41neEMxdULE+18iuQK6tEChAWMOQNQPLG/Rw3Khb69r5neg==} peerDependencies: @@ -1447,26 +1464,26 @@ packages: vite: ^5.0.0 || ^6.0.0 vue: ^3.2.25 - '@volar/language-core@2.4.12': - resolution: {integrity: sha512-RLrFdXEaQBWfSnYGVxvR2WrO6Bub0unkdHYIdC31HzIEqATIuuhRRzYu76iGPZ6OtA4Au1SnW0ZwIqPP217YhA==} + '@volar/language-core@2.4.22': + resolution: {integrity: sha512-gp4M7Di5KgNyIyO903wTClYBavRt6UyFNpc5LWfyZr1lBsTUY+QrVZfmbNF2aCyfklBOVk9YC4p+zkwoyT7ECg==} - '@volar/source-map@2.4.12': - resolution: {integrity: sha512-bUFIKvn2U0AWojOaqf63ER0N/iHIBYZPpNGogfLPQ68F5Eet6FnLlyho7BS0y2HJ1jFhSif7AcuTx1TqsCzRzw==} + '@volar/source-map@2.4.22': + resolution: {integrity: sha512-L2nVr/1vei0xKRgO2tYVXtJYd09HTRjaZi418e85Q+QdbbqA8h7bBjfNyPPSsjnrOO4l4kaAo78c8SQUAdHvgA==} - '@volar/typescript@2.4.12': - resolution: {integrity: sha512-HJB73OTJDgPc80K30wxi3if4fSsZZAOScbj2fcicMuOPoOkcf9NNAINb33o+DzhBdF9xTKC1gnPmIRDous5S0g==} + '@volar/typescript@2.4.22': + resolution: {integrity: sha512-6ZczlJW1/GWTrNnkmZxJp4qyBt/SGVlcTuCWpI5zLrdPdCZsj66Aff9ZsfFaT3TyjG8zVYgBMYPuCm/eRkpcpQ==} - '@vue/compiler-core@3.5.13': - resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} + '@vue/compiler-core@3.5.18': + resolution: {integrity: sha512-3slwjQrrV1TO8MoXgy3aynDQ7lslj5UqDxuHnrzHtpON5CBinhWjJETciPngpin/T3OuW3tXUf86tEurusnztw==} - '@vue/compiler-dom@3.5.13': - resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} + '@vue/compiler-dom@3.5.18': + resolution: {integrity: sha512-RMbU6NTU70++B1JyVJbNbeFkK+A+Q7y9XKE2EM4NLGm2WFR8x9MbAtWxPPLdm0wUkuZv9trpwfSlL6tjdIa1+A==} - '@vue/compiler-sfc@3.5.13': - resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==} + '@vue/compiler-sfc@3.5.18': + resolution: {integrity: sha512-5aBjvGqsWs+MoxswZPoTB9nSDb3dhd1x30xrrltKujlCxo48j8HGDNj3QPhF4VIS0VQDUrA1xUfp2hEa+FNyXA==} - '@vue/compiler-ssr@3.5.13': - resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==} + '@vue/compiler-ssr@3.5.18': + resolution: {integrity: sha512-xM16Ak7rSWHkM3m22NlmcdIM+K4BMyFARAfV9hYFl+SFuRzrZ3uGMNW05kA5pmeMa0X9X963Kgou7ufdbpOP9g==} '@vue/compiler-vue2@2.7.16': resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} @@ -1474,30 +1491,30 @@ packages: '@vue/devtools-api@6.6.4': resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} - '@vue/language-core@2.2.8': - resolution: {integrity: sha512-rrzB0wPGBvcwaSNRriVWdNAbHQWSf0NlGqgKHK5mEkXpefjUlVRP62u03KvwZpvKVjRnBIQ/Lwre+Mx9N6juUQ==} + '@vue/language-core@3.0.5': + resolution: {integrity: sha512-gCEjn9Ik7I/seHVNIEipOm8W+f3/kg60e8s1IgIkMYma2wu9ZGUTMv3mSL2bX+Md2L8fslceJ4SU8j1fgSRoiw==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true - '@vue/reactivity@3.5.13': - resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==} + '@vue/reactivity@3.5.18': + resolution: {integrity: sha512-x0vPO5Imw+3sChLM5Y+B6G1zPjwdOri9e8V21NnTnlEvkxatHEH5B5KEAJcjuzQ7BsjGrKtfzuQ5eQwXh8HXBg==} - '@vue/runtime-core@3.5.13': - resolution: {integrity: sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==} + '@vue/runtime-core@3.5.18': + resolution: {integrity: sha512-DUpHa1HpeOQEt6+3nheUfqVXRog2kivkXHUhoqJiKR33SO4x+a5uNOMkV487WPerQkL0vUuRvq/7JhRgLW3S+w==} - '@vue/runtime-dom@3.5.13': - resolution: {integrity: sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==} + '@vue/runtime-dom@3.5.18': + resolution: {integrity: sha512-YwDj71iV05j4RnzZnZtGaXwPoUWeRsqinblgVJwR8XTXYZ9D5PbahHQgsbmzUvCWNF6x7siQ89HgnX5eWkr3mw==} - '@vue/server-renderer@3.5.13': - resolution: {integrity: sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==} + '@vue/server-renderer@3.5.18': + resolution: {integrity: sha512-PvIHLUoWgSbDG7zLHqSqaCoZvHi6NNmfVFOqO+OnwvqMz/tqQr3FuGWS8ufluNddk7ZLBJYMrjcw1c6XzR12mA==} peerDependencies: - vue: 3.5.13 + vue: 3.5.18 - '@vue/shared@3.5.13': - resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} + '@vue/shared@3.5.18': + resolution: {integrity: sha512-cZy8Dq+uuIXbxCZpuLd2GJdeSO/lIzIspC2WtkqIpje5QyFbvLaI5wZtdUjLHjGZrlVX6GilejatWwVYYRc8tA==} '@vueuse/core@12.8.2': resolution: {integrity: sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ==} @@ -1584,8 +1601,8 @@ packages: ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} - alien-signals@1.0.13: - resolution: {integrity: sha512-OGj9yyTnJEttvzhTUWuscOvtqxq5vrhF7vL9oS0xJ2mK0ItPYP1/y+vCFebfxoEyAz0++1AIwJ5CMr+Fk3nDmg==} + alien-signals@2.0.7: + resolution: {integrity: sha512-wE7y3jmYeb0+h6mr5BOovuqhFv22O/MV9j5p0ndJsa7z1zJNPGQ4ph5pQk/kTTCWRC3xsA4SmtwmkzQO+7NCNg==} ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} @@ -1693,8 +1710,8 @@ packages: avvio@9.1.0: resolution: {integrity: sha512-fYASnYi600CsH/j9EQov7lECAniYiBFiiAtBNuZYLA2leLe9qOvZzqYHFjtIj6gD2VMoMLP14834LFWvr4IfDw==} - axios@1.8.4: - resolution: {integrity: sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==} + axios@1.11.0: + resolution: {integrity: sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==} balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -2247,6 +2264,9 @@ packages: end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + end-of-stream@1.4.5: + resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} + entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -2547,8 +2567,8 @@ packages: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} - form-data@4.0.2: - resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==} + form-data@4.0.4: + resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} engines: {node: '>= 6'} forwarded@0.2.0: @@ -3310,8 +3330,8 @@ packages: resolution: {integrity: sha512-xrm3w7SV0Wk+OythZcSbaI8mcr/KHd0knJieu8bVpaPfMv/Agz5EooCAPz3OR5hbYMiUG6dgAPKZKnMzV+3amA==} engines: {node: '>=10'} - naive-ui@2.41.0: - resolution: {integrity: sha512-KnmLg+xPLwXV8QVR7ZZ69eCjvel7R5vru8+eFe4VoAJHEgqAJgVph6Zno9K2IVQRpSF3GBGea3tjavslOR4FAA==} + naive-ui@2.42.0: + resolution: {integrity: sha512-c7cXR2YgOjgtBadXHwiWL4Y0tpGLAI5W5QzzHksOi22iuHXoSGMAzdkVTGVPE/PM0MSGQ/JtUIzCx2Y0hU0vTQ==} peerDependencies: vue: ^3.0.0 @@ -3561,6 +3581,10 @@ packages: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + pinia-plugin-persistedstate@4.2.0: resolution: {integrity: sha512-3buhA7ac+ssbOIx3VRCC8oHkoFwhDM9oHRCjo7nj+O8WUqnW+jRqh7eYT5eS/DNa3H28zp3dYf/nd/Vc8zj8eQ==} peerDependencies: @@ -3620,6 +3644,10 @@ packages: resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} engines: {node: ^10 || ^12 || >=14} + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + engines: {node: ^10 || ^12 || >=14} + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -4382,8 +4410,8 @@ packages: peerDependencies: vue: ^3.2.0 - vue-tsc@2.2.8: - resolution: {integrity: sha512-jBYKBNFADTN+L+MdesNX/TB3XuDSyaWynKMDgR+yCSln0GQ9Tfb7JS2lr46s2LiFUT1WsmfWsSvIElyxzOPqcQ==} + vue-tsc@3.0.5: + resolution: {integrity: sha512-PsTFN9lo1HJCrZw9NoqjYcAbYDXY0cOKyuW2E7naX5jcaVyWpqEsZOHN9Dws5890E8e5SDAD4L4Zam3dxG3/Cw==} hasBin: true peerDependencies: typescript: '>=5.0.0' @@ -4397,8 +4425,8 @@ packages: '@vue/composition-api': optional: true - vue@3.5.13: - resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==} + vue@3.5.18: + resolution: {integrity: sha512-7W4Y4ZbMiQ3SEo+m9lnoNpV9xG7QVMLa+/0RFwwiAVkeYoyGXqWE85jabU4pllJNUzqfLShJ5YLptewhCWUgNA==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -4540,10 +4568,10 @@ snapshots: '@applemusic-like-lyrics/lyric@0.2.4': {} - '@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.13(typescript@5.8.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.18(typescript@5.8.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.13(typescript@5.8.3) + vue: 3.5.18(typescript@5.8.3) transitivePeerDependencies: - '@pixi/app' - '@pixi/core' @@ -4619,8 +4647,12 @@ snapshots: '@babel/helper-string-parser@7.25.9': {} + '@babel/helper-string-parser@7.27.1': {} + '@babel/helper-validator-identifier@7.25.9': {} + '@babel/helper-validator-identifier@7.27.1': {} + '@babel/helper-validator-option@7.25.9': {} '@babel/helpers@7.27.0': @@ -4632,6 +4664,10 @@ snapshots: dependencies: '@babel/types': 7.27.0 + '@babel/parser@7.28.3': + dependencies: + '@babel/types': 7.28.2 + '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -4664,13 +4700,18 @@ snapshots: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 + '@babel/types@7.28.2': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@css-render/plugin-bem@0.15.14(css-render@0.15.14)': dependencies: css-render: 0.15.14 - '@css-render/vue3-ssr@0.15.14(vue@3.5.13(typescript@5.8.3))': + '@css-render/vue3-ssr@0.15.14(vue@3.5.18(typescript@5.8.3))': dependencies: - vue: 3.5.13(typescript@5.8.3) + vue: 3.5.18(typescript@5.8.3) '@develar/schema-utils@2.6.5': dependencies: @@ -5649,52 +5690,52 @@ snapshots: '@typescript-eslint/types': 8.30.1 eslint-visitor-keys: 4.2.0 - '@vitejs/plugin-vue@5.2.3(vite@5.4.18(@types/node@22.14.1)(sass@1.86.3)(terser@5.39.0))(vue@3.5.13(typescript@5.8.3))': + '@vitejs/plugin-vue@5.2.3(vite@5.4.18(@types/node@22.14.1)(sass@1.86.3)(terser@5.39.0))(vue@3.5.18(typescript@5.8.3))': dependencies: vite: 5.4.18(@types/node@22.14.1)(sass@1.86.3)(terser@5.39.0) - vue: 3.5.13(typescript@5.8.3) + vue: 3.5.18(typescript@5.8.3) - '@volar/language-core@2.4.12': + '@volar/language-core@2.4.22': dependencies: - '@volar/source-map': 2.4.12 + '@volar/source-map': 2.4.22 - '@volar/source-map@2.4.12': {} + '@volar/source-map@2.4.22': {} - '@volar/typescript@2.4.12': + '@volar/typescript@2.4.22': dependencies: - '@volar/language-core': 2.4.12 + '@volar/language-core': 2.4.22 path-browserify: 1.0.1 vscode-uri: 3.1.0 - '@vue/compiler-core@3.5.13': + '@vue/compiler-core@3.5.18': dependencies: - '@babel/parser': 7.27.0 - '@vue/shared': 3.5.13 + '@babel/parser': 7.28.3 + '@vue/shared': 3.5.18 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-dom@3.5.13': + '@vue/compiler-dom@3.5.18': dependencies: - '@vue/compiler-core': 3.5.13 - '@vue/shared': 3.5.13 + '@vue/compiler-core': 3.5.18 + '@vue/shared': 3.5.18 - '@vue/compiler-sfc@3.5.13': + '@vue/compiler-sfc@3.5.18': dependencies: - '@babel/parser': 7.27.0 - '@vue/compiler-core': 3.5.13 - '@vue/compiler-dom': 3.5.13 - '@vue/compiler-ssr': 3.5.13 - '@vue/shared': 3.5.13 + '@babel/parser': 7.28.3 + '@vue/compiler-core': 3.5.18 + '@vue/compiler-dom': 3.5.18 + '@vue/compiler-ssr': 3.5.18 + '@vue/shared': 3.5.18 estree-walker: 2.0.2 magic-string: 0.30.17 - postcss: 8.5.3 + postcss: 8.5.6 source-map-js: 1.2.1 - '@vue/compiler-ssr@3.5.13': + '@vue/compiler-ssr@3.5.18': dependencies: - '@vue/compiler-dom': 3.5.13 - '@vue/shared': 3.5.13 + '@vue/compiler-dom': 3.5.18 + '@vue/shared': 3.5.18 '@vue/compiler-vue2@2.7.16': dependencies: @@ -5703,49 +5744,49 @@ snapshots: '@vue/devtools-api@6.6.4': {} - '@vue/language-core@2.2.8(typescript@5.8.3)': + '@vue/language-core@3.0.5(typescript@5.8.3)': dependencies: - '@volar/language-core': 2.4.12 - '@vue/compiler-dom': 3.5.13 + '@volar/language-core': 2.4.22 + '@vue/compiler-dom': 3.5.18 '@vue/compiler-vue2': 2.7.16 - '@vue/shared': 3.5.13 - alien-signals: 1.0.13 - minimatch: 9.0.5 + '@vue/shared': 3.5.18 + alien-signals: 2.0.7 muggle-string: 0.4.1 path-browserify: 1.0.1 + picomatch: 4.0.3 optionalDependencies: typescript: 5.8.3 - '@vue/reactivity@3.5.13': + '@vue/reactivity@3.5.18': dependencies: - '@vue/shared': 3.5.13 + '@vue/shared': 3.5.18 - '@vue/runtime-core@3.5.13': + '@vue/runtime-core@3.5.18': dependencies: - '@vue/reactivity': 3.5.13 - '@vue/shared': 3.5.13 + '@vue/reactivity': 3.5.18 + '@vue/shared': 3.5.18 - '@vue/runtime-dom@3.5.13': + '@vue/runtime-dom@3.5.18': dependencies: - '@vue/reactivity': 3.5.13 - '@vue/runtime-core': 3.5.13 - '@vue/shared': 3.5.13 + '@vue/reactivity': 3.5.18 + '@vue/runtime-core': 3.5.18 + '@vue/shared': 3.5.18 csstype: 3.1.3 - '@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.8.3))': + '@vue/server-renderer@3.5.18(vue@3.5.18(typescript@5.8.3))': dependencies: - '@vue/compiler-ssr': 3.5.13 - '@vue/shared': 3.5.13 - vue: 3.5.13(typescript@5.8.3) + '@vue/compiler-ssr': 3.5.18 + '@vue/shared': 3.5.18 + vue: 3.5.18(typescript@5.8.3) - '@vue/shared@3.5.13': {} + '@vue/shared@3.5.18': {} '@vueuse/core@12.8.2(typescript@5.8.3)': dependencies: '@types/web-bluetooth': 0.0.21 '@vueuse/metadata': 12.8.2 '@vueuse/shared': 12.8.2(typescript@5.8.3) - vue: 3.5.13(typescript@5.8.3) + vue: 3.5.18(typescript@5.8.3) transitivePeerDependencies: - typescript @@ -5753,7 +5794,7 @@ snapshots: '@vueuse/shared@12.8.2(typescript@5.8.3)': dependencies: - vue: 3.5.13(typescript@5.8.3) + vue: 3.5.18(typescript@5.8.3) transitivePeerDependencies: - typescript @@ -5761,7 +5802,7 @@ snapshots: NeteaseCloudMusicApi@4.27.0: dependencies: - axios: 1.8.4 + axios: 1.11.0 crypto-js: 4.2.0 express: 4.21.2 express-fileupload: 1.5.1 @@ -5840,7 +5881,7 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - alien-signals@1.0.13: {} + alien-signals@2.0.7: {} ansi-regex@5.0.1: {} @@ -5883,7 +5924,7 @@ snapshots: ejs: 3.1.10 electron-builder-squirrel-windows: 25.1.8(dmg-builder@25.1.8) electron-publish: 25.1.7 - form-data: 4.0.2 + form-data: 4.0.4 fs-extra: 10.1.0 hosted-git-info: 4.1.0 is-ci: 3.0.1 @@ -6018,10 +6059,10 @@ snapshots: '@fastify/error': 4.1.0 fastq: 1.19.1 - axios@1.8.4: + axios@1.11.0: dependencies: follow-redirects: 1.15.9 - form-data: 4.0.2 + form-data: 4.0.4 proxy-from-env: 1.1.0 transitivePeerDependencies: - debug @@ -6633,7 +6674,7 @@ snapshots: builder-util: 26.0.11 builder-util-runtime: 9.3.1 chalk: 4.1.2 - form-data: 4.0.2 + form-data: 4.0.4 fs-extra: 10.1.0 lazy-val: 1.0.5 mime: 2.6.0 @@ -6697,6 +6738,10 @@ snapshots: dependencies: once: 1.4.0 + end-of-stream@1.4.5: + dependencies: + once: 1.4.0 + entities@4.5.0: {} env-paths@2.2.1: {} @@ -7115,11 +7160,12 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 - form-data@4.0.2: + form-data@4.0.4: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 es-set-tostringtag: 2.1.0 + hasown: 2.0.2 mime-types: 2.1.35 forwarded@0.2.0: {} @@ -7934,10 +7980,10 @@ snapshots: transitivePeerDependencies: - supports-color - naive-ui@2.41.0(vue@3.5.13(typescript@5.8.3)): + naive-ui@2.42.0(vue@3.5.18(typescript@5.8.3)): dependencies: '@css-render/plugin-bem': 0.15.14(css-render@0.15.14) - '@css-render/vue3-ssr': 0.15.14(vue@3.5.13(typescript@5.8.3)) + '@css-render/vue3-ssr': 0.15.14(vue@3.5.18(typescript@5.8.3)) '@types/katex': 0.16.7 '@types/lodash': 4.17.16 '@types/lodash-es': 4.17.12 @@ -7952,10 +7998,10 @@ snapshots: lodash-es: 4.17.21 seemly: 0.3.10 treemate: 0.3.11 - vdirs: 0.1.8(vue@3.5.13(typescript@5.8.3)) - vooks: 0.2.12(vue@3.5.13(typescript@5.8.3)) - vue: 3.5.13(typescript@5.8.3) - vueuc: 0.4.64(vue@3.5.13(typescript@5.8.3)) + vdirs: 0.1.8(vue@3.5.18(typescript@5.8.3)) + vooks: 0.2.12(vue@3.5.18(typescript@5.8.3)) + vue: 3.5.18(typescript@5.8.3) + vueuc: 0.4.64(vue@3.5.18(typescript@5.8.3)) nanoid@3.3.11: {} @@ -8197,22 +8243,24 @@ snapshots: picomatch@4.0.2: {} - pinia-plugin-persistedstate@4.2.0(pinia@2.3.1(typescript@5.8.3)(vue@3.5.13(typescript@5.8.3))): + picomatch@4.0.3: {} + + pinia-plugin-persistedstate@4.2.0(pinia@2.3.1(typescript@5.8.3)(vue@3.5.18(typescript@5.8.3))): dependencies: '@nuxt/kit': 3.16.2 deep-pick-omit: 1.2.1 defu: 6.1.4 destr: 2.0.5 optionalDependencies: - pinia: 2.3.1(typescript@5.8.3)(vue@3.5.13(typescript@5.8.3)) + pinia: 2.3.1(typescript@5.8.3)(vue@3.5.18(typescript@5.8.3)) transitivePeerDependencies: - magicast - pinia@2.3.1(typescript@5.8.3)(vue@3.5.13(typescript@5.8.3)): + pinia@2.3.1(typescript@5.8.3)(vue@3.5.18(typescript@5.8.3)): dependencies: '@vue/devtools-api': 6.6.4 - vue: 3.5.13(typescript@5.8.3) - vue-demi: 0.14.10(vue@3.5.13(typescript@5.8.3)) + vue: 3.5.18(typescript@5.8.3) + vue-demi: 0.14.10(vue@3.5.18(typescript@5.8.3)) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: @@ -8281,6 +8329,12 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + postcss@8.5.6: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + prelude-ls@1.2.1: {} prettier@3.5.3: {} @@ -8772,7 +8826,7 @@ snapshots: tar-stream@2.2.0: dependencies: bl: 4.1.0 - end-of-stream: 1.4.4 + end-of-stream: 1.4.5 fs-constants: 1.0.0 inherits: 2.0.4 readable-stream: 3.6.2 @@ -8918,7 +8972,7 @@ snapshots: magic-string: 0.30.17 mlly: 1.7.4 pathe: 2.0.3 - picomatch: 4.0.2 + picomatch: 4.0.3 pkg-types: 2.1.0 scule: 1.3.0 strip-literal: 3.0.0 @@ -8962,7 +9016,7 @@ snapshots: pathe: 2.0.3 picomatch: 4.0.2 - unplugin-vue-components@28.5.0(@babel/parser@7.27.0)(@nuxt/kit@3.16.2)(vue@3.5.13(typescript@5.8.3)): + unplugin-vue-components@28.5.0(@babel/parser@7.28.3)(@nuxt/kit@3.16.2)(vue@3.5.18(typescript@5.8.3)): dependencies: chokidar: 3.6.0 debug: 4.4.0 @@ -8972,9 +9026,9 @@ snapshots: tinyglobby: 0.2.12 unplugin: 2.3.2 unplugin-utils: 0.2.4 - vue: 3.5.13(typescript@5.8.3) + vue: 3.5.18(typescript@5.8.3) optionalDependencies: - '@babel/parser': 7.27.0 + '@babel/parser': 7.28.3 '@nuxt/kit': 3.16.2 transitivePeerDependencies: - supports-color @@ -9030,10 +9084,10 @@ snapshots: vary@1.1.2: {} - vdirs@0.1.8(vue@3.5.13(typescript@5.8.3)): + vdirs@0.1.8(vue@3.5.18(typescript@5.8.3)): dependencies: evtd: 0.2.4 - vue: 3.5.13(typescript@5.8.3) + vue: 3.5.18(typescript@5.8.3) verror@1.10.1: dependencies: @@ -9066,16 +9120,16 @@ snapshots: sass: 1.86.3 terser: 5.39.0 - vooks@0.2.12(vue@3.5.13(typescript@5.8.3)): + vooks@0.2.12(vue@3.5.18(typescript@5.8.3)): dependencies: evtd: 0.2.4 - vue: 3.5.13(typescript@5.8.3) + vue: 3.5.18(typescript@5.8.3) vscode-uri@3.1.0: {} - vue-demi@0.14.10(vue@3.5.13(typescript@5.8.3)): + vue-demi@0.14.10(vue@3.5.18(typescript@5.8.3)): dependencies: - vue: 3.5.13(typescript@5.8.3) + vue: 3.5.18(typescript@5.8.3) vue-eslint-parser@9.4.3(eslint@9.24.0(jiti@2.4.2)): dependencies: @@ -9090,42 +9144,42 @@ snapshots: transitivePeerDependencies: - supports-color - vue-router@4.5.0(vue@3.5.13(typescript@5.8.3)): + vue-router@4.5.0(vue@3.5.18(typescript@5.8.3)): dependencies: '@vue/devtools-api': 6.6.4 - vue: 3.5.13(typescript@5.8.3) + vue: 3.5.18(typescript@5.8.3) - vue-tsc@2.2.8(typescript@5.8.3): + vue-tsc@3.0.5(typescript@5.8.3): dependencies: - '@volar/typescript': 2.4.12 - '@vue/language-core': 2.2.8(typescript@5.8.3) + '@volar/typescript': 2.4.22 + '@vue/language-core': 3.0.5(typescript@5.8.3) typescript: 5.8.3 - vue-virt-list@1.5.10(vue@3.5.13(typescript@5.8.3)): + vue-virt-list@1.5.10(vue@3.5.18(typescript@5.8.3)): dependencies: - vue: 3.5.13(typescript@5.8.3) - vue-demi: 0.14.10(vue@3.5.13(typescript@5.8.3)) + vue: 3.5.18(typescript@5.8.3) + vue-demi: 0.14.10(vue@3.5.18(typescript@5.8.3)) - vue@3.5.13(typescript@5.8.3): + vue@3.5.18(typescript@5.8.3): dependencies: - '@vue/compiler-dom': 3.5.13 - '@vue/compiler-sfc': 3.5.13 - '@vue/runtime-dom': 3.5.13 - '@vue/server-renderer': 3.5.13(vue@3.5.13(typescript@5.8.3)) - '@vue/shared': 3.5.13 + '@vue/compiler-dom': 3.5.18 + '@vue/compiler-sfc': 3.5.18 + '@vue/runtime-dom': 3.5.18 + '@vue/server-renderer': 3.5.18(vue@3.5.18(typescript@5.8.3)) + '@vue/shared': 3.5.18 optionalDependencies: typescript: 5.8.3 - vueuc@0.4.64(vue@3.5.13(typescript@5.8.3)): + vueuc@0.4.64(vue@3.5.18(typescript@5.8.3)): dependencies: - '@css-render/vue3-ssr': 0.15.14(vue@3.5.13(typescript@5.8.3)) + '@css-render/vue3-ssr': 0.15.14(vue@3.5.18(typescript@5.8.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.13(typescript@5.8.3)) - vooks: 0.2.12(vue@3.5.13(typescript@5.8.3)) - vue: 3.5.13(typescript@5.8.3) + vdirs: 0.1.8(vue@3.5.18(typescript@5.8.3)) + vooks: 0.2.12(vue@3.5.18(typescript@5.8.3)) + vue: 3.5.18(typescript@5.8.3) wcwidth@1.0.1: dependencies: diff --git a/src/utils/player.ts b/src/utils/player.ts index c541976..a3ff443 100644 --- a/src/utils/player.ts +++ b/src/utils/player.ts @@ -167,12 +167,22 @@ class Player { const keyWord = songData.name + "-" + artist; if (!songId || !keyWord) return null; // 尝试解锁 - const [neteaseUrl, kuwoUrl] = await Promise.all([ + const results = await Promise.allSettled([ unlockSongUrl(songId, keyWord, "netease"), unlockSongUrl(songId, keyWord, "kuwo"), ]); - if (neteaseUrl.code === 200 && neteaseUrl.url !== "") return neteaseUrl.url; - if (kuwoUrl.code === 200 && kuwoUrl.url !== "") return kuwoUrl.url; + // 解析结果 + const [neteaseRes, kuwoRes] = results; + if ( + neteaseRes.status === "fulfilled" && + neteaseRes.value.code === 200 && + neteaseRes.value.url + ) { + return neteaseRes.value.url; + } + if (kuwoRes.status === "fulfilled" && kuwoRes.value.code === 200 && kuwoRes.value.url) { + return kuwoRes.value.url; + } return null; } catch (error) { console.error("Error in getUnlockSongUrl", error);