Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/node-22-support.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@seamless-auth/types': patch
---

Support Node 22 and newer. The `engines` field now requires `>=22` instead of `>=24 <25`, and CI runs on Node 22, 24, and the latest release (fells-code/seamless-auth-api#339).
22 changes: 20 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,18 @@ concurrency:

jobs:
ci:
name: Lint, typecheck, test, build
name: Lint, typecheck, test, build (Node ${{ matrix.node-version }})
runs-on: ubuntu-latest
env:
HUSKY: 0

strategy:
fail-fast: false
matrix:
# 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
uses: actions/checkout@v7
Expand All @@ -31,7 +38,7 @@ jobs:
- name: Setup Node
uses: actions/setup-node@v7
with:
node-version-file: '.nvmrc'
node-version: ${{ matrix.node-version }}
cache: npm

- name: Install dependencies
Expand Down Expand Up @@ -59,3 +66,14 @@ jobs:

- name: Verify package contents
run: npm run check-npm-build

# The ruleset on main requires a check with this exact name, which a matrix
# job no longer reports, so this job reports it once every leg is done.
ci-result:
name: Lint, typecheck, test, build
needs: ci
if: always()
runs-on: ubuntu-latest
steps:
- name: Require every Node version to pass
run: test "${{ needs.ci.result }}" = success
4 changes: 2 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,8 +107,8 @@ src/
| Add changeset | `npm run changeset` |
| Pack preview | `npm run check-npm-build` |

- Node version is pinned by `.nvmrc` (Node 24); CI reads it via
`node-version-file`. Run `nvm use` locally to match.
- Supported Node is `>=22`. CI tests 22, 24, and the latest release;
`.nvmrc` pins Node 24 for development and releases. Run `nvm use` locally.
- commitlint enforces Conventional Commits; husky runs lint-staged on commit.
- Releases go through Changesets. See `RELEASES.md` for the flow and for how to
pick the bump.
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ breaking by default. See [Versioning and stability](#versioning-and-stability).

| | |
| -------------------- | ------------------------- |
| Node | 24 (`>=24 <25`) |
| Node | 22 or newer (`>=22`) |
| TypeScript | 5.x |
| Runtime dependencies | `zod@^4` and nothing else |

Expand Down Expand Up @@ -191,7 +191,7 @@ acknowledgement window, and the coordinated disclosure process.
## Development

```bash
nvm use # Node 24, pinned by .nvmrc
nvm use # Node 24 for development, pinned by .nvmrc
npm ci

npm run build # compile to dist/
Expand Down
6 changes: 3 additions & 3 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@
"vitest": "^4.1.1"
},
"engines": {
"node": ">=24 <25"
"node": ">=22"
},
"publishConfig": {
"access": "public",
Expand Down
Loading