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
6 changes: 4 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,11 @@ jobs:
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

# Node 22 is the baseline: jsdom 30 (the vitest DOM environment) requires
# ^22.22.2 || ^24.15.0 || >=26.0.0, and Node 20 is past end-of-life.
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: '20'
node-version: '22'

- name: Install dependencies
run: npm ci --ignore-scripts
Expand Down Expand Up @@ -153,7 +155,7 @@ jobs:

- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: '20'
node-version: '22'

# The e2eTest task executes the wrapper jar (directly and again nested, when Playwright boots
# the demo via the Gradle `run` task) — validate it for the same reason the build job does.
Expand Down
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ The canonical architecture reference is [`DESIGN.md`](./DESIGN.md); per-decision

## Build & test

JDK 21 is required (Gradle's toolchain fetches one if absent). Node ≥ 20 + npm are needed for the browser SDK, which Gradle drives automatically.
JDK 21 is required (Gradle's toolchain fetches one if absent). Node ≥ 22.22.2 + npm are needed for the browser SDK, which Gradle drives automatically.

```sh
./gradlew check # full gate: spotlessCheck + test + jacoco coverage verify
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ docs/ # ADRs, operator guide, threat model
Requirements:

- **JDK 21** — Gradle's toolchain will fetch one if not present.
- **Node ≥ 20** + **npm** — for the browser SDK build, invoked
- **Node ≥ 22.22.2** + **npm** — for the browser SDK build, invoked
automatically by Gradle (`./gradlew :buildPasskeysBrowserSdk`).

Optional, only needed for the JDBI / DynamoDB persistence integration
Expand Down
2 changes: 1 addition & 1 deletion RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ release version (the SDK speaks the same wire contract as that server release).

### Prerequisites (one-time)

- **Node ≥ 20 + npm** (same toolchain the Gradle SDK build uses).
- **Node ≥ 22.22.2 + npm** (same toolchain the Gradle SDK build uses).
- An **npm account** that is a member of the `@pk-auth` org/scope with publish
rights. The package is public scoped (`publishConfig.access = "public"` is set
in `package.json`, so no `--access public` flag is needed).
Expand Down
2 changes: 1 addition & 1 deletion clients/passkeys-browser/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
"access": "public"
},
"engines": {
"node": ">=20"
"node": ">=22.22.2"
},
"scripts": {
"build": "tsup",
Expand Down
Loading