diff --git a/.github/workflows/issue-manage.yml b/.github/workflows/issue-manage.yml
index 77a2806..d5271a8 100644
--- a/.github/workflows/issue-manage.yml
+++ b/.github/workflows/issue-manage.yml
@@ -19,15 +19,12 @@ jobs:
with:
issue-number: ${{ github.event.issue.number }}
body: |
- 👋 感谢您提交issue!
+ ## 快速链接
- 我们已经收到您的反馈,维护者会尽快查看并回复。
+ 在我们处理您的问题之前,您可以先查看以下资源:
- 由于二开作者是高中生, 只能在非工作日处理issue, 请耐心等待。
-
- 在等待回复期间,您可以:
- 📖 查看[项目文档](https://neteasecloudmusicapienhanced.js.org)
- - 💬 加入[QQ交流群](https://qm.qq.com/q/TpeP9Uv2yk) 进行实时讨论
+ - 💬 加入[QQ交流群](https://qm.qq.com/q/TpeP9Uv2yk)
- 🔍 搜索[现有issues](https://github.com/neteasecloudmusicapienhanced/api-enhanced/issues) 看是否有类似问题
handle-help-wanted:
@@ -54,8 +51,6 @@ jobs:
如果以上资源无法解决您的问题,请提供更多详细信息,我们会尽快为您解答!
- 由于二开作者是高中生, 只能在非工作日处理issue, 请耐心等待。
-
stale-issues:
if: github.event.action == 'opened'
runs-on: ubuntu-latest
diff --git a/.travis.yml b/.travis.yml
index 6e72888..3a813bd 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,4 +1,4 @@
language: node_js
node_js:
- - 12
+ - 22
diff --git a/CHANGELOG.MD b/CHANGELOG.MD
index 89e3181..28a4cfe 100644
--- a/CHANGELOG.MD
+++ b/CHANGELOG.MD
@@ -1,4 +1,10 @@
# 更新日志
+### 4.30.2 | 2026.02.22
+- feat(cloud): 添加云盘上传模式选择功能并优化上传配置 (#116)
+- refactor: Refactor random Chinese IP generator (#110)
+- fix(server): Correctly inject client IP into request parameters (#108)
+- refactor(ui): More elegant display of URL and debug buttons (#109)
+- feat: 添加评论统计数据 (#122)
### 4.30.1 | 2026.02.11
- feat: Add user playlist endpoints & domain overrides (#105)
diff --git a/README.MD b/README.MD
index 0b216c8..fa5b1da 100644
--- a/README.MD
+++ b/README.MD
@@ -1,10 +1,38 @@
-# 网易云音乐 API Enhanced
+
+
+
+
+NeteaseCloudMusicAPI Enhanced
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
----
## 项目简介
-本项目为网易云音乐第三方 Node.js API,基于停更的原版 API 持续维护,支持丰富的音乐相关接口,适合自建服务、二次开发和多平台部署(如果原版诈尸, 我会及时同步 or 归档)。
+网易云音乐第三方 Node.js API, 支持丰富的音乐相关接口,适合自建服务、二次开发和多平台部署(如果原版诈尸, 我会及时同步 or 归档)。
> [!IMPORTANT]
>
@@ -183,15 +211,6 @@ pnpm test
- 欢迎提交 PR、Issue 参与维护
-## 最近更新日志
-### 4.30.0 | 2026.02.06
-- feat: 新增音乐人黑胶会员任务接口 `/musician/vip/tasks` (#95)
-- feat: 自动构建: 添加Windows、Linux、macOS预编译二进制文件 (#88)
-- fix: 修复模块未定义问题
-- chore: 更新依赖项 (music-metadata: ^11.11.1 -> ^11.11.2, ansi-escapes: ^7.2.0 -> ^7.3.0, commander: ^14.0.2 -> ^14.0.3)
-- chore: 更新GitHub Actions (checkout: v4 -> v6, setup-node: v4 -> v6, upload-artifact: v4 -> v6, download-artifact: v4 -> v7, github-script: v7 -> v8)
-- refactor: 注释掉IP地址日志输出以提升隐私保护
-
### 致谢
原作者 [Binaryify/NeteaseCloudMusicApi](https://github.com/binaryify/NeteaseCloudMusicApi) 项目为本项目基础 (该项目在`npmjs`网站上仍持续维护, 但 github 仓库已不再更新)
@@ -213,6 +232,7 @@ pnpm test
| Java | [JackuXL](https://github.com/JackuXL) | [NeteaseCloudMusicApi-SDK](https://github.com/JackuXL/NeteaseCloudMusicApi-SDK) | 第三方 |
| Java | [1015770492](https://github.com/1015770492) | https://github.com/1015770492/yumbo-music-utils | 第三方 |
| Python | [盧瞳](https://github.com/2061360308) | [NeteaseCloudMusic_PythonSDK](https://github.com/2061360308/NeteaseCloudMusic_PythonSDK) | 第三方 |
+| Swift | [Lincb522](https://github.com/Lincb522) | [NeteaseCloudMusicApi-Swift](https://github.com/Lincb522/NeteaseCloudMusicAPI-Swift) | 第三方 |
### 依赖此项目的优秀开源项目
@@ -221,6 +241,10 @@ pnpm test
- [qier2222/YesPlayMusic](https://github.com/qier222/YesPlayMusic)
+- [MaigoLabs/amaoke.app](https://github.com/MaigoLabs/amaoke.app)
+
+- [Yueby/music-together](https://github.com/Yueby/music-together)
+
## License
[MIT License](https://github.com/MoeFurina/NeteaseCloudMusicApiEnhanced/blob/main/LICENSE)
diff --git a/index.mjs b/index.mjs
new file mode 100644
index 0000000..6667bb1
--- /dev/null
+++ b/index.mjs
@@ -0,0 +1 @@
+import './app.js'
diff --git a/module/song_url_ncmget.js b/module/song_url_ncmget.js
index a2c5852..f121578 100644
--- a/module/song_url_ncmget.js
+++ b/module/song_url_ncmget.js
@@ -1,77 +1,5 @@
-// GD音乐台get(适配SPlayer的UNM-Server)
-// 感谢来自GD Studio的开发API
-// https://music.gdstudio.xyz/
-
-const createOption = require('../util/option.js')
+// 夹带私货的东西就不要放在这里了
module.exports = async (query, request) => {
- try {
- const { id, br = '320' } = query
- if (!id) {
- return {
- status: 400,
- body: {
- code: 400,
- message: '缺少必要参数 id',
- data: [],
- },
- }
- }
- const validBR = ['128', '192', '320', '740', '999']
- // const covertBR = ['128000', '192000', '320000','740000', '999000']
- if (!validBR.includes(br)) {
- return {
- status: 400,
- body: {
- code: 400,
- message: '无效音质参数',
- allowed_values: validBR,
- data: [],
- },
- }
- }
-
- const apiUrl = new URL('https://music-api.gdstudio.xyz/api.php')
- apiUrl.searchParams.append('types', 'url')
- apiUrl.searchParams.append('id', id)
- apiUrl.searchParams.append('br', br)
-
- const response = await fetch(apiUrl.toString())
- if (!response.ok) throw new Error(`API 响应状态: ${response.status}`)
- const result = await response.json()
-
- // 代理逻辑
- const useProxy = process.env.ENABLE_PROXY || false
- const proxy = process.env.PROXY_URL
- if (useProxy && result.url && result.url.includes('kuwo')) {
- result.proxyUrl = proxy + result.url.replace(/^http:\/\//, 'http/')
- }
-
- return {
- status: 200,
- body: {
- code: 200,
- message: '请求成功',
- data: {
- id,
- br,
- url: result.url,
- ...(proxy && result.proxyUrl ? { proxyUrl: result.proxyUrl } : {}),
- },
- },
- }
- } catch (error) {
- console.error('Error in song_url_ncmget:', error)
- return {
- status: 500,
- body: {
- code: 500,
- message: '服务器处理请求失败',
- ...(process.env.NODE_ENV === 'development'
- ? { error: error.message }
- : {}),
- data: [],
- },
- }
- }
+ return { status: 200, body: { code: 200, data: [] } }
}
diff --git a/package.json b/package.json
index 0385971..ac3f0b4 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@neteasecloudmusicapienhanced/api",
- "version": "4.30.1",
+ "version": "4.30.2",
"description": "全网最全的网易云音乐API接口 || A revival project for NeteaseCloudMusicApi Node.js Services (Half Refactor & Enhanced) || 网易云音乐 API 备份 + 增强 || 本项目自原版v4.28.0版本后开始自行维护",
"scripts": {
"dev": "nodemon app.js",
@@ -65,13 +65,13 @@
"data"
],
"dependencies": {
- "@neteasecloudmusicapienhanced/unblockmusic-utils": "^0.2.2",
+ "@neteasecloudmusicapienhanced/unblockmusic-utils": "^0.2.3",
"axios": "^1.13.5",
"crypto-js": "^4.2.0",
- "dotenv": "^17.2.4",
+ "dotenv": "^17.3.1",
"express": "^5.2.1",
"express-fileupload": "^1.5.2",
- "music-metadata": "^11.12.0",
+ "music-metadata": "^11.12.1",
"node-forge": "^1.3.3",
"pac-proxy-agent": "^7.2.0",
"qrcode": "^1.5.4",
@@ -82,26 +82,26 @@
},
"devDependencies": {
"@eslint/eslintrc": "^3.3.3",
- "@eslint/js": "^9.39.2",
+ "@eslint/js": "^9.39.3",
"@types/express": "^5.0.6",
"@types/express-fileupload": "^1.5.1",
"@types/mocha": "^10.0.10",
"@types/node": "25.0.9",
- "@typescript-eslint/eslint-plugin": "^8.46.3",
- "@typescript-eslint/parser": "^8.53.0",
- "eslint": "^9.39.0",
+ "@typescript-eslint/eslint-plugin": "^8.56.0",
+ "@typescript-eslint/parser": "^8.56.0",
+ "eslint": "^9.39.3",
"eslint-config-prettier": "^10.1.8",
- "eslint-plugin-html": "^8.1.3",
+ "eslint-plugin-html": "^8.1.4",
"eslint-plugin-prettier": "^5.5.5",
"globals": "^16.5.0",
"husky": "^9.1.7",
"intelli-espower-loader": "^1.1.0",
"lint-staged": "^16.2.7",
"mocha": "^11.7.5",
- "nodemon": "^3.1.11",
+ "nodemon": "^3.1.14",
"pkg": "^5.8.1",
"power-assert": "^1.6.1",
- "prettier": "^3.7.4",
+ "prettier": "^3.8.1",
"typescript": "^5.9.3"
}
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index a0be9e0..ad09ccd 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -9,8 +9,8 @@ importers:
.:
dependencies:
'@neteasecloudmusicapienhanced/unblockmusic-utils':
- specifier: ^0.2.2
- version: 0.2.2
+ specifier: ^0.2.3
+ version: 0.2.3
axios:
specifier: ^1.13.5
version: 1.13.5
@@ -18,8 +18,8 @@ importers:
specifier: ^4.2.0
version: 4.2.0
dotenv:
- specifier: ^17.2.4
- version: 17.2.4
+ specifier: ^17.3.1
+ version: 17.3.1
express:
specifier: ^5.2.1
version: 5.2.1
@@ -27,8 +27,8 @@ importers:
specifier: ^1.5.2
version: 1.5.2
music-metadata:
- specifier: ^11.12.0
- version: 11.12.0
+ specifier: ^11.12.1
+ version: 11.12.1
node-forge:
specifier: ^1.3.3
version: 1.3.3
@@ -55,8 +55,8 @@ importers:
specifier: ^3.3.3
version: 3.3.3
'@eslint/js':
- specifier: ^9.39.2
- version: 9.39.2
+ specifier: ^9.39.3
+ version: 9.39.3
'@types/express':
specifier: ^5.0.6
version: 5.0.6
@@ -70,23 +70,23 @@ importers:
specifier: 25.0.9
version: 25.0.9
'@typescript-eslint/eslint-plugin':
- specifier: ^8.46.3
- version: 8.46.3(@typescript-eslint/parser@8.53.0(eslint@9.39.0)(typescript@5.9.3))(eslint@9.39.0)(typescript@5.9.3)
+ specifier: ^8.56.0
+ version: 8.56.0(@typescript-eslint/parser@8.56.0(eslint@9.39.3)(typescript@5.9.3))(eslint@9.39.3)(typescript@5.9.3)
'@typescript-eslint/parser':
- specifier: ^8.53.0
- version: 8.53.0(eslint@9.39.0)(typescript@5.9.3)
+ specifier: ^8.56.0
+ version: 8.56.0(eslint@9.39.3)(typescript@5.9.3)
eslint:
- specifier: ^9.39.0
- version: 9.39.0
+ specifier: ^9.39.3
+ version: 9.39.3
eslint-config-prettier:
specifier: ^10.1.8
- version: 10.1.8(eslint@9.39.0)
+ version: 10.1.8(eslint@9.39.3)
eslint-plugin-html:
- specifier: ^8.1.3
- version: 8.1.3
+ specifier: ^8.1.4
+ version: 8.1.4
eslint-plugin-prettier:
specifier: ^5.5.5
- version: 5.5.5(eslint-config-prettier@10.1.8(eslint@9.39.0))(eslint@9.39.0)(prettier@3.7.4)
+ version: 5.5.5(eslint-config-prettier@10.1.8(eslint@9.39.3))(eslint@9.39.3)(prettier@3.8.1)
globals:
specifier: ^16.5.0
version: 16.5.0
@@ -103,8 +103,8 @@ importers:
specifier: ^11.7.5
version: 11.7.5
nodemon:
- specifier: ^3.1.11
- version: 3.1.11
+ specifier: ^3.1.14
+ version: 3.1.14
pkg:
specifier: ^5.8.1
version: 5.8.1
@@ -112,8 +112,8 @@ importers:
specifier: ^1.6.1
version: 1.6.1
prettier:
- specifier: ^3.7.4
- version: 3.7.4
+ specifier: ^3.8.1
+ version: 3.8.1
typescript:
specifier: ^5.9.3
version: 5.9.3
@@ -170,12 +170,8 @@ packages:
resolution: {integrity: sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/js@9.39.0':
- resolution: {integrity: sha512-BIhe0sW91JGPiaF1mOuPy5v8NflqfjIcDNpC+LbW9f609WVRX1rArrhi6Z2ymvrAry9jw+5POTj4t2t62o8Bmw==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@eslint/js@9.39.2':
- resolution: {integrity: sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==}
+ '@eslint/js@9.39.3':
+ resolution: {integrity: sha512-1B1VkCq6FuUNlQvlBYb+1jDu/gV297TIs/OeiaSR9l1H27SVW55ONE1e1Vp16NqP683+xEGzxYtv4XCiDPaQiw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/object-schema@2.1.7':
@@ -219,8 +215,8 @@ packages:
'@jridgewell/trace-mapping@0.3.31':
resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
- '@neteasecloudmusicapienhanced/unblockmusic-utils@0.2.2':
- resolution: {integrity: sha512-3YdfPWL/bLhsdUtvZ4nBEgeZjyy0QLD7Py9v7uwEt7V2WQK+q1qV2EWKn9TkCkeOujwCMNvGbhiWouk0PJnP6g==}
+ '@neteasecloudmusicapienhanced/unblockmusic-utils@0.2.3':
+ resolution: {integrity: sha512-hhyGdOng6EWJmbV6L9TBVl5IHEzuDvGeCZz1o0XCSQ73I4UZ5jkW3OCQ/r7xhNiosKP0rIWVWeiUMTo3FaSgtw==}
hasBin: true
'@nodelib/fs.scandir@2.1.5':
@@ -298,93 +294,63 @@ packages:
'@types/serve-static@2.2.0':
resolution: {integrity: sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==}
- '@typescript-eslint/eslint-plugin@8.46.3':
- resolution: {integrity: sha512-sbaQ27XBUopBkRiuY/P9sWGOWUW4rl8fDoHIUmLpZd8uldsTyB4/Zg6bWTegPoTLnKj9Hqgn3QD6cjPNB32Odw==}
+ '@typescript-eslint/eslint-plugin@8.56.0':
+ resolution: {integrity: sha512-lRyPDLzNCuae71A3t9NEINBiTn7swyOhvUj3MyUOxb8x6g6vPEFoOU+ZRmGMusNC3X3YMhqMIX7i8ShqhT74Pw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- '@typescript-eslint/parser': ^8.46.3
- eslint: ^8.57.0 || ^9.0.0
+ '@typescript-eslint/parser': ^8.56.0
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/parser@8.53.0':
- resolution: {integrity: sha512-npiaib8XzbjtzS2N4HlqPvlpxpmZ14FjSJrteZpPxGUaYPlvhzlzUZ4mZyABo0EFrOWnvyd0Xxroq//hKhtAWg==}
+ '@typescript-eslint/parser@8.56.0':
+ resolution: {integrity: sha512-IgSWvLobTDOjnaxAfDTIHaECbkNlAlKv2j5SjpB2v7QHKv1FIfjwMy8FsDbVfDX/KjmCmYICcw7uGaXLhtsLNg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- eslint: ^8.57.0 || ^9.0.0
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/project-service@8.46.3':
- resolution: {integrity: sha512-Fz8yFXsp2wDFeUElO88S9n4w1I4CWDTXDqDr9gYvZgUpwXQqmZBr9+NTTql5R3J7+hrJZPdpiWaB9VNhAKYLuQ==}
+ '@typescript-eslint/project-service@8.56.0':
+ resolution: {integrity: sha512-M3rnyL1vIQOMeWxTWIW096/TtVP+8W3p/XnaFflhmcFp+U4zlxUxWj4XwNs6HbDeTtN4yun0GNTTDBw/SvufKg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/project-service@8.53.0':
- resolution: {integrity: sha512-Bl6Gdr7NqkqIP5yP9z1JU///Nmes4Eose6L1HwpuVHwScgDPPuEWbUVhvlZmb8hy0vX9syLk5EGNL700WcBlbg==}
+ '@typescript-eslint/scope-manager@8.56.0':
+ resolution: {integrity: sha512-7UiO/XwMHquH+ZzfVCfUNkIXlp/yQjjnlYUyYz7pfvlK3/EyyN6BK+emDmGNyQLBtLGaYrTAI6KOw8tFucWL2w==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/tsconfig-utils@8.56.0':
+ resolution: {integrity: sha512-bSJoIIt4o3lKXD3xmDh9chZcjCz5Lk8xS7Rxn+6l5/pKrDpkCwtQNQQwZ2qRPk7TkUYhrq3WPIHXOXlbXP0itg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/scope-manager@8.46.3':
- resolution: {integrity: sha512-FCi7Y1zgrmxp3DfWfr+3m9ansUUFoy8dkEdeQSgA9gbm8DaHYvZCdkFRQrtKiedFf3Ha6VmoqoAaP68+i+22kg==}
+ '@typescript-eslint/type-utils@8.56.0':
+ resolution: {integrity: sha512-qX2L3HWOU2nuDs6GzglBeuFXviDODreS58tLY/BALPC7iu3Fa+J7EOTwnX9PdNBxUI7Uh0ntP0YWGnxCkXzmfA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/types@8.56.0':
+ resolution: {integrity: sha512-DBsLPs3GsWhX5HylbP9HNG15U0bnwut55Lx12bHB9MpXxQ+R5GC8MwQe+N1UFXxAeQDvEsEDY6ZYwX03K7Z6HQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/scope-manager@8.53.0':
- resolution: {integrity: sha512-kWNj3l01eOGSdVBnfAF2K1BTh06WS0Yet6JUgb9Cmkqaz3Jlu0fdVUjj9UI8gPidBWSMqDIglmEXifSgDT/D0g==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@typescript-eslint/tsconfig-utils@8.46.3':
- resolution: {integrity: sha512-GLupljMniHNIROP0zE7nCcybptolcH8QZfXOpCfhQDAdwJ/ZTlcaBOYebSOZotpti/3HrHSw7D3PZm75gYFsOA==}
+ '@typescript-eslint/typescript-estree@8.56.0':
+ resolution: {integrity: sha512-ex1nTUMWrseMltXUHmR2GAQ4d+WjkZCT4f+4bVsps8QEdh0vlBsaCokKTPlnqBFqqGaxilDNJG7b8dolW2m43Q==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/tsconfig-utils@8.53.0':
- resolution: {integrity: sha512-K6Sc0R5GIG6dNoPdOooQ+KtvT5KCKAvTcY8h2rIuul19vxH5OTQk7ArKkd4yTzkw66WnNY0kPPzzcmWA+XRmiA==}
+ '@typescript-eslint/utils@8.56.0':
+ resolution: {integrity: sha512-RZ3Qsmi2nFGsS+n+kjLAYDPVlrzf7UhTffrDIKr+h2yzAlYP/y5ZulU0yeDEPItos2Ph46JAL5P/On3pe7kDIQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/type-utils@8.46.3':
- resolution: {integrity: sha512-ZPCADbr+qfz3aiTTYNNkCbUt+cjNwI/5McyANNrFBpVxPt7GqpEYz5ZfdwuFyGUnJ9FdDXbGODUu6iRCI6XRXw==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- eslint: ^8.57.0 || ^9.0.0
- typescript: '>=4.8.4 <6.0.0'
-
- '@typescript-eslint/types@8.46.3':
- resolution: {integrity: sha512-G7Ok9WN/ggW7e/tOf8TQYMaxgID3Iujn231hfi0Pc7ZheztIJVpO44ekY00b7akqc6nZcvregk0Jpah3kep6hA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@typescript-eslint/types@8.53.0':
- resolution: {integrity: sha512-Bmh9KX31Vlxa13+PqPvt4RzKRN1XORYSLlAE+sO1i28NkisGbTtSLFVB3l7PWdHtR3E0mVMuC7JilWJ99m2HxQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@typescript-eslint/typescript-estree@8.46.3':
- resolution: {integrity: sha512-f/NvtRjOm80BtNM5OQtlaBdM5BRFUv7gf381j9wygDNL+qOYSNOgtQ/DCndiYi80iIOv76QqaTmp4fa9hwI0OA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- typescript: '>=4.8.4 <6.0.0'
-
- '@typescript-eslint/typescript-estree@8.53.0':
- resolution: {integrity: sha512-pw0c0Gdo7Z4xOG987u3nJ8akL9093yEEKv8QTJ+Bhkghj1xyj8cgPaavlr9rq8h7+s6plUJ4QJYw2gCZodqmGw==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- typescript: '>=4.8.4 <6.0.0'
-
- '@typescript-eslint/utils@8.46.3':
- resolution: {integrity: sha512-VXw7qmdkucEx9WkmR3ld/u6VhRyKeiF1uxWwCy/iuNfokjJ7VhsgLSOTjsol8BunSw190zABzpwdNsze2Kpo4g==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- eslint: ^8.57.0 || ^9.0.0
- typescript: '>=4.8.4 <6.0.0'
-
- '@typescript-eslint/visitor-keys@8.46.3':
- resolution: {integrity: sha512-uk574k8IU0rOF/AjniX8qbLSGURJVUCeM5e4MIMKBFFi8weeiLrG1fyQejyLXQpRZbU/1BuQasleV/RfHC3hHg==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@typescript-eslint/visitor-keys@8.53.0':
- resolution: {integrity: sha512-LZ2NqIHFhvFwxG0qZeLL9DvdNAHPGCY5dIRwBhyYeU+LfLhcStE1ImjsuTG/WaVh3XysGaeLW8Rqq7cGkPCFvw==}
+ '@typescript-eslint/visitor-keys@8.56.0':
+ resolution: {integrity: sha512-q+SL+b+05Ud6LbEE35qe4A99P+htKTKVbyiNEe45eCbJFyh/HVK9QXwlrbz+Q4L8SOW4roxSVwXYj4DMBT7Ieg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@unblockneteasemusic/server@0.28.0':
@@ -413,8 +379,8 @@ packages:
engines: {node: '>=0.4.0'}
hasBin: true
- acorn@8.15.0:
- resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==}
+ acorn@8.16.0:
+ resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==}
engines: {node: '>=0.4.0'}
hasBin: true
@@ -426,8 +392,8 @@ packages:
resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==}
engines: {node: '>= 14'}
- ajv@6.12.6:
- resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
+ ajv@6.14.0:
+ resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==}
amdefine@1.0.1:
resolution: {integrity: sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==}
@@ -518,6 +484,10 @@ packages:
balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+ balanced-match@4.0.4:
+ resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==}
+ engines: {node: 18 || 20 || >=22}
+
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
@@ -543,8 +513,9 @@ packages:
brace-expansion@1.1.12:
resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==}
- brace-expansion@2.0.2:
- resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==}
+ brace-expansion@5.0.3:
+ resolution: {integrity: sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==}
+ engines: {node: 18 || 20 || >=22}
braces@3.0.3:
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
@@ -825,8 +796,8 @@ packages:
domutils@3.2.2:
resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==}
- dotenv@17.2.4:
- resolution: {integrity: sha512-mudtfb4zRB4bVvdj0xRo+e6duH1csJRM8IukBqfTRvHotn9+LBXB8ynAidP9zHqoRC/fsllXgk4kCKlR21fIhw==}
+ dotenv@17.3.1:
+ resolution: {integrity: sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==}
engines: {node: '>=12'}
dunder-proto@1.0.1:
@@ -962,8 +933,8 @@ packages:
peerDependencies:
eslint: '>=7.0.0'
- eslint-plugin-html@8.1.3:
- resolution: {integrity: sha512-cnCdO7yb/jrvgSJJAfRkGDOwLu1AOvNdw8WCD6nh/2C4RnxuI4tz6QjMEAmmSiHSeugq/fXcIO8yBpIBQrMZCg==}
+ eslint-plugin-html@8.1.4:
+ resolution: {integrity: sha512-Eno3oPEj3s6AhvDJ5zHhnHPDvXp6LNFXuy3w51fNebOKYuTrfjOHUGwP+mOrGFpR6eOJkO1xkB8ivtbfMjbMjg==}
engines: {node: '>=16.0.0'}
eslint-plugin-prettier@5.5.5:
@@ -992,8 +963,12 @@ packages:
resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- eslint@9.39.0:
- resolution: {integrity: sha512-iy2GE3MHrYTL5lrCtMZ0X1KLEKKUjmK0kzwcnefhR66txcEmXZD2YWgR5GNdcEwkNx3a0siYkSvl0vIC+Svjmg==}
+ eslint-visitor-keys@5.0.1:
+ resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+
+ eslint@9.39.3:
+ resolution: {integrity: sha512-VmQ+sifHUbI/IcSopBCF/HO3YiHQx/AVd3UVyYL6weuwW+HvON9VYn5l6Zl1WZzPWXPNZrSQpxwkkZ/VuvJZzg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
hasBin: true
peerDependencies:
@@ -1229,8 +1204,8 @@ 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==}
+ get-east-asian-width@1.5.0:
+ resolution: {integrity: sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==}
engines: {node: '>=18'}
get-intrinsic@1.3.0:
@@ -1288,9 +1263,6 @@ packages:
graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
- graphemer@1.4.0:
- resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
-
has-bigints@1.1.0:
resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==}
engines: {node: '>= 0.4'}
@@ -1698,18 +1670,22 @@ packages:
resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
engines: {node: '>=10'}
- minimatch@3.1.2:
- resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+ minimatch@10.2.2:
+ resolution: {integrity: sha512-+G4CpNBxa5MprY+04MbgOw1v7So6n5JY166pFi9KfYwT78fxScCeSNQSNzp6dpPSW2rONOps6Ocam1wFhCgoVw==}
+ engines: {node: 18 || 20 || >=22}
- minimatch@9.0.5:
- resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
+ minimatch@3.1.3:
+ resolution: {integrity: sha512-M2GCs7Vk83NxkUyQV1bkABc4yxgz9kILhHImZiBPAZ9ybuvCb0/H7lEl5XvIg3g+9d4eNotkZA5IWwYl0tibaA==}
+
+ minimatch@9.0.6:
+ resolution: {integrity: sha512-kQAVowdR33euIqeA0+VZTDqU+qo1IeVY+hrKYtZMio3Pg0P0vuh/kwRylLUddJhB6pf3q/botcOvRtx4IN1wqQ==}
engines: {node: '>=16 || 14 >=14.17'}
minimist@1.2.8:
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
- minipass@7.1.2:
- resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
+ minipass@7.1.3:
+ resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==}
engines: {node: '>=16 || 14 >=14.17'}
mkdirp-classic@0.5.3:
@@ -1736,8 +1712,8 @@ packages:
multistream@4.1.0:
resolution: {integrity: sha512-J1XDiAmmNpRCBfIWJv+n0ymC4ABcf/Pl+5YvC5B/D2f/2+8PtHvCNxMPKiQcZyi922Hq69J2YOpb1pTywfifyw==}
- music-metadata@11.12.0:
- resolution: {integrity: sha512-9ChYnmVmyHvFxR2g0MWFSHmJfbssRy07457G4gbb4LA9WYvyZea/8EMbqvg5dcv4oXNCNL01m8HXtymLlhhkYg==}
+ music-metadata@11.12.1:
+ resolution: {integrity: sha512-j++ltLxHDb5VCXET9FzQ8bnueiLHwQKgCO7vcbkRH/3F7fRjPkv6qncGEJ47yFhmemcYtgvsOAlcQ1dRBTkDjg==}
engines: {node: '>=18'}
nano-spawn@2.0.0:
@@ -1785,8 +1761,8 @@ packages:
node-windows@1.0.0-beta.8:
resolution: {integrity: sha512-uLekXnSeem3nW5escID224Fd0U/1VtvE796JpSpOY+c73Cslz/Qn2WUHRJyPQJEMrNGAy/FMRFjjhh4z1alZTA==}
- nodemon@3.1.11:
- resolution: {integrity: sha512-is96t8F/1//UHAjNPHpbsNY46ELPpftGUoSVNXwUfMk/qdjSylYrWSu1XavVTBOn526kFiOR733ATgNBCQyH0g==}
+ nodemon@3.1.14:
+ resolution: {integrity: sha512-jakjZi93UtB3jHMWsXL68FXSAosbLfY0In5gtKq3niLSkrWznrVBzXFNOEMJUfc9+Ke7SHWoAZsiMkNP3vq6Jw==}
engines: {node: '>=10'}
hasBin: true
@@ -1995,6 +1971,7 @@ packages:
prebuild-install@7.1.1:
resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==}
engines: {node: '>=10'}
+ deprecated: No longer maintained. Please contact the author of the relevant native addon; alternatives are available.
hasBin: true
prelude-ls@1.1.2:
@@ -2009,8 +1986,8 @@ packages:
resolution: {integrity: sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==}
engines: {node: '>=6.0.0'}
- prettier@3.7.4:
- resolution: {integrity: sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==}
+ prettier@3.8.1:
+ resolution: {integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==}
engines: {node: '>=14'}
hasBin: true
@@ -2046,8 +2023,12 @@ packages:
engines: {node: '>=10.13.0'}
hasBin: true
- qs@6.14.1:
- resolution: {integrity: sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==}
+ qs@6.14.2:
+ resolution: {integrity: sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==}
+ engines: {node: '>=0.6'}
+
+ qs@6.15.0:
+ resolution: {integrity: sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==}
engines: {node: '>=0.6'}
queue-microtask@1.2.3:
@@ -2322,8 +2303,8 @@ packages:
resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==}
engines: {node: '>=18'}
- string-width@8.1.1:
- resolution: {integrity: sha512-KpqHIdDL9KwYk22wEOg/VIqYbrnLeSApsKT/bSj6Ez7pn3CftUiLAv2Lccpq1ALcpLV9UX1Ppn92npZWu2w/aw==}
+ string-width@8.2.0:
+ resolution: {integrity: sha512-6hJPQ8N0V0P3SNmP6h2J99RLuzrWz2gvT7VnK5tKvrNqJoyS9W4/Fb8mo31UiPvy00z7DQXkP2hnKBVav76thw==}
engines: {node: '>=20'}
string.prototype.trim@1.2.10:
@@ -2677,9 +2658,9 @@ snapshots:
'@borewit/text-codec@0.2.1': {}
- '@eslint-community/eslint-utils@4.9.1(eslint@9.39.0)':
+ '@eslint-community/eslint-utils@4.9.1(eslint@9.39.3)':
dependencies:
- eslint: 9.39.0
+ eslint: 9.39.3
eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.12.2': {}
@@ -2688,7 +2669,7 @@ snapshots:
dependencies:
'@eslint/object-schema': 2.1.7
debug: 4.4.3
- minimatch: 3.1.2
+ minimatch: 3.1.3
transitivePeerDependencies:
- supports-color
@@ -2702,21 +2683,19 @@ snapshots:
'@eslint/eslintrc@3.3.3':
dependencies:
- ajv: 6.12.6
+ ajv: 6.14.0
debug: 4.4.3
espree: 10.4.0
globals: 14.0.0
ignore: 5.3.2
import-fresh: 3.3.1
js-yaml: 4.1.1
- minimatch: 3.1.2
+ minimatch: 3.1.3
strip-json-comments: 3.1.1
transitivePeerDependencies:
- supports-color
- '@eslint/js@9.39.0': {}
-
- '@eslint/js@9.39.2': {}
+ '@eslint/js@9.39.3': {}
'@eslint/object-schema@2.1.7': {}
@@ -2759,7 +2738,7 @@ snapshots:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.5
- '@neteasecloudmusicapienhanced/unblockmusic-utils@0.2.2':
+ '@neteasecloudmusicapienhanced/unblockmusic-utils@0.2.3':
dependencies:
'@unblockneteasemusic/server': 0.28.0
axios: 1.13.5
@@ -2853,16 +2832,15 @@ snapshots:
'@types/http-errors': 2.0.5
'@types/node': 25.0.9
- '@typescript-eslint/eslint-plugin@8.46.3(@typescript-eslint/parser@8.53.0(eslint@9.39.0)(typescript@5.9.3))(eslint@9.39.0)(typescript@5.9.3)':
+ '@typescript-eslint/eslint-plugin@8.56.0(@typescript-eslint/parser@8.56.0(eslint@9.39.3)(typescript@5.9.3))(eslint@9.39.3)(typescript@5.9.3)':
dependencies:
'@eslint-community/regexpp': 4.12.2
- '@typescript-eslint/parser': 8.53.0(eslint@9.39.0)(typescript@5.9.3)
- '@typescript-eslint/scope-manager': 8.46.3
- '@typescript-eslint/type-utils': 8.46.3(eslint@9.39.0)(typescript@5.9.3)
- '@typescript-eslint/utils': 8.46.3(eslint@9.39.0)(typescript@5.9.3)
- '@typescript-eslint/visitor-keys': 8.46.3
- eslint: 9.39.0
- graphemer: 1.4.0
+ '@typescript-eslint/parser': 8.56.0(eslint@9.39.3)(typescript@5.9.3)
+ '@typescript-eslint/scope-manager': 8.56.0
+ '@typescript-eslint/type-utils': 8.56.0(eslint@9.39.3)(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.56.0(eslint@9.39.3)(typescript@5.9.3)
+ '@typescript-eslint/visitor-keys': 8.56.0
+ eslint: 9.39.3
ignore: 7.0.5
natural-compare: 1.4.0
ts-api-utils: 2.4.0(typescript@5.9.3)
@@ -2870,94 +2848,58 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@8.53.0(eslint@9.39.0)(typescript@5.9.3)':
+ '@typescript-eslint/parser@8.56.0(eslint@9.39.3)(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/scope-manager': 8.53.0
- '@typescript-eslint/types': 8.53.0
- '@typescript-eslint/typescript-estree': 8.53.0(typescript@5.9.3)
- '@typescript-eslint/visitor-keys': 8.53.0
+ '@typescript-eslint/scope-manager': 8.56.0
+ '@typescript-eslint/types': 8.56.0
+ '@typescript-eslint/typescript-estree': 8.56.0(typescript@5.9.3)
+ '@typescript-eslint/visitor-keys': 8.56.0
debug: 4.4.3
- eslint: 9.39.0
+ eslint: 9.39.3
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/project-service@8.46.3(typescript@5.9.3)':
+ '@typescript-eslint/project-service@8.56.0(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/tsconfig-utils': 8.53.0(typescript@5.9.3)
- '@typescript-eslint/types': 8.53.0
+ '@typescript-eslint/tsconfig-utils': 8.56.0(typescript@5.9.3)
+ '@typescript-eslint/types': 8.56.0
debug: 4.4.3
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/project-service@8.53.0(typescript@5.9.3)':
+ '@typescript-eslint/scope-manager@8.56.0':
dependencies:
- '@typescript-eslint/tsconfig-utils': 8.53.0(typescript@5.9.3)
- '@typescript-eslint/types': 8.53.0
+ '@typescript-eslint/types': 8.56.0
+ '@typescript-eslint/visitor-keys': 8.56.0
+
+ '@typescript-eslint/tsconfig-utils@8.56.0(typescript@5.9.3)':
+ dependencies:
+ typescript: 5.9.3
+
+ '@typescript-eslint/type-utils@8.56.0(eslint@9.39.3)(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/types': 8.56.0
+ '@typescript-eslint/typescript-estree': 8.56.0(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.56.0(eslint@9.39.3)(typescript@5.9.3)
debug: 4.4.3
- typescript: 5.9.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/scope-manager@8.46.3':
- dependencies:
- '@typescript-eslint/types': 8.46.3
- '@typescript-eslint/visitor-keys': 8.46.3
-
- '@typescript-eslint/scope-manager@8.53.0':
- dependencies:
- '@typescript-eslint/types': 8.53.0
- '@typescript-eslint/visitor-keys': 8.53.0
-
- '@typescript-eslint/tsconfig-utils@8.46.3(typescript@5.9.3)':
- dependencies:
- typescript: 5.9.3
-
- '@typescript-eslint/tsconfig-utils@8.53.0(typescript@5.9.3)':
- dependencies:
- typescript: 5.9.3
-
- '@typescript-eslint/type-utils@8.46.3(eslint@9.39.0)(typescript@5.9.3)':
- dependencies:
- '@typescript-eslint/types': 8.46.3
- '@typescript-eslint/typescript-estree': 8.46.3(typescript@5.9.3)
- '@typescript-eslint/utils': 8.46.3(eslint@9.39.0)(typescript@5.9.3)
- debug: 4.4.3
- eslint: 9.39.0
+ eslint: 9.39.3
ts-api-utils: 2.4.0(typescript@5.9.3)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/types@8.46.3': {}
+ '@typescript-eslint/types@8.56.0': {}
- '@typescript-eslint/types@8.53.0': {}
-
- '@typescript-eslint/typescript-estree@8.46.3(typescript@5.9.3)':
+ '@typescript-eslint/typescript-estree@8.56.0(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/project-service': 8.46.3(typescript@5.9.3)
- '@typescript-eslint/tsconfig-utils': 8.46.3(typescript@5.9.3)
- '@typescript-eslint/types': 8.46.3
- '@typescript-eslint/visitor-keys': 8.46.3
+ '@typescript-eslint/project-service': 8.56.0(typescript@5.9.3)
+ '@typescript-eslint/tsconfig-utils': 8.56.0(typescript@5.9.3)
+ '@typescript-eslint/types': 8.56.0
+ '@typescript-eslint/visitor-keys': 8.56.0
debug: 4.4.3
- fast-glob: 3.3.3
- is-glob: 4.0.3
- minimatch: 9.0.5
- semver: 7.7.4
- ts-api-utils: 2.4.0(typescript@5.9.3)
- typescript: 5.9.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/typescript-estree@8.53.0(typescript@5.9.3)':
- dependencies:
- '@typescript-eslint/project-service': 8.53.0(typescript@5.9.3)
- '@typescript-eslint/tsconfig-utils': 8.53.0(typescript@5.9.3)
- '@typescript-eslint/types': 8.53.0
- '@typescript-eslint/visitor-keys': 8.53.0
- debug: 4.4.3
- minimatch: 9.0.5
+ minimatch: 9.0.6
semver: 7.7.4
tinyglobby: 0.2.15
ts-api-utils: 2.4.0(typescript@5.9.3)
@@ -2965,26 +2907,21 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.46.3(eslint@9.39.0)(typescript@5.9.3)':
+ '@typescript-eslint/utils@8.56.0(eslint@9.39.3)(typescript@5.9.3)':
dependencies:
- '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.0)
- '@typescript-eslint/scope-manager': 8.46.3
- '@typescript-eslint/types': 8.46.3
- '@typescript-eslint/typescript-estree': 8.46.3(typescript@5.9.3)
- eslint: 9.39.0
+ '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.3)
+ '@typescript-eslint/scope-manager': 8.56.0
+ '@typescript-eslint/types': 8.56.0
+ '@typescript-eslint/typescript-estree': 8.56.0(typescript@5.9.3)
+ eslint: 9.39.3
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/visitor-keys@8.46.3':
+ '@typescript-eslint/visitor-keys@8.56.0':
dependencies:
- '@typescript-eslint/types': 8.46.3
- eslint-visitor-keys: 4.2.1
-
- '@typescript-eslint/visitor-keys@8.53.0':
- dependencies:
- '@typescript-eslint/types': 8.53.0
- eslint-visitor-keys: 4.2.1
+ '@typescript-eslint/types': 8.56.0
+ eslint-visitor-keys: 5.0.1
'@unblockneteasemusic/server@0.28.0':
dependencies:
@@ -3004,13 +2941,13 @@ snapshots:
acorn-es7-plugin@1.1.7: {}
- acorn-jsx@5.3.2(acorn@8.15.0):
+ acorn-jsx@5.3.2(acorn@8.16.0):
dependencies:
- acorn: 8.15.0
+ acorn: 8.16.0
acorn@5.7.4: {}
- acorn@8.15.0: {}
+ acorn@8.16.0: {}
agent-base@6.0.2:
dependencies:
@@ -3020,7 +2957,7 @@ snapshots:
agent-base@7.1.4: {}
- ajv@6.12.6:
+ ajv@6.14.0:
dependencies:
fast-deep-equal: 3.1.3
fast-json-stable-stringify: 2.1.0
@@ -3110,6 +3047,8 @@ snapshots:
balanced-match@1.0.2: {}
+ balanced-match@4.0.4: {}
+
base64-js@1.5.1: {}
basic-ftp@5.1.0: {}
@@ -3132,7 +3071,7 @@ snapshots:
http-errors: 2.0.1
iconv-lite: 0.4.24
on-finished: 2.4.1
- qs: 6.14.1
+ qs: 6.14.2
raw-body: 2.5.3
type-is: 1.6.18
unpipe: 1.0.0
@@ -3147,7 +3086,7 @@ snapshots:
http-errors: 2.0.1
iconv-lite: 0.7.2
on-finished: 2.4.1
- qs: 6.14.1
+ qs: 6.15.0
raw-body: 3.0.2
type-is: 2.0.1
transitivePeerDependencies:
@@ -3158,9 +3097,9 @@ snapshots:
balanced-match: 1.0.2
concat-map: 0.0.1
- brace-expansion@2.0.2:
+ brace-expansion@5.0.3:
dependencies:
- balanced-match: 1.0.2
+ balanced-match: 4.0.4
braces@3.0.3:
dependencies:
@@ -3249,7 +3188,7 @@ snapshots:
cli-truncate@5.1.1:
dependencies:
slice-ansi: 7.1.2
- string-width: 8.1.1
+ string-width: 8.2.0
cliui@6.0.0:
dependencies:
@@ -3447,7 +3386,7 @@ snapshots:
domelementtype: 2.3.0
domhandler: 5.0.3
- dotenv@17.2.4: {}
+ dotenv@17.3.1: {}
dunder-proto@1.0.1:
dependencies:
@@ -3656,22 +3595,22 @@ snapshots:
esrecurse: 4.3.0
estraverse: 4.3.0
- eslint-config-prettier@10.1.8(eslint@9.39.0):
+ eslint-config-prettier@10.1.8(eslint@9.39.3):
dependencies:
- eslint: 9.39.0
+ eslint: 9.39.3
- eslint-plugin-html@8.1.3:
+ eslint-plugin-html@8.1.4:
dependencies:
htmlparser2: 10.1.0
- eslint-plugin-prettier@5.5.5(eslint-config-prettier@10.1.8(eslint@9.39.0))(eslint@9.39.0)(prettier@3.7.4):
+ eslint-plugin-prettier@5.5.5(eslint-config-prettier@10.1.8(eslint@9.39.3))(eslint@9.39.3)(prettier@3.8.1):
dependencies:
- eslint: 9.39.0
- prettier: 3.7.4
+ eslint: 9.39.3
+ prettier: 3.8.1
prettier-linter-helpers: 1.0.1
synckit: 0.11.12
optionalDependencies:
- eslint-config-prettier: 10.1.8(eslint@9.39.0)
+ eslint-config-prettier: 10.1.8(eslint@9.39.3)
eslint-scope@8.4.0:
dependencies:
@@ -3682,21 +3621,23 @@ snapshots:
eslint-visitor-keys@4.2.1: {}
- eslint@9.39.0:
+ eslint-visitor-keys@5.0.1: {}
+
+ eslint@9.39.3:
dependencies:
- '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.0)
+ '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.3)
'@eslint-community/regexpp': 4.12.2
'@eslint/config-array': 0.21.1
'@eslint/config-helpers': 0.4.2
'@eslint/core': 0.17.0
'@eslint/eslintrc': 3.3.3
- '@eslint/js': 9.39.0
+ '@eslint/js': 9.39.3
'@eslint/plugin-kit': 0.4.1
'@humanfs/node': 0.16.7
'@humanwhocodes/module-importer': 1.0.1
'@humanwhocodes/retry': 0.4.3
'@types/estree': 1.0.8
- ajv: 6.12.6
+ ajv: 6.14.0
chalk: 4.1.2
cross-spawn: 7.0.6
debug: 4.4.3
@@ -3715,7 +3656,7 @@ snapshots:
is-glob: 4.0.3
json-stable-stringify-without-jsonify: 1.0.1
lodash.merge: 4.6.2
- minimatch: 3.1.2
+ minimatch: 3.1.3
natural-compare: 1.4.0
optionator: 0.9.4
transitivePeerDependencies:
@@ -3732,7 +3673,7 @@ snapshots:
dependencies:
convert-source-map: 1.9.0
espower-source: 2.3.0
- minimatch: 3.1.2
+ minimatch: 3.1.3
source-map-support: 0.4.18
xtend: 4.0.2
@@ -3771,8 +3712,8 @@ snapshots:
espree@10.4.0:
dependencies:
- acorn: 8.15.0
- acorn-jsx: 5.3.2(acorn@8.15.0)
+ acorn: 8.16.0
+ acorn-jsx: 5.3.2(acorn@8.16.0)
eslint-visitor-keys: 4.2.1
esprima@2.7.3: {}
@@ -3835,7 +3776,7 @@ snapshots:
parseurl: 1.3.3
path-to-regexp: 0.1.12
proxy-addr: 2.0.7
- qs: 6.14.1
+ qs: 6.14.2
range-parser: 1.2.1
safe-buffer: 5.2.1
send: 0.19.2
@@ -3870,7 +3811,7 @@ snapshots:
once: 1.4.0
parseurl: 1.3.3
proxy-addr: 2.0.7
- qs: 6.14.1
+ qs: 6.15.0
range-parser: 1.2.1
router: 2.2.0
send: 1.2.1
@@ -4033,7 +3974,7 @@ snapshots:
get-caller-file@2.0.5: {}
- get-east-asian-width@1.4.0: {}
+ get-east-asian-width@1.5.0: {}
get-intrinsic@1.3.0:
dependencies:
@@ -4081,8 +4022,8 @@ snapshots:
dependencies:
foreground-child: 3.3.1
jackspeak: 3.4.3
- minimatch: 9.0.5
- minipass: 7.1.2
+ minimatch: 9.0.6
+ minipass: 7.1.3
package-json-from-dist: 1.0.1
path-scurry: 1.11.1
@@ -4108,8 +4049,6 @@ snapshots:
graceful-fs@4.2.11: {}
- graphemer@1.4.0: {}
-
has-bigints@1.1.0: {}
has-flag@3.0.0: {}
@@ -4289,7 +4228,7 @@ snapshots:
is-fullwidth-code-point@5.1.0:
dependencies:
- get-east-asian-width: 1.4.0
+ get-east-asian-width: 1.5.0
is-generator-function@1.1.2:
dependencies:
@@ -4496,17 +4435,21 @@ snapshots:
mimic-response@3.1.0: {}
- minimatch@3.1.2:
+ minimatch@10.2.2:
+ dependencies:
+ brace-expansion: 5.0.3
+
+ minimatch@3.1.3:
dependencies:
brace-expansion: 1.1.12
- minimatch@9.0.5:
+ minimatch@9.0.6:
dependencies:
- brace-expansion: 2.0.2
+ brace-expansion: 5.0.3
minimist@1.2.8: {}
- minipass@7.1.2: {}
+ minipass@7.1.3: {}
mkdirp-classic@0.5.3: {}
@@ -4523,7 +4466,7 @@ snapshots:
is-path-inside: 3.0.3
js-yaml: 4.1.1
log-symbols: 4.1.0
- minimatch: 9.0.5
+ minimatch: 9.0.6
ms: 2.1.3
picocolors: 1.1.1
serialize-javascript: 6.0.2
@@ -4549,7 +4492,7 @@ snapshots:
once: 1.4.0
readable-stream: 3.6.2
- music-metadata@11.12.0:
+ music-metadata@11.12.1:
dependencies:
'@borewit/text-codec': 0.2.1
'@tokenizer/token': 0.3.0
@@ -4593,12 +4536,12 @@ snapshots:
xml: 1.0.1
yargs: 17.7.2
- nodemon@3.1.11:
+ nodemon@3.1.14:
dependencies:
chokidar: 3.6.0
debug: 4.4.3(supports-color@5.5.0)
ignore-by-default: 1.0.1
- minimatch: 3.1.2
+ minimatch: 10.2.2
pstree.remy: 1.1.8
semver: 7.7.4
simple-update-notifier: 2.0.0
@@ -4721,7 +4664,7 @@ snapshots:
path-scurry@1.11.1:
dependencies:
lru-cache: 10.4.3
- minipass: 7.1.2
+ minipass: 7.1.3
path-to-regexp@0.1.12: {}
@@ -4897,7 +4840,7 @@ snapshots:
dependencies:
fast-diff: 1.3.0
- prettier@3.7.4: {}
+ prettier@3.8.1: {}
process-nextick-args@2.0.1: {}
@@ -4927,7 +4870,11 @@ snapshots:
pngjs: 5.0.0
yargs: 15.4.1
- qs@6.14.1:
+ qs@6.14.2:
+ dependencies:
+ side-channel: 1.1.0
+
+ qs@6.15.0:
dependencies:
side-channel: 1.1.0
@@ -5280,12 +5227,12 @@ snapshots:
string-width@7.2.0:
dependencies:
emoji-regex: 10.6.0
- get-east-asian-width: 1.4.0
+ get-east-asian-width: 1.5.0
strip-ansi: 7.1.2
- string-width@8.1.1:
+ string-width@8.2.0:
dependencies:
- get-east-asian-width: 1.4.0
+ get-east-asian-width: 1.5.0
strip-ansi: 7.1.2
string.prototype.trim@1.2.10:
diff --git a/public/docs/index.html b/public/docs/index.html
index 9ef5ffb..e6cf90a 100644
--- a/public/docs/index.html
+++ b/public/docs/index.html
@@ -5,7 +5,7 @@
网易云音乐 NodeJS API Enhanced
-
+
diff --git a/public/docs/logo.svg b/public/docs/logo.svg
new file mode 100644
index 0000000..88b0c63
--- /dev/null
+++ b/public/docs/logo.svg
@@ -0,0 +1,6 @@
+
diff --git a/public/docs/ncmapireborn.png b/public/docs/ncmapireborn.png
deleted file mode 100644
index d32dda9..0000000
Binary files a/public/docs/ncmapireborn.png and /dev/null differ
diff --git a/public/docs/netease.png b/public/docs/netease.png
new file mode 100644
index 0000000..e2db1c2
Binary files /dev/null and b/public/docs/netease.png differ
diff --git a/public/index.html b/public/index.html
index 76189e3..de78a17 100644
--- a/public/index.html
+++ b/public/index.html
@@ -4,6 +4,7 @@
+
网易云音乐 API Enhanced