chore: require Node >=25 and pnpm >=11.3 (#12459)

## Summary

Bump required Node.js to `>=25` and pnpm to `>=11.3`.

## Changes

- **What**: Updated `engines.node` to `>=25`, `engines.pnpm` to
`>=11.3`, and `packageManager` to `pnpm@11.3.0` in `package.json`.
Bumped `.nvmrc` from `24` to `25`.
- **Breaking**: Contributors and CI must now use Node 25+ and pnpm
11.3+.

## Review Focus

CI workflows resolve Node from `.nvmrc`, so they pick up the bump
automatically. Confirm no downstream tooling pins an older Node/pnpm.

---------

Co-authored-by: Amp <amp@ampcode.com>
This commit is contained in:
Alexander Brown
2026-05-25 18:27:28 -07:00
committed by GitHub
parent 8d1a170136
commit 601cec68b9
3 changed files with 11 additions and 4 deletions

2
.nvmrc
View File

@@ -1 +1 @@
24
25

View File

@@ -206,8 +206,8 @@
"zod-to-json-schema": "catalog:"
},
"engines": {
"node": "24.x",
"pnpm": ">=11"
"node": ">=25",
"pnpm": ">=11.3"
},
"packageManager": "pnpm@11.1.1"
"packageManager": "pnpm@11.3.0"
}

View File

@@ -651,6 +651,13 @@ export default defineConfig({
test: {
globals: true,
environment: 'happy-dom',
// Node 25+ enables the Web Storage API by default, which shadows
// happy-dom's localStorage/sessionStorage with a non-functional Proxy.
// See https://github.com/capricorn86/happy-dom/issues/1950
execArgv:
Number(process.versions.node.split('.')[0]) >= 25
? ['--no-experimental-webstorage']
: [],
setupFiles: ['./vitest.setup.ts'],
retry: process.env.CI ? 2 : 0,
include: [