From 07784388d4daabef081601840f1a20d4ff69e808 Mon Sep 17 00:00:00 2001 From: Joel Uong <88680517+joeluong-sfcc@users.noreply.github.com> Date: Thu, 30 Jan 2025 17:55:01 -0500 Subject: [PATCH] Support Node 22 (@W-17518271@) (#2218) * bump node/npm version * update e2e workflow and CHANGELOG * exclude node 18 npm 11 from ci * update ssrFunctionNodeVersion * update MRT node in CI * update package-lock and babel config * upgrade upload-artifact from v3 to v4 * add name to upload artifact * revert back to v4 * add dynamic naming for upload-artifact workflow * revert removal of node 16 in package.json * update e2e ci * update test.yml * update package-lock.json * exclude 16/11 --------- Signed-off-by: Joel Uong <88680517+joeluong-sfcc@users.noreply.github.com> --- .github/workflows/e2e.yml | 48 ++++++++++++------- .github/workflows/test.yml | 35 ++++++++------ package-lock.json | 4 +- package.json | 4 +- packages/commerce-sdk-react/CHANGELOG.md | 1 + packages/commerce-sdk-react/package-lock.json | 4 +- packages/commerce-sdk-react/package.json | 4 +- .../configs/babel.config.js | 2 +- packages/internal-lib-build/package-lock.json | 4 +- packages/internal-lib-build/package.json | 4 +- packages/pwa-kit-create-app/CHANGELOG.md | 1 + .../assets/bootstrap/js/config/default.js.hbs | 2 +- .../assets/bootstrap/js/package.json.hbs | 4 +- .../retail-react-app/config/default.js.hbs | 2 +- packages/pwa-kit-create-app/package-lock.json | 4 +- packages/pwa-kit-create-app/package.json | 4 +- packages/pwa-kit-dev/CHANGELOG.md | 1 + packages/pwa-kit-dev/package-lock.json | 4 +- packages/pwa-kit-dev/package.json | 4 +- .../src/configs/babel/babel-config.js | 2 +- .../src/configs/webpack/test/package.json | 4 +- packages/pwa-kit-react-sdk/CHANGELOG.md | 1 + packages/pwa-kit-react-sdk/package-lock.json | 4 +- packages/pwa-kit-react-sdk/package.json | 4 +- packages/pwa-kit-react-sdk/setup-jest.js | 2 +- packages/pwa-kit-runtime/CHANGELOG.md | 1 + packages/pwa-kit-runtime/package-lock.json | 6 +-- packages/pwa-kit-runtime/package.json | 4 +- .../template-express-minimal/package.json | 2 +- .../package-lock.json | 4 +- .../template-mrt-reference-app/package.json | 6 +-- .../template-retail-react-app/CHANGELOG.md | 2 + .../config/default.js | 2 +- .../config/mocks/default.js | 2 +- .../package-lock.json | 8 ++-- .../template-retail-react-app/package.json | 4 +- .../package-lock.json | 4 +- .../template-typescript-minimal/package.json | 6 +-- .../test-commerce-sdk-react/package-lock.json | 4 +- packages/test-commerce-sdk-react/package.json | 6 +-- 40 files changed, 122 insertions(+), 92 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 00f8b4a43c..4d33ace8de 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -11,18 +11,22 @@ jobs: fail-fast: false matrix: # Run all matrix env at once because we will not deploy demo app to MRT. - node: [16, 18, 20] - npm: [8, 9, 10] - exclude: # node 16 is not compatible with npm 10 + node: [16, 18, 20, 22] + npm: [8, 9, 10, 11] + exclude: # node 16 with npm 10/11 and node 18 with npm 11 are not compatible - node: 16 npm: 10 + - node: 16 + npm: 11 + - node: 18 + npm: 11 runs-on: ubuntu-latest env: # The "default" npm is the one that ships with a given version of node. # For more: https://nodejs.org/en/download/releases/ # (We also use this env var for making sure a step runs once for the current node version) # Note: For node 18, the default was npm 9 until v18.19.0, when it became npm 10 - IS_DEFAULT_NPM: ${{ (matrix.node == 16 && matrix.npm == 8) || (matrix.node == 18 && matrix.npm == 10) || (matrix.node == 20 && matrix.npm == 10) }} + IS_DEFAULT_NPM: ${{ (matrix.node == 16 && matrix.npm == 8) || (matrix.node == 18 && matrix.npm == 10) || (matrix.node == 20 && matrix.npm == 10) || (matrix.node == 22 && matrix.npm == 10) }} steps: - name: Checkout uses: actions/checkout@v4 @@ -58,18 +62,22 @@ jobs: # Run one matrix env at a time because we need to deploy each app to MRT and run e2e tests there max-parallel: 1 matrix: - node: [16, 18, 20] - npm: [8, 9, 10] - exclude: # node 16 is not compatible with npm 10 + node: [16, 18, 20, 22] + npm: [8, 9, 10, 11] + exclude: # node 16 with npm 10/11 and node 18 with npm 11 are not compatible - node: 16 npm: 10 + - node: 16 + npm: 11 + - node: 18 + npm: 11 runs-on: ubuntu-latest env: # The "default" npm is the one that ships with a given version of node. # For more: https://nodejs.org/en/download/releases/ # (We also use this env var for making sure a step runs once for the current node version) # Note: For node 18, the default was npm 9 until v18.19.0, when it became npm 10 - IS_DEFAULT_NPM: ${{ (matrix.node == 16 && matrix.npm == 8) || (matrix.node == 18 && matrix.npm == 10) || (matrix.node == 20 && matrix.npm == 10) }} + IS_DEFAULT_NPM: ${{ (matrix.node == 16 && matrix.npm == 8) || (matrix.node == 18 && matrix.npm == 10) || (matrix.node == 20 && matrix.npm == 10) || (matrix.node == 22 && matrix.npm == 10) }} steps: - name: Checkout uses: actions/checkout@v4 @@ -155,18 +163,22 @@ jobs: # Run one matrix env at a time because we need to deploy each app to MRT and run e2e tests there max-parallel: 1 matrix: - node: [16, 18, 20] - npm: [8, 9, 10] - exclude: # node 16 is not compatible with npm 10 + node: [16, 18, 20, 22] + npm: [8, 9, 10, 11] + exclude: # node 16 with npm 10/11 and node 18 with npm 11 are not compatible - node: 16 npm: 10 + - node: 16 + npm: 11 + - node: 18 + npm: 11 runs-on: ubuntu-latest env: # The "default" npm is the one that ships with a given version of node. # For more: https://nodejs.org/en/download/releases/ # (We also use this env var for making sure a step runs once for the current node version) # Note: For node 18, the default was npm 9 until v18.19.0, when it became npm 10 - IS_DEFAULT_NPM: ${{ (matrix.node == 16 && matrix.npm == 8) || (matrix.node == 18 && matrix.npm == 10) || (matrix.node == 20 && matrix.npm == 10) }} + IS_DEFAULT_NPM: ${{ (matrix.node == 16 && matrix.npm == 8) || (matrix.node == 18 && matrix.npm == 10) || (matrix.node == 20 && matrix.npm == 10) || (matrix.node == 22 && matrix.npm == 10) }} steps: - name: Checkout uses: actions/checkout@v4 @@ -251,18 +263,22 @@ jobs: max-parallel: 1 matrix: # Run all matrix env at once because we will not deploy demo app to MRT. - node: [16, 18, 20] - npm: [8, 9, 10] - exclude: # node 16 is not compatible with npm 10 + node: [16, 18, 20, 22] + npm: [8, 9, 10, 11] + exclude: # node 16 with npm 10/11 and node 18 with npm 11 are not compatible - node: 16 npm: 10 + - node: 16 + npm: 11 + - node: 18 + npm: 11 runs-on: ubuntu-latest env: # The "default" npm is the one that ships with a given version of node. # For more: https://nodejs.org/en/download/releases/ # (We also use this env var for making sure a step runs once for the current node version) # Note: For node 18, the default was npm 9 until v18.19.0, when it became npm 10 - IS_DEFAULT_NPM: ${{ (matrix.node == 16 && matrix.npm == 8) || (matrix.node == 18 && matrix.npm == 10) || (matrix.node == 20 && matrix.npm == 10) }} + IS_DEFAULT_NPM: ${{ (matrix.node == 16 && matrix.npm == 8) || (matrix.node == 18 && matrix.npm == 10) || (matrix.node == 20 && matrix.npm == 10) || (matrix.node == 22 && matrix.npm == 10) }} steps: - name: Checkout uses: actions/checkout@v4 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a0424345d3..568e6ad3f3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -44,21 +44,24 @@ jobs: strategy: fail-fast: false matrix: - node: [16, 18, 20] - npm: [8, 9, 10] - exclude: # node 16 is not compatible with npm 10 + node: [16, 18, 20, 22] + npm: [8, 9, 10, 11] + exclude: # node 16 with npm 10/11 and node 18 with npm 11 are not compatible - node: 16 npm: 10 + - node: 16 + npm: 11 + - node: 18 + npm: 11 runs-on: ubuntu-latest env: # The "default" npm is the one that ships with a given version of node. # For more: https://nodejs.org/en/download/releases/ # (We also use this env var for making sure a step runs once for the current node version) - # Note: For node 18, the default was npm 9 until v18.19.0, when it became npm 10 - IS_DEFAULT_NPM: ${{ (matrix.node == 16 && matrix.npm == 8) || (matrix.node == 18 && matrix.npm == 10) || (matrix.node == 20 && matrix.npm == 10) }} + IS_DEFAULT_NPM: ${{ (matrix.node == 16 && matrix.npm == 8) || (matrix.node == 18 && matrix.npm == 10) || (matrix.node == 20 && matrix.npm == 10) || (matrix.node == 22 && matrix.npm == 10) }} # The current recommended version for Managed Runtime: # https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/upgrade-node-version.html - IS_MRT_NODE: ${{ matrix.node == 20 && matrix.npm == 10 }} + IS_MRT_NODE: ${{ matrix.node == 22 && matrix.npm == 10 }} steps: - name: Checkout uses: actions/checkout@v3 @@ -141,21 +144,25 @@ jobs: strategy: fail-fast: false matrix: - node: [16, 18, 20] - npm: [8, 9, 10] - exclude: # node 16 is not compatible with npm 10 + node: [16, 18, 20, 22] + npm: [8, 9, 10, 11] + exclude: # node 16 with npm 10/11 and node 18 with npm 11 are not compatible - node: 16 npm: 10 + - node: 16 + npm: 11 + - node: 18 + npm: 11 runs-on: windows-latest env: # The "default" npm is the one that ships with a given version of node. # For more: https://nodejs.org/en/download/releases/ # (We also use this env var for making sure a step runs once for the current node version) # Note: For node 18, the default was npm 9 until v18.19.0, when it became npm 10 - IS_DEFAULT_NPM: ${{ (matrix.node == 16 && matrix.npm == 8) || (matrix.node == 18 && matrix.npm == 10) || (matrix.node == 20 && matrix.npm == 10) }} + IS_DEFAULT_NPM: ${{ (matrix.node == 16 && matrix.npm == 8) || (matrix.node == 18 && matrix.npm == 10) || (matrix.node == 20 && matrix.npm == 10) || (matrix.node == 22 && matrix.npm == 10) }} # The current recommended version for Managed Runtime: # https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/upgrade-node-version.html - IS_MRT_NODE: ${{ matrix.node == 20 && matrix.npm == 10 }} + IS_MRT_NODE: ${{ matrix.node == 22 && matrix.npm == 10 }} steps: - name: Checkout uses: actions/checkout@v3 @@ -196,7 +203,7 @@ jobs: - name: Setup Node uses: actions/setup-node@v3 with: - node-version: 20 + node-version: 22 - name: Setup Ubuntu Machine uses: "./.github/actions/setup_ubuntu" @@ -295,7 +302,7 @@ jobs: - name: Setup Node uses: actions/setup-node@v3 with: - node-version: 20 + node-version: 22 - name: Setup Windows Machine uses: "./.github/actions/setup_windows" @@ -339,7 +346,7 @@ jobs: strategy: fail-fast: false matrix: - node: [20] # Should match node version supported by MRT. + node: [22] # Should match node version supported by MRT. runs-on: ubuntu-latest steps: - name: Checkout diff --git a/package-lock.json b/package-lock.json index 4a3c2a6109..a3a7b097f0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,8 +23,8 @@ "syncpack": "^10.1.0" }, "engines": { - "node": "^16.11.0 || ^18.0.0 || ^20.0.0", - "npm": "^8.0.0 || ^9.0.0 || ^10.0.0" + "node": "^16.11.0 || ^18.0.0 || ^20.0.0 || ^22.0.0", + "npm": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0" } }, "node_modules/@babel/code-frame": { diff --git a/package.json b/package.json index 27b5eb4be3..5b7213f8a6 100644 --- a/package.json +++ b/package.json @@ -32,8 +32,8 @@ "syncpack": "^10.1.0" }, "engines": { - "node": "^16.11.0 || ^18.0.0 || ^20.0.0", - "npm": "^8.0.0 || ^9.0.0 || ^10.0.0" + "node": "^16.11.0 || ^18.0.0 || ^20.0.0 || ^22.0.0", + "npm": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0" }, "dependencies": { "node-fetch": "^2.6.9" diff --git a/packages/commerce-sdk-react/CHANGELOG.md b/packages/commerce-sdk-react/CHANGELOG.md index e510bd32f8..042ffc0356 100644 --- a/packages/commerce-sdk-react/CHANGELOG.md +++ b/packages/commerce-sdk-react/CHANGELOG.md @@ -6,6 +6,7 @@ - Update CacheUpdateMatrix for mergeBasket mutation [#2138](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2092) - Clear auth state if session has been invalidated by a password change [#2092](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2092) - DNT interface improvement [#2203](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2203) +- Support Node 22 [#2218](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2218) ## v3.1.0 (Oct 28, 2024) diff --git a/packages/commerce-sdk-react/package-lock.json b/packages/commerce-sdk-react/package-lock.json index 87f68f39ae..85abe50081 100644 --- a/packages/commerce-sdk-react/package-lock.json +++ b/packages/commerce-sdk-react/package-lock.json @@ -42,8 +42,8 @@ "typescript": "4.9.5" }, "engines": { - "node": "^16.11.0 || ^18.0.0 || ^20.0.0", - "npm": "^8.0.0 || ^9.0.0 || ^10.0.0" + "node": "^16.11.0 || ^18.0.0 || ^20.0.0 || ^22.0.0", + "npm": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0" }, "optionalDependencies": { "prop-types": "^15.8.1" diff --git a/packages/commerce-sdk-react/package.json b/packages/commerce-sdk-react/package.json index 670b7c9bb6..0da559b631 100644 --- a/packages/commerce-sdk-react/package.json +++ b/packages/commerce-sdk-react/package.json @@ -84,8 +84,8 @@ "react-router-dom": "^5.3.4" }, "engines": { - "node": "^16.11.0 || ^18.0.0 || ^20.0.0", - "npm": "^8.0.0 || ^9.0.0 || ^10.0.0" + "node": "^16.11.0 || ^18.0.0 || ^20.0.0 || ^22.0.0", + "npm": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0" }, "publishConfig": { "directory": "dist" diff --git a/packages/internal-lib-build/configs/babel.config.js b/packages/internal-lib-build/configs/babel.config.js index b3d0c99dc9..113d180a04 100644 --- a/packages/internal-lib-build/configs/babel.config.js +++ b/packages/internal-lib-build/configs/babel.config.js @@ -10,7 +10,7 @@ const config = { require('@babel/preset-env'), { targets: { - node: 18 + node: 22 } } ], diff --git a/packages/internal-lib-build/package-lock.json b/packages/internal-lib-build/package-lock.json index 76e1cd43b8..2a08c6e0c1 100644 --- a/packages/internal-lib-build/package-lock.json +++ b/packages/internal-lib-build/package-lock.json @@ -50,8 +50,8 @@ "typescript": "4.9.5" }, "engines": { - "node": "^16.11.0 || ^18.0.0 || ^20.0.0", - "npm": "^8.0.0 || ^9.0.0 || ^10.0.0" + "node": "^16.11.0 || ^18.0.0 || ^20.0.0 || ^22.0.0", + "npm": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0" }, "peerDependencies": { "typescript": "4.9.5" diff --git a/packages/internal-lib-build/package.json b/packages/internal-lib-build/package.json index 2af7e4f35c..66f26c33df 100644 --- a/packages/internal-lib-build/package.json +++ b/packages/internal-lib-build/package.json @@ -73,7 +73,7 @@ } }, "engines": { - "node": "^16.11.0 || ^18.0.0 || ^20.0.0", - "npm": "^8.0.0 || ^9.0.0 || ^10.0.0" + "node": "^16.11.0 || ^18.0.0 || ^20.0.0 || ^22.0.0", + "npm": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0" } } diff --git a/packages/pwa-kit-create-app/CHANGELOG.md b/packages/pwa-kit-create-app/CHANGELOG.md index c975e71058..adc2b10977 100644 --- a/packages/pwa-kit-create-app/CHANGELOG.md +++ b/packages/pwa-kit-create-app/CHANGELOG.md @@ -1,4 +1,5 @@ ## v3.9.0-dev (Oct 29, 2024) +- Support Node 22 [#2218](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2218) ## v3.8.0 (Oct 28, 2024) diff --git a/packages/pwa-kit-create-app/assets/bootstrap/js/config/default.js.hbs b/packages/pwa-kit-create-app/assets/bootstrap/js/config/default.js.hbs index 2d2ed1bb25..74d2eaf3bb 100644 --- a/packages/pwa-kit-create-app/assets/bootstrap/js/config/default.js.hbs +++ b/packages/pwa-kit-create-app/assets/bootstrap/js/config/default.js.hbs @@ -66,7 +66,7 @@ module.exports = { ], // Additional parameters that configure Express app behavior. ssrParameters: { - ssrFunctionNodeVersion: '20.x', + ssrFunctionNodeVersion: '22.x', proxyConfigs: [ { host: '{{answers.project.commerce.shortCode}}.api.commercecloud.salesforce.com', diff --git a/packages/pwa-kit-create-app/assets/bootstrap/js/package.json.hbs b/packages/pwa-kit-create-app/assets/bootstrap/js/package.json.hbs index 016ac33bb4..796d3b65a8 100644 --- a/packages/pwa-kit-create-app/assets/bootstrap/js/package.json.hbs +++ b/packages/pwa-kit-create-app/assets/bootstrap/js/package.json.hbs @@ -3,8 +3,8 @@ "version": "0.0.1", "license": "See license in LICENSE", "engines": { - "node": "^18.0.0 || ^20.0.0", - "npm": "^9.0.0 || ^10.0.0" + "node": "^18.0.0 || ^20.0.0 || ^22.0.0", + "npm": "^9.0.0 || ^10.0.0 || ^11.0.0" }, "ccExtensibility": { "extends": "{{preset.templateSource.id}}", diff --git a/packages/pwa-kit-create-app/assets/templates/@salesforce/retail-react-app/config/default.js.hbs b/packages/pwa-kit-create-app/assets/templates/@salesforce/retail-react-app/config/default.js.hbs index 0825bb91b5..ab7d0971a5 100644 --- a/packages/pwa-kit-create-app/assets/templates/@salesforce/retail-react-app/config/default.js.hbs +++ b/packages/pwa-kit-create-app/assets/templates/@salesforce/retail-react-app/config/default.js.hbs @@ -68,7 +68,7 @@ module.exports = { ], // Additional parameters that configure Express app behavior. ssrParameters: { - ssrFunctionNodeVersion: '20.x', + ssrFunctionNodeVersion: '22.x', proxyConfigs: [ { host: '{{answers.project.commerce.shortCode}}.api.commercecloud.salesforce.com', diff --git a/packages/pwa-kit-create-app/package-lock.json b/packages/pwa-kit-create-app/package-lock.json index cba5041081..1197d8146c 100644 --- a/packages/pwa-kit-create-app/package-lock.json +++ b/packages/pwa-kit-create-app/package-lock.json @@ -25,8 +25,8 @@ "verdaccio": "^5.22.1" }, "engines": { - "node": "^16.11.0 || ^18.0.0 || ^20.0.0", - "npm": "^8.0.0 || ^9.0.0 || ^10.0.0" + "node": "^16.11.0 || ^18.0.0 || ^20.0.0 || ^22.0.0", + "npm": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0" } }, "node_modules/@babel/runtime": { diff --git a/packages/pwa-kit-create-app/package.json b/packages/pwa-kit-create-app/package.json index 738d10c2a0..7d566081b1 100644 --- a/packages/pwa-kit-create-app/package.json +++ b/packages/pwa-kit-create-app/package.json @@ -43,7 +43,7 @@ "verdaccio": "^5.22.1" }, "engines": { - "node": "^16.11.0 || ^18.0.0 || ^20.0.0", - "npm": "^8.0.0 || ^9.0.0 || ^10.0.0" + "node": "^16.11.0 || ^18.0.0 || ^20.0.0 || ^22.0.0", + "npm": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0" } } diff --git a/packages/pwa-kit-dev/CHANGELOG.md b/packages/pwa-kit-dev/CHANGELOG.md index 1503e9c384..71ba4a7766 100644 --- a/packages/pwa-kit-dev/CHANGELOG.md +++ b/packages/pwa-kit-dev/CHANGELOG.md @@ -1,4 +1,5 @@ ## v3.9.0-dev (Oct 29, 2024) +- Support Node 22 [#2218](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2218) ## v3.8.0 (Oct 28, 2024) diff --git a/packages/pwa-kit-dev/package-lock.json b/packages/pwa-kit-dev/package-lock.json index 487ca5ec03..dccfc09047 100644 --- a/packages/pwa-kit-dev/package-lock.json +++ b/packages/pwa-kit-dev/package-lock.json @@ -103,8 +103,8 @@ "typescript": "4.9.5" }, "engines": { - "node": "^16.11.0 || ^18.0.0 || ^20.0.0", - "npm": "^8.0.0 || ^9.0.0 || ^10.0.0" + "node": "^16.11.0 || ^18.0.0 || ^20.0.0 || ^22.0.0", + "npm": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0" }, "peerDependencies": { "@loadable/component": "^5.15.3", diff --git a/packages/pwa-kit-dev/package.json b/packages/pwa-kit-dev/package.json index 9c78fa9cc4..215d1490a9 100644 --- a/packages/pwa-kit-dev/package.json +++ b/packages/pwa-kit-dev/package.json @@ -141,8 +141,8 @@ } }, "engines": { - "node": "^16.11.0 || ^18.0.0 || ^20.0.0", - "npm": "^8.0.0 || ^9.0.0 || ^10.0.0" + "node": "^16.11.0 || ^18.0.0 || ^20.0.0 || ^22.0.0", + "npm": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0" }, "publishConfig": { "directory": "dist" diff --git a/packages/pwa-kit-dev/src/configs/babel/babel-config.js b/packages/pwa-kit-dev/src/configs/babel/babel-config.js index 3ffbc8efbf..05439dbeab 100644 --- a/packages/pwa-kit-dev/src/configs/babel/babel-config.js +++ b/packages/pwa-kit-dev/src/configs/babel/babel-config.js @@ -11,7 +11,7 @@ const config = { require('@babel/preset-env'), { targets: { - node: 18 + node: 22 } } ], diff --git a/packages/pwa-kit-dev/src/configs/webpack/test/package.json b/packages/pwa-kit-dev/src/configs/webpack/test/package.json index fa9b8c1041..a7ca9da5b3 100644 --- a/packages/pwa-kit-dev/src/configs/webpack/test/package.json +++ b/packages/pwa-kit-dev/src/configs/webpack/test/package.json @@ -3,8 +3,8 @@ "version": "2.8.0-dev", "license": "See license in LICENSE", "engines": { - "node": "^16.11.0 || ^18.0.0 || ^20.0.0", - "npm": "^8.0.0 || ^9.0.0 || ^10.0.0" + "node": "^16.11.0 || ^18.0.0 || ^20.0.0 || ^22.0.0", + "npm": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0" }, "ccExtensibility": { "extends": "retail-react-app", diff --git a/packages/pwa-kit-react-sdk/CHANGELOG.md b/packages/pwa-kit-react-sdk/CHANGELOG.md index edd353a41d..8b0f042014 100644 --- a/packages/pwa-kit-react-sdk/CHANGELOG.md +++ b/packages/pwa-kit-react-sdk/CHANGELOG.md @@ -1,6 +1,7 @@ ## v3.9.0-dev (Oct 29, 2024) - Fix the performance logging util to not round duration. [#2199](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2199) - Add RedirectWithStatus component, allowing finer grained control of rediriects and their status code [#2173](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2173) +- Support Node 22 [#2218](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2218) ## v3.8.0 (Oct 28, 2024) - [Server Affinity] - Attach dwsid to SCAPI request headers [#2090](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2090) diff --git a/packages/pwa-kit-react-sdk/package-lock.json b/packages/pwa-kit-react-sdk/package-lock.json index b772c3b140..f3632addd2 100644 --- a/packages/pwa-kit-react-sdk/package-lock.json +++ b/packages/pwa-kit-react-sdk/package-lock.json @@ -38,8 +38,8 @@ "supertest": "^4.0.2" }, "engines": { - "node": "^16.11.0 || ^18.0.0 || ^20.0.0", - "npm": "^8.0.0 || ^9.0.0 || ^10.0.0" + "node": "^16.11.0 || ^18.0.0 || ^20.0.0 || ^22.0.0", + "npm": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0" }, "peerDependencies": { "@loadable/component": "^5.15.3", diff --git a/packages/pwa-kit-react-sdk/package.json b/packages/pwa-kit-react-sdk/package.json index ce0331117c..d3f8d96cfd 100644 --- a/packages/pwa-kit-react-sdk/package.json +++ b/packages/pwa-kit-react-sdk/package.json @@ -73,8 +73,8 @@ "react-router-dom": "^5.3.4" }, "engines": { - "node": "^16.11.0 || ^18.0.0 || ^20.0.0", - "npm": "^8.0.0 || ^9.0.0 || ^10.0.0" + "node": "^16.11.0 || ^18.0.0 || ^20.0.0 || ^22.0.0", + "npm": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0" }, "publishConfig": { "directory": "dist" diff --git a/packages/pwa-kit-react-sdk/setup-jest.js b/packages/pwa-kit-react-sdk/setup-jest.js index 325513050b..2d94d3e2b1 100644 --- a/packages/pwa-kit-react-sdk/setup-jest.js +++ b/packages/pwa-kit-react-sdk/setup-jest.js @@ -25,7 +25,7 @@ jest.mock('@salesforce/pwa-kit-runtime/utils/ssr-config', () => { '**/*.json' ], ssrParameters: { - ssrFunctionNodeVersion: '20.x', + ssrFunctionNodeVersion: '22.x', proxyConfigs: [ { host: 'kv7kzm78.api.commercecloud.salesforce.com', diff --git a/packages/pwa-kit-runtime/CHANGELOG.md b/packages/pwa-kit-runtime/CHANGELOG.md index c80ae51b7f..c1add78088 100644 --- a/packages/pwa-kit-runtime/CHANGELOG.md +++ b/packages/pwa-kit-runtime/CHANGELOG.md @@ -1,5 +1,6 @@ ## v3.9.0-dev (Oct 29, 2024) - Fix stale service worker file that could cause requests to still use old Content-Security-Policy [#2191](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2191) +- Support Node 22 [#2218](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2218) ## v3.8.0 (Oct 28, 2024) - Add proxy handling for trusted agent on behalf of (TAOB) requests [#2077](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2077) diff --git a/packages/pwa-kit-runtime/package-lock.json b/packages/pwa-kit-runtime/package-lock.json index 345abc747e..6acf4261d1 100644 --- a/packages/pwa-kit-runtime/package-lock.json +++ b/packages/pwa-kit-runtime/package-lock.json @@ -35,11 +35,11 @@ "supertest": "^4.0.2" }, "engines": { - "node": "^16.11.0 || ^18.0.0 || ^20.0.0", - "npm": "^8.0.0 || ^9.0.0 || ^10.0.0" + "node": "^16.11.0 || ^18.0.0 || ^20.0.0 || ^22.0.0", + "npm": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0" }, "peerDependencies": { - "@salesforce/pwa-kit-dev": "3.7.0" + "@salesforce/pwa-kit-dev": "3.9.0-dev" }, "peerDependenciesMeta": { "@salesforce/pwa-kit-dev": { diff --git a/packages/pwa-kit-runtime/package.json b/packages/pwa-kit-runtime/package.json index 3428731935..d4e6134bf5 100644 --- a/packages/pwa-kit-runtime/package.json +++ b/packages/pwa-kit-runtime/package.json @@ -66,8 +66,8 @@ } }, "engines": { - "node": "^16.11.0 || ^18.0.0 || ^20.0.0", - "npm": "^8.0.0 || ^9.0.0 || ^10.0.0" + "node": "^16.11.0 || ^18.0.0 || ^20.0.0 || ^22.0.0", + "npm": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0" }, "publishConfig": { "directory": "dist" diff --git a/packages/template-express-minimal/package.json b/packages/template-express-minimal/package.json index faeb38f810..0e48647012 100644 --- a/packages/template-express-minimal/package.json +++ b/packages/template-express-minimal/package.json @@ -22,7 +22,7 @@ "mobify": { "ssrEnabled": true, "ssrParameters": { - "ssrFunctionNodeVersion": "20.x" + "ssrFunctionNodeVersion": "22.x" }, "ssrOnly": [ "ssr.js", diff --git a/packages/template-mrt-reference-app/package-lock.json b/packages/template-mrt-reference-app/package-lock.json index b35e69fa75..149e6a4d8e 100644 --- a/packages/template-mrt-reference-app/package-lock.json +++ b/packages/template-mrt-reference-app/package-lock.json @@ -22,8 +22,8 @@ "supertest": "^4.0.2" }, "engines": { - "node": "^16.11.0 || ^18.0.0 || ^20.0.0", - "npm": "^8.0.0 || ^9.0.0 || ^10.0.0" + "node": "^16.11.0 || ^18.0.0 || ^20.0.0 || ^22.0.0", + "npm": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0" } }, "node_modules/@aws-crypto/crc32": { diff --git a/packages/template-mrt-reference-app/package.json b/packages/template-mrt-reference-app/package.json index 489c6f7955..f2121266c1 100644 --- a/packages/template-mrt-reference-app/package.json +++ b/packages/template-mrt-reference-app/package.json @@ -25,13 +25,13 @@ "supertest": "^4.0.2" }, "engines": { - "node": "^16.11.0 || ^18.0.0 || ^20.0.0", - "npm": "^8.0.0 || ^9.0.0 || ^10.0.0" + "node": "^16.11.0 || ^18.0.0 || ^20.0.0 || ^22.0.0", + "npm": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0" }, "mobify": { "ssrEnabled": true, "ssrParameters": { - "ssrFunctionNodeVersion": "20.x", + "ssrFunctionNodeVersion": "22.x", "proxyConfigs": [ { "host": "httpbin.org", diff --git a/packages/template-retail-react-app/CHANGELOG.md b/packages/template-retail-react-app/CHANGELOG.md index d923697c7f..08c55dc7fc 100644 --- a/packages/template-retail-react-app/CHANGELOG.md +++ b/packages/template-retail-react-app/CHANGELOG.md @@ -10,6 +10,8 @@ - [BUG] Fixed "getCheckboxProps is not a function" when rendering checkout page in generated app.[#2140](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2140) - Replace transfer basket call with merge basket on checkout [#2138](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2138) - [BUG] Fix images being fetced multiple times on Safari [#2223](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2223) +- Support Node 22 [#2218](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2218) + ### Accessibility Improvements - [a11y] Fix LinkList component to follow a11y practise [#2098])(https://github.com/SalesforceCommerceCloud/pwa-kit/pull/2098) diff --git a/packages/template-retail-react-app/config/default.js b/packages/template-retail-react-app/config/default.js index 8fb5673dd2..e39c9e2a19 100644 --- a/packages/template-retail-react-app/config/default.js +++ b/packages/template-retail-react-app/config/default.js @@ -50,7 +50,7 @@ module.exports = { '**/*.json' ], ssrParameters: { - ssrFunctionNodeVersion: '20.x', + ssrFunctionNodeVersion: '22.x', proxyConfigs: [ { host: 'kv7kzm78.api.commercecloud.salesforce.com', diff --git a/packages/template-retail-react-app/config/mocks/default.js b/packages/template-retail-react-app/config/mocks/default.js index e204d2f10a..032d1c4d99 100644 --- a/packages/template-retail-react-app/config/mocks/default.js +++ b/packages/template-retail-react-app/config/mocks/default.js @@ -107,7 +107,7 @@ module.exports = { ], // Additional parameters that configure Express app behavior. ssrParameters: { - ssrFunctionNodeVersion: '20.x', + ssrFunctionNodeVersion: '22.x', proxyConfigs: [ { host: 'localhost:8888', diff --git a/packages/template-retail-react-app/package-lock.json b/packages/template-retail-react-app/package-lock.json index c540ff55b0..7bca58f546 100644 --- a/packages/template-retail-react-app/package-lock.json +++ b/packages/template-retail-react-app/package-lock.json @@ -1,12 +1,12 @@ { "name": "@salesforce/retail-react-app", - "version": "5.1.0-dev", + "version": "6.0.0-dev", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@salesforce/retail-react-app", - "version": "5.1.0-dev", + "version": "6.0.0-dev", "license": "See license in LICENSE", "dependencies": { "@chakra-ui/icons": "^2.0.19", @@ -53,8 +53,8 @@ "react-router-dom": "^5.3.4" }, "engines": { - "node": "^16.11.0 || ^18.0.0 || ^20.0.0", - "npm": "^8.0.0 || ^9.0.0 || ^10.0.0" + "node": "^16.11.0 || ^18.0.0 || ^20.0.0 || ^22.0.0", + "npm": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0" } }, "node_modules/@adobe/css-tools": { diff --git a/packages/template-retail-react-app/package.json b/packages/template-retail-react-app/package.json index cdebcc0a98..fb76848fc1 100644 --- a/packages/template-retail-react-app/package.json +++ b/packages/template-retail-react-app/package.json @@ -86,8 +86,8 @@ "cross-env": "^5.2.1" }, "engines": { - "node": "^16.11.0 || ^18.0.0 || ^20.0.0", - "npm": "^8.0.0 || ^9.0.0 || ^10.0.0" + "node": "^16.11.0 || ^18.0.0 || ^20.0.0 || ^22.0.0", + "npm": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0" }, "bundlesize": [ { diff --git a/packages/template-typescript-minimal/package-lock.json b/packages/template-typescript-minimal/package-lock.json index 6ed08729a1..57bf8c3354 100644 --- a/packages/template-typescript-minimal/package-lock.json +++ b/packages/template-typescript-minimal/package-lock.json @@ -20,8 +20,8 @@ "typescript": "4.9.5" }, "engines": { - "node": "^16.11.0 || ^18.0.0 || ^20.0.0", - "npm": "^8.0.0 || ^9.0.0 || ^10.0.0" + "node": "^16.11.0 || ^18.0.0 || ^20.0.0 || ^22.0.0", + "npm": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0" } }, "node_modules/@babel/runtime": { diff --git a/packages/template-typescript-minimal/package.json b/packages/template-typescript-minimal/package.json index 8be41feef4..d4e104180f 100644 --- a/packages/template-typescript-minimal/package.json +++ b/packages/template-typescript-minimal/package.json @@ -32,8 +32,8 @@ "typescript": "4.9.5" }, "engines": { - "node": "^16.11.0 || ^18.0.0 || ^20.0.0", - "npm": "^8.0.0 || ^9.0.0 || ^10.0.0" + "node": "^16.11.0 || ^18.0.0 || ^20.0.0 || ^22.0.0", + "npm": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0" }, "mobify": { "ssrEnabled": true, @@ -50,7 +50,7 @@ "**/*.json" ], "ssrParameters": { - "ssrFunctionNodeVersion": "20.x", + "ssrFunctionNodeVersion": "22.x", "proxyConfigs": [ { "host": "kv7kzm78.api.commercecloud.salesforce.com", diff --git a/packages/test-commerce-sdk-react/package-lock.json b/packages/test-commerce-sdk-react/package-lock.json index 7cdeca30f1..979fcde646 100644 --- a/packages/test-commerce-sdk-react/package-lock.json +++ b/packages/test-commerce-sdk-react/package-lock.json @@ -22,8 +22,8 @@ "typescript": "4.9.5" }, "engines": { - "node": "^16.11.0 || ^18.0.0 || ^20.0.0", - "npm": "^8.0.0 || ^9.0.0 || ^10.0.0" + "node": "^16.11.0 || ^18.0.0 || ^20.0.0 || ^22.0.0", + "npm": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0" } }, "node_modules/@babel/runtime": { diff --git a/packages/test-commerce-sdk-react/package.json b/packages/test-commerce-sdk-react/package.json index ef33b8ac0c..4c1ae099a7 100644 --- a/packages/test-commerce-sdk-react/package.json +++ b/packages/test-commerce-sdk-react/package.json @@ -36,8 +36,8 @@ "typescript": "4.9.5" }, "engines": { - "node": "^16.11.0 || ^18.0.0 || ^20.0.0", - "npm": "^8.0.0 || ^9.0.0 || ^10.0.0" + "node": "^16.11.0 || ^18.0.0 || ^20.0.0 || ^22.0.0", + "npm": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0" }, "mobify": { "ssrEnabled": true, @@ -54,7 +54,7 @@ "**/*.json" ], "ssrParameters": { - "ssrFunctionNodeVersion": "20.x", + "ssrFunctionNodeVersion": "22.x", "proxyConfigs": [ { "host": "kv7kzm78.api.commercecloud.salesforce.com",