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
This commit is contained in:
Jordan Eldredge 2025-07-07 10:30:13 -07:00 committed by GitHub
parent c2c067588d
commit 8425adaeff
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 15 additions and 16 deletions

View file

@ -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

View file

@ -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

1
.nvmrc Normal file
View file

@ -0,0 +1 @@
22

View file

@ -36,4 +36,4 @@ status = 301
force = true
[build.environment]
NODE_VERSION = "20.9.0"
NODE_VERSION = "22.11.0"

View file

@ -6,7 +6,7 @@
"graphql": "16.8.1"
},
"engines": {
"node": ">=16.0.0"
"node": ">=22.0.0"
},
"scripts": {
"test": "jest",

View file

@ -18,7 +18,7 @@
"author": "Jordan Eldredge <jordan@jordaneldredge.com>",
"license": "MIT",
"engines": {
"node": ">=14.0.0"
"node": ">=22.0.0"
},
"repository": {
"type": "git",

View file

@ -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

View file

@ -44,6 +44,6 @@
]
},
"engines": {
"node": ">=18.0"
"node": ">=22.0.0"
}
}

View file

@ -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: <http://www.perlmonks.org/bare/?node_id=584875>:
@ -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)
> 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)

View file

@ -40,7 +40,7 @@
"author": "Jordan Eldredge",
"license": "ISC",
"engines": {
"node": ">=14.0.0"
"node": ">=22.0.0"
},
"devDependencies": {
"@swc/jest": "^0.2.24",