From f3e1f3d0bcc18b905707c8b3fdca67f38e201d8f Mon Sep 17 00:00:00 2001 From: Joe Fusco Date: Tue, 20 Oct 2026 09:14:13 -0400 Subject: [PATCH 1/3] feat!: require Node.js 22 or newer Raise engines.node to >=22 in @faustwp/core, @faustwp/cli, @faustwp/blocks, the root package and the examples, and drop the vitest override the examples only needed for npm 10.8 on Node.js 20. BREAKING CHANGE: @faustwp/core, @faustwp/cli and @faustwp/blocks now require Node.js 22 or newer. Sites that need to stay on Node.js 20 can keep using core and cli 3.x and blocks 6.x. --- README.md | 2 +- docs/explanation/deploy-your-app/index.md | 2 +- examples/next/block-support/package.json | 5 ++--- examples/next/faustwp-getting-started/package.json | 5 +---- package-lock.json | 10 +++++----- package.json | 2 +- packages/blocks/package.json | 2 +- packages/faustwp-cli/package.json | 2 +- packages/faustwp-core/package.json | 2 +- 9 files changed, 14 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 9e8abcc3b..0df4195c9 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ Faust.js is a toolkit for building Next.js applications for headless WordPress s ### Front end -- Node.js 22 or newer and npm 8 or newer. Node.js 20 and older have reached end of life and are no longer tested. +- Node.js 22 or newer and npm 8 or newer. `@faustwp/core` and `@faustwp/cli` 4.x and `@faustwp/blocks` 7.x require Node.js 22. If you need to stay on Node.js 20, which has reached end of life, use core and cli 3.x and blocks 6.x. - Next.js 12.1.6 or newer with the Pages Router (15.5.5 or newer if you use `@faustwp/blocks`). The examples and tests use Next.js 16. - React 17.0.2 or newer, and at least the version your Next.js release requires (18.2 for Next.js 16). - Apollo Client 3.6.6 or newer, below 4 (3.14 or newer if you use `@faustwp/blocks`). diff --git a/docs/explanation/deploy-your-app/index.md b/docs/explanation/deploy-your-app/index.md index c187a5af3..bfa6658d5 100644 --- a/docs/explanation/deploy-your-app/index.md +++ b/docs/explanation/deploy-your-app/index.md @@ -7,7 +7,7 @@ The following explains the various options for deploying your Faust.js App to pr ## Picking The Right Node.js Version -Faust.js supports Node.js 22 or newer, so check that your hosting provider builds and runs your app on a compatible version. Node.js 20 and older have reached end of life and are no longer tested. The [latest LTS version](https://nodejs.org/en/about/previous-releases) of Node.js is recommended. +Faust.js requires Node.js 22 or newer, so check that your hosting provider builds and runs your app on a compatible version. Node.js 20 has reached end of life; sites that need to stay on it can use `@faustwp/core` and `@faustwp/cli` 3.x and `@faustwp/blocks` 6.x. The [latest LTS version](https://nodejs.org/en/about/previous-releases) of Node.js is recommended. ## Building Your App diff --git a/examples/next/block-support/package.json b/examples/next/block-support/package.json index bdfcd31fa..90b10a67c 100644 --- a/examples/next/block-support/package.json +++ b/examples/next/block-support/package.json @@ -31,7 +31,7 @@ "@wordpress/scripts": "^32.5.0" }, "engines": { - "node": ">=20.9.0", + "node": ">=22", "npm": ">=10" }, "overrides": { @@ -49,8 +49,7 @@ "linkify-it": ">=5.0.1", "markdown-it": ">=14.2.0", "markdownlint": ">=0.41.0", - "markdownlint-cli": ">=0.49.0", - "vitest": "4.1.11" + "markdownlint-cli": ">=0.49.0" }, "resolutions": { "@babel/runtime": "7.27.0" diff --git a/examples/next/faustwp-getting-started/package.json b/examples/next/faustwp-getting-started/package.json index 525405fab..7ae73fd21 100644 --- a/examples/next/faustwp-getting-started/package.json +++ b/examples/next/faustwp-getting-started/package.json @@ -26,10 +26,7 @@ "next-secure-headers": "^2.2.0" }, "engines": { - "node": ">=20.9", + "node": ">=22", "npm": ">=8" - }, - "overrides": { - "vitest": "4.1.11" } } diff --git a/package-lock.json b/package-lock.json index 7ac4630e9..8f07b1f71 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,7 +24,7 @@ "rimraf": "^6.1.3" }, "engines": { - "node": ">=18", + "node": ">=22", "npm": ">=8" }, "workspaces": { @@ -57,7 +57,7 @@ "next-secure-headers": "^2.2.0" }, "engines": { - "node": ">=20.9", + "node": ">=22", "npm": ">=8" } }, @@ -16939,7 +16939,7 @@ "ts-jest": "^29.4.14" }, "engines": { - "node": ">=18", + "node": ">=22", "npm": ">=8" }, "peerDependencies": { @@ -17077,7 +17077,7 @@ "typescript": "^4.9.5" }, "engines": { - "node": ">=18", + "node": ">=22", "npm": ">=8" } }, @@ -17200,7 +17200,7 @@ "zen-observable-ts": "^1.2.5" }, "engines": { - "node": ">=18", + "node": ">=22", "npm": ">=8" }, "peerDependencies": { diff --git a/package.json b/package.json index d45679998..f6c56ea33 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "@faustjs/root", "private": true, "engines": { - "node": ">=18", + "node": ">=22", "npm": ">=8" }, "workspaces": { diff --git a/packages/blocks/package.json b/packages/blocks/package.json index 38ad3c776..562124966 100644 --- a/packages/blocks/package.json +++ b/packages/blocks/package.json @@ -42,7 +42,7 @@ }, "homepage": "https://github.com/wpengine/faustjs#readme", "engines": { - "node": ">=18", + "node": ">=22", "npm": ">=8" }, "publishConfig": { diff --git a/packages/faustwp-cli/package.json b/packages/faustwp-cli/package.json index db6b9e2c5..1a48988b9 100644 --- a/packages/faustwp-cli/package.json +++ b/packages/faustwp-cli/package.json @@ -56,7 +56,7 @@ }, "homepage": "https://github.com/wpengine/faustjs#readme", "engines": { - "node": ">=18", + "node": ">=22", "npm": ">=8" }, "publishConfig": { diff --git a/packages/faustwp-core/package.json b/packages/faustwp-core/package.json index 14c994d7a..90c4cce4f 100644 --- a/packages/faustwp-core/package.json +++ b/packages/faustwp-core/package.json @@ -95,7 +95,7 @@ }, "homepage": "https://github.com/wpengine/faustjs#readme", "engines": { - "node": ">=18", + "node": ">=22", "npm": ">=8" }, "publishConfig": { From 8e81127f41098f7eebfc0d359b1d477d709859bb Mon Sep 17 00:00:00 2001 From: Joe Fusco Date: Tue, 20 Oct 2026 09:14:39 -0400 Subject: [PATCH 2/3] docs: word the Node.js 20 fallback the same way in the README and deploy guide --- README.md | 2 +- docs/explanation/deploy-your-app/index.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0df4195c9..49fb6ebf0 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ Faust.js is a toolkit for building Next.js applications for headless WordPress s ### Front end -- Node.js 22 or newer and npm 8 or newer. `@faustwp/core` and `@faustwp/cli` 4.x and `@faustwp/blocks` 7.x require Node.js 22. If you need to stay on Node.js 20, which has reached end of life, use core and cli 3.x and blocks 6.x. +- Node.js 22 or newer and npm 8 or newer. Node.js 20 has reached end of life. If you need to stay on it, use `@faustwp/core` and `@faustwp/cli` 3.x and `@faustwp/blocks` 6.x. - Next.js 12.1.6 or newer with the Pages Router (15.5.5 or newer if you use `@faustwp/blocks`). The examples and tests use Next.js 16. - React 17.0.2 or newer, and at least the version your Next.js release requires (18.2 for Next.js 16). - Apollo Client 3.6.6 or newer, below 4 (3.14 or newer if you use `@faustwp/blocks`). diff --git a/docs/explanation/deploy-your-app/index.md b/docs/explanation/deploy-your-app/index.md index bfa6658d5..d12b9540f 100644 --- a/docs/explanation/deploy-your-app/index.md +++ b/docs/explanation/deploy-your-app/index.md @@ -7,7 +7,7 @@ The following explains the various options for deploying your Faust.js App to pr ## Picking The Right Node.js Version -Faust.js requires Node.js 22 or newer, so check that your hosting provider builds and runs your app on a compatible version. Node.js 20 has reached end of life; sites that need to stay on it can use `@faustwp/core` and `@faustwp/cli` 3.x and `@faustwp/blocks` 6.x. The [latest LTS version](https://nodejs.org/en/about/previous-releases) of Node.js is recommended. +Faust.js requires Node.js 22 or newer, so check that your hosting provider builds and runs your app on a compatible version. Node.js 20 has reached end of life. If you need to stay on it, use `@faustwp/core` and `@faustwp/cli` 3.x and `@faustwp/blocks` 6.x. The [latest LTS version](https://nodejs.org/en/about/previous-releases) of Node.js is recommended. ## Building Your App From b7a26cd7bbb03ffe11208e535a31595c861e4d50 Mon Sep 17 00:00:00 2001 From: Joe Fusco Date: Thu, 22 Oct 2026 11:04:44 -0400 Subject: [PATCH 3/3] docs: recommend the latest release of a supported Node.js version --- README.md | 2 +- docs/explanation/deploy-your-app/index.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 49fb6ebf0..72af55837 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ Faust.js is a toolkit for building Next.js applications for headless WordPress s ### Front end -- Node.js 22 or newer and npm 8 or newer. Node.js 20 has reached end of life. If you need to stay on it, use `@faustwp/core` and `@faustwp/cli` 3.x and `@faustwp/blocks` 6.x. +- Node.js 22 or newer and npm 8 or newer. Use the latest release of a [supported version](https://nodejs.org/en/about/previous-releases) so you have its security fixes. Node.js 20 has reached end of life. If you need to stay on it, use `@faustwp/core` and `@faustwp/cli` 3.x and `@faustwp/blocks` 6.x. - Next.js 12.1.6 or newer with the Pages Router (15.5.5 or newer if you use `@faustwp/blocks`). The examples and tests use Next.js 16. - React 17.0.2 or newer, and at least the version your Next.js release requires (18.2 for Next.js 16). - Apollo Client 3.6.6 or newer, below 4 (3.14 or newer if you use `@faustwp/blocks`). diff --git a/docs/explanation/deploy-your-app/index.md b/docs/explanation/deploy-your-app/index.md index d12b9540f..dc3ca48be 100644 --- a/docs/explanation/deploy-your-app/index.md +++ b/docs/explanation/deploy-your-app/index.md @@ -7,7 +7,7 @@ The following explains the various options for deploying your Faust.js App to pr ## Picking The Right Node.js Version -Faust.js requires Node.js 22 or newer, so check that your hosting provider builds and runs your app on a compatible version. Node.js 20 has reached end of life. If you need to stay on it, use `@faustwp/core` and `@faustwp/cli` 3.x and `@faustwp/blocks` 6.x. The [latest LTS version](https://nodejs.org/en/about/previous-releases) of Node.js is recommended. +Faust.js requires Node.js 22 or newer, so check that your hosting provider builds and runs your app on a compatible version. Node.js 20 has reached end of life. If you need to stay on it, use `@faustwp/core` and `@faustwp/cli` 3.x and `@faustwp/blocks` 6.x. Use the latest release of an [LTS version](https://nodejs.org/en/about/previous-releases) so your app has its security fixes. ## Building Your App