diff --git a/.github/workflows/lint-build-test.yml b/.github/workflows/lint-build-test.yml index 8fc8ce51af..ba1eb85c39 100644 --- a/.github/workflows/lint-build-test.yml +++ b/.github/workflows/lint-build-test.yml @@ -9,7 +9,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: [14.x, 16.x] + node-version: [16.x, 18.x, 20.x] outputs: child-workspace-package-names: ${{ steps.workspace-package-names.outputs.child-workspace-package-names }} steps: @@ -32,7 +32,7 @@ jobs: needs: prepare strategy: matrix: - node-version: [14.x, 16.x] + node-version: [16.x, 18.x, 20.x] steps: - uses: actions/checkout@v3 - name: Use Node.js ${{ matrix.node-version }} @@ -56,7 +56,7 @@ jobs: needs: prepare strategy: matrix: - node-version: [14.x, 16.x] + node-version: [16.x, 18.x, 20.x] package-name: ${{ fromJson(needs.prepare.outputs.child-workspace-package-names) }} steps: - uses: actions/checkout@v3 @@ -81,7 +81,7 @@ jobs: needs: prepare strategy: matrix: - node-version: [14.x, 16.x] + node-version: [16.x, 18.x, 20.x] steps: - uses: actions/checkout@v3 - name: Use Node.js ${{ matrix.node-version }} @@ -105,7 +105,7 @@ jobs: needs: prepare strategy: matrix: - node-version: [14.x, 16.x] + node-version: [16.x, 18.x, 20.x] package-name: ${{ fromJson(needs.prepare.outputs.child-workspace-package-names) }} steps: - uses: actions/checkout@v3 diff --git a/.nvmrc b/.nvmrc index 958b5a36e1..6f7f377bf5 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v14 +v16 diff --git a/constraints.pro b/constraints.pro index 3db42078be..119e74e51e 100644 --- a/constraints.pro +++ b/constraints.pro @@ -276,8 +276,8 @@ gen_enforced_dependency(WorkspaceCwd, DependencyIdent, null, DependencyType) :- workspace_has_dependency(WorkspaceCwd, DependencyIdent, DependencyRange, DependencyType), DependencyType == 'devDependencies'. -% All packages must specify a minimum Node version of 14. -gen_enforced_field(WorkspaceCwd, 'engines.node', '>=14.0.0'). +% All packages must specify a minimum Node version of 16. +gen_enforced_field(WorkspaceCwd, 'engines.node', '>=16.0.0'). % All published packages are public. gen_enforced_field(WorkspaceCwd, 'publishConfig.access', 'public') :- diff --git a/docs/contributing.md b/docs/contributing.md index f807a89526..1f1e5fa2ca 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -2,7 +2,7 @@ ## Getting started -- Install [Node.js](https://nodejs.org) version 14. +- Install [Node.js](https://nodejs.org) version 16. - If you're using [NVM](https://github.com/creationix/nvm#installation) (recommended), `nvm use` will ensure that the right version is installed. - Install [Yarn v3](https://yarnpkg.com/getting-started/install). - Run `yarn install` to install dependencies and run any required post-install scripts. @@ -14,7 +14,8 @@ - Run `yarn workspace run jest --no-coverage ` to run a test file within the context of a package. - Run `yarn test` to run tests for all packages. -> **Note** +> **Note** +> > `workspaceName` in these commands is the `name` field within a package's `package.json`, e.g., `@metamask/address-book-controller`, not the directory where it is located, e.g., `packages/address-book-controller`. ## Using packages in other projects during development/testing diff --git a/package.json b/package.json index 914b25b486..b895889cec 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "@metamask/eslint-config-jest": "^9.0.0", "@metamask/eslint-config-nodejs": "^9.0.0", "@metamask/eslint-config-typescript": "^9.0.1", - "@types/node": "^14.14.31", + "@types/node": "^16.18.24", "@typescript-eslint/eslint-plugin": "^4.33.0", "@typescript-eslint/parser": "^4.33.0", "eslint": "^7.24.0", @@ -63,7 +63,7 @@ }, "packageManager": "yarn@3.3.0", "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" }, "lavamoat": { "allowScripts": { diff --git a/packages/address-book-controller/package.json b/packages/address-book-controller/package.json index f28dc16776..695584a884 100644 --- a/packages/address-book-controller/package.json +++ b/packages/address-book-controller/package.json @@ -43,7 +43,7 @@ "typescript": "~4.6.3" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" }, "publishConfig": { "access": "public", diff --git a/packages/announcement-controller/package.json b/packages/announcement-controller/package.json index fc3d056208..18e902063c 100644 --- a/packages/announcement-controller/package.json +++ b/packages/announcement-controller/package.json @@ -43,7 +43,7 @@ "typescript": "~4.6.3" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" }, "publishConfig": { "access": "public", diff --git a/packages/approval-controller/package.json b/packages/approval-controller/package.json index 73c20286fc..02adcf5d42 100644 --- a/packages/approval-controller/package.json +++ b/packages/approval-controller/package.json @@ -47,7 +47,7 @@ "typescript": "~4.6.3" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" }, "publishConfig": { "access": "public", diff --git a/packages/assets-controllers/package.json b/packages/assets-controllers/package.json index 2bc042539b..2111bef801 100644 --- a/packages/assets-controllers/package.json +++ b/packages/assets-controllers/package.json @@ -56,7 +56,7 @@ "devDependencies": { "@metamask/auto-changelog": "^3.1.0", "@types/jest": "^27.4.1", - "@types/node": "^14.14.31", + "@types/node": "^16.18.24", "deepmerge": "^4.2.2", "ethjs-provider-http": "^0.1.6", "jest": "^27.5.1", @@ -73,7 +73,7 @@ "@metamask/network-controller": "workspace:^" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" }, "publishConfig": { "access": "public", diff --git a/packages/base-controller/package.json b/packages/base-controller/package.json index f0a3aeed63..9e0ce51557 100644 --- a/packages/base-controller/package.json +++ b/packages/base-controller/package.json @@ -45,7 +45,7 @@ "typescript": "~4.6.3" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" }, "publishConfig": { "access": "public", diff --git a/packages/composable-controller/package.json b/packages/composable-controller/package.json index ecad363dc9..e9194435c6 100644 --- a/packages/composable-controller/package.json +++ b/packages/composable-controller/package.json @@ -44,7 +44,7 @@ "typescript": "~4.6.3" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" }, "publishConfig": { "access": "public", diff --git a/packages/controller-utils/package.json b/packages/controller-utils/package.json index a9e0788870..2fe2bda931 100644 --- a/packages/controller-utils/package.json +++ b/packages/controller-utils/package.json @@ -50,7 +50,7 @@ "typescript": "~4.6.3" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" }, "publishConfig": { "access": "public", diff --git a/packages/ens-controller/package.json b/packages/ens-controller/package.json index b6b58d4069..8640282faf 100644 --- a/packages/ens-controller/package.json +++ b/packages/ens-controller/package.json @@ -47,7 +47,7 @@ "typescript": "~4.6.3" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" }, "publishConfig": { "access": "public", diff --git a/packages/gas-fee-controller/package.json b/packages/gas-fee-controller/package.json index 1961428cfa..2bef892dc5 100644 --- a/packages/gas-fee-controller/package.json +++ b/packages/gas-fee-controller/package.json @@ -58,7 +58,7 @@ "@metamask/network-controller": "workspace:^" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" }, "publishConfig": { "access": "public", diff --git a/packages/keyring-controller/package.json b/packages/keyring-controller/package.json index ddcd912f93..1ccc0364ad 100644 --- a/packages/keyring-controller/package.json +++ b/packages/keyring-controller/package.json @@ -56,7 +56,7 @@ "uuid": "^8.3.2" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" }, "publishConfig": { "access": "public", diff --git a/packages/message-manager/package.json b/packages/message-manager/package.json index eed63b64d1..93c9738d5d 100644 --- a/packages/message-manager/package.json +++ b/packages/message-manager/package.json @@ -48,7 +48,7 @@ "typescript": "~4.6.3" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" }, "publishConfig": { "access": "public", diff --git a/packages/network-controller/package.json b/packages/network-controller/package.json index 30a1fa387d..c0a1783a9b 100644 --- a/packages/network-controller/package.json +++ b/packages/network-controller/package.json @@ -58,7 +58,7 @@ "typescript": "~4.6.3" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" }, "publishConfig": { "access": "public", diff --git a/packages/notification-controller/package.json b/packages/notification-controller/package.json index ec42643826..7a2bce581d 100644 --- a/packages/notification-controller/package.json +++ b/packages/notification-controller/package.json @@ -45,7 +45,7 @@ "typescript": "~4.6.3" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" }, "publishConfig": { "access": "public", diff --git a/packages/permission-controller/package.json b/packages/permission-controller/package.json index d8c3524722..778c9f1d62 100644 --- a/packages/permission-controller/package.json +++ b/packages/permission-controller/package.json @@ -54,7 +54,7 @@ "@metamask/approval-controller": "workspace:^" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" }, "publishConfig": { "access": "public", diff --git a/packages/phishing-controller/package.json b/packages/phishing-controller/package.json index 44b9fdf782..0f89e2d2c6 100644 --- a/packages/phishing-controller/package.json +++ b/packages/phishing-controller/package.json @@ -48,7 +48,7 @@ "typescript": "~4.6.3" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" }, "publishConfig": { "access": "public", diff --git a/packages/preferences-controller/package.json b/packages/preferences-controller/package.json index 5f0c0f3b6f..94cdcd7b24 100644 --- a/packages/preferences-controller/package.json +++ b/packages/preferences-controller/package.json @@ -43,7 +43,7 @@ "typescript": "~4.6.3" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" }, "publishConfig": { "access": "public", diff --git a/packages/rate-limit-controller/package.json b/packages/rate-limit-controller/package.json index 0205aaefbc..998ea247a1 100644 --- a/packages/rate-limit-controller/package.json +++ b/packages/rate-limit-controller/package.json @@ -44,7 +44,7 @@ "typescript": "~4.6.3" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" }, "publishConfig": { "access": "public", diff --git a/packages/transaction-controller/package.json b/packages/transaction-controller/package.json index dece76477b..9eb4868965 100644 --- a/packages/transaction-controller/package.json +++ b/packages/transaction-controller/package.json @@ -46,7 +46,7 @@ "devDependencies": { "@metamask/auto-changelog": "^3.1.0", "@types/jest": "^27.4.1", - "@types/node": "^14.14.31", + "@types/node": "^16.18.24", "deepmerge": "^4.2.2", "ethjs-provider-http": "^0.1.6", "jest": "^27.5.1", @@ -57,7 +57,7 @@ "typescript": "~4.6.3" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" }, "publishConfig": { "access": "public", diff --git a/yarn.lock b/yarn.lock index 8a2bcb3aaa..5bab7c7169 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1355,7 +1355,7 @@ __metadata: "@metamask/preferences-controller": "workspace:^" "@metamask/utils": ^5.0.2 "@types/jest": ^27.4.1 - "@types/node": ^14.14.31 + "@types/node": ^16.18.24 "@types/uuid": ^8.3.0 abort-controller: ^3.0.0 async-mutex: ^0.2.6 @@ -1482,7 +1482,7 @@ __metadata: "@metamask/eslint-config-jest": ^9.0.0 "@metamask/eslint-config-nodejs": ^9.0.0 "@metamask/eslint-config-typescript": ^9.0.1 - "@types/node": ^14.14.31 + "@types/node": ^16.18.24 "@typescript-eslint/eslint-plugin": ^4.33.0 "@typescript-eslint/parser": ^4.33.0 eslint: ^7.24.0 @@ -1917,7 +1917,7 @@ __metadata: "@metamask/controller-utils": "workspace:^" "@metamask/network-controller": "workspace:^" "@types/jest": ^27.4.1 - "@types/node": ^14.14.31 + "@types/node": ^16.18.24 async-mutex: ^0.2.6 babel-runtime: ^6.26.0 deepmerge: ^4.2.2 @@ -2414,10 +2414,10 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:^14.14.31": - version: 14.14.31 - resolution: "@types/node@npm:14.14.31" - checksum: 5b9ab3660ee63abc57affc836c0d50b2941a862c5b6c241c02762d8e1ad610f6b0d350d7426218dc401b5abc7d6294ee1b475da7c331e486d59a5608d1a0b777 +"@types/node@npm:*, @types/node@npm:^16.18.24": + version: 16.18.24 + resolution: "@types/node@npm:16.18.24" + checksum: 0b221b7f56f3c4911e90dfcc217db3866eb13b7af9390b8f668377f1211b2b3ca808e0128a29d0cef8aa0944523852531e827b923b35e5fa9063db87af7b41a0 languageName: node linkType: hard