From a5e5a9a32d77690c35387b2e6003ba49518ca2e4 Mon Sep 17 00:00:00 2001 From: Brandon Corbett Date: Tue, 6 Oct 2026 14:42:28 -0400 Subject: [PATCH] chore: support Node 22 and newer Widen engines.node from >=24.0.0 <25.0.0 to >=22 in every package and run CI on Node 22, 24, and the latest release. Refs fells-code/seamless-auth-api#339. --- .changeset/node-22-support.md | 7 +++++++ .github/workflows/ci.yml | 4 +++- CONTRIBUTING.md | 6 +++--- package-lock.json | 18 +++++++++--------- package.json | 2 +- packages/client/package.json | 2 +- packages/react-native/package.json | 2 +- packages/react/package.json | 2 +- 8 files changed, 26 insertions(+), 17 deletions(-) create mode 100644 .changeset/node-22-support.md diff --git a/.changeset/node-22-support.md b/.changeset/node-22-support.md new file mode 100644 index 0000000..9a5de4c --- /dev/null +++ b/.changeset/node-22-support.md @@ -0,0 +1,7 @@ +--- +'@seamless-auth/client': patch +'@seamless-auth/react': patch +'@seamless-auth/react-native': patch +--- + +Support Node 22 and newer. The `engines` field now requires `>=22` instead of `>=24.0.0 <25.0.0`, and CI runs on Node 22, 24, and the latest release (fells-code/seamless-auth-api#339). diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fcc8811..9054733 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,7 +22,9 @@ jobs: strategy: fail-fast: false matrix: - node-version: [24] + # The supported range is engines >=22: the oldest supported LTS, the + # development default from .nvmrc, and the newest release. + node-version: [22, 24, latest] steps: - name: Checkout repo diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 78796ce..f984ff8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -261,9 +261,9 @@ The workflow: Do not create release tags manually for normal releases. The workflow owns stable package tags after the reviewed release PR is merged. -This package targets a Node 24 baseline. The `engines` field requires Node 24 (`>=24.0.0 <25.0.0`), -`.nvmrc` pins 24, and both CI and release automation run on Node 24 in GitHub Actions. Use Node 24.10 -or newer locally so development and release commands match the workflows. +These packages support Node 22 or newer. The `engines` field requires `>=22`, and CI tests Node 22, +24, and the latest release. `.nvmrc` pins 24, which release automation uses, so use Node 24.10 or +newer locally to match the release workflow. ### npm Publishing diff --git a/package-lock.json b/package-lock.json index 9c07435..e33d163 100644 --- a/package-lock.json +++ b/package-lock.json @@ -54,7 +54,7 @@ "typescript-eslint": "^8.46.1" }, "engines": { - "node": ">=24.0.0 <25.0.0", + "node": ">=22", "npm": ">=9.0.0 <13.0.0" } }, @@ -13866,29 +13866,29 @@ }, "packages/client": { "name": "@seamless-auth/client", - "version": "0.2.0", + "version": "0.3.0", "license": "Apache-2.0", "dependencies": { "@seamless-auth/types": "^0.26.0", "@simplewebauthn/browser": "^13.1.0" }, "engines": { - "node": ">=24.0.0 <25.0.0", + "node": ">=22", "npm": ">=9.0.0 <13.0.0" } }, "packages/react": { "name": "@seamless-auth/react", - "version": "0.14.0", + "version": "0.15.0", "license": "Apache-2.0", "dependencies": { - "@seamless-auth/client": "^0.2.0", + "@seamless-auth/client": "^0.3.0", "@seamless-auth/types": "^0.26.0", "@simplewebauthn/browser": "^13.1.0", "libphonenumber-js": "^1.12.7" }, "engines": { - "node": ">=24.0.0 <25.0.0", + "node": ">=22", "npm": ">=9.0.0 <13.0.0" }, "peerDependencies": { @@ -13904,14 +13904,14 @@ }, "packages/react-native": { "name": "@seamless-auth/react-native", - "version": "0.1.1", + "version": "0.2.0", "license": "Apache-2.0", "dependencies": { - "@seamless-auth/client": "^0.2.0", + "@seamless-auth/client": "^0.3.0", "@seamless-auth/types": "^0.26.0" }, "engines": { - "node": ">=24.0.0 <25.0.0", + "node": ">=22", "npm": ">=9.0.0 <13.0.0" }, "peerDependencies": { diff --git a/package.json b/package.json index e5d0c92..d6f7b63 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "packages/react-native" ], "engines": { - "node": ">=24.0.0 <25.0.0", + "node": ">=22", "npm": ">=9.0.0 <13.0.0" }, "scripts": { diff --git a/packages/client/package.json b/packages/client/package.json index 419ee5c..ac8e9c5 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -17,7 +17,7 @@ "LICENSE" ], "engines": { - "node": ">=24.0.0 <25.0.0", + "node": ">=22", "npm": ">=9.0.0 <13.0.0" }, "scripts": { diff --git a/packages/react-native/package.json b/packages/react-native/package.json index 4634617..60a9170 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -17,7 +17,7 @@ "LICENSE" ], "engines": { - "node": ">=24.0.0 <25.0.0", + "node": ">=22", "npm": ">=9.0.0 <13.0.0" }, "scripts": { diff --git a/packages/react/package.json b/packages/react/package.json index e25015c..3de5db0 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -21,7 +21,7 @@ "LICENSE" ], "engines": { - "node": ">=24.0.0 <25.0.0", + "node": ">=22", "npm": ">=9.0.0 <13.0.0" }, "scripts": {