From 8425adaefffb1bd127d3bd49592fe65ae35fdb44 Mon Sep 17 00:00:00 2001 From: Jordan Eldredge Date: Mon, 7 Jul 2025 10:30:13 -0700 Subject: [PATCH] Upgrade node 22 lts (#1305) * Upgrade Node.js to v22 LTS across the entire repo - Update CI workflows (.github/workflows/ci.yml, code-size.yml) to use Node.js 22.x - Update Netlify config to use Node.js 22.11.0 - Update all package.json engines to require Node.js 22.0.0+ - Add .nvmrc file with Node.js 22 for local development - Update documentation to reflect Node.js 22+ requirement - Update skin-database scripts to use Node.js 22 - Tested locally with nvm and confirmed builds work correctly Node.js v22 is the current LTS version and provides improved performance and security features. All packages now require Node.js 22+ to ensure consistency across development, CI, and production environments. * Don't update node version here --- .github/workflows/ci.yml | 6 +++--- .github/workflows/code-size.yml | 4 ++-- .nvmrc | 1 + netlify.toml | 2 +- package.json | 2 +- packages/ani-cursor/package.json | 2 +- packages/skin-database/scripts/reload.sh | 4 ++-- packages/webamp-docs/package.json | 2 +- packages/winamp-eqf/README.md | 6 ++---- packages/winamp-eqf/package.json | 2 +- 10 files changed, 15 insertions(+), 16 deletions(-) create mode 100644 .nvmrc diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 722a9d42..4fce335a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,10 +14,10 @@ jobs: uses: pnpm/action-setup@v2 with: version: 9.12.0 - - name: Use Node.js 20.x + - name: Use Node.js 22.x uses: actions/setup-node@v4 with: - node-version: 20.x + node-version: 22.x cache: "pnpm" - name: Install Dependencies run: pnpm install --frozen-lockfile @@ -57,7 +57,7 @@ jobs: version: 9.12.0 - uses: actions/setup-node@v4 with: - node-version: 20.x + node-version: 22.x registry-url: https://registry.npmjs.org/ cache: "pnpm" - name: Install dependencies diff --git a/.github/workflows/code-size.yml b/.github/workflows/code-size.yml index 31be10b1..e86aac99 100644 --- a/.github/workflows/code-size.yml +++ b/.github/workflows/code-size.yml @@ -12,10 +12,10 @@ jobs: uses: pnpm/action-setup@v2 with: version: 9.12.0 - - name: Use Node.js 20.x + - name: Use Node.js 22.x uses: actions/setup-node@v4 with: - node-version: 20.x + node-version: 22.x cache: "pnpm" - name: Install Dependencies run: pnpm install --frozen-lockfile diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 00000000..2bd5a0a9 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +22 diff --git a/netlify.toml b/netlify.toml index bf46ff7d..c80f98a6 100644 --- a/netlify.toml +++ b/netlify.toml @@ -36,4 +36,4 @@ status = 301 force = true [build.environment] -NODE_VERSION = "20.9.0" +NODE_VERSION = "22.11.0" diff --git a/package.json b/package.json index 877d6a26..ffd12b47 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "graphql": "16.8.1" }, "engines": { - "node": ">=16.0.0" + "node": ">=22.0.0" }, "scripts": { "test": "jest", diff --git a/packages/ani-cursor/package.json b/packages/ani-cursor/package.json index 8a44fb42..c9990c57 100644 --- a/packages/ani-cursor/package.json +++ b/packages/ani-cursor/package.json @@ -18,7 +18,7 @@ "author": "Jordan Eldredge ", "license": "MIT", "engines": { - "node": ">=14.0.0" + "node": ">=22.0.0" }, "repository": { "type": "git", diff --git a/packages/skin-database/scripts/reload.sh b/packages/skin-database/scripts/reload.sh index 4c840ff2..4d36298c 100755 --- a/packages/skin-database/scripts/reload.sh +++ b/packages/skin-database/scripts/reload.sh @@ -1,10 +1,10 @@ #!/bin/bash set -euo pipefail -# Switch to Node 20 +# Switch to Node 22 export NVM_DIR="$HOME/.nvm" source "$NVM_DIR/nvm.sh" -nvm use 20 +nvm use 22 # Install dependencies yarn install --frozen-lockfile diff --git a/packages/webamp-docs/package.json b/packages/webamp-docs/package.json index a2df40db..76c0c643 100644 --- a/packages/webamp-docs/package.json +++ b/packages/webamp-docs/package.json @@ -44,6 +44,6 @@ ] }, "engines": { - "node": ">=18.0" + "node": ">=22.0.0" } } diff --git a/packages/winamp-eqf/README.md b/packages/winamp-eqf/README.md index 53020ba8..58e7e27b 100644 --- a/packages/winamp-eqf/README.md +++ b/packages/winamp-eqf/README.md @@ -11,7 +11,7 @@ npm install --save winamp-eqf ## Usage ```typescript -import { parser, creator, EqfData, CreateEqfData } from 'winamp-eqf'; +import { parser, creator, EqfData, CreateEqfData } from "winamp-eqf"; // ... Get your .eqf or .q1 file as an ArrayBuffer const eqf: EqfData = parser(eqfArrayBuffer); @@ -58,8 +58,6 @@ This package is written in TypeScript and provides full type definitions. `eqfObject` is an object with the same shape as that returned by `parser()`. - - ## Source Material Starting with this spec found here: : @@ -87,4 +85,4 @@ And then via direct message: > Will do it here as I can type a bit more, but the only obvious thing wrong with the link is the signature assumption as it's not guaranteed to be 'entry1' As you can have multiple eq blocks in a file. -> If you've looked at winamp.q1 you should see multiple presets in that file which follow one after each other so the file signature (winamp.q1 or a specific *.eqf file) is "Winamp EQ library file v1.1\x1A!--" (pulled that out from the disassembler) it's then a 257 byte buffer (256 + null character to terminate correctly) then the 10 byte block relating to the eq sliders (need to double-check the range base) followed by the 1 byte for the preamp slider then if there's more presets in the file, they follow on immediately after with the name block looking at the preamp slider, -12dB = 0x3F, 0dB = 0x1F, 12dB = 0 (so a 0-63 range) that seems to be the same for the other sliders (and matches 1:1 with the sdk details) and I think that's it :) in the winamp.q1 file, the 'default' entry is either a flat preset or what's been saved after customisation (in-case you're wanting to mirror the native behaviour via the preset -> save -> default action) \ No newline at end of file +> If you've looked at winamp.q1 you should see multiple presets in that file which follow one after each other so the file signature (winamp.q1 or a specific \*.eqf file) is "Winamp EQ library file v1.1\x1A!--" (pulled that out from the disassembler) it's then a 257 byte buffer (256 + null character to terminate correctly) then the 10 byte block relating to the eq sliders (need to double-check the range base) followed by the 1 byte for the preamp slider then if there's more presets in the file, they follow on immediately after with the name block looking at the preamp slider, -12dB = 0x3F, 0dB = 0x1F, 12dB = 0 (so a 0-63 range) that seems to be the same for the other sliders (and matches 1:1 with the sdk details) and I think that's it :) in the winamp.q1 file, the 'default' entry is either a flat preset or what's been saved after customisation (in-case you're wanting to mirror the native behaviour via the preset -> save -> default action) diff --git a/packages/winamp-eqf/package.json b/packages/winamp-eqf/package.json index 07522ec6..988ba1b2 100644 --- a/packages/winamp-eqf/package.json +++ b/packages/winamp-eqf/package.json @@ -40,7 +40,7 @@ "author": "Jordan Eldredge", "license": "ISC", "engines": { - "node": ">=14.0.0" + "node": ">=22.0.0" }, "devDependencies": { "@swc/jest": "^0.2.24",