chore: update deps

This commit is contained in:
ElyPrism 2026-04-05 18:29:29 +08:00
parent 606dc3232e
commit 796befebd2
No known key found for this signature in database
3 changed files with 77 additions and 34 deletions

37
AGENTS.md Normal file
View File

@ -0,0 +1,37 @@
# AGENTS.md
## Setup
```bash
pnpm install
cp .env.example .env
node src/server/generate-cert.js # Generate HTTPS certs for proxy
```
## Run
```bash
pnpm start
```
- Frontend: http://localhost:3000
- Proxy server: http://localhost:9000
## Test
Jest tests exist in `src/server/request.test.js`. No test script in package.json - run with:
```bash
npx jest
```
## Project Structure
- `src/index.js` - Main entry, starts both servers
- `src/server/` - Proxy server (app.js, server.js, hook.js)
- `src/client/` - Frontend static files
## Important Notes
- Requires pnpm (specified in `packageManager` field)
- HTTPS proxy needs `server.crt`/`server.key` generated via `generate-cert.js`
- First-time: must trust the self-signed cert in Netease Music client

View File

@ -6,17 +6,22 @@
"scripts": { "scripts": {
"start": "node src/index.js" "start": "node src/index.js"
}, },
"keywords": ["netease", "music", "api", "clawer"], "keywords": [
"netease",
"music",
"api",
"clawer"
],
"author": "", "author": "",
"license": "MIT", "license": "MIT",
"packageManager": "pnpm@10.28.1", "packageManager": "pnpm@10.28.1",
"dependencies": { "dependencies": {
"express": "^4.18.2", "axios": "^1.14.0",
"dotenv": "^16.3.1",
"ws": "^8.14.2",
"axios": "^1.6.2",
"concurrently": "^8.2.2", "concurrently": "^8.2.2",
"dotenv": "^16.6.1",
"express": "^4.22.1",
"pino": "^6.14.0", "pino": "^6.14.0",
"pino-pretty": "^7.6.1" "pino-pretty": "^7.6.1",
"ws": "^8.20.0"
} }
} }

57
pnpm-lock.yaml generated
View File

@ -9,16 +9,16 @@ importers:
.: .:
dependencies: dependencies:
axios: axios:
specifier: ^1.6.2 specifier: ^1.14.0
version: 1.13.6 version: 1.14.0
concurrently: concurrently:
specifier: ^8.2.2 specifier: ^8.2.2
version: 8.2.2 version: 8.2.2
dotenv: dotenv:
specifier: ^16.3.1 specifier: ^16.6.1
version: 16.6.1 version: 16.6.1
express: express:
specifier: ^4.18.2 specifier: ^4.22.1
version: 4.22.1 version: 4.22.1
pino: pino:
specifier: ^6.14.0 specifier: ^6.14.0
@ -27,13 +27,13 @@ importers:
specifier: ^7.6.1 specifier: ^7.6.1
version: 7.6.1 version: 7.6.1
ws: ws:
specifier: ^8.14.2 specifier: ^8.20.0
version: 8.19.0 version: 8.20.0
packages: packages:
'@babel/runtime@7.28.6': '@babel/runtime@7.29.2':
resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==} resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==}
engines: {node: '>=6.9.0'} engines: {node: '>=6.9.0'}
accepts@1.3.8: accepts@1.3.8:
@ -66,8 +66,8 @@ packages:
resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==}
engines: {node: '>=8.0.0'} engines: {node: '>=8.0.0'}
axios@1.13.6: axios@1.14.0:
resolution: {integrity: sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==} resolution: {integrity: sha512-3Y8yrqLSwjuzpXuZ0oIYZ/XGgLwUIBU3uLvbcpb0pidD9ctpShJd43KSlEEkVQg6DS0G9NKyzOvBfUtDKEyHvQ==}
body-parser@1.20.4: body-parser@1.20.4:
resolution: {integrity: sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==} resolution: {integrity: sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==}
@ -328,8 +328,8 @@ packages:
resolution: {integrity: sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==} resolution: {integrity: sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
lodash@4.17.23: lodash@4.18.1:
resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==}
math-intrinsics@1.1.0: math-intrinsics@1.1.0:
resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
@ -391,8 +391,8 @@ packages:
resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
engines: {node: '>= 0.8'} engines: {node: '>= 0.8'}
path-to-regexp@0.1.12: path-to-regexp@0.1.13:
resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} resolution: {integrity: sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==}
pino-abstract-transport@0.5.0: pino-abstract-transport@0.5.0:
resolution: {integrity: sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==} resolution: {integrity: sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==}
@ -415,8 +415,9 @@ packages:
resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
engines: {node: '>= 0.10'} engines: {node: '>= 0.10'}
proxy-from-env@1.1.0: proxy-from-env@2.1.0:
resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} resolution: {integrity: sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==}
engines: {node: '>=10'}
pump@3.0.4: pump@3.0.4:
resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==} resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==}
@ -574,8 +575,8 @@ packages:
wrappy@1.0.2: wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
ws@8.19.0: ws@8.20.0:
resolution: {integrity: sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==} resolution: {integrity: sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==}
engines: {node: '>=10.0.0'} engines: {node: '>=10.0.0'}
peerDependencies: peerDependencies:
bufferutil: ^4.0.1 bufferutil: ^4.0.1
@ -600,7 +601,7 @@ packages:
snapshots: snapshots:
'@babel/runtime@7.28.6': {} '@babel/runtime@7.29.2': {}
accepts@1.3.8: accepts@1.3.8:
dependencies: dependencies:
@ -630,11 +631,11 @@ snapshots:
atomic-sleep@1.0.0: {} atomic-sleep@1.0.0: {}
axios@1.13.6: axios@1.14.0:
dependencies: dependencies:
follow-redirects: 1.15.11 follow-redirects: 1.15.11
form-data: 4.0.5 form-data: 4.0.5
proxy-from-env: 1.1.0 proxy-from-env: 2.1.0
transitivePeerDependencies: transitivePeerDependencies:
- debug - debug
@ -708,7 +709,7 @@ snapshots:
dependencies: dependencies:
chalk: 4.1.2 chalk: 4.1.2
date-fns: 2.30.0 date-fns: 2.30.0
lodash: 4.17.23 lodash: 4.18.1
rxjs: 7.8.2 rxjs: 7.8.2
shell-quote: 1.8.3 shell-quote: 1.8.3
spawn-command: 0.0.2 spawn-command: 0.0.2
@ -728,7 +729,7 @@ snapshots:
date-fns@2.30.0: date-fns@2.30.0:
dependencies: dependencies:
'@babel/runtime': 7.28.6 '@babel/runtime': 7.29.2
dateformat@4.6.3: {} dateformat@4.6.3: {}
@ -811,7 +812,7 @@ snapshots:
methods: 1.1.2 methods: 1.1.2
on-finished: 2.4.1 on-finished: 2.4.1
parseurl: 1.3.3 parseurl: 1.3.3
path-to-regexp: 0.1.12 path-to-regexp: 0.1.13
proxy-addr: 2.0.7 proxy-addr: 2.0.7
qs: 6.14.2 qs: 6.14.2
range-parser: 1.2.1 range-parser: 1.2.1
@ -918,7 +919,7 @@ snapshots:
leven@2.1.0: {} leven@2.1.0: {}
lodash@4.17.23: {} lodash@4.18.1: {}
math-intrinsics@1.1.0: {} math-intrinsics@1.1.0: {}
@ -958,7 +959,7 @@ snapshots:
parseurl@1.3.3: {} parseurl@1.3.3: {}
path-to-regexp@0.1.12: {} path-to-regexp@0.1.13: {}
pino-abstract-transport@0.5.0: pino-abstract-transport@0.5.0:
dependencies: dependencies:
@ -1000,7 +1001,7 @@ snapshots:
forwarded: 0.2.0 forwarded: 0.2.0
ipaddr.js: 1.9.1 ipaddr.js: 1.9.1
proxy-from-env@1.1.0: {} proxy-from-env@2.1.0: {}
pump@3.0.4: pump@3.0.4:
dependencies: dependencies:
@ -1173,7 +1174,7 @@ snapshots:
wrappy@1.0.2: {} wrappy@1.0.2: {}
ws@8.19.0: {} ws@8.20.0: {}
y18n@5.0.8: {} y18n@5.0.8: {}