diff --git a/.circleci/config.yml b/.circleci/config.yml index 4fe0ed189..b76793e13 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -6,7 +6,12 @@ orbs: executors: node: docker: - - image: cimg/node:18.16-browsers + - image: cimg/node:20.11-browsers + environment: + NODE_OPTIONS: "--openssl-legacy-provider" + node18_19: + docker: + - image: cimg/node:18.19-browsers environment: NODE_OPTIONS: "--openssl-legacy-provider" node16_20: @@ -154,6 +159,7 @@ workflows: parameters: executor: - node + - node18_19 - node16_20 - test: requires: @@ -163,6 +169,7 @@ workflows: parameters: executor: - node + - node18_19 - node16_20 - e2e-test: requires: @@ -172,6 +179,7 @@ workflows: parameters: executor: - node + - node18_19 - node16_20 - deploy: filters: @@ -193,6 +201,7 @@ workflows: parameters: executor: - node + - node18_19 - node16_20 - test: requires: @@ -202,6 +211,7 @@ workflows: parameters: executor: - node + - node18_19 - node16_20 build-test-publish-deploy: @@ -214,6 +224,7 @@ workflows: parameters: executor: - node + - node18_19 - node16_20 - test: filters: @@ -225,6 +236,7 @@ workflows: parameters: executor: - node + - node18_19 - node16_20 - publish: context: npm-publish-token diff --git a/components/x-article-save-button/package.json b/components/x-article-save-button/package.json index 99ee7a6e6..4f5193446 100644 --- a/components/x-article-save-button/package.json +++ b/components/x-article-save-button/package.json @@ -27,7 +27,7 @@ "@financial-times/x-engine": "file:../../packages/x-engine" }, "engines": { - "node": "16.x || 18.x" + "node": "16.x || 18.x || 20.x" }, "peerDependencies": { "@financial-times/o-colors": "^6.4.2", diff --git a/components/x-follow-button/package.json b/components/x-follow-button/package.json index d29eebeed..ec04310cb 100644 --- a/components/x-follow-button/package.json +++ b/components/x-follow-button/package.json @@ -38,8 +38,8 @@ "classnames": "^2.2.6" }, "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" }, "volta": { "extends": "../../package.json" diff --git a/components/x-gift-article/package.json b/components/x-gift-article/package.json index 5ee8253bc..7ddfb5ec0 100644 --- a/components/x-gift-article/package.json +++ b/components/x-gift-article/package.json @@ -33,8 +33,8 @@ "sass": "^1.49.0" }, "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" }, "volta": { "extends": "../../package.json" diff --git a/components/x-increment/package.json b/components/x-increment/package.json index 20643aa53..2d68eb616 100644 --- a/components/x-increment/package.json +++ b/components/x-increment/package.json @@ -24,8 +24,8 @@ "@financial-times/x-interaction": "file:../x-interaction" }, "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" }, "volta": { "extends": "../../package.json" diff --git a/components/x-interaction/package.json b/components/x-interaction/package.json index 84eb1877a..eb46d6222 100644 --- a/components/x-interaction/package.json +++ b/components/x-interaction/package.json @@ -30,8 +30,8 @@ }, "homepage": "https://github.com/Financial-Times/x-dash/tree/HEAD/components/x-interaction", "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" }, "publishConfig": { "access": "public" diff --git a/components/x-live-blog-post/package.json b/components/x-live-blog-post/package.json index 938ae707d..1a65510bf 100644 --- a/components/x-live-blog-post/package.json +++ b/components/x-live-blog-post/package.json @@ -35,8 +35,8 @@ }, "homepage": "https://github.com/Financial-Times/x-dash/tree/HEAD/components/x-live-blog-post", "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" }, "publishConfig": { "access": "public" diff --git a/components/x-live-blog-wrapper/package.json b/components/x-live-blog-wrapper/package.json index b0b0e933b..b1ab6da50 100644 --- a/components/x-live-blog-wrapper/package.json +++ b/components/x-live-blog-wrapper/package.json @@ -32,8 +32,8 @@ }, "homepage": "https://github.com/Financial-Times/x-dash/tree/HEAD/components/x-live-blog-wrapper", "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" }, "publishConfig": { "access": "public" diff --git a/components/x-privacy-manager/package.json b/components/x-privacy-manager/package.json index 2e4b86cb7..cd466ced1 100644 --- a/components/x-privacy-manager/package.json +++ b/components/x-privacy-manager/package.json @@ -18,8 +18,8 @@ }, "homepage": "https://github.com/Financial-Times/x-dash/tree/HEAD/components/x-privacy-manager", "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" }, "publishConfig": { "access": "public" diff --git a/components/x-styling-demo/package.json b/components/x-styling-demo/package.json index f5c3916d6..be8dcb76a 100644 --- a/components/x-styling-demo/package.json +++ b/components/x-styling-demo/package.json @@ -24,8 +24,8 @@ "classnames": "^2.2.6" }, "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" }, "volta": { "extends": "../../package.json" diff --git a/components/x-teaser-list/package.json b/components/x-teaser-list/package.json index e02636ee9..dd522a455 100644 --- a/components/x-teaser-list/package.json +++ b/components/x-teaser-list/package.json @@ -31,7 +31,7 @@ }, "homepage": "https://github.com/Financial-Times/x-dash/tree/master/components/x-teaser-list", "engines": { - "node": "16.x || 18.x" + "node": "16.x || 18.x || 20.x" }, "publishConfig": { "access": "public" diff --git a/components/x-teaser-timeline/package.json b/components/x-teaser-timeline/package.json index 7fd516993..bd1c63113 100644 --- a/components/x-teaser-timeline/package.json +++ b/components/x-teaser-timeline/package.json @@ -37,8 +37,8 @@ }, "homepage": "https://github.com/Financial-Times/x-dash/tree/HEAD/components/x-teaser-timeline", "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" }, "publishConfig": { "access": "public" diff --git a/components/x-teaser/package.json b/components/x-teaser/package.json index 0888f6f36..807c200d9 100644 --- a/components/x-teaser/package.json +++ b/components/x-teaser/package.json @@ -31,8 +31,8 @@ }, "homepage": "https://github.com/Financial-Times/x-dash/tree/HEAD/components/x-teaser", "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" }, "publishConfig": { "access": "public" diff --git a/components/x-topic-search/package.json b/components/x-topic-search/package.json index 3b4345d4f..2a72719e5 100644 --- a/components/x-topic-search/package.json +++ b/components/x-topic-search/package.json @@ -35,7 +35,7 @@ }, "homepage": "https://github.com/Financial-Times/x-dash/tree/master/components/x-topic-search", "engines": { - "node": "16.x || 18.x" + "node": "16.x || 18.x || 20.x" }, "publishConfig": { "access": "public" diff --git a/e2e/package.json b/e2e/package.json index 113807d62..aa2468796 100644 --- a/e2e/package.json +++ b/e2e/package.json @@ -27,8 +27,8 @@ "url": "https://github.com/Financial-Times/x-dash.git" }, "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" }, "publishConfig": { "access": "public" diff --git a/package-lock.json b/package-lock.json index 13c1e0968..dba0dfd86 100644 --- a/package-lock.json +++ b/package-lock.json @@ -47,8 +47,8 @@ "write-file-webpack-plugin": "^4.5.0" }, "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" } }, "components/x-article-save-button": { @@ -66,7 +66,7 @@ "sass": "^1.49.0" }, "engines": { - "node": "16.x || 18.x" + "node": "16.x || 18.x || 20.x" }, "peerDependencies": { "@financial-times/o-colors": "^6.4.2", @@ -95,8 +95,8 @@ "sass": "^1.49.0" }, "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" }, "peerDependencies": { "@financial-times/n-myft-ui": "^32.0.2", @@ -193,8 +193,8 @@ "sass": "^1.49.0" }, "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" }, "peerDependencies": { "@financial-times/o-banner": "^4.4.9", @@ -223,8 +223,8 @@ "check-engine": "^1.10.1" }, "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" } }, "components/x-interaction": { @@ -241,8 +241,8 @@ "check-engine": "^1.10.1" }, "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" } }, "components/x-live-blog-post": { @@ -264,8 +264,8 @@ "sass": "^1.49.0" }, "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" }, "peerDependencies": { "@financial-times/o-colors": "^6.4.2", @@ -288,8 +288,8 @@ "check-engine": "^1.10.1" }, "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" }, "peerDependencies": { "@financial-times/x-interaction": "file:../x-interaction" @@ -319,8 +319,8 @@ "sass": "^1.26.5" }, "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" }, "peerDependencies": { "@financial-times/o-buttons": "^7.2.2", @@ -346,8 +346,8 @@ "check-engine": "^1.10.1" }, "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" } }, "components/x-teaser": { @@ -364,8 +364,8 @@ "check-engine": "^1.10.1" }, "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" } }, "components/x-teaser-list": { @@ -383,7 +383,7 @@ "sass": "^1.49.0" }, "engines": { - "node": "16.x || 18.x" + "node": "16.x || 18.x || 20.x" }, "peerDependencies": { "@financial-times/o-colors": "^6.4.2" @@ -409,8 +409,8 @@ "sass": "^1.49.0" }, "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" }, "peerDependencies": { "@financial-times/o-colors": "^6.4.2", @@ -437,7 +437,7 @@ "sass": "^1.49.0" }, "engines": { - "node": "16.x || 18.x" + "node": "16.x || 18.x || 20.x" }, "peerDependencies": { "@financial-times/o-colors": "^6.4.2", @@ -465,8 +465,8 @@ "webpack-cli": "^4.8.0" }, "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" } }, "e2e/node_modules/react": { @@ -30474,8 +30474,8 @@ "check-engine": "^1.10.1" }, "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" } }, "packages/x-engine": { @@ -30489,8 +30489,8 @@ "check-engine": "^1.10.1" }, "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" }, "peerDependencies": { "webpack": "4.x" @@ -30507,8 +30507,8 @@ "check-engine": "^1.10.1" }, "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" } }, "packages/x-node-jsx": { @@ -30523,8 +30523,8 @@ "check-engine": "^1.10.1" }, "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" } }, "packages/x-rollup": { @@ -30545,8 +30545,8 @@ "check-engine": "^1.10.1" }, "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" } }, "packages/x-rollup/node_modules/log-symbols": { @@ -30574,8 +30574,8 @@ "check-engine": "^1.10.1" }, "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" } } } diff --git a/package.json b/package.json index 689187ca8..9de53dd81 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "x-dash", "private": true, "volta": { - "node": "18.16.1" + "node": "20.11.0" }, "scripts": { "clean": "git clean -fxdi", @@ -83,7 +83,7 @@ "e2e" ], "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" } } diff --git a/packages/x-babel-config/package.json b/packages/x-babel-config/package.json index ecd9e8463..8e37fa941 100644 --- a/packages/x-babel-config/package.json +++ b/packages/x-babel-config/package.json @@ -17,8 +17,8 @@ "fast-async": "^7.0.6" }, "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" }, "volta": { "extends": "../../package.json" diff --git a/packages/x-engine/package.json b/packages/x-engine/package.json index 825a4a1c8..854bc7dda 100644 --- a/packages/x-engine/package.json +++ b/packages/x-engine/package.json @@ -15,8 +15,8 @@ }, "homepage": "https://github.com/Financial-Times/x-dash/tree/HEAD/packages/x-engine", "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" }, "publishConfig": { "access": "public" diff --git a/packages/x-handlebars/package.json b/packages/x-handlebars/package.json index 585051c71..d8ac39a1d 100644 --- a/packages/x-handlebars/package.json +++ b/packages/x-handlebars/package.json @@ -17,8 +17,8 @@ }, "homepage": "https://github.com/Financial-Times/x-dash/tree/HEAD/packages/x-handlebars", "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" }, "publishConfig": { "access": "public" diff --git a/packages/x-node-jsx/package.json b/packages/x-node-jsx/package.json index f25e0bb37..575e631d1 100644 --- a/packages/x-node-jsx/package.json +++ b/packages/x-node-jsx/package.json @@ -18,8 +18,8 @@ }, "homepage": "https://github.com/Financial-Times/x-dash/tree/HEAD/packages/x-node-jsx", "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" }, "publishConfig": { "access": "public" diff --git a/packages/x-rollup/package.json b/packages/x-rollup/package.json index 5bc9371c9..9e3978e47 100644 --- a/packages/x-rollup/package.json +++ b/packages/x-rollup/package.json @@ -21,8 +21,8 @@ "rollup-plugin-commonjs": "^10.1.0" }, "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" }, "volta": { "extends": "../../package.json" diff --git a/packages/x-test-utils/package.json b/packages/x-test-utils/package.json index fa0789c61..cff300a5d 100644 --- a/packages/x-test-utils/package.json +++ b/packages/x-test-utils/package.json @@ -18,8 +18,8 @@ "react-dom": "^16.5.0" }, "engines": { - "node": "16.x || 18.x", - "npm": "7.x || 8.x || 9.x" + "node": "16.x || 18.x || 20.x", + "npm": "7.x || 8.x || 9.x || 10.x" }, "volta": { "extends": "../../package.json" diff --git a/private/blueprints/component/package.json b/private/blueprints/component/package.json index 271d7951e..28de8ee6b 100644 --- a/private/blueprints/component/package.json +++ b/private/blueprints/component/package.json @@ -24,7 +24,7 @@ }, "homepage": "https://github.com/Financial-Times/x-dash/tree/HEAD/components/{{packageName}}", "engines": { - "node": "16.x || 18.x" + "node": "16.x || 18.x || 20.x" }, "publishConfig": { "access": "public" diff --git a/readme.md b/readme.md index 9b5853bc0..62f9037dc 100644 --- a/readme.md +++ b/readme.md @@ -19,8 +19,8 @@ New components **should not** be added to this monorepo. Existing components **c To get started with x-dash, you'll need to make sure you have the following software tools installed. 1. [Git](https://git-scm.com/) -2. [Node.js](https://nodejs.org/en/) (version 16) -3. [npm](http://npmjs.com/) (versions 7 or 8) +2. [Node.js](https://nodejs.org/en/) (version 16–20) +3. [npm](http://npmjs.com/) (versions 7–10) Please note that x-dash has only been tested in Mac and Linux environments. If you are on a Mac you may find it easiest to install the [Command Line Tools](https://developer.apple.com/download/more/) package which includes Git.