diff --git a/CHANGELOG.md b/CHANGELOG.md index 7bba89a..17753f3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 2026-04-23 + +### 🗑️ Removed + +- Dropped support for Node.js 20. The minimum supported version is now Node.js 22. + ## 2026-03-26 ### 🔧 Changed diff --git a/client/package.json b/client/package.json index 48aabd6..c46eed4 100644 --- a/client/package.json +++ b/client/package.json @@ -10,7 +10,7 @@ }, "dependencies": {}, "engines": { - "node": ">=20.14.0" + "node": ">=22.0.0" }, "engineStrict": true, "devDependencies": { diff --git a/demos/common/package.json b/demos/common/package.json index a39f10a..0677708 100644 --- a/demos/common/package.json +++ b/demos/common/package.json @@ -2,7 +2,7 @@ "name": "demo-common-modules", "description": "A collection of helpers and modules used in our various demo integrations.", "engines": { - "node": ">=20.14.0" + "node": ">=22.0.0" }, "scripts": { "lint:types": "tsc", @@ -39,7 +39,7 @@ "@types/cors": "2.8.19", "@types/express": "4.17.21", "@types/multer": "2.0.0", - "@types/node": "24.12.0", + "@types/node": "22.19.17", "@types/nodemon": "1.19.6", "@types/yargs": "17.0.33", "prettier": "3.6.2", diff --git a/demos/ecommerce_shop/backend/package.json b/demos/ecommerce_shop/backend/package.json index 44446ae..dfe4fc4 100644 --- a/demos/ecommerce_shop/backend/package.json +++ b/demos/ecommerce_shop/backend/package.json @@ -27,7 +27,7 @@ "@types/cors": "2.8.19", "@types/express": "4.17.21", "@types/multer": "2.0.0", - "@types/node": "24.12.0", + "@types/node": "22.19.17", "prettier": "3.6.2", "typescript": "5.9.2" } diff --git a/demos/ecommerce_shop/package.json b/demos/ecommerce_shop/package.json index 7870444..32fe7c5 100644 --- a/demos/ecommerce_shop/package.json +++ b/demos/ecommerce_shop/package.json @@ -18,7 +18,7 @@ "test": "cd backend && npm run test" }, "engines": { - "node": ">=20.14.0" + "node": ">=22.0.0" }, "engineStrict": true, "author": "Canva Pty Ltd.", @@ -33,7 +33,7 @@ "@eslint/js": "9.34.0", "@types/cookie-parser": "1.4.9", "@types/jest": "30.0.0", - "@types/node": "24.12.0", + "@types/node": "22.19.17", "@types/nodemon": "1.19.6", "@types/yargs": "17.0.33", "@typescript-eslint/eslint-plugin": "8.41.0", diff --git a/demos/playground/backend/package.json b/demos/playground/backend/package.json index fa80639..fa9c1f1 100644 --- a/demos/playground/backend/package.json +++ b/demos/playground/backend/package.json @@ -27,7 +27,7 @@ "@types/cors": "2.8.19", "@types/express": "4.17.21", "@types/multer": "2.0.0", - "@types/node": "24.12.0", + "@types/node": "22.19.17", "prettier": "3.6.2", "typescript": "5.9.2" } diff --git a/demos/playground/package.json b/demos/playground/package.json index 6d28c25..bd9ac3d 100644 --- a/demos/playground/package.json +++ b/demos/playground/package.json @@ -15,7 +15,7 @@ "postinstall": "npm run generate:dotenv && npm run generate:db-key" }, "engines": { - "node": ">=20.14.0" + "node": ">=22.0.0" }, "engineStrict": true, "author": "Canva Pty Ltd.", @@ -29,7 +29,7 @@ "devDependencies": { "@eslint/js": "9.34.0", "@types/cookie-parser": "1.4.9", - "@types/node": "24.12.0", + "@types/node": "22.19.17", "@types/yargs": "17.0.33", "@typescript-eslint/eslint-plugin": "8.41.0", "@typescript-eslint/parser": "8.41.0", diff --git a/demos/realty/package.json b/demos/realty/package.json index 40ef3a0..a391de3 100644 --- a/demos/realty/package.json +++ b/demos/realty/package.json @@ -18,7 +18,7 @@ "test": "cd backend && npm run test" }, "engines": { - "node": ">=20.14.0" + "node": ">=22.0.0" }, "engineStrict": true, "author": "Canva Pty Ltd.", @@ -32,7 +32,7 @@ "devDependencies": { "@eslint/js": "9.34.0", "@types/cookie-parser": "1.4.9", - "@types/node": "24.12.0", + "@types/node": "22.19.17", "@types/yargs": "17.0.33", "@typescript-eslint/eslint-plugin": "8.41.0", "@typescript-eslint/parser": "8.41.0", diff --git a/package-lock.json b/package-lock.json index d350c17..8f528f9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,7 +21,7 @@ "client" ], "engines": { - "node": ">=20.14.0" + "node": ">=22.0.0" } }, "client": { @@ -33,7 +33,7 @@ "typescript": "5.9.2" }, "engines": { - "node": ">=20.14.0" + "node": ">=22.0.0" } }, "client/ts": {}, @@ -64,20 +64,37 @@ "@types/cors": "2.8.19", "@types/express": "4.17.21", "@types/multer": "2.0.0", - "@types/node": "24.12.0", + "@types/node": "22.19.17", "@types/nodemon": "1.19.6", "@types/yargs": "17.0.33", "prettier": "3.6.2", "typescript": "5.9.2" }, "engines": { - "node": ">=20.14.0" + "node": ">=22.0.0" } }, "demos/common/node_modules/@canva/connect-api-ts": { "resolved": "client/ts", "link": true }, + "demos/common/node_modules/@types/node": { + "version": "22.19.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.17.tgz", + "integrity": "sha512-wGdMcf+vPYM6jikpS/qhg6WiqSV/OhG+jeeHT/KlVqxYfD40iYJf9/AE1uQxVWFvU7MipKRkRv8NSHiCGgPr8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "demos/common/node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + }, "demos/ecommerce_shop": { "name": "ecommerce-shop-demo", "hasInstallScript": true, @@ -90,7 +107,7 @@ "@eslint/js": "9.34.0", "@types/cookie-parser": "1.4.9", "@types/jest": "30.0.0", - "@types/node": "24.12.0", + "@types/node": "22.19.17", "@types/nodemon": "1.19.6", "@types/yargs": "17.0.33", "@typescript-eslint/eslint-plugin": "8.41.0", @@ -114,7 +131,7 @@ "yargs": "17.7.2" }, "engines": { - "node": ">=20.14.0" + "node": ">=22.0.0" } }, "demos/ecommerce_shop/backend": { @@ -134,7 +151,7 @@ "@types/cors": "2.8.19", "@types/express": "4.17.21", "@types/multer": "2.0.0", - "@types/node": "24.12.0", + "@types/node": "22.19.17", "prettier": "3.6.2", "typescript": "5.9.2" } @@ -177,6 +194,23 @@ "resolved": "client/ts", "link": true }, + "demos/ecommerce_shop/node_modules/@types/node": { + "version": "22.19.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.17.tgz", + "integrity": "sha512-wGdMcf+vPYM6jikpS/qhg6WiqSV/OhG+jeeHT/KlVqxYfD40iYJf9/AE1uQxVWFvU7MipKRkRv8NSHiCGgPr8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "demos/ecommerce_shop/node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + }, "demos/playground": { "name": "connect-api-playground", "hasInstallScript": true, @@ -188,7 +222,7 @@ "devDependencies": { "@eslint/js": "9.34.0", "@types/cookie-parser": "1.4.9", - "@types/node": "24.12.0", + "@types/node": "22.19.17", "@types/yargs": "17.0.33", "@typescript-eslint/eslint-plugin": "8.41.0", "@typescript-eslint/parser": "8.41.0", @@ -203,7 +237,7 @@ "yargs": "17.7.2" }, "engines": { - "node": ">=20.14.0" + "node": ">=22.0.0" } }, "demos/playground/backend": { @@ -225,7 +259,7 @@ "@types/cors": "2.8.19", "@types/express": "4.17.21", "@types/multer": "2.0.0", - "@types/node": "24.12.0", + "@types/node": "22.19.17", "prettier": "3.6.2", "typescript": "5.9.2" } @@ -266,6 +300,23 @@ "resolved": "client/ts", "link": true }, + "demos/playground/node_modules/@types/node": { + "version": "22.19.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.17.tgz", + "integrity": "sha512-wGdMcf+vPYM6jikpS/qhg6WiqSV/OhG+jeeHT/KlVqxYfD40iYJf9/AE1uQxVWFvU7MipKRkRv8NSHiCGgPr8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "demos/playground/node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + }, "demos/realty": { "name": "realty-demo", "hasInstallScript": true, @@ -277,7 +328,7 @@ "devDependencies": { "@eslint/js": "9.34.0", "@types/cookie-parser": "1.4.9", - "@types/node": "24.12.0", + "@types/node": "22.19.17", "@types/yargs": "17.0.33", "@typescript-eslint/eslint-plugin": "8.41.0", "@typescript-eslint/parser": "8.41.0", @@ -294,7 +345,7 @@ "yargs": "17.7.2" }, "engines": { - "node": ">=20.14.0" + "node": ">=22.0.0" } }, "demos/realty/backend": { @@ -361,6 +412,23 @@ "resolved": "demos/realty/shared-models/src", "link": true }, + "demos/realty/node_modules/@types/node": { + "version": "22.19.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.17.tgz", + "integrity": "sha512-wGdMcf+vPYM6jikpS/qhg6WiqSV/OhG+jeeHT/KlVqxYfD40iYJf9/AE1uQxVWFvU7MipKRkRv8NSHiCGgPr8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "demos/realty/node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + }, "demos/realty/shared-models": { "name": "@realty-demo/shared-models", "version": "1.0.0", diff --git a/package.json b/package.json index 8c02903..79e1645 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "client" ], "engines": { - "node": ">=20.14.0" + "node": ">=22.0.0" }, "engineStrict": true, "scripts": {