From 52a9d4b3d99c4a2e810cb7689d27f97ed2dbfddb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=A4=95=E0=A4=BE=E0=A4=B0=E0=A4=A4=E0=A5=8B=E0=A4=AB?= =?UTF-8?q?=E0=A5=8D=E0=A4=AB=E0=A5=87=E0=A4=B2=E0=A4=B8=E0=A5=8D=E0=A4=95?= =?UTF-8?q?=E0=A5=8D=E0=A4=B0=E0=A4=BF=E0=A4=AA=E0=A5=8D=E0=A4=9F=E2=84=A2?= Date: Wed, 4 Jun 2025 17:49:31 +0200 Subject: [PATCH] ci: Use node.js 22 by default. Add initial support for node.js 24 (#16018) --- .devcontainer/Dockerfile | 2 +- .github/ISSUE_TEMPLATE/01-bug.yml | 2 +- .github/actions/setup-and-build/action.yml | 2 +- .../workflows/benchmark-destroy-nightly.yml | 6 +- .github/workflows/benchmark-nightly.yml | 6 +- .../workflows/check-documentation-urls.yml | 6 +- .github/workflows/check-pr-title.yml | 6 +- .github/workflows/chromatic.yml | 6 +- .github/workflows/ci-master.yml | 12 +- .github/workflows/ci-postgres-mysql.yml | 32 +++--- .github/workflows/ci-pull-requests.yml | 2 +- .github/workflows/docker-base-image.yml | 1 + .github/workflows/e2e-flaky.yml | 2 +- .github/workflows/e2e-reusable.yml | 4 +- .github/workflows/linting-reusable.yml | 2 +- .github/workflows/release-create-pr.yml | 6 +- .github/workflows/release-publish.yml | 6 +- .github/workflows/release-push-to-channel.yml | 6 +- .github/workflows/units-tests-reusable.yml | 2 +- CONTRIBUTING.md | 8 +- docker/images/n8n-base/Dockerfile | 4 +- docker/images/n8n/Dockerfile | 2 +- package.json | 4 +- packages/@n8n/benchmark/Dockerfile | 4 +- packages/@n8n/benchmark/package.json | 2 +- packages/cli/bin/n8n | 19 ++-- packages/cli/package.json | 2 +- pnpm-lock.yaml | 104 ++++++++++-------- 28 files changed, 135 insertions(+), 125 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index cffda42f08..dd1ef79220 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,4 +1,4 @@ -FROM n8nio/base:20 +FROM n8nio/base:22 RUN apk add --no-cache --update openssh sudo shadow bash RUN echo node ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/node && chmod 0440 /etc/sudoers.d/node diff --git a/.github/ISSUE_TEMPLATE/01-bug.yml b/.github/ISSUE_TEMPLATE/01-bug.yml index b04ea55eec..f7c79f718f 100644 --- a/.github/ISSUE_TEMPLATE/01-bug.yml +++ b/.github/ISSUE_TEMPLATE/01-bug.yml @@ -53,7 +53,7 @@ body: id: nodejs-version attributes: label: Node.js Version - placeholder: ex. 20.19.0 + placeholder: ex. 22.16.0 validations: required: true - type: dropdown diff --git a/.github/actions/setup-and-build/action.yml b/.github/actions/setup-and-build/action.yml index 3eca39472e..f00a745c59 100644 --- a/.github/actions/setup-and-build/action.yml +++ b/.github/actions/setup-and-build/action.yml @@ -5,7 +5,7 @@ inputs: node-version: description: 'Node.js version to use.' required: false - default: '20.x' + default: '22.x' enable-caching: description: 'Flag to enable/disable all caching.' required: false diff --git a/.github/workflows/benchmark-destroy-nightly.yml b/.github/workflows/benchmark-destroy-nightly.yml index 91cf19f0e7..360d767f2d 100644 --- a/.github/workflows/benchmark-destroy-nightly.yml +++ b/.github/workflows/benchmark-destroy-nightly.yml @@ -29,13 +29,13 @@ jobs: tenant-id: ${{ secrets.BENCHMARK_ARM_TENANT_ID }} subscription-id: ${{ secrets.BENCHMARK_ARM_SUBSCRIPTION_ID }} - - uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: - node-version: 20.x + node-version: 22.x - name: Setup corepack and pnpm run: | - npm i -g corepack@0.31 + npm i -g corepack@0.33 corepack enable - name: Install dependencies diff --git a/.github/workflows/benchmark-nightly.yml b/.github/workflows/benchmark-nightly.yml index 97bf34f0a9..68953fd9a0 100644 --- a/.github/workflows/benchmark-nightly.yml +++ b/.github/workflows/benchmark-nightly.yml @@ -48,13 +48,13 @@ jobs: with: terraform_version: '1.8.5' - - uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: - node-version: 20.x + node-version: 22.x - name: Setup corepack and pnpm run: | - npm i -g corepack@0.31 + npm i -g corepack@0.33 corepack enable - name: Install dependencies diff --git a/.github/workflows/check-documentation-urls.yml b/.github/workflows/check-documentation-urls.yml index 775259de93..37b8397775 100644 --- a/.github/workflows/check-documentation-urls.yml +++ b/.github/workflows/check-documentation-urls.yml @@ -16,13 +16,13 @@ jobs: steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: - node-version: 20.x + node-version: 22.x - name: Setup corepack and pnpm run: | - npm i -g corepack@0.31 + npm i -g corepack@0.33 corepack enable - name: Install dependencies diff --git a/.github/workflows/check-pr-title.yml b/.github/workflows/check-pr-title.yml index 8910084dc7..2e6c55189b 100644 --- a/.github/workflows/check-pr-title.yml +++ b/.github/workflows/check-pr-title.yml @@ -17,13 +17,13 @@ jobs: - name: Check out branch uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: - node-version: 20.x + node-version: 22.x - name: Setup corepack and pnpm run: | - npm i -g corepack@0.31 + npm i -g corepack@0.33 corepack enable - name: Install dependencies diff --git a/.github/workflows/chromatic.yml b/.github/workflows/chromatic.yml index 2bbb56f710..07a38782cf 100644 --- a/.github/workflows/chromatic.yml +++ b/.github/workflows/chromatic.yml @@ -56,13 +56,13 @@ jobs: with: fetch-depth: 0 - - uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: - node-version: 20.x + node-version: 22.x - name: Setup corepack and pnpm run: | - npm i -g corepack@0.31 + npm i -g corepack@0.33 corepack enable - run: pnpm install --frozen-lockfile diff --git a/.github/workflows/ci-master.yml b/.github/workflows/ci-master.yml index 56ac601fdb..42f2da4c54 100644 --- a/.github/workflows/ci-master.yml +++ b/.github/workflows/ci-master.yml @@ -18,11 +18,11 @@ jobs: - uses: useblacksmith/setup-node@65c6ca86fdeb0ab3d85e78f57e4f6a7e4780b391 # v5 with: - node-version: 20.x + node-version: 22.x - name: Setup corepack and pnpm run: | - npm i -g corepack@0.31 + npm i -g corepack@0.33 corepack enable - name: Install dependencies @@ -46,14 +46,14 @@ jobs: needs: install-and-build strategy: matrix: - node-version: [20.x, 22.x] + node-version: [20.x, 22.x, 24.x] with: ref: ${{ inputs.branch }} nodeVersion: ${{ matrix.node-version }} cacheKey: ${{ github.sha }}-base:build - collectCoverage: ${{ matrix.node-version == '20.x' }} - ignoreTurboCache: ${{ matrix.node-version == '20.x' }} - skipFrontendTests: ${{ matrix.node-version != '20.x' }} + collectCoverage: ${{ matrix.node-version == '22.x' }} + ignoreTurboCache: ${{ matrix.node-version == '22.x' }} + skipFrontendTests: ${{ matrix.node-version != '22.x' }} secrets: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.github/workflows/ci-postgres-mysql.yml b/.github/workflows/ci-postgres-mysql.yml index 3e308d2748..f9fb3e20db 100644 --- a/.github/workflows/ci-postgres-mysql.yml +++ b/.github/workflows/ci-postgres-mysql.yml @@ -29,13 +29,13 @@ jobs: steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: - node-version: 20.x + node-version: 22.x - name: Setup corepack and pnpm run: | - npm i -g corepack@0.31 + npm i -g corepack@0.33 corepack enable - run: pnpm install --frozen-lockfile @@ -43,7 +43,7 @@ jobs: - name: Setup build cache uses: rharkor/caching-for-turbo@439abec0d28d21b192fa8817b744ffdf1ee5ac0d # v1.5 - - name: Build Backend + - name: Build run: pnpm build - name: Cache build artifacts @@ -63,13 +63,13 @@ jobs: steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: - node-version: 20.x + node-version: 22.x - name: Setup corepack and pnpm run: | - npm i -g corepack@0.31 + npm i -g corepack@0.33 corepack enable - run: pnpm install --frozen-lockfile @@ -97,13 +97,13 @@ jobs: steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: - node-version: 20.x + node-version: 22.x - name: Setup corepack and pnpm run: | - npm i -g corepack@0.31 + npm i -g corepack@0.33 corepack enable - run: pnpm install --frozen-lockfile @@ -141,13 +141,13 @@ jobs: steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: - node-version: 20.x + node-version: 22.x - name: Setup corepack and pnpm run: | - npm i -g corepack@0.31 + npm i -g corepack@0.33 corepack enable - run: pnpm install --frozen-lockfile @@ -183,13 +183,13 @@ jobs: steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: - node-version: 20.x + node-version: 22.x - name: Setup corepack and pnpm run: | - npm i -g corepack@0.31 + npm i -g corepack@0.33 corepack enable - run: pnpm install --frozen-lockfile diff --git a/.github/workflows/ci-pull-requests.yml b/.github/workflows/ci-pull-requests.yml index 63ee693ac0..c0eef22949 100644 --- a/.github/workflows/ci-pull-requests.yml +++ b/.github/workflows/ci-pull-requests.yml @@ -20,7 +20,7 @@ jobs: - name: Setup Environment and Build Project uses: ./.github/actions/setup-and-build with: - node-version: '20.x' + node-version: 22.x enable-caching: true - name: Run formatcheck diff --git a/.github/workflows/docker-base-image.yml b/.github/workflows/docker-base-image.yml index 163249ab43..a16056daff 100644 --- a/.github/workflows/docker-base-image.yml +++ b/.github/workflows/docker-base-image.yml @@ -11,6 +11,7 @@ on: options: - '20' - '22' + - '24' jobs: build: diff --git a/.github/workflows/e2e-flaky.yml b/.github/workflows/e2e-flaky.yml index 8deef4fc4f..847c159007 100644 --- a/.github/workflows/e2e-flaky.yml +++ b/.github/workflows/e2e-flaky.yml @@ -34,7 +34,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: - node-version: 20.x + node-version: 22.x cache: 'pnpm' - name: Cache build artifacts diff --git a/.github/workflows/e2e-reusable.yml b/.github/workflows/e2e-reusable.yml index 4064af4298..beb8408b69 100644 --- a/.github/workflows/e2e-reusable.yml +++ b/.github/workflows/e2e-reusable.yml @@ -81,7 +81,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: - node-version: 20.x + node-version: 22.x cache: 'pnpm' - name: Cache build artifacts @@ -131,7 +131,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: - node-version: 20.x + node-version: 22.x cache: 'pnpm' - name: Restore cached pnpm modules diff --git a/.github/workflows/linting-reusable.yml b/.github/workflows/linting-reusable.yml index 30dc0ff73b..18eed2ee8d 100644 --- a/.github/workflows/linting-reusable.yml +++ b/.github/workflows/linting-reusable.yml @@ -12,7 +12,7 @@ on: description: Version of node to use. required: false type: string - default: 20.x + default: 22.x cacheKey: description: Cache key for modules and build artifacts. required: false diff --git a/.github/workflows/release-create-pr.yml b/.github/workflows/release-create-pr.yml index 6b0bc38e92..ee71d4f5cf 100644 --- a/.github/workflows/release-create-pr.yml +++ b/.github/workflows/release-create-pr.yml @@ -35,15 +35,15 @@ jobs: fetch-depth: 0 ref: ${{ github.event.inputs.base-branch }} - - uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: - node-version: 20.x + node-version: 22.x - run: npm install --prefix=.github/scripts --no-package-lock - name: Setup corepack and pnpm run: | - npm i -g corepack@0.31 + npm i -g corepack@0.33 corepack enable - name: Bump package versions diff --git a/.github/workflows/release-publish.yml b/.github/workflows/release-publish.yml index 6485275ae1..ddfa490d6c 100644 --- a/.github/workflows/release-publish.yml +++ b/.github/workflows/release-publish.yml @@ -25,13 +25,13 @@ jobs: with: fetch-depth: 0 - - uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: - node-version: 20.x + node-version: 22.x - name: Setup corepack and pnpm run: | - npm i -g corepack@0.31 + npm i -g corepack@0.33 corepack enable - run: pnpm install --frozen-lockfile diff --git a/.github/workflows/release-push-to-channel.yml b/.github/workflows/release-push-to-channel.yml index a94c59e0ed..6f4f8973a0 100644 --- a/.github/workflows/release-push-to-channel.yml +++ b/.github/workflows/release-push-to-channel.yml @@ -45,9 +45,9 @@ jobs: needs: validate-inputs timeout-minutes: 5 steps: - - uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: - node-version: 20.x + node-version: 22.x - run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc @@ -116,4 +116,4 @@ jobs: needs: [validate-inputs, release-to-npm, release-to-docker-hub] steps: - continue-on-error: true - run: curl -u docsWorkflows:${{ secrets.N8N_WEBHOOK_DOCS_PASSWORD }} --request GET 'https://internal.users.n8n.cloud/webhook/update-latest-next' \ No newline at end of file + run: curl -u docsWorkflows:${{ secrets.N8N_WEBHOOK_DOCS_PASSWORD }} --request GET 'https://internal.users.n8n.cloud/webhook/update-latest-next' diff --git a/.github/workflows/units-tests-reusable.yml b/.github/workflows/units-tests-reusable.yml index a2f7991fea..1de459e41a 100644 --- a/.github/workflows/units-tests-reusable.yml +++ b/.github/workflows/units-tests-reusable.yml @@ -12,7 +12,7 @@ on: description: Version of node to use. required: false type: string - default: 20.x + default: 22.x cacheKey: description: Cache key for modules and build artifacts. required: false diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 962e978255..ac61e02091 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -74,11 +74,11 @@ If you already have VS Code and Docker installed, you can click [here](https://v #### Node.js -[Node.js](https://nodejs.org/en/) version 20.15 or newer is required for development purposes. +[Node.js](https://nodejs.org/en/) version 22.16 or newer is required for development purposes. #### pnpm -[pnpm](https://pnpm.io/) version 9.1 or newer is required for development purposes. We recommend installing it with [corepack](#corepack). +[pnpm](https://pnpm.io/) version 10.2 or newer is required for development purposes. We recommend installing it with [corepack](#corepack). ##### pnpm workspaces @@ -90,11 +90,11 @@ This automatically sets up file-links between modules which depend on each other We recommend enabling [Node.js corepack](https://nodejs.org/docs/latest-v16.x/api/corepack.html) with `corepack enable`. -With Node.js v16.17 or newer, you can install the latest version of pnpm: `corepack prepare pnpm@latest --activate`. If you use an older version install at least version 9.15 of pnpm via: `corepack prepare pnpm@9.15.5 --activate`. +You can install the correct version of pnpm using `corepack prepare --activate`. **IMPORTANT**: If you have installed Node.js via homebrew, you'll need to run `brew install corepack`, since homebrew explicitly removes `npm` and `corepack` from [the `node` formula](https://github.com/Homebrew/homebrew-core/blob/master/Formula/node.rb#L66). -**IMPORTANT**: If you are on windows, you'd need to run `corepack enable` and `corepack prepare pnpm --activate` in a terminal as an administrator. +**IMPORTANT**: If you are on windows, you'd need to run `corepack enable` and `corepack prepare --activate` in a terminal as an administrator. #### Build tools diff --git a/docker/images/n8n-base/Dockerfile b/docker/images/n8n-base/Dockerfile index e0576741d0..669d98e22b 100644 --- a/docker/images/n8n-base/Dockerfile +++ b/docker/images/n8n-base/Dockerfile @@ -1,4 +1,4 @@ -ARG NODE_VERSION=20 +ARG NODE_VERSION=22 # 1. Use a builder step to download various dependencies FROM node:${NODE_VERSION}-alpine AS builder @@ -16,7 +16,7 @@ RUN apk add --update git openssh graphicsmagick tini tzdata ca-certificates libc # Update npm and install full-uci COPY .npmrc /usr/local/etc/npmrc -RUN npm install -g corepack@0.31 full-icu@1.5.0 +RUN npm install -g corepack@0.33 full-icu@1.5.0 # Activate corepack, and install pnpm WORKDIR /tmp diff --git a/docker/images/n8n/Dockerfile b/docker/images/n8n/Dockerfile index 49f1dce6f6..6eb6b56447 100644 --- a/docker/images/n8n/Dockerfile +++ b/docker/images/n8n/Dockerfile @@ -1,4 +1,4 @@ -ARG NODE_VERSION=20 +ARG NODE_VERSION=22 ARG N8N_VERSION=snapshot # 1. Create an image to build n8n diff --git a/package.json b/package.json index 9ab766f86f..77fe090b2e 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "node": ">=22.16", "pnpm": ">=10.2.1" }, - "packageManager": "pnpm@10.2.1", + "packageManager": "pnpm@10.11.1", "scripts": { "prepare": "node scripts/prepare.mjs", "preinstall": "node scripts/block-npm-install.js", @@ -69,7 +69,7 @@ "ts-jest": "^29.1.1", "tsc-alias": "^1.8.10", "tsc-watch": "^6.2.0", - "turbo": "2.5.3", + "turbo": "2.5.4", "typescript": "*", "zx": "^8.1.4" }, diff --git a/packages/@n8n/benchmark/Dockerfile b/packages/@n8n/benchmark/Dockerfile index 8c759cbab6..21fef93307 100644 --- a/packages/@n8n/benchmark/Dockerfile +++ b/packages/@n8n/benchmark/Dockerfile @@ -1,5 +1,5 @@ # syntax=docker/dockerfile:1 -FROM node:20.16.0 AS base +FROM node:22.16.0 AS base # Install required dependencies RUN apt-get update && apt-get install -y gnupg2 curl @@ -18,7 +18,7 @@ RUN apt-get update && \ ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" -RUN npm install -g corepack@0.31 && corepack enable +RUN npm install -g corepack@0.33 && corepack enable # # Builder diff --git a/packages/@n8n/benchmark/package.json b/packages/@n8n/benchmark/package.json index 9970e45d49..04ed90bdae 100644 --- a/packages/@n8n/benchmark/package.json +++ b/packages/@n8n/benchmark/package.json @@ -20,7 +20,7 @@ "watch": "tsc-watch -p tsconfig.build.json --onCompilationComplete \"tsc-alias -p tsconfig.build.json\"" }, "engines": { - "node": ">=20.19" + "node": ">=22.16" }, "keywords": [ "automate", diff --git a/packages/cli/bin/n8n b/packages/cli/bin/n8n index 10271056bd..a20f8b9a34 100755 --- a/packages/cli/bin/n8n +++ b/packages/cli/bin/n8n @@ -18,20 +18,17 @@ if (process.argv.length === 2) { process.argv.push('start'); } -const ENFORCE_NODE_VERSION_RANGE = process.env.E2E_TESTS !== 'true'; -if (ENFORCE_NODE_VERSION_RANGE) { - const satisfies = require('semver/functions/satisfies'); - const nodeVersion = process.versions.node; - const { - engines: { node: supportedNodeVersions }, - } = require('../package.json'); - if (!satisfies(nodeVersion, supportedNodeVersions)) { - console.error(` +const satisfies = require('semver/functions/satisfies'); +const nodeVersion = process.versions.node; +const { + engines: { node: supportedNodeVersions }, +} = require('../package.json'); +if (!satisfies(nodeVersion, supportedNodeVersions)) { + console.error(` Your Node.js version ${nodeVersion} is currently not supported by n8n. Please use a Node.js version that satisfies the following version range: ${supportedNodeVersions} `); - process.exit(1); - } + process.exit(1); } // Disable nodejs custom inspection across the app diff --git a/packages/cli/package.json b/packages/cli/package.json index d6cbf98fbb..914caf88c6 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -44,7 +44,7 @@ "workflow" ], "engines": { - "node": ">=20.19 <= 22.x" + "node": ">=20.19 <= 24.x" }, "files": [ "bin", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1d1ae486db..f8b89e8941 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -279,8 +279,8 @@ importers: specifier: ^6.2.0 version: 6.2.0(typescript@5.8.2) turbo: - specifier: 2.5.3 - version: 2.5.3 + specifier: 2.5.4 + version: 2.5.4 typescript: specifier: ^5.8.2 version: 5.8.2 @@ -750,7 +750,7 @@ importers: version: 4.3.0 '@getzep/zep-cloud': specifier: 1.0.12 - version: 1.0.12(@langchain/core@0.3.39(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13)(langchain@0.3.11(a9c8f655d0ec4bd70e0f938ef73f85da)) + version: 1.0.12(@langchain/core@0.3.39(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13)(langchain@0.3.11(d71d1df33a22803bba4e47303d410a51)) '@getzep/zep-js': specifier: 0.9.0 version: 0.9.0 @@ -777,7 +777,7 @@ importers: version: 0.3.2(@langchain/core@0.3.39(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13) '@langchain/community': specifier: 'catalog:' - version: 0.3.24(0f15853497e304ae94801fc86723d997) + version: 0.3.24(3a2fa23b4df734da256fae2a3bd4f738) '@langchain/core': specifier: 'catalog:' version: 0.3.39(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)) @@ -882,7 +882,7 @@ importers: version: 23.0.1 langchain: specifier: 0.3.11 - version: 0.3.11(a9c8f655d0ec4bd70e0f938ef73f85da) + version: 0.3.11(d71d1df33a22803bba4e47303d410a51) lodash: specifier: 'catalog:' version: 4.17.21 @@ -13501,38 +13501,38 @@ packages: tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} - turbo-darwin-64@2.5.3: - resolution: {integrity: sha512-YSItEVBUIvAGPUDpAB9etEmSqZI3T6BHrkBkeSErvICXn3dfqXUfeLx35LfptLDEbrzFUdwYFNmt8QXOwe9yaw==} + turbo-darwin-64@2.5.4: + resolution: {integrity: sha512-ah6YnH2dErojhFooxEzmvsoZQTMImaruZhFPfMKPBq8sb+hALRdvBNLqfc8NWlZq576FkfRZ/MSi4SHvVFT9PQ==} cpu: [x64] os: [darwin] - turbo-darwin-arm64@2.5.3: - resolution: {integrity: sha512-5PefrwHd42UiZX7YA9m1LPW6x9YJBDErXmsegCkVp+GjmWrADfEOxpFrGQNonH3ZMj77WZB2PVE5Aw3gA+IOhg==} + turbo-darwin-arm64@2.5.4: + resolution: {integrity: sha512-2+Nx6LAyuXw2MdXb7pxqle3MYignLvS7OwtsP9SgtSBaMlnNlxl9BovzqdYAgkUW3AsYiQMJ/wBRb7d+xemM5A==} cpu: [arm64] os: [darwin] - turbo-linux-64@2.5.3: - resolution: {integrity: sha512-M9xigFgawn5ofTmRzvjjLj3Lqc05O8VHKuOlWNUlnHPUltFquyEeSkpQNkE/vpPdOR14AzxqHbhhxtfS4qvb1w==} + turbo-linux-64@2.5.4: + resolution: {integrity: sha512-5May2kjWbc8w4XxswGAl74GZ5eM4Gr6IiroqdLhXeXyfvWEdm2mFYCSWOzz0/z5cAgqyGidF1jt1qzUR8hTmOA==} cpu: [x64] os: [linux] - turbo-linux-arm64@2.5.3: - resolution: {integrity: sha512-auJRbYZ8SGJVqvzTikpg1bsRAsiI9Tk0/SDkA5Xgg0GdiHDH/BOzv1ZjDE2mjmlrO/obr19Dw+39OlMhwLffrw==} + turbo-linux-arm64@2.5.4: + resolution: {integrity: sha512-/2yqFaS3TbfxV3P5yG2JUI79P7OUQKOUvAnx4MV9Bdz6jqHsHwc9WZPpO4QseQm+NvmgY6ICORnoVPODxGUiJg==} cpu: [arm64] os: [linux] - turbo-windows-64@2.5.3: - resolution: {integrity: sha512-arLQYohuHtIEKkmQSCU9vtrKUg+/1TTstWB9VYRSsz+khvg81eX6LYHtXJfH/dK7Ho6ck+JaEh5G+QrE1jEmCQ==} + turbo-windows-64@2.5.4: + resolution: {integrity: sha512-EQUO4SmaCDhO6zYohxIjJpOKRN3wlfU7jMAj3CgcyTPvQR/UFLEKAYHqJOnJtymbQmiiM/ihX6c6W6Uq0yC7mA==} cpu: [x64] os: [win32] - turbo-windows-arm64@2.5.3: - resolution: {integrity: sha512-3JPn66HAynJ0gtr6H+hjY4VHpu1RPKcEwGATvGUTmLmYSYBQieVlnGDRMMoYN066YfyPqnNGCfhYbXfH92Cm0g==} + turbo-windows-arm64@2.5.4: + resolution: {integrity: sha512-oQ8RrK1VS8lrxkLriotFq+PiF7iiGgkZtfLKF4DDKsmdbPo0O9R2mQxm7jHLuXraRCuIQDWMIw6dpcr7Iykf4A==} cpu: [arm64] os: [win32] - turbo@2.5.3: - resolution: {integrity: sha512-iHuaNcq5GZZnr3XDZNuu2LSyCzAOPwDuo5Qt+q64DfsTP1i3T2bKfxJhni2ZQxsvAoxRbuUK5QetJki4qc5aYA==} + turbo@2.5.4: + resolution: {integrity: sha512-kc8ZibdRcuWUG1pbYSBFWqmIjynlD8Lp7IB6U3vIzvOv9VG+6Sp8bzyeBWE3Oi8XV5KsQrznyRTBPvrf99E4mA==} hasBin: true tween-functions@1.2.0: @@ -16679,7 +16679,7 @@ snapshots: '@gar/promisify@1.1.3': optional: true - '@getzep/zep-cloud@1.0.12(@langchain/core@0.3.39(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13)(langchain@0.3.11(a9c8f655d0ec4bd70e0f938ef73f85da))': + '@getzep/zep-cloud@1.0.12(@langchain/core@0.3.39(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13)(langchain@0.3.11(d71d1df33a22803bba4e47303d410a51))': dependencies: form-data: 4.0.0 node-fetch: 2.7.0(encoding@0.1.13) @@ -16688,7 +16688,7 @@ snapshots: zod: 3.24.1 optionalDependencies: '@langchain/core': 0.3.39(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)) - langchain: 0.3.11(a9c8f655d0ec4bd70e0f938ef73f85da) + langchain: 0.3.11(d71d1df33a22803bba4e47303d410a51) transitivePeerDependencies: - encoding @@ -17218,7 +17218,7 @@ snapshots: - aws-crt - encoding - '@langchain/community@0.3.24(0f15853497e304ae94801fc86723d997)': + '@langchain/community@0.3.24(3a2fa23b4df734da256fae2a3bd4f738)': dependencies: '@browserbasehq/stagehand': 1.9.0(@playwright/test@1.49.1)(deepmerge@4.3.1)(dotenv@16.5.0)(encoding@0.1.13)(openai@4.78.1(encoding@0.1.13)(zod@3.24.1))(zod@3.24.1) '@ibm-cloud/watsonx-ai': 1.1.2 @@ -17229,7 +17229,7 @@ snapshots: flat: 5.0.2 ibm-cloud-sdk-core: 5.3.2 js-yaml: 4.1.0 - langchain: 0.3.11(a9c8f655d0ec4bd70e0f938ef73f85da) + langchain: 0.3.11(d71d1df33a22803bba4e47303d410a51) langsmith: 0.2.15(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)) openai: 4.78.1(encoding@0.1.13)(zod@3.24.1) uuid: 10.0.0 @@ -17244,7 +17244,7 @@ snapshots: '@aws-sdk/credential-provider-node': 3.808.0 '@azure/storage-blob': 12.26.0 '@browserbasehq/sdk': 2.6.0(encoding@0.1.13) - '@getzep/zep-cloud': 1.0.12(@langchain/core@0.3.39(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13)(langchain@0.3.11(a9c8f655d0ec4bd70e0f938ef73f85da)) + '@getzep/zep-cloud': 1.0.12(@langchain/core@0.3.39(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13)(langchain@0.3.11(d71d1df33a22803bba4e47303d410a51)) '@getzep/zep-js': 0.9.0 '@google-ai/generativelanguage': 2.6.0(encoding@0.1.13) '@google-cloud/storage': 7.12.1(encoding@0.1.13) @@ -20719,6 +20719,14 @@ snapshots: transitivePeerDependencies: - debug + axios@1.9.0: + dependencies: + follow-redirects: 1.15.9(debug@4.3.6) + form-data: 4.0.2 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + axios@1.9.0(debug@4.3.6): dependencies: follow-redirects: 1.15.9(debug@4.3.6) @@ -20737,7 +20745,7 @@ snapshots: axios@1.9.0(debug@4.4.1): dependencies: - follow-redirects: 1.15.9(debug@4.3.6) + follow-redirects: 1.15.9(debug@4.4.1) form-data: 4.0.2 proxy-from-env: 1.1.0 transitivePeerDependencies: @@ -22914,6 +22922,10 @@ snapshots: optionalDependencies: debug: 4.4.0 + follow-redirects@1.15.9(debug@4.4.1): + optionalDependencies: + debug: 4.4.1(supports-color@8.1.1) + for-each@0.3.3: dependencies: is-callable: 1.2.7 @@ -23533,7 +23545,7 @@ snapshots: isstream: 0.1.2 jsonwebtoken: 9.0.2 mime-types: 2.1.35 - retry-axios: 2.6.0(axios@1.9.0(debug@4.4.1)) + retry-axios: 2.6.0(axios@1.9.0) tough-cookie: 4.1.4 transitivePeerDependencies: - supports-color @@ -23598,7 +23610,7 @@ snapshots: infisical-node@1.3.0: dependencies: - axios: 1.9.0(debug@4.4.1) + axios: 1.9.0 dotenv: 16.3.1 tweetnacl: 1.0.3 tweetnacl-util: 0.15.1 @@ -24523,7 +24535,7 @@ snapshots: kuler@2.0.0: {} - langchain@0.3.11(a9c8f655d0ec4bd70e0f938ef73f85da): + langchain@0.3.11(d71d1df33a22803bba4e47303d410a51): dependencies: '@langchain/core': 0.3.39(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)) '@langchain/openai': 0.3.17(@langchain/core@0.3.39(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13) @@ -24547,7 +24559,7 @@ snapshots: '@langchain/groq': 0.1.3(@langchain/core@0.3.39(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13) '@langchain/mistralai': 0.2.0(@langchain/core@0.3.39(openai@4.78.1(encoding@0.1.13)(zod@3.24.1))) '@langchain/ollama': 0.1.4(@langchain/core@0.3.39(openai@4.78.1(encoding@0.1.13)(zod@3.24.1))) - axios: 1.9.0(debug@4.4.1) + axios: 1.9.0 cheerio: 1.0.0 handlebars: 4.7.8 transitivePeerDependencies: @@ -26333,7 +26345,7 @@ snapshots: posthog-node@3.2.1: dependencies: - axios: 1.9.0(debug@4.4.1) + axios: 1.9.0 rusha: 0.8.14 transitivePeerDependencies: - debug @@ -26910,9 +26922,9 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 - retry-axios@2.6.0(axios@1.9.0(debug@4.4.1)): + retry-axios@2.6.0(axios@1.9.0): dependencies: - axios: 1.9.0(debug@4.4.1) + axios: 1.9.0 retry-request@7.0.2(encoding@0.1.13): dependencies: @@ -27372,7 +27384,7 @@ snapshots: asn1.js: 5.4.1 asn1.js-rfc2560: 5.0.1(asn1.js@5.4.1) asn1.js-rfc5280: 3.0.0 - axios: 1.9.0(debug@4.4.1) + axios: 1.9.0 big-integer: 1.6.52 bignumber.js: 9.1.2 binascii: 0.0.2 @@ -28181,32 +28193,32 @@ snapshots: dependencies: safe-buffer: 5.2.1 - turbo-darwin-64@2.5.3: + turbo-darwin-64@2.5.4: optional: true - turbo-darwin-arm64@2.5.3: + turbo-darwin-arm64@2.5.4: optional: true - turbo-linux-64@2.5.3: + turbo-linux-64@2.5.4: optional: true - turbo-linux-arm64@2.5.3: + turbo-linux-arm64@2.5.4: optional: true - turbo-windows-64@2.5.3: + turbo-windows-64@2.5.4: optional: true - turbo-windows-arm64@2.5.3: + turbo-windows-arm64@2.5.4: optional: true - turbo@2.5.3: + turbo@2.5.4: optionalDependencies: - turbo-darwin-64: 2.5.3 - turbo-darwin-arm64: 2.5.3 - turbo-linux-64: 2.5.3 - turbo-linux-arm64: 2.5.3 - turbo-windows-64: 2.5.3 - turbo-windows-arm64: 2.5.3 + turbo-darwin-64: 2.5.4 + turbo-darwin-arm64: 2.5.4 + turbo-linux-64: 2.5.4 + turbo-linux-arm64: 2.5.4 + turbo-windows-64: 2.5.4 + turbo-windows-arm64: 2.5.4 tween-functions@1.2.0: {}