From 601cec68b942a23d620ee63e7bb4da02761850af Mon Sep 17 00:00:00 2001 From: Alexander Brown Date: Mon, 25 May 2026 18:27:28 -0700 Subject: [PATCH] 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 --- .nvmrc | 2 +- package.json | 6 +++--- vite.config.mts | 7 +++++++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.nvmrc b/.nvmrc index a45fd52cc5..7273c0fa8c 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -24 +25 diff --git a/package.json b/package.json index a8e3e84f56..1ad12fed40 100644 --- a/package.json +++ b/package.json @@ -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" } diff --git a/vite.config.mts b/vite.config.mts index 4313a0111c..848a07a3b6 100644 --- a/vite.config.mts +++ b/vite.config.mts @@ -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: [