From 5342e9790ae3f36cdb141da303b917c9388ba912 Mon Sep 17 00:00:00 2001 From: Elliot Winkler Date: Thu, 20 Nov 2025 09:58:44 -0700 Subject: [PATCH 1/3] Move peer deps for controller/service packages to direct deps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Some controllers and services expect other controllers and services to pre-exist so that they can communicate with them. Traditionally the way that we have expressed this dependency is via peer dependencies. That is, if a controller in `@metamask/foo-controller` used a service in `@metamask/bar-service`, then it would declare a peer dependency on a major version of `@metamask/bar-service`. This would enforce that clients declare a direct dependency on `@metamask/bar-service` and the major version used for this dependency matched the major version that `@metamask/foo-controller` expressed. However, this approach complicates the release process. If the major version of a package is bumped, it must be synchronized across all peer dependents across the monorepo. But as a result, all peer dependents must be bumped by a major (since changing a peer dependency is a breaing change) and thus must be included in the release. This means that releases can quickly balloon in size, causing pain for other teams. To address this issue, this commit converts all peer dependencies on controller and service packages to regular direct dependencies. This allows major versions of packages to be released more flexibly as needed. However, this change also means that, at the client level, it is possible for different versions of packages to be present in the dependency tree. For instance, the client could directly depend on `@metamask/foo-controller` 1.0.0 and `@metamask/bar-controller` 1.0.0, but `@metamask/bar-controller` could itself depend on `@metamask/foo-controller` 1.1.0. So while `@metamask/bar-controller` thinks it is talking to a later version of `@metamask/foo-controller`, it would actually be talking to an earlier version. In most cases any incompatibilities would show up at compile-time, but they could also show up at runtime. In general we expect client engineers to be aware of these differences when making new releases — perhaps more aware than they might be now. --- packages/account-tree-controller/CHANGELOG.md | 13 ++ packages/account-tree-controller/package.json | 20 +-- packages/accounts-controller/CHANGELOG.md | 11 ++ packages/accounts-controller/package.json | 13 +- packages/assets-controllers/CHANGELOG.md | 19 +++ packages/assets-controllers/package.json | 37 ++--- packages/bridge-controller/CHANGELOG.md | 14 ++ packages/bridge-controller/package.json | 20 +-- .../bridge-status-controller/CHANGELOG.md | 14 ++ .../bridge-status-controller/package.json | 20 +-- packages/controller-utils/package.json | 3 - packages/core-backend/CHANGELOG.md | 10 ++ packages/core-backend/package.json | 8 +- packages/delegation-controller/CHANGELOG.md | 10 ++ packages/delegation-controller/package.json | 8 +- packages/earn-controller/CHANGELOG.md | 10 ++ packages/earn-controller/package.json | 8 +- packages/ens-controller/CHANGELOG.md | 9 ++ packages/ens-controller/package.json | 5 +- packages/gas-fee-controller/CHANGELOG.md | 9 ++ packages/gas-fee-controller/package.json | 6 +- .../gator-permissions-controller/CHANGELOG.md | 10 ++ .../gator-permissions-controller/package.json | 8 +- .../multichain-account-service/CHANGELOG.md | 12 ++ .../multichain-account-service/package.json | 17 +-- .../CHANGELOG.md | 10 ++ .../package.json | 8 +- .../CHANGELOG.md | 10 ++ .../package.json | 8 +- packages/network-controller/CHANGELOG.md | 9 ++ packages/network-controller/package.json | 5 +- .../CHANGELOG.md | 11 ++ .../package.json | 11 +- .../CHANGELOG.md | 10 ++ .../package.json | 8 +- packages/permission-controller/CHANGELOG.md | 9 ++ packages/permission-controller/package.json | 5 +- packages/phishing-controller/CHANGELOG.md | 9 ++ packages/phishing-controller/package.json | 5 +- packages/polling-controller/CHANGELOG.md | 9 ++ packages/polling-controller/package.json | 5 +- packages/preferences-controller/CHANGELOG.md | 9 ++ packages/preferences-controller/package.json | 5 +- packages/profile-sync-controller/CHANGELOG.md | 11 ++ packages/profile-sync-controller/package.json | 13 +- packages/sample-controllers/CHANGELOG.md | 9 ++ packages/sample-controllers/package.json | 5 +- .../CHANGELOG.md | 9 ++ .../package.json | 5 +- .../selected-network-controller/CHANGELOG.md | 10 ++ .../selected-network-controller/package.json | 8 +- packages/shield-controller/CHANGELOG.md | 10 ++ packages/shield-controller/package.json | 8 +- packages/signature-controller/CHANGELOG.md | 14 ++ packages/signature-controller/package.json | 20 +-- packages/subscription-controller/CHANGELOG.md | 9 ++ packages/subscription-controller/package.json | 5 +- packages/transaction-controller/CHANGELOG.md | 14 ++ packages/transaction-controller/package.json | 21 +-- .../transaction-pay-controller/CHANGELOG.md | 15 ++ .../transaction-pay-controller/package.json | 23 +-- .../user-operation-controller/CHANGELOG.md | 14 ++ .../user-operation-controller/package.json | 20 +-- yarn.config.cjs | 78 ++++++++-- yarn.lock | 141 ------------------ 65 files changed, 505 insertions(+), 417 deletions(-) diff --git a/packages/account-tree-controller/CHANGELOG.md b/packages/account-tree-controller/CHANGELOG.md index 8ae4f22d31c..a0256297215 100644 --- a/packages/account-tree-controller/CHANGELOG.md +++ b/packages/account-tree-controller/CHANGELOG.md @@ -7,6 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209)) + - The dependencies moved are: + - `@metamask/accounts-controller` (^35.0.0) + - `@metamask/keyring-controller` (^25.0.0) + - `@metamask/multichain-account-service` (^4.0.0) + - `@metamask/profile-sync-controller` (^27.0.0) + - `@metamask/snaps-controllers` (^14.0.1) + - In clients, it is now possible for multiple versions of these packages to exist in the dependency tree. + - For example, this scenario would be valid: a client relies on `@metamask/controller-a` 1.0.0 and `@metamask/controller-b` 1.0.0, and `@metamask/controller-b` depends on `@metamask/controller-a` 1.1.0. + - Note, however, that the versions specified in the client's `package.json` always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication. + ## [4.0.0] ### Changed diff --git a/packages/account-tree-controller/package.json b/packages/account-tree-controller/package.json index 4b994659bf0..6d59d642d08 100644 --- a/packages/account-tree-controller/package.json +++ b/packages/account-tree-controller/package.json @@ -48,8 +48,13 @@ "test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch" }, "dependencies": { + "@metamask/accounts-controller": "^35.0.0", "@metamask/base-controller": "^9.0.0", + "@metamask/keyring-controller": "^25.0.0", "@metamask/messenger": "^0.3.0", + "@metamask/multichain-account-service": "^4.0.0", + "@metamask/profile-sync-controller": "^27.0.0", + "@metamask/snaps-controllers": "^14.0.1", "@metamask/snaps-sdk": "^9.0.0", "@metamask/snaps-utils": "^11.0.0", "@metamask/superstruct": "^3.1.0", @@ -59,14 +64,9 @@ }, "devDependencies": { "@metamask/account-api": "^0.12.0", - "@metamask/accounts-controller": "^35.0.0", "@metamask/auto-changelog": "^3.4.4", "@metamask/keyring-api": "^21.0.0", - "@metamask/keyring-controller": "^25.0.0", - "@metamask/multichain-account-service": "^4.0.0", - "@metamask/profile-sync-controller": "^27.0.0", "@metamask/providers": "^22.1.0", - "@metamask/snaps-controllers": "^14.0.1", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^27.4.1", "deepmerge": "^4.2.2", @@ -77,16 +77,6 @@ "typescript": "~5.3.3", "webextension-polyfill": "^0.12.0" }, - "peerDependencies": { - "@metamask/account-api": "^0.12.0", - "@metamask/accounts-controller": "^35.0.0", - "@metamask/keyring-controller": "^25.0.0", - "@metamask/multichain-account-service": "^4.0.0", - "@metamask/profile-sync-controller": "^27.0.0", - "@metamask/providers": "^22.0.0", - "@metamask/snaps-controllers": "^14.0.0", - "webextension-polyfill": "^0.10.0 || ^0.11.0 || ^0.12.0" - }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/accounts-controller/CHANGELOG.md b/packages/accounts-controller/CHANGELOG.md index fa1e3132060..ec8fddae2af 100644 --- a/packages/accounts-controller/CHANGELOG.md +++ b/packages/accounts-controller/CHANGELOG.md @@ -7,6 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209)) + - The dependencies moved are: + - `@metamask/keyring-controller` (^25.0.0) + - `@metamask/network-controller` (^26.0.0) + - `@metamask/snaps-controllers` (^14.0.1) + - In clients, it is now possible for multiple versions of these packages to exist in the dependency tree. + - For example, this scenario would be valid: a client relies on `@metamask/controller-a` 1.0.0 and `@metamask/controller-b` 1.0.0, and `@metamask/controller-b` depends on `@metamask/controller-a` 1.1.0. + - Note, however, that the versions specified in the client's `package.json` always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication. + ## [35.0.0] ### Changed diff --git a/packages/accounts-controller/package.json b/packages/accounts-controller/package.json index dde00cdb34b..69817860b4e 100644 --- a/packages/accounts-controller/package.json +++ b/packages/accounts-controller/package.json @@ -52,9 +52,12 @@ "@metamask/base-controller": "^9.0.0", "@metamask/eth-snap-keyring": "^18.0.0", "@metamask/keyring-api": "^21.0.0", + "@metamask/keyring-controller": "^25.0.0", "@metamask/keyring-internal-api": "^9.0.0", "@metamask/keyring-utils": "^3.1.0", "@metamask/messenger": "^0.3.0", + "@metamask/network-controller": "^26.0.0", + "@metamask/snaps-controllers": "^14.0.1", "@metamask/snaps-sdk": "^9.0.0", "@metamask/snaps-utils": "^11.0.0", "@metamask/superstruct": "^3.1.0", @@ -68,10 +71,7 @@ "devDependencies": { "@metamask/auto-changelog": "^3.4.4", "@metamask/controller-utils": "^11.16.0", - "@metamask/keyring-controller": "^25.0.0", - "@metamask/network-controller": "^26.0.0", "@metamask/providers": "^22.1.0", - "@metamask/snaps-controllers": "^14.0.1", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^27.4.1", "@types/readable-stream": "^2.3.0", @@ -82,13 +82,6 @@ "typescript": "~5.3.3", "webextension-polyfill": "^0.12.0" }, - "peerDependencies": { - "@metamask/keyring-controller": "^25.0.0", - "@metamask/network-controller": "^26.0.0", - "@metamask/providers": "^22.0.0", - "@metamask/snaps-controllers": "^14.0.0", - "webextension-polyfill": "^0.10.0 || ^0.11.0 || ^0.12.0" - }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/assets-controllers/CHANGELOG.md b/packages/assets-controllers/CHANGELOG.md index 0ee10cc64aa..9b49297e558 100644 --- a/packages/assets-controllers/CHANGELOG.md +++ b/packages/assets-controllers/CHANGELOG.md @@ -7,6 +7,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209)) + - The dependencies moved are: + - `@metamask/account-tree-controller` (^4.0.0) + - `@metamask/accounts-controller` (^35.0.0) + - `@metamask/approval-controller` (^8.0.0) + - `@metamask/core-backend` (^5.0.0) + - `@metamask/keyring-controller` (^25.0.0) + - `@metamask/network-controller` (^26.0.0) + - `@metamask/permission-controller` (^12.1.1) + - `@metamask/phishing-controller` (^16.0.0) + - `@metamask/preferences-controller` (^22.0.0) + - `@metamask/snaps-controllers` (^14.0.1) + - `@metamask/transaction-controller` (^62.0.0) + - In clients, it is now possible for multiple versions of these packages to exist in the dependency tree. + - For example, this scenario would be valid: a client relies on `@metamask/controller-a` 1.0.0 and `@metamask/controller-b` 1.0.0, and `@metamask/controller-b` depends on `@metamask/controller-a` 1.1.0. + - Note, however, that the versions specified in the client's `package.json` always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication. + ## [91.0.0] ### Changed diff --git a/packages/assets-controllers/package.json b/packages/assets-controllers/package.json index 084a5e9c370..0146d02626f 100644 --- a/packages/assets-controllers/package.json +++ b/packages/assets-controllers/package.json @@ -55,17 +55,28 @@ "@ethersproject/contracts": "^5.7.0", "@ethersproject/providers": "^5.7.0", "@metamask/abi-utils": "^2.0.3", + "@metamask/account-tree-controller": "^4.0.0", + "@metamask/accounts-controller": "^35.0.0", + "@metamask/approval-controller": "^8.0.0", "@metamask/base-controller": "^9.0.0", "@metamask/contract-metadata": "^2.4.0", "@metamask/controller-utils": "^11.16.0", + "@metamask/core-backend": "^5.0.0", "@metamask/eth-query": "^4.0.0", "@metamask/keyring-api": "^21.0.0", + "@metamask/keyring-controller": "^25.0.0", "@metamask/messenger": "^0.3.0", "@metamask/metamask-eth-abis": "^3.1.1", + "@metamask/network-controller": "^26.0.0", + "@metamask/permission-controller": "^12.1.1", + "@metamask/phishing-controller": "^16.0.0", "@metamask/polling-controller": "^16.0.0", + "@metamask/preferences-controller": "^22.0.0", "@metamask/rpc-errors": "^7.0.2", + "@metamask/snaps-controllers": "^14.0.1", "@metamask/snaps-sdk": "^9.0.0", "@metamask/snaps-utils": "^11.0.0", + "@metamask/transaction-controller": "^62.0.0", "@metamask/utils": "^11.8.1", "@types/bn.js": "^5.1.5", "@types/uuid": "^8.3.0", @@ -82,23 +93,12 @@ "devDependencies": { "@babel/runtime": "^7.23.9", "@metamask/account-api": "^0.12.0", - "@metamask/account-tree-controller": "^4.0.0", - "@metamask/accounts-controller": "^35.0.0", - "@metamask/approval-controller": "^8.0.0", "@metamask/auto-changelog": "^3.4.4", - "@metamask/core-backend": "^5.0.0", "@metamask/ethjs-provider-http": "^0.3.0", - "@metamask/keyring-controller": "^25.0.0", "@metamask/keyring-internal-api": "^9.0.0", "@metamask/keyring-snap-client": "^8.0.0", "@metamask/multichain-account-service": "^4.0.0", - "@metamask/network-controller": "^26.0.0", - "@metamask/permission-controller": "^12.1.1", - "@metamask/phishing-controller": "^16.0.0", - "@metamask/preferences-controller": "^22.0.0", "@metamask/providers": "^22.1.0", - "@metamask/snaps-controllers": "^14.0.1", - "@metamask/transaction-controller": "^62.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^27.4.1", "@types/lodash": "^4.14.191", @@ -114,21 +114,6 @@ "typescript": "~5.3.3", "webextension-polyfill": "^0.12.0" }, - "peerDependencies": { - "@metamask/account-tree-controller": "^4.0.0", - "@metamask/accounts-controller": "^35.0.0", - "@metamask/approval-controller": "^8.0.0", - "@metamask/core-backend": "^5.0.0", - "@metamask/keyring-controller": "^25.0.0", - "@metamask/network-controller": "^26.0.0", - "@metamask/permission-controller": "^12.0.0", - "@metamask/phishing-controller": "^16.0.0", - "@metamask/preferences-controller": "^22.0.0", - "@metamask/providers": "^22.0.0", - "@metamask/snaps-controllers": "^14.0.0", - "@metamask/transaction-controller": "^62.0.0", - "webextension-polyfill": "^0.10.0 || ^0.11.0 || ^0.12.0" - }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/bridge-controller/CHANGELOG.md b/packages/bridge-controller/CHANGELOG.md index 44213c0345a..dbeb2ab8a62 100644 --- a/packages/bridge-controller/CHANGELOG.md +++ b/packages/bridge-controller/CHANGELOG.md @@ -7,6 +7,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209)) + - The dependencies moved are: + - `@metamask/accounts-controller` (^35.0.0) + - `@metamask/assets-controllers` (^91.0.0) + - `@metamask/network-controller` (^26.0.0) + - `@metamask/remote-feature-flag-controller` (^2.0.1) + - `@metamask/snaps-controllers` (^14.0.0) + - `@metamask/transaction-controller` (^62.0.0) + - In clients, it is now possible for multiple versions of these packages to exist in the dependency tree. + - For example, this scenario would be valid: a client relies on `@metamask/controller-a` 1.0.0 and `@metamask/controller-b` 1.0.0, and `@metamask/controller-b` depends on `@metamask/controller-a` 1.1.0. + - Note, however, that the versions specified in the client's `package.json` always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication. + ## [63.0.0] ### Changed diff --git a/packages/bridge-controller/package.json b/packages/bridge-controller/package.json index b4b4167fbe2..8502be883c4 100644 --- a/packages/bridge-controller/package.json +++ b/packages/bridge-controller/package.json @@ -53,6 +53,8 @@ "@ethersproject/constants": "^5.7.0", "@ethersproject/contracts": "^5.7.0", "@ethersproject/providers": "^5.7.0", + "@metamask/accounts-controller": "^35.0.0", + "@metamask/assets-controllers": "^91.0.0", "@metamask/base-controller": "^9.0.0", "@metamask/controller-utils": "^11.16.0", "@metamask/gas-fee-controller": "^26.0.0", @@ -60,22 +62,20 @@ "@metamask/messenger": "^0.3.0", "@metamask/metamask-eth-abis": "^3.1.1", "@metamask/multichain-network-controller": "^3.0.0", + "@metamask/network-controller": "^26.0.0", "@metamask/polling-controller": "^16.0.0", + "@metamask/remote-feature-flag-controller": "^2.0.1", + "@metamask/snaps-controllers": "^14.0.1", + "@metamask/transaction-controller": "^62.0.0", "@metamask/utils": "^11.8.1", "bignumber.js": "^9.1.2", "reselect": "^5.1.1", "uuid": "^8.3.2" }, "devDependencies": { - "@metamask/accounts-controller": "^35.0.0", - "@metamask/assets-controllers": "^91.0.0", "@metamask/auto-changelog": "^3.4.4", "@metamask/eth-json-rpc-provider": "^6.0.0", - "@metamask/network-controller": "^26.0.0", - "@metamask/remote-feature-flag-controller": "^2.0.1", - "@metamask/snaps-controllers": "^14.0.1", "@metamask/superstruct": "^3.1.0", - "@metamask/transaction-controller": "^62.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^27.4.1", "deepmerge": "^4.2.2", @@ -88,14 +88,6 @@ "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" }, - "peerDependencies": { - "@metamask/accounts-controller": "^35.0.0", - "@metamask/assets-controllers": "^91.0.0", - "@metamask/network-controller": "^26.0.0", - "@metamask/remote-feature-flag-controller": "^2.0.0", - "@metamask/snaps-controllers": "^14.0.0", - "@metamask/transaction-controller": "^62.0.0" - }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/bridge-status-controller/CHANGELOG.md b/packages/bridge-status-controller/CHANGELOG.md index 23e726f67ef..82772614c43 100644 --- a/packages/bridge-status-controller/CHANGELOG.md +++ b/packages/bridge-status-controller/CHANGELOG.md @@ -7,6 +7,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209)) + - The dependencies moved are: + - `@metamask/accounts-controller` (^35.0.0) + - `@metamask/bridge-controller` (^63.0.0) + - `@metamask/gas-fee-controller` (^26.0.0) + - `@metamask/network-controller` (^26.0.0) + - `@metamask/snaps-controllers` (^14.0.0) + - `@metamask/transaction-controller` (^62.0.0) + - In clients, it is now possible for multiple versions of these packages to exist in the dependency tree. + - For example, this scenario would be valid: a client relies on `@metamask/controller-a` 1.0.0 and `@metamask/controller-b` 1.0.0, and `@metamask/controller-b` depends on `@metamask/controller-a` 1.1.0. + - Note, however, that the versions specified in the client's `package.json` always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication. + ## [63.0.0] ### Changed diff --git a/packages/bridge-status-controller/package.json b/packages/bridge-status-controller/package.json index 95c3c29700f..a319b85d8f4 100644 --- a/packages/bridge-status-controller/package.json +++ b/packages/bridge-status-controller/package.json @@ -48,22 +48,22 @@ "test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch" }, "dependencies": { + "@metamask/accounts-controller": "^35.0.0", "@metamask/base-controller": "^9.0.0", + "@metamask/bridge-controller": "^63.0.0", "@metamask/controller-utils": "^11.16.0", + "@metamask/gas-fee-controller": "^26.0.0", + "@metamask/network-controller": "^26.0.0", "@metamask/polling-controller": "^16.0.0", + "@metamask/snaps-controllers": "^14.0.1", "@metamask/superstruct": "^3.1.0", + "@metamask/transaction-controller": "^62.0.0", "@metamask/utils": "^11.8.1", "bignumber.js": "^9.1.2", "uuid": "^8.3.2" }, "devDependencies": { - "@metamask/accounts-controller": "^35.0.0", "@metamask/auto-changelog": "^3.4.4", - "@metamask/bridge-controller": "^63.0.0", - "@metamask/gas-fee-controller": "^26.0.0", - "@metamask/network-controller": "^26.0.0", - "@metamask/snaps-controllers": "^14.0.1", - "@metamask/transaction-controller": "^62.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^27.4.1", "deepmerge": "^4.2.2", @@ -76,14 +76,6 @@ "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" }, - "peerDependencies": { - "@metamask/accounts-controller": "^35.0.0", - "@metamask/bridge-controller": "^63.0.0", - "@metamask/gas-fee-controller": "^26.0.0", - "@metamask/network-controller": "^26.0.0", - "@metamask/snaps-controllers": "^14.0.0", - "@metamask/transaction-controller": "^62.0.0" - }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/controller-utils/package.json b/packages/controller-utils/package.json index 87e12569220..c8e20f867fa 100644 --- a/packages/controller-utils/package.json +++ b/packages/controller-utils/package.json @@ -76,9 +76,6 @@ "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" }, - "peerDependencies": { - "@babel/runtime": "^7.0.0" - }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/core-backend/CHANGELOG.md b/packages/core-backend/CHANGELOG.md index 8cb019cf086..bb24b8e6207 100644 --- a/packages/core-backend/CHANGELOG.md +++ b/packages/core-backend/CHANGELOG.md @@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209)) + - The dependencies moved are: + - `@metamask/accounts-controller` (^35.0.0) + - `@metamask/keyring-controller` (^25.0.0) + - In clients, it is now possible for multiple versions of these packages to exist in the dependency tree. + - For example, this scenario would be valid: a client relies on `@metamask/controller-a` 1.0.0 and `@metamask/controller-b` 1.0.0, and `@metamask/controller-b` depends on `@metamask/controller-a` 1.1.0. + - Note, however, that the versions specified in the client's `package.json` always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication. + ## [5.0.0] ### Changed diff --git a/packages/core-backend/package.json b/packages/core-backend/package.json index dfcc7b6ccda..40c9d67c4ca 100644 --- a/packages/core-backend/package.json +++ b/packages/core-backend/package.json @@ -48,16 +48,16 @@ "test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch" }, "dependencies": { + "@metamask/accounts-controller": "^35.0.0", "@metamask/controller-utils": "^11.16.0", + "@metamask/keyring-controller": "^25.0.0", "@metamask/messenger": "^0.3.0", "@metamask/profile-sync-controller": "^27.0.0", "@metamask/utils": "^11.8.1", "uuid": "^8.3.2" }, "devDependencies": { - "@metamask/accounts-controller": "^35.0.0", "@metamask/auto-changelog": "^3.4.4", - "@metamask/keyring-controller": "^25.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^27.4.1", "deepmerge": "^4.2.2", @@ -68,10 +68,6 @@ "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" }, - "peerDependencies": { - "@metamask/accounts-controller": "^35.0.0", - "@metamask/keyring-controller": "^25.0.0" - }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/delegation-controller/CHANGELOG.md b/packages/delegation-controller/CHANGELOG.md index cc90a09474d..8a76879164a 100644 --- a/packages/delegation-controller/CHANGELOG.md +++ b/packages/delegation-controller/CHANGELOG.md @@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209)) + - The dependencies moved are: + - `@metamask/accounts-controller` (^35.0.0) + - `@metamask/keyring-controller` (^25.0.0) + - In clients, it is now possible for multiple versions of these packages to exist in the dependency tree. + - For example, this scenario would be valid: a client relies on `@metamask/controller-a` 1.0.0 and `@metamask/controller-b` 1.0.0, and `@metamask/controller-b` depends on `@metamask/controller-a` 1.1.0. + - Note, however, that the versions specified in the client's `package.json` always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication. + ## [2.0.0] ### Changed diff --git a/packages/delegation-controller/package.json b/packages/delegation-controller/package.json index 6665b3bc5b3..f0d85b6dfd2 100644 --- a/packages/delegation-controller/package.json +++ b/packages/delegation-controller/package.json @@ -48,14 +48,14 @@ "test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch" }, "dependencies": { + "@metamask/accounts-controller": "^35.0.0", "@metamask/base-controller": "^9.0.0", + "@metamask/keyring-controller": "^25.0.0", "@metamask/messenger": "^0.3.0", "@metamask/utils": "^11.8.1" }, "devDependencies": { - "@metamask/accounts-controller": "^35.0.0", "@metamask/auto-changelog": "^3.4.4", - "@metamask/keyring-controller": "^25.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^27.4.1", "deepmerge": "^4.2.2", @@ -65,10 +65,6 @@ "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" }, - "peerDependencies": { - "@metamask/accounts-controller": "^35.0.0", - "@metamask/keyring-controller": "^25.0.0" - }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/earn-controller/CHANGELOG.md b/packages/earn-controller/CHANGELOG.md index e2652af9067..e6a2cdd3744 100644 --- a/packages/earn-controller/CHANGELOG.md +++ b/packages/earn-controller/CHANGELOG.md @@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209)) + - The dependencies moved are: + - `@metamask/account-tree-controller` (^4.0.0) + - `@metamask/network-controller` (^26.0.0) + - In clients, it is now possible for multiple versions of these packages to exist in the dependency tree. + - For example, this scenario would be valid: a client relies on `@metamask/controller-a` 1.0.0 and `@metamask/controller-b` 1.0.0, and `@metamask/controller-b` depends on `@metamask/controller-a` 1.1.0. + - Note, however, that the versions specified in the client's `package.json` always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication. + ## [11.0.0] ### Changed diff --git a/packages/earn-controller/package.json b/packages/earn-controller/package.json index 0b31156415b..874e08dfe8d 100644 --- a/packages/earn-controller/package.json +++ b/packages/earn-controller/package.json @@ -50,17 +50,17 @@ "dependencies": { "@ethersproject/bignumber": "^5.7.0", "@ethersproject/providers": "^5.7.0", + "@metamask/account-tree-controller": "^4.0.0", "@metamask/base-controller": "^9.0.0", "@metamask/controller-utils": "^11.16.0", "@metamask/keyring-api": "^21.0.0", "@metamask/messenger": "^0.3.0", + "@metamask/network-controller": "^26.0.0", "@metamask/stake-sdk": "^3.2.1", "reselect": "^5.1.1" }, "devDependencies": { - "@metamask/account-tree-controller": "^4.0.0", "@metamask/auto-changelog": "^3.4.4", - "@metamask/network-controller": "^26.0.0", "@metamask/transaction-controller": "^62.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^27.4.1", @@ -71,10 +71,6 @@ "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" }, - "peerDependencies": { - "@metamask/account-tree-controller": "^4.0.0", - "@metamask/network-controller": "^26.0.0" - }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/ens-controller/CHANGELOG.md b/packages/ens-controller/CHANGELOG.md index 3ac0ff7eed6..02bb834dd64 100644 --- a/packages/ens-controller/CHANGELOG.md +++ b/packages/ens-controller/CHANGELOG.md @@ -7,6 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209)) + - The dependencies moved are: + - `@metamask/network-controller` (^26.0.0) + - In clients, it is now possible for multiple versions of these packages to exist in the dependency tree. + - For example, this scenario would be valid: a client relies on `@metamask/controller-a` 1.0.0 and `@metamask/controller-b` 1.0.0, and `@metamask/controller-b` depends on `@metamask/controller-a` 1.1.0. + - Note, however, that the versions specified in the client's `package.json` always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication. + ## [19.0.0] ### Changed diff --git a/packages/ens-controller/package.json b/packages/ens-controller/package.json index e716f41f3ab..65fb212fcfe 100644 --- a/packages/ens-controller/package.json +++ b/packages/ens-controller/package.json @@ -52,12 +52,12 @@ "@metamask/base-controller": "^9.0.0", "@metamask/controller-utils": "^11.16.0", "@metamask/messenger": "^0.3.0", + "@metamask/network-controller": "^26.0.0", "@metamask/utils": "^11.8.1", "punycode": "^2.1.1" }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/network-controller": "^26.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^27.4.1", "deepmerge": "^4.2.2", @@ -67,9 +67,6 @@ "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" }, - "peerDependencies": { - "@metamask/network-controller": "^26.0.0" - }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/gas-fee-controller/CHANGELOG.md b/packages/gas-fee-controller/CHANGELOG.md index 06e66f10a13..f800eb2a077 100644 --- a/packages/gas-fee-controller/CHANGELOG.md +++ b/packages/gas-fee-controller/CHANGELOG.md @@ -7,6 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209)) + - The dependencies moved are: + - `@metamask/network-controller` (^26.0.0) + - In clients, it is now possible for multiple versions of these packages to exist in the dependency tree. + - For example, this scenario would be valid: a client relies on `@metamask/controller-a` 1.0.0 and `@metamask/controller-b` 1.0.0, and `@metamask/controller-b` depends on `@metamask/controller-a` 1.1.0. + - Note, however, that the versions specified in the client's `package.json` always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication. + ## [26.0.0] ### Changed diff --git a/packages/gas-fee-controller/package.json b/packages/gas-fee-controller/package.json index 2df9a6e8d5c..19fcae2e9ff 100644 --- a/packages/gas-fee-controller/package.json +++ b/packages/gas-fee-controller/package.json @@ -52,6 +52,7 @@ "@metamask/controller-utils": "^11.16.0", "@metamask/eth-query": "^4.0.0", "@metamask/ethjs-unit": "^0.3.0", + "@metamask/network-controller": "^26.0.0", "@metamask/polling-controller": "^16.0.0", "@metamask/utils": "^11.8.1", "@types/bn.js": "^5.1.5", @@ -62,7 +63,6 @@ "devDependencies": { "@babel/runtime": "^7.23.9", "@metamask/auto-changelog": "^3.4.4", - "@metamask/network-controller": "^26.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^27.4.1", "@types/jest-when": "^2.7.3", @@ -76,10 +76,6 @@ "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" }, - "peerDependencies": { - "@babel/runtime": "^7.0.0", - "@metamask/network-controller": "^26.0.0" - }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/gator-permissions-controller/CHANGELOG.md b/packages/gator-permissions-controller/CHANGELOG.md index 31d1994b875..a6ac2cf8ee0 100644 --- a/packages/gator-permissions-controller/CHANGELOG.md +++ b/packages/gator-permissions-controller/CHANGELOG.md @@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209)) + - The dependencies moved are: + - `@metamask/snaps-controllers` (^14.0.1) + - `@metamask/transaction-controller` (^62.0.0) + - In clients, it is now possible for multiple versions of these packages to exist in the dependency tree. + - For example, this scenario would be valid: a client relies on `@metamask/controller-a` 1.0.0 and `@metamask/controller-b` 1.0.0, and `@metamask/controller-b` depends on `@metamask/controller-a` 1.1.0. + - Note, however, that the versions specified in the client's `package.json` always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication. + ## [0.6.0] ### Changed diff --git a/packages/gator-permissions-controller/package.json b/packages/gator-permissions-controller/package.json index fcb904ce4de..1ba701ff7f1 100644 --- a/packages/gator-permissions-controller/package.json +++ b/packages/gator-permissions-controller/package.json @@ -53,16 +53,16 @@ "@metamask/delegation-core": "^0.2.0", "@metamask/delegation-deployments": "^0.12.0", "@metamask/messenger": "^0.3.0", + "@metamask/snaps-controllers": "^14.0.1", "@metamask/snaps-sdk": "^9.0.0", "@metamask/snaps-utils": "^11.0.0", + "@metamask/transaction-controller": "^62.0.0", "@metamask/utils": "^11.8.1" }, "devDependencies": { "@lavamoat/allow-scripts": "^3.0.4", "@lavamoat/preinstall-always-fail": "^2.1.0", "@metamask/auto-changelog": "^3.4.4", - "@metamask/snaps-controllers": "^14.0.1", - "@metamask/transaction-controller": "^62.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^27.4.1", "deepmerge": "^4.2.2", @@ -72,10 +72,6 @@ "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" }, - "peerDependencies": { - "@metamask/snaps-controllers": "^14.0.1", - "@metamask/transaction-controller": "^62.0.0" - }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/multichain-account-service/CHANGELOG.md b/packages/multichain-account-service/CHANGELOG.md index 50e1829670e..c11bf2d68bf 100644 --- a/packages/multichain-account-service/CHANGELOG.md +++ b/packages/multichain-account-service/CHANGELOG.md @@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209)) + - The dependencies moved are: + - `@metamask/accounts-controller` (^35.0.0) + - `@metamask/error-reporting-service` (^3.0.0) + - `@metamask/keyring-controller` (^25.0.0) + - `@metamask/snaps-controllers` (^14.0.1) + - In clients, it is now possible for multiple versions of these packages to exist in the dependency tree. + - For example, this scenario would be valid: a client relies on `@metamask/controller-a` 1.0.0 and `@metamask/controller-b` 1.0.0, and `@metamask/controller-b` depends on `@metamask/controller-a` 1.1.0. + - Note, however, that the versions specified in the client's `package.json` always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication. + ## [4.0.0] ### Changed diff --git a/packages/multichain-account-service/package.json b/packages/multichain-account-service/package.json index e902a1fd1e8..4e0c8fe2890 100644 --- a/packages/multichain-account-service/package.json +++ b/packages/multichain-account-service/package.json @@ -49,14 +49,18 @@ }, "dependencies": { "@ethereumjs/util": "^9.1.0", + "@metamask/accounts-controller": "^35.0.0", "@metamask/base-controller": "^9.0.0", + "@metamask/error-reporting-service": "^3.0.0", "@metamask/eth-snap-keyring": "^18.0.0", "@metamask/key-tree": "^10.1.1", "@metamask/keyring-api": "^21.0.0", + "@metamask/keyring-controller": "^25.0.0", "@metamask/keyring-internal-api": "^9.0.0", "@metamask/keyring-snap-client": "^8.0.0", "@metamask/keyring-utils": "^3.1.0", "@metamask/messenger": "^0.3.0", + "@metamask/snaps-controllers": "^14.0.1", "@metamask/snaps-sdk": "^9.0.0", "@metamask/snaps-utils": "^11.0.0", "@metamask/superstruct": "^3.1.0", @@ -65,13 +69,9 @@ }, "devDependencies": { "@metamask/account-api": "^0.12.0", - "@metamask/accounts-controller": "^35.0.0", "@metamask/auto-changelog": "^3.4.4", - "@metamask/error-reporting-service": "^3.0.0", "@metamask/eth-hd-keyring": "^13.0.0", - "@metamask/keyring-controller": "^25.0.0", "@metamask/providers": "^22.1.0", - "@metamask/snaps-controllers": "^14.0.1", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^27.4.1", "@types/uuid": "^8.3.0", @@ -84,15 +84,6 @@ "uuid": "^8.3.2", "webextension-polyfill": "^0.12.0" }, - "peerDependencies": { - "@metamask/account-api": "^0.12.0", - "@metamask/accounts-controller": "^35.0.0", - "@metamask/error-reporting-service": "^3.0.0", - "@metamask/keyring-controller": "^25.0.0", - "@metamask/providers": "^22.0.0", - "@metamask/snaps-controllers": "^14.0.0", - "webextension-polyfill": "^0.10.0 || ^0.11.0 || ^0.12.0" - }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/multichain-network-controller/CHANGELOG.md b/packages/multichain-network-controller/CHANGELOG.md index bdf75a247d2..fc34c77c02b 100644 --- a/packages/multichain-network-controller/CHANGELOG.md +++ b/packages/multichain-network-controller/CHANGELOG.md @@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209)) + - The dependencies moved are: + - `@metamask/accounts-controller` (^35.0.0) + - `@metamask/network-controller` (^26.0.0) + - In clients, it is now possible for multiple versions of these packages to exist in the dependency tree. + - For example, this scenario would be valid: a client relies on `@metamask/controller-a` 1.0.0 and `@metamask/controller-b` 1.0.0, and `@metamask/controller-b` depends on `@metamask/controller-a` 1.1.0. + - Note, however, that the versions specified in the client's `package.json` always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication. + ## [3.0.0] ### Changed diff --git a/packages/multichain-network-controller/package.json b/packages/multichain-network-controller/package.json index b1525f87a4e..81e13fad268 100644 --- a/packages/multichain-network-controller/package.json +++ b/packages/multichain-network-controller/package.json @@ -48,21 +48,21 @@ "test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch" }, "dependencies": { + "@metamask/accounts-controller": "^35.0.0", "@metamask/base-controller": "^9.0.0", "@metamask/controller-utils": "^11.16.0", "@metamask/keyring-api": "^21.0.0", "@metamask/keyring-internal-api": "^9.0.0", "@metamask/messenger": "^0.3.0", + "@metamask/network-controller": "^26.0.0", "@metamask/superstruct": "^3.1.0", "@metamask/utils": "^11.8.1", "@solana/addresses": "^2.0.0", "lodash": "^4.17.21" }, "devDependencies": { - "@metamask/accounts-controller": "^35.0.0", "@metamask/auto-changelog": "^3.4.4", "@metamask/keyring-controller": "^25.0.0", - "@metamask/network-controller": "^26.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^27.4.1", "@types/lodash": "^4.14.191", @@ -76,10 +76,6 @@ "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" }, - "peerDependencies": { - "@metamask/accounts-controller": "^35.0.0", - "@metamask/network-controller": "^26.0.0" - }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/multichain-transactions-controller/CHANGELOG.md b/packages/multichain-transactions-controller/CHANGELOG.md index bab6a40b70b..0b1531f4693 100644 --- a/packages/multichain-transactions-controller/CHANGELOG.md +++ b/packages/multichain-transactions-controller/CHANGELOG.md @@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209)) + - The dependencies moved are: + - `@metamask/accounts-controller` (^35.0.0) + - `@metamask/snaps-controllers` (^14.0.1) + - In clients, it is now possible for multiple versions of these packages to exist in the dependency tree. + - For example, this scenario would be valid: a client relies on `@metamask/controller-a` 1.0.0 and `@metamask/controller-b` 1.0.0, and `@metamask/controller-b` depends on `@metamask/controller-a` 1.1.0. + - Note, however, that the versions specified in the client's `package.json` always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication. + ## [7.0.0] ### Changed diff --git a/packages/multichain-transactions-controller/package.json b/packages/multichain-transactions-controller/package.json index 27ee50fe9fb..b3410286456 100644 --- a/packages/multichain-transactions-controller/package.json +++ b/packages/multichain-transactions-controller/package.json @@ -48,12 +48,14 @@ "test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch" }, "dependencies": { + "@metamask/accounts-controller": "^35.0.0", "@metamask/base-controller": "^9.0.0", "@metamask/keyring-api": "^21.0.0", "@metamask/keyring-internal-api": "^9.0.0", "@metamask/keyring-snap-client": "^8.0.0", "@metamask/messenger": "^0.3.0", "@metamask/polling-controller": "^16.0.0", + "@metamask/snaps-controllers": "^14.0.1", "@metamask/snaps-sdk": "^9.0.0", "@metamask/snaps-utils": "^11.0.0", "@metamask/utils": "^11.8.1", @@ -62,10 +64,8 @@ "uuid": "^8.3.2" }, "devDependencies": { - "@metamask/accounts-controller": "^35.0.0", "@metamask/auto-changelog": "^3.4.4", "@metamask/keyring-controller": "^25.0.0", - "@metamask/snaps-controllers": "^14.0.1", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^27.4.1", "deepmerge": "^4.2.2", @@ -75,10 +75,6 @@ "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" }, - "peerDependencies": { - "@metamask/accounts-controller": "^35.0.0", - "@metamask/snaps-controllers": "^14.0.0" - }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/network-controller/CHANGELOG.md b/packages/network-controller/CHANGELOG.md index dd35d64d295..2946597ef25 100644 --- a/packages/network-controller/CHANGELOG.md +++ b/packages/network-controller/CHANGELOG.md @@ -7,6 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209)) + - The dependencies moved are: + - `@metamask/error-reporting-service` (^3.0.0) + - In clients, it is now possible for multiple versions of these packages to exist in the dependency tree. + - For example, this scenario would be valid: a client relies on `@metamask/controller-a` 1.0.0 and `@metamask/controller-b` 1.0.0, and `@metamask/controller-b` depends on `@metamask/controller-a` 1.1.0. + - Note, however, that the versions specified in the client's `package.json` always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication. + ## [26.0.0] ### Added diff --git a/packages/network-controller/package.json b/packages/network-controller/package.json index 89ecd3be9a6..4c1e0e86d6c 100644 --- a/packages/network-controller/package.json +++ b/packages/network-controller/package.json @@ -50,6 +50,7 @@ "dependencies": { "@metamask/base-controller": "^9.0.0", "@metamask/controller-utils": "^11.16.0", + "@metamask/error-reporting-service": "^3.0.0", "@metamask/eth-block-tracker": "^15.0.0", "@metamask/eth-json-rpc-infura": "^10.3.0", "@metamask/eth-json-rpc-middleware": "^22.0.0", @@ -71,7 +72,6 @@ "devDependencies": { "@json-rpc-specification/meta-schema": "^1.0.6", "@metamask/auto-changelog": "^3.4.4", - "@metamask/error-reporting-service": "^3.0.0", "@ts-bridge/cli": "^0.6.4", "@types/deep-freeze-strict": "^1.1.0", "@types/jest": "^27.4.1", @@ -91,9 +91,6 @@ "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" }, - "peerDependencies": { - "@metamask/error-reporting-service": "^3.0.0" - }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/network-enablement-controller/CHANGELOG.md b/packages/network-enablement-controller/CHANGELOG.md index 4f822cd7362..9fa79cf231e 100644 --- a/packages/network-enablement-controller/CHANGELOG.md +++ b/packages/network-enablement-controller/CHANGELOG.md @@ -7,6 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209)) + - The dependencies moved are: + - `@metamask/multichain-network-controller` (^3.0.0) + - `@metamask/network-controller` (^26.0.0) + - `@metamask/transaction-controller` (^62.0.0) + - In clients, it is now possible for multiple versions of these packages to exist in the dependency tree. + - For example, this scenario would be valid: a client relies on `@metamask/controller-a` 1.0.0 and `@metamask/controller-b` 1.0.0, and `@metamask/controller-b` depends on `@metamask/controller-a` 1.1.0. + - Note, however, that the versions specified in the client's `package.json` always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication. + ## [4.0.0] ### Changed diff --git a/packages/network-enablement-controller/package.json b/packages/network-enablement-controller/package.json index ccebe17fc35..b5ba0501ff1 100644 --- a/packages/network-enablement-controller/package.json +++ b/packages/network-enablement-controller/package.json @@ -52,14 +52,14 @@ "@metamask/controller-utils": "^11.16.0", "@metamask/keyring-api": "^21.0.0", "@metamask/messenger": "^0.3.0", + "@metamask/multichain-network-controller": "^3.0.0", + "@metamask/network-controller": "^26.0.0", + "@metamask/transaction-controller": "^62.0.0", "@metamask/utils": "^11.8.1", "reselect": "^5.1.1" }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/multichain-network-controller": "^3.0.0", - "@metamask/network-controller": "^26.0.0", - "@metamask/transaction-controller": "^62.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^27.4.1", "deepmerge": "^4.2.2", @@ -70,11 +70,6 @@ "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" }, - "peerDependencies": { - "@metamask/multichain-network-controller": "^3.0.0", - "@metamask/network-controller": "^26.0.0", - "@metamask/transaction-controller": "^62.0.0" - }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/notification-services-controller/CHANGELOG.md b/packages/notification-services-controller/CHANGELOG.md index 4ac09635241..73428f309f2 100644 --- a/packages/notification-services-controller/CHANGELOG.md +++ b/packages/notification-services-controller/CHANGELOG.md @@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209)) + - The dependencies moved are: + - `@metamask/keyring-controller` (^25.0.0) + - `@metamask/profile-sync-controller` (^27.0.0) + - In clients, it is now possible for multiple versions of these packages to exist in the dependency tree. + - For example, this scenario would be valid: a client relies on `@metamask/controller-a` 1.0.0 and `@metamask/controller-b` 1.0.0, and `@metamask/controller-b` depends on `@metamask/controller-a` 1.1.0. + - Note, however, that the versions specified in the client's `package.json` always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication. + ## [21.0.0] ### Changed diff --git a/packages/notification-services-controller/package.json b/packages/notification-services-controller/package.json index 806db799620..88bb8514c25 100644 --- a/packages/notification-services-controller/package.json +++ b/packages/notification-services-controller/package.json @@ -113,7 +113,9 @@ "@contentful/rich-text-html-renderer": "^16.5.2", "@metamask/base-controller": "^9.0.0", "@metamask/controller-utils": "^11.16.0", + "@metamask/keyring-controller": "^25.0.0", "@metamask/messenger": "^0.3.0", + "@metamask/profile-sync-controller": "^27.0.0", "@metamask/utils": "^11.8.1", "bignumber.js": "^9.1.2", "firebase": "^11.2.0", @@ -125,8 +127,6 @@ "@lavamoat/allow-scripts": "^3.0.4", "@lavamoat/preinstall-always-fail": "^2.1.0", "@metamask/auto-changelog": "^3.4.4", - "@metamask/keyring-controller": "^25.0.0", - "@metamask/profile-sync-controller": "^27.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^27.4.1", "@types/readable-stream": "^2.3.0", @@ -141,10 +141,6 @@ "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" }, - "peerDependencies": { - "@metamask/keyring-controller": "^25.0.0", - "@metamask/profile-sync-controller": "^27.0.0" - }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/permission-controller/CHANGELOG.md b/packages/permission-controller/CHANGELOG.md index 26e9feef43f..823f9701165 100644 --- a/packages/permission-controller/CHANGELOG.md +++ b/packages/permission-controller/CHANGELOG.md @@ -7,6 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209)) + - The dependencies moved are: + - `@metamask/approval-controller` (^8.0.0) + - In clients, it is now possible for multiple versions of these packages to exist in the dependency tree. + - For example, this scenario would be valid: a client relies on `@metamask/controller-a` 1.0.0 and `@metamask/controller-b` 1.0.0, and `@metamask/controller-b` depends on `@metamask/controller-a` 1.1.0. + - Note, however, that the versions specified in the client's `package.json` always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication. + ## [12.1.1] ### Changed diff --git a/packages/permission-controller/package.json b/packages/permission-controller/package.json index a425555ab77..05f3fe91381 100644 --- a/packages/permission-controller/package.json +++ b/packages/permission-controller/package.json @@ -48,6 +48,7 @@ "test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch" }, "dependencies": { + "@metamask/approval-controller": "^8.0.0", "@metamask/base-controller": "^9.0.0", "@metamask/controller-utils": "^11.16.0", "@metamask/json-rpc-engine": "^10.2.0", @@ -60,7 +61,6 @@ "nanoid": "^3.3.8" }, "devDependencies": { - "@metamask/approval-controller": "^8.0.0", "@metamask/auto-changelog": "^3.4.4", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^27.4.1", @@ -71,9 +71,6 @@ "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" }, - "peerDependencies": { - "@metamask/approval-controller": "^8.0.0" - }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/phishing-controller/CHANGELOG.md b/packages/phishing-controller/CHANGELOG.md index b3575e5b3ae..1c0e60957f7 100644 --- a/packages/phishing-controller/CHANGELOG.md +++ b/packages/phishing-controller/CHANGELOG.md @@ -7,6 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209)) + - The dependencies moved are: + - `@metamask/transaction-controller` (^62.0.0) + - In clients, it is now possible for multiple versions of these packages to exist in the dependency tree. + - For example, this scenario would be valid: a client relies on `@metamask/controller-a` 1.0.0 and `@metamask/controller-b` 1.0.0, and `@metamask/controller-b` depends on `@metamask/controller-a` 1.1.0. + - Note, however, that the versions specified in the client's `package.json` always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication. + ## [16.0.0] ### Added diff --git a/packages/phishing-controller/package.json b/packages/phishing-controller/package.json index bb9fde1fdeb..597f2aef874 100644 --- a/packages/phishing-controller/package.json +++ b/packages/phishing-controller/package.json @@ -51,6 +51,7 @@ "@metamask/base-controller": "^9.0.0", "@metamask/controller-utils": "^11.16.0", "@metamask/messenger": "^0.3.0", + "@metamask/transaction-controller": "^62.0.0", "@noble/hashes": "^1.8.0", "@types/punycode": "^2.1.0", "ethereum-cryptography": "^2.1.2", @@ -59,7 +60,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/transaction-controller": "^62.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^27.4.1", "deepmerge": "^4.2.2", @@ -71,9 +71,6 @@ "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" }, - "peerDependencies": { - "@metamask/transaction-controller": "^62.0.0" - }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/polling-controller/CHANGELOG.md b/packages/polling-controller/CHANGELOG.md index 1406025da02..adebccacdbd 100644 --- a/packages/polling-controller/CHANGELOG.md +++ b/packages/polling-controller/CHANGELOG.md @@ -7,6 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209)) + - The dependencies moved are: + - `@metamask/network-controller` (^26.0.0) + - In clients, it is now possible for multiple versions of these packages to exist in the dependency tree. + - For example, this scenario would be valid: a client relies on `@metamask/controller-a` 1.0.0 and `@metamask/controller-b` 1.0.0, and `@metamask/controller-b` depends on `@metamask/controller-a` 1.1.0. + - Note, however, that the versions specified in the client's `package.json` always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication. + ## [16.0.0] ### Changed diff --git a/packages/polling-controller/package.json b/packages/polling-controller/package.json index 4045b94dbfb..34a9dda822c 100644 --- a/packages/polling-controller/package.json +++ b/packages/polling-controller/package.json @@ -50,6 +50,7 @@ "dependencies": { "@metamask/base-controller": "^9.0.0", "@metamask/controller-utils": "^11.16.0", + "@metamask/network-controller": "^26.0.0", "@metamask/utils": "^11.8.1", "@types/uuid": "^8.3.0", "fast-json-stable-stringify": "^2.1.0", @@ -57,7 +58,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/network-controller": "^26.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^27.4.1", "deepmerge": "^4.2.2", @@ -68,9 +68,6 @@ "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" }, - "peerDependencies": { - "@metamask/network-controller": "^26.0.0" - }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/preferences-controller/CHANGELOG.md b/packages/preferences-controller/CHANGELOG.md index 5d45652907a..7c4a397d990 100644 --- a/packages/preferences-controller/CHANGELOG.md +++ b/packages/preferences-controller/CHANGELOG.md @@ -7,6 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209)) + - The dependencies moved are: + - `@metamask/keyring-controller` (^25.0.0) + - In clients, it is now possible for multiple versions of these packages to exist in the dependency tree. + - For example, this scenario would be valid: a client relies on `@metamask/controller-a` 1.0.0 and `@metamask/controller-b` 1.0.0, and `@metamask/controller-b` depends on `@metamask/controller-a` 1.1.0. + - Note, however, that the versions specified in the client's `package.json` always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication. + ## [22.0.0] ### Changed diff --git a/packages/preferences-controller/package.json b/packages/preferences-controller/package.json index 6f843071cd9..d98b64a3a32 100644 --- a/packages/preferences-controller/package.json +++ b/packages/preferences-controller/package.json @@ -50,11 +50,11 @@ "dependencies": { "@metamask/base-controller": "^9.0.0", "@metamask/controller-utils": "^11.16.0", + "@metamask/keyring-controller": "^25.0.0", "@metamask/messenger": "^0.3.0" }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/keyring-controller": "^25.0.0", "@metamask/utils": "^11.8.1", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^27.4.1", @@ -66,9 +66,6 @@ "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" }, - "peerDependencies": { - "@metamask/keyring-controller": "^25.0.0" - }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/profile-sync-controller/CHANGELOG.md b/packages/profile-sync-controller/CHANGELOG.md index aa11423e831..1cb4437d43c 100644 --- a/packages/profile-sync-controller/CHANGELOG.md +++ b/packages/profile-sync-controller/CHANGELOG.md @@ -7,6 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209)) + - The dependencies moved are: + - `@metamask/address-book-controller` (^7.0.1) + - `@metamask/keyring-controller` (^25.0.0) + - `@metamask/snaps-controllers` (^14.0.1) + - In clients, it is now possible for multiple versions of these packages to exist in the dependency tree. + - For example, this scenario would be valid: a client relies on `@metamask/controller-a` 1.0.0 and `@metamask/controller-b` 1.0.0, and `@metamask/controller-b` depends on `@metamask/controller-a` 1.1.0. + - Note, however, that the versions specified in the client's `package.json` always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication. + ## [27.0.0] ### Changed diff --git a/packages/profile-sync-controller/package.json b/packages/profile-sync-controller/package.json index bc8de6a7704..438cc8c955a 100644 --- a/packages/profile-sync-controller/package.json +++ b/packages/profile-sync-controller/package.json @@ -101,8 +101,11 @@ "test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch" }, "dependencies": { + "@metamask/address-book-controller": "^7.0.1", "@metamask/base-controller": "^9.0.0", + "@metamask/keyring-controller": "^25.0.0", "@metamask/messenger": "^0.3.0", + "@metamask/snaps-controllers": "^14.0.1", "@metamask/snaps-sdk": "^9.0.0", "@metamask/snaps-utils": "^11.0.0", "@metamask/utils": "^11.8.1", @@ -115,13 +118,10 @@ "devDependencies": { "@lavamoat/allow-scripts": "^3.0.4", "@lavamoat/preinstall-always-fail": "^2.1.0", - "@metamask/address-book-controller": "^7.0.1", "@metamask/auto-changelog": "^3.4.4", "@metamask/keyring-api": "^21.0.0", - "@metamask/keyring-controller": "^25.0.0", "@metamask/keyring-internal-api": "^9.0.0", "@metamask/providers": "^22.1.0", - "@metamask/snaps-controllers": "^14.0.1", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^27.4.1", "deepmerge": "^4.2.2", @@ -135,13 +135,6 @@ "typescript": "~5.3.3", "webextension-polyfill": "^0.12.0" }, - "peerDependencies": { - "@metamask/address-book-controller": "^7.0.1", - "@metamask/keyring-controller": "^25.0.0", - "@metamask/providers": "^22.0.0", - "@metamask/snaps-controllers": "^14.0.0", - "webextension-polyfill": "^0.10.0 || ^0.11.0 || ^0.12.0" - }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/sample-controllers/CHANGELOG.md b/packages/sample-controllers/CHANGELOG.md index 13c0760512c..0b3e4d92f26 100644 --- a/packages/sample-controllers/CHANGELOG.md +++ b/packages/sample-controllers/CHANGELOG.md @@ -7,6 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209)) + - The dependencies moved are: + - `@metamask/network-controller` (^26.0.0) + - In clients, it is now possible for multiple versions of these packages to exist in the dependency tree. + - For example, this scenario would be valid: a client relies on `@metamask/controller-a` 1.0.0 and `@metamask/controller-b` 1.0.0, and `@metamask/controller-b` depends on `@metamask/controller-a` 1.1.0. + - Note, however, that the versions specified in the client's `package.json` always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication. + ## [4.0.0] ### Changed diff --git a/packages/sample-controllers/package.json b/packages/sample-controllers/package.json index 9ed6cbb527c..19dc549b52c 100644 --- a/packages/sample-controllers/package.json +++ b/packages/sample-controllers/package.json @@ -50,12 +50,12 @@ "dependencies": { "@metamask/base-controller": "^9.0.0", "@metamask/messenger": "^0.3.0", + "@metamask/network-controller": "^26.0.0", "@metamask/utils": "^11.8.1" }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", "@metamask/controller-utils": "^11.16.0", - "@metamask/network-controller": "^26.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^27.4.1", "deepmerge": "^4.2.2", @@ -67,9 +67,6 @@ "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" }, - "peerDependencies": { - "@metamask/network-controller": "^26.0.0" - }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/seedless-onboarding-controller/CHANGELOG.md b/packages/seedless-onboarding-controller/CHANGELOG.md index 171a0c9999f..ffe06496fa0 100644 --- a/packages/seedless-onboarding-controller/CHANGELOG.md +++ b/packages/seedless-onboarding-controller/CHANGELOG.md @@ -7,6 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209)) + - The dependencies moved are: + - `@metamask/keyring-controller` (^25.0.0) + - In clients, it is now possible for multiple versions of these packages to exist in the dependency tree. + - For example, this scenario would be valid: a client relies on `@metamask/controller-a` 1.0.0 and `@metamask/controller-b` 1.0.0, and `@metamask/controller-b` depends on `@metamask/controller-a` 1.1.0. + - Note, however, that the versions specified in the client's `package.json` always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication. + ## [7.0.0] ### Changed diff --git a/packages/seedless-onboarding-controller/package.json b/packages/seedless-onboarding-controller/package.json index be83fcfebba..2fffa11a4f1 100644 --- a/packages/seedless-onboarding-controller/package.json +++ b/packages/seedless-onboarding-controller/package.json @@ -51,6 +51,7 @@ "@metamask/auth-network-utils": "^0.3.0", "@metamask/base-controller": "^9.0.0", "@metamask/browser-passworder": "^6.0.0", + "@metamask/keyring-controller": "^25.0.0", "@metamask/messenger": "^0.3.0", "@metamask/toprf-secure-backup": "^0.10.0", "@metamask/utils": "^11.8.1", @@ -63,7 +64,6 @@ "@lavamoat/allow-scripts": "^3.0.4", "@lavamoat/preinstall-always-fail": "^2.1.0", "@metamask/auto-changelog": "^3.4.4", - "@metamask/keyring-controller": "^25.0.0", "@ts-bridge/cli": "^0.6.4", "@types/elliptic": "^6", "@types/jest": "^27.4.1", @@ -77,9 +77,6 @@ "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" }, - "peerDependencies": { - "@metamask/keyring-controller": "^25.0.0" - }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/selected-network-controller/CHANGELOG.md b/packages/selected-network-controller/CHANGELOG.md index b9f7b1f6a98..bda8127910d 100644 --- a/packages/selected-network-controller/CHANGELOG.md +++ b/packages/selected-network-controller/CHANGELOG.md @@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209)) + - The dependencies moved are: + - `@metamask/network-controller` (^26.0.0) + - `@metamask/permission-controller` (^12.1.1) + - In clients, it is now possible for multiple versions of these packages to exist in the dependency tree. + - For example, this scenario would be valid: a client relies on `@metamask/controller-a` 1.0.0 and `@metamask/controller-b` 1.0.0, and `@metamask/controller-b` depends on `@metamask/controller-a` 1.1.0. + - Note, however, that the versions specified in the client's `package.json` always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication. + ## [26.0.0] ### Changed diff --git a/packages/selected-network-controller/package.json b/packages/selected-network-controller/package.json index 7f227c5de4c..d47bd42102c 100644 --- a/packages/selected-network-controller/package.json +++ b/packages/selected-network-controller/package.json @@ -51,13 +51,13 @@ "@metamask/base-controller": "^9.0.0", "@metamask/json-rpc-engine": "^10.2.0", "@metamask/messenger": "^0.3.0", + "@metamask/network-controller": "^26.0.0", + "@metamask/permission-controller": "^12.1.1", "@metamask/swappable-obj-proxy": "^2.3.0", "@metamask/utils": "^11.8.1" }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/network-controller": "^26.0.0", - "@metamask/permission-controller": "^12.1.1", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^27.4.1", "deepmerge": "^4.2.2", @@ -71,10 +71,6 @@ "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" }, - "peerDependencies": { - "@metamask/network-controller": "^26.0.0", - "@metamask/permission-controller": "^12.0.0" - }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/shield-controller/CHANGELOG.md b/packages/shield-controller/CHANGELOG.md index af8a58d7a21..1ab45ae40dd 100644 --- a/packages/shield-controller/CHANGELOG.md +++ b/packages/shield-controller/CHANGELOG.md @@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209)) + - The dependencies moved are: + - `@metamask/signature-controller` (^37.0.0) + - `@metamask/transaction-controller` (^62.0.0) + - In clients, it is now possible for multiple versions of these packages to exist in the dependency tree. + - For example, this scenario would be valid: a client relies on `@metamask/controller-a` 1.0.0 and `@metamask/controller-b` 1.0.0, and `@metamask/controller-b` depends on `@metamask/controller-a` 1.1.0. + - Note, however, that the versions specified in the client's `package.json` always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication. + ## [3.0.0] ### Changed diff --git a/packages/shield-controller/package.json b/packages/shield-controller/package.json index 960250dbe19..6aaa03f2ae2 100644 --- a/packages/shield-controller/package.json +++ b/packages/shield-controller/package.json @@ -51,6 +51,8 @@ "@metamask/base-controller": "^9.0.0", "@metamask/controller-utils": "^11.16.0", "@metamask/messenger": "^0.3.0", + "@metamask/signature-controller": "^37.0.0", + "@metamask/transaction-controller": "^62.0.0", "@metamask/utils": "^11.8.1", "cockatiel": "^3.1.2" }, @@ -59,8 +61,6 @@ "@lavamoat/allow-scripts": "^3.0.4", "@lavamoat/preinstall-always-fail": "^2.1.0", "@metamask/auto-changelog": "^3.4.4", - "@metamask/signature-controller": "^37.0.0", - "@metamask/transaction-controller": "^62.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^27.4.1", "deepmerge": "^4.2.2", @@ -72,10 +72,6 @@ "typescript": "~5.3.3", "uuid": "^8.3.2" }, - "peerDependencies": { - "@metamask/signature-controller": "^37.0.0", - "@metamask/transaction-controller": "^62.0.0" - }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/signature-controller/CHANGELOG.md b/packages/signature-controller/CHANGELOG.md index 021616f48bc..447f6e31e53 100644 --- a/packages/signature-controller/CHANGELOG.md +++ b/packages/signature-controller/CHANGELOG.md @@ -7,6 +7,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209)) + - The dependencies moved are: + - `@metamask/accounts-controller` (^35.0.0) + - `@metamask/approval-controller` (^8.0.0) + - `@metamask/gator-permissions-controller` (^0.6.0) + - `@metamask/keyring-controller` (^25.0.0) + - `@metamask/logging-controller` (^7.0.1) + - `@metamask/network-controller` (^26.0.0) + - In clients, it is now possible for multiple versions of these packages to exist in the dependency tree. + - For example, this scenario would be valid: a client relies on `@metamask/controller-a` 1.0.0 and `@metamask/controller-b` 1.0.0, and `@metamask/controller-b` depends on `@metamask/controller-a` 1.1.0. + - Note, however, that the versions specified in the client's `package.json` always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication. + ## [37.0.0] ### Changed diff --git a/packages/signature-controller/package.json b/packages/signature-controller/package.json index e88787e5335..4f36284de2a 100644 --- a/packages/signature-controller/package.json +++ b/packages/signature-controller/package.json @@ -48,23 +48,23 @@ "test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch" }, "dependencies": { + "@metamask/accounts-controller": "^35.0.0", + "@metamask/approval-controller": "^8.0.0", "@metamask/base-controller": "^9.0.0", "@metamask/controller-utils": "^11.16.0", "@metamask/eth-sig-util": "^8.2.0", + "@metamask/gator-permissions-controller": "^0.6.0", + "@metamask/keyring-controller": "^25.0.0", + "@metamask/logging-controller": "^7.0.1", "@metamask/messenger": "^0.3.0", + "@metamask/network-controller": "^26.0.0", "@metamask/utils": "^11.8.1", "jsonschema": "^1.4.1", "lodash": "^4.17.21", "uuid": "^8.3.2" }, "devDependencies": { - "@metamask/accounts-controller": "^35.0.0", - "@metamask/approval-controller": "^8.0.0", "@metamask/auto-changelog": "^3.4.4", - "@metamask/gator-permissions-controller": "^0.6.0", - "@metamask/keyring-controller": "^25.0.0", - "@metamask/logging-controller": "^7.0.1", - "@metamask/network-controller": "^26.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^27.4.1", "deepmerge": "^4.2.2", @@ -74,14 +74,6 @@ "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" }, - "peerDependencies": { - "@metamask/accounts-controller": "^35.0.0", - "@metamask/approval-controller": "^8.0.0", - "@metamask/gator-permissions-controller": "^0.6.0", - "@metamask/keyring-controller": "^25.0.0", - "@metamask/logging-controller": "^7.0.0", - "@metamask/network-controller": "^26.0.0" - }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/subscription-controller/CHANGELOG.md b/packages/subscription-controller/CHANGELOG.md index 4f4e520dae6..ace543c14dc 100644 --- a/packages/subscription-controller/CHANGELOG.md +++ b/packages/subscription-controller/CHANGELOG.md @@ -7,6 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209)) + - The dependencies moved are: + - `@metamask/profile-sync-controller` (^27.0.0) + - In clients, it is now possible for multiple versions of these packages to exist in the dependency tree. + - For example, this scenario would be valid: a client relies on `@metamask/controller-a` 1.0.0 and `@metamask/controller-b` 1.0.0, and `@metamask/controller-b` depends on `@metamask/controller-a` 1.1.0. + - Note, however, that the versions specified in the client's `package.json` always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication. + ## [5.0.0] ### Changed diff --git a/packages/subscription-controller/package.json b/packages/subscription-controller/package.json index 372f296e785..d4a68774b0e 100644 --- a/packages/subscription-controller/package.json +++ b/packages/subscription-controller/package.json @@ -52,13 +52,13 @@ "@metamask/controller-utils": "^11.16.0", "@metamask/messenger": "^0.3.0", "@metamask/polling-controller": "^16.0.0", + "@metamask/profile-sync-controller": "^27.0.0", "@metamask/transaction-controller": "^62.0.0", "@metamask/utils": "^11.8.1", "bignumber.js": "^9.1.2" }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/profile-sync-controller": "^27.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^27.4.1", "deepmerge": "^4.2.2", @@ -69,9 +69,6 @@ "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" }, - "peerDependencies": { - "@metamask/profile-sync-controller": "^27.0.0" - }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/transaction-controller/CHANGELOG.md b/packages/transaction-controller/CHANGELOG.md index 0760207cb1f..3b6ec946036 100644 --- a/packages/transaction-controller/CHANGELOG.md +++ b/packages/transaction-controller/CHANGELOG.md @@ -7,6 +7,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209)) + - The dependencies moved are: + - `@metamask/accounts-controller` (^35.0.0) + - `@metamask/approval-controller` (^8.0.0) + - `@metamask/eth-block-tracker` (^15.0.0) + - `@metamask/gas-fee-controller` (^26.0.0) + - `@metamask/network-controller` (^26.0.0) + - `@metamask/remote-feature-flag-controller` (^2.0.1) + - In clients, it is now possible for multiple versions of these packages to exist in the dependency tree. + - For example, this scenario would be valid: a client relies on `@metamask/controller-a` 1.0.0 and `@metamask/controller-b` 1.0.0, and `@metamask/controller-b` depends on `@metamask/controller-a` 1.1.0. + - Note, however, that the versions specified in the client's `package.json` always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication. + ## [62.0.0] ### Added diff --git a/packages/transaction-controller/package.json b/packages/transaction-controller/package.json index 0563188c56f..e4026c40bfc 100644 --- a/packages/transaction-controller/package.json +++ b/packages/transaction-controller/package.json @@ -55,12 +55,18 @@ "@ethersproject/contracts": "^5.7.0", "@ethersproject/providers": "^5.7.0", "@ethersproject/wallet": "^5.7.0", + "@metamask/accounts-controller": "^35.0.0", + "@metamask/approval-controller": "^8.0.0", "@metamask/base-controller": "^9.0.0", "@metamask/controller-utils": "^11.16.0", + "@metamask/eth-block-tracker": "^15.0.0", "@metamask/eth-query": "^4.0.0", + "@metamask/gas-fee-controller": "^26.0.0", "@metamask/messenger": "^0.3.0", "@metamask/metamask-eth-abis": "^3.1.1", + "@metamask/network-controller": "^26.0.0", "@metamask/nonce-tracker": "^6.0.0", + "@metamask/remote-feature-flag-controller": "^2.0.1", "@metamask/rpc-errors": "^7.0.2", "@metamask/utils": "^11.8.1", "async-mutex": "^0.5.0", @@ -73,15 +79,9 @@ }, "devDependencies": { "@babel/runtime": "^7.23.9", - "@metamask/accounts-controller": "^35.0.0", - "@metamask/approval-controller": "^8.0.0", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eth-block-tracker": "^15.0.0", "@metamask/eth-json-rpc-provider": "^6.0.0", "@metamask/ethjs-provider-http": "^0.3.0", - "@metamask/gas-fee-controller": "^26.0.0", - "@metamask/network-controller": "^26.0.0", - "@metamask/remote-feature-flag-controller": "^2.0.1", "@ts-bridge/cli": "^0.6.4", "@types/bn.js": "^5.1.5", "@types/jest": "^27.4.1", @@ -96,15 +96,6 @@ "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" }, - "peerDependencies": { - "@babel/runtime": "^7.0.0", - "@metamask/accounts-controller": "^35.0.0", - "@metamask/approval-controller": "^8.0.0", - "@metamask/eth-block-tracker": ">=9", - "@metamask/gas-fee-controller": "^26.0.0", - "@metamask/network-controller": "^26.0.0", - "@metamask/remote-feature-flag-controller": "^2.0.0" - }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/transaction-pay-controller/CHANGELOG.md b/packages/transaction-pay-controller/CHANGELOG.md index b49088190e6..365deb45d47 100644 --- a/packages/transaction-pay-controller/CHANGELOG.md +++ b/packages/transaction-pay-controller/CHANGELOG.md @@ -7,6 +7,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209)) + - The dependencies moved are: + - `@metamask/assets-controllers` (^91.0.0) + - `@metamask/bridge-controller` (^63.0.0) + - `@metamask/bridge-status-controller` (^63.0.0) + - `@metamask/gas-fee-controller` (^26.0.0) + - `@metamask/network-controller` (^26.0.0) + - `@metamask/remote-feature-flag-controller` (^2.0.1) + - `@metamask/transaction-controller` (^62.0.0) + - In clients, it is now possible for multiple versions of these packages to exist in the dependency tree. + - For example, this scenario would be valid: a client relies on `@metamask/controller-a` 1.0.0 and `@metamask/controller-b` 1.0.0, and `@metamask/controller-b` depends on `@metamask/controller-a` 1.1.0. + - Note, however, that the versions specified in the client's `package.json` always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication. + ## [10.0.0] ### Added diff --git a/packages/transaction-pay-controller/package.json b/packages/transaction-pay-controller/package.json index a54839f7a70..c6767cdc02e 100644 --- a/packages/transaction-pay-controller/package.json +++ b/packages/transaction-pay-controller/package.json @@ -51,10 +51,17 @@ "dependencies": { "@ethersproject/abi": "^5.7.0", "@ethersproject/contracts": "^5.7.0", + "@metamask/assets-controllers": "^91.0.0", "@metamask/base-controller": "^9.0.0", + "@metamask/bridge-controller": "^63.0.0", + "@metamask/bridge-status-controller": "^63.0.0", "@metamask/controller-utils": "^11.16.0", + "@metamask/gas-fee-controller": "^26.0.0", "@metamask/messenger": "^0.3.0", "@metamask/metamask-eth-abis": "^3.1.1", + "@metamask/network-controller": "^26.0.0", + "@metamask/remote-feature-flag-controller": "^2.0.1", + "@metamask/transaction-controller": "^62.0.0", "@metamask/utils": "^11.8.1", "bignumber.js": "^9.1.2", "bn.js": "^5.2.1", @@ -62,14 +69,7 @@ "lodash": "^4.17.21" }, "devDependencies": { - "@metamask/assets-controllers": "^91.0.0", "@metamask/auto-changelog": "^3.4.4", - "@metamask/bridge-controller": "^63.0.0", - "@metamask/bridge-status-controller": "^63.0.0", - "@metamask/gas-fee-controller": "^26.0.0", - "@metamask/network-controller": "^26.0.0", - "@metamask/remote-feature-flag-controller": "^2.0.1", - "@metamask/transaction-controller": "^62.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^27.4.1", "deepmerge": "^4.2.2", @@ -79,15 +79,6 @@ "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" }, - "peerDependencies": { - "@metamask/assets-controllers": "^91.0.0", - "@metamask/bridge-controller": "^63.0.0", - "@metamask/bridge-status-controller": "^63.0.0", - "@metamask/gas-fee-controller": "^26.0.0", - "@metamask/network-controller": "^26.0.0", - "@metamask/remote-feature-flag-controller": "^2.0.0", - "@metamask/transaction-controller": "^62.0.0" - }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/user-operation-controller/CHANGELOG.md b/packages/user-operation-controller/CHANGELOG.md index 5c103a0cddc..5dae6b08e7a 100644 --- a/packages/user-operation-controller/CHANGELOG.md +++ b/packages/user-operation-controller/CHANGELOG.md @@ -7,6 +7,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Move peer dependencies for controller and service packages to direct dependencies ([#7209](https://github.com/MetaMask/core/pull/7209)) + - The dependencies moved are: + - `@metamask/approval-controller` (^8.0.0) + - `@metamask/eth-block-tracker` (^15.0.0) + - `@metamask/gas-fee-controller` (^26.0.0) + - `@metamask/keyring-controller` (^25.0.0) + - `@metamask/network-controller` (^26.0.0) + - `@metamask/transaction-controller` (^62.0.0) + - In clients, it is now possible for multiple versions of these packages to exist in the dependency tree. + - For example, this scenario would be valid: a client relies on `@metamask/controller-a` 1.0.0 and `@metamask/controller-b` 1.0.0, and `@metamask/controller-b` depends on `@metamask/controller-a` 1.1.0. + - Note, however, that the versions specified in the client's `package.json` always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication. + ## [41.0.0] ### Changed diff --git a/packages/user-operation-controller/package.json b/packages/user-operation-controller/package.json index 82bc795e4c1..5071689e8ea 100644 --- a/packages/user-operation-controller/package.json +++ b/packages/user-operation-controller/package.json @@ -49,13 +49,19 @@ "test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch" }, "dependencies": { + "@metamask/approval-controller": "^8.0.0", "@metamask/base-controller": "^9.0.0", "@metamask/controller-utils": "^11.16.0", + "@metamask/eth-block-tracker": "^15.0.0", "@metamask/eth-query": "^4.0.0", + "@metamask/gas-fee-controller": "^26.0.0", + "@metamask/keyring-controller": "^25.0.0", "@metamask/messenger": "^0.3.0", + "@metamask/network-controller": "^26.0.0", "@metamask/polling-controller": "^16.0.0", "@metamask/rpc-errors": "^7.0.2", "@metamask/superstruct": "^3.1.0", + "@metamask/transaction-controller": "^62.0.0", "@metamask/utils": "^11.8.1", "bn.js": "^5.2.1", "immer": "^9.0.6", @@ -63,13 +69,7 @@ "uuid": "^8.3.2" }, "devDependencies": { - "@metamask/approval-controller": "^8.0.0", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eth-block-tracker": "^15.0.0", - "@metamask/gas-fee-controller": "^26.0.0", - "@metamask/keyring-controller": "^25.0.0", - "@metamask/network-controller": "^26.0.0", - "@metamask/transaction-controller": "^62.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^27.4.1", "deepmerge": "^4.2.2", @@ -79,14 +79,6 @@ "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" }, - "peerDependencies": { - "@metamask/approval-controller": "^8.0.0", - "@metamask/eth-block-tracker": ">=9", - "@metamask/gas-fee-controller": "^26.0.0", - "@metamask/keyring-controller": "^25.0.0", - "@metamask/network-controller": "^26.0.0", - "@metamask/transaction-controller": "^62.0.0" - }, "engines": { "node": "^18.18 || >=20" }, diff --git a/yarn.config.cjs b/yarn.config.cjs index 374fa6e7306..8aa8ef8cb5c 100644 --- a/yarn.config.cjs +++ b/yarn.config.cjs @@ -228,6 +228,14 @@ module.exports = defineConfig({ dependenciesByIdentAndType, ); + // Disallow workspace packages from listing other workspace packages via + // peer dependencies. + expectDependenciesForControllersAndServices( + Yarn, + workspace, + dependenciesByIdentAndType, + ); + // The root workspace (and only the root workspace) must specify the Yarn // version required for development. if (isChildWorkspace) { @@ -633,7 +641,7 @@ function expectUpToDateWorkspaceDependenciesAndDevDependencies( const prodDependency = dependencyInstancesByType.get('dependencies'); const peerDependency = dependencyInstancesByType.get('peerDependencies'); - if (devDependency || (prodDependency && !peerDependency)) { + if ((devDependency || prodDependency) && !peerDependency) { const dependency = devDependency ?? prodDependency; const ignoredRanges = ALLOWED_INCONSISTENT_DEPENDENCIES[dependencyIdent]; @@ -728,10 +736,8 @@ function expectDependenciesNotInBothProdAndDevOrPeer( } /** - * Expect that if the workspace package lists another package in its - * `peerDependencies`, the package is also listed in the workspace's - * `devDependencies`. If the other package is a workspace package, also expect - * that the dev dependency matches the current version of the package. + * Expect that if a non-workspace package lists another package in its + * `peerDependencies`, the package is also listed in `devDependencies`. * * @param {Yarn} Yarn - The Yarn "global". * @param {Workspace} workspace - The workspace to check. @@ -747,20 +753,74 @@ function expectPeerDependenciesAlsoListedAsDevDependencies( dependencyIdent, dependencyInstancesByType, ] of dependenciesByIdentAndType.entries()) { - if (!dependencyInstancesByType.has('peerDependencies')) { + const peerDependency = dependencyInstancesByType.get('peerDependencies'); + + if (!peerDependency) { continue; } const dependencyWorkspace = Yarn.workspace({ ident: dependencyIdent }); + if (!dependencyWorkspace) { + expectWorkspaceField(workspace, `devDependencies["${dependencyIdent}"]`); + } + } +} + +/** + * Expect that if packages which contain controllers or services are listed as + * peer+dev dependencies they are instead listed as direct dependencies. + * + * @param {Yarn} Yarn - The Yarn "global". + * @param {Workspace} workspace - The workspace to check. + * @param {Map>} dependenciesByIdentAndType - Map of + * dependency ident to dependency type and dependency. + */ +function expectDependenciesForControllersAndServices( + Yarn, + workspace, + dependenciesByIdentAndType, +) { + for (const [ + dependencyIdent, + dependencyInstancesByType, + ] of dependenciesByIdentAndType.entries()) { + const peerDependency = dependencyInstancesByType.get('peerDependencies'); + const devDependency = dependencyInstancesByType.get('devDependencies'); + + if (!peerDependency) { + continue; + } + + const dependencyWorkspace = Yarn.workspace({ ident: peerDependency.ident }); + /** @type {string | undefined} */ + let targetVersion; if (dependencyWorkspace) { + targetVersion = `^${dependencyWorkspace.manifest.version}`; + } else if (/-(?:controller|service)s?$/u.test(dependencyIdent)) { + targetVersion = peerDependency.range; + } + + if (targetVersion === undefined) { + continue; + } + + expectWorkspaceField( + workspace, + `dependencies["${dependencyIdent}"]`, + targetVersion, + ); + + peerDependency.delete(); + + if (devDependency) { + devDependency.delete(); + } else { expectWorkspaceField( workspace, `devDependencies["${dependencyIdent}"]`, - `^${dependencyWorkspace.manifest.version}`, + null, ); - } else { - expectWorkspaceField(workspace, `devDependencies["${dependencyIdent}"]`); } } } diff --git a/yarn.lock b/yarn.lock index 572ddf2054a..734847cac24 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2446,15 +2446,6 @@ __metadata: typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" webextension-polyfill: "npm:^0.12.0" - peerDependencies: - "@metamask/account-api": ^0.12.0 - "@metamask/accounts-controller": ^35.0.0 - "@metamask/keyring-controller": ^25.0.0 - "@metamask/multichain-account-service": ^4.0.0 - "@metamask/profile-sync-controller": ^27.0.0 - "@metamask/providers": ^22.0.0 - "@metamask/snaps-controllers": ^14.0.0 - webextension-polyfill: ^0.10.0 || ^0.11.0 || ^0.12.0 languageName: unknown linkType: soft @@ -2493,12 +2484,6 @@ __metadata: typescript: "npm:~5.3.3" uuid: "npm:^8.3.2" webextension-polyfill: "npm:^0.12.0" - peerDependencies: - "@metamask/keyring-controller": ^25.0.0 - "@metamask/network-controller": ^26.0.0 - "@metamask/providers": ^22.0.0 - "@metamask/snaps-controllers": ^14.0.0 - webextension-polyfill: ^0.10.0 || ^0.11.0 || ^0.12.0 languageName: unknown linkType: soft @@ -2698,20 +2683,6 @@ __metadata: typescript: "npm:~5.3.3" uuid: "npm:^8.3.2" webextension-polyfill: "npm:^0.12.0" - peerDependencies: - "@metamask/account-tree-controller": ^4.0.0 - "@metamask/accounts-controller": ^35.0.0 - "@metamask/approval-controller": ^8.0.0 - "@metamask/core-backend": ^5.0.0 - "@metamask/keyring-controller": ^25.0.0 - "@metamask/network-controller": ^26.0.0 - "@metamask/permission-controller": ^12.0.0 - "@metamask/phishing-controller": ^16.0.0 - "@metamask/preferences-controller": ^22.0.0 - "@metamask/providers": ^22.0.0 - "@metamask/snaps-controllers": ^14.0.0 - "@metamask/transaction-controller": ^62.0.0 - webextension-polyfill: ^0.10.0 || ^0.11.0 || ^0.12.0 languageName: unknown linkType: soft @@ -2854,13 +2825,6 @@ __metadata: typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" uuid: "npm:^8.3.2" - peerDependencies: - "@metamask/accounts-controller": ^35.0.0 - "@metamask/assets-controllers": ^91.0.0 - "@metamask/network-controller": ^26.0.0 - "@metamask/remote-feature-flag-controller": ^2.0.0 - "@metamask/snaps-controllers": ^14.0.0 - "@metamask/transaction-controller": ^62.0.0 languageName: unknown linkType: soft @@ -2893,13 +2857,6 @@ __metadata: typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" uuid: "npm:^8.3.2" - peerDependencies: - "@metamask/accounts-controller": ^35.0.0 - "@metamask/bridge-controller": ^63.0.0 - "@metamask/gas-fee-controller": ^26.0.0 - "@metamask/network-controller": ^26.0.0 - "@metamask/snaps-controllers": ^14.0.0 - "@metamask/transaction-controller": ^62.0.0 languageName: unknown linkType: soft @@ -3033,8 +2990,6 @@ __metadata: typedoc: "npm:^0.24.8" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" - peerDependencies: - "@babel/runtime": ^7.0.0 languageName: unknown linkType: soft @@ -3059,9 +3014,6 @@ __metadata: typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" uuid: "npm:^8.3.2" - peerDependencies: - "@metamask/accounts-controller": ^35.0.0 - "@metamask/keyring-controller": ^25.0.0 languageName: unknown linkType: soft @@ -3165,9 +3117,6 @@ __metadata: typedoc: "npm:^0.24.8" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" - peerDependencies: - "@metamask/accounts-controller": ^35.0.0 - "@metamask/keyring-controller": ^25.0.0 languageName: unknown linkType: soft @@ -3213,9 +3162,6 @@ __metadata: typedoc: "npm:^0.24.8" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" - peerDependencies: - "@metamask/account-tree-controller": ^4.0.0 - "@metamask/network-controller": ^26.0.0 languageName: unknown linkType: soft @@ -3307,8 +3253,6 @@ __metadata: typedoc: "npm:^0.24.8" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" - peerDependencies: - "@metamask/network-controller": ^26.0.0 languageName: unknown linkType: soft @@ -3785,9 +3729,6 @@ __metadata: typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" uuid: "npm:^8.3.2" - peerDependencies: - "@babel/runtime": ^7.0.0 - "@metamask/network-controller": ^26.0.0 languageName: unknown linkType: soft @@ -3816,9 +3757,6 @@ __metadata: typedoc: "npm:^0.24.8" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" - peerDependencies: - "@metamask/snaps-controllers": ^14.0.1 - "@metamask/transaction-controller": ^62.0.0 languageName: unknown linkType: soft @@ -4109,14 +4047,6 @@ __metadata: typescript: "npm:~5.3.3" uuid: "npm:^8.3.2" webextension-polyfill: "npm:^0.12.0" - peerDependencies: - "@metamask/account-api": ^0.12.0 - "@metamask/accounts-controller": ^35.0.0 - "@metamask/error-reporting-service": ^3.0.0 - "@metamask/keyring-controller": ^25.0.0 - "@metamask/providers": ^22.0.0 - "@metamask/snaps-controllers": ^14.0.0 - webextension-polyfill: ^0.10.0 || ^0.11.0 || ^0.12.0 languageName: unknown linkType: soft @@ -4179,9 +4109,6 @@ __metadata: typedoc: "npm:^0.24.8" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" - peerDependencies: - "@metamask/accounts-controller": ^35.0.0 - "@metamask/network-controller": ^26.0.0 languageName: unknown linkType: soft @@ -4213,9 +4140,6 @@ __metadata: typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" uuid: "npm:^8.3.2" - peerDependencies: - "@metamask/accounts-controller": ^35.0.0 - "@metamask/snaps-controllers": ^14.0.0 languageName: unknown linkType: soft @@ -4284,8 +4208,6 @@ __metadata: typescript: "npm:~5.3.3" uri-js: "npm:^4.4.1" uuid: "npm:^8.3.2" - peerDependencies: - "@metamask/error-reporting-service": ^3.0.0 languageName: unknown linkType: soft @@ -4312,10 +4234,6 @@ __metadata: typedoc: "npm:^0.24.8" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" - peerDependencies: - "@metamask/multichain-network-controller": ^3.0.0 - "@metamask/network-controller": ^26.0.0 - "@metamask/transaction-controller": ^62.0.0 languageName: unknown linkType: soft @@ -4363,9 +4281,6 @@ __metadata: typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" uuid: "npm:^8.3.2" - peerDependencies: - "@metamask/keyring-controller": ^25.0.0 - "@metamask/profile-sync-controller": ^27.0.0 languageName: unknown linkType: soft @@ -4432,8 +4347,6 @@ __metadata: typedoc: "npm:^0.24.8" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" - peerDependencies: - "@metamask/approval-controller": ^8.0.0 languageName: unknown linkType: soft @@ -4499,8 +4412,6 @@ __metadata: typedoc: "npm:^0.24.8" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" - peerDependencies: - "@metamask/transaction-controller": ^62.0.0 languageName: unknown linkType: soft @@ -4525,8 +4436,6 @@ __metadata: typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" uuid: "npm:^8.3.2" - peerDependencies: - "@metamask/network-controller": ^26.0.0 languageName: unknown linkType: soft @@ -4559,8 +4468,6 @@ __metadata: typedoc: "npm:^0.24.8" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" - peerDependencies: - "@metamask/keyring-controller": ^25.0.0 languageName: unknown linkType: soft @@ -4599,12 +4506,6 @@ __metadata: typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" webextension-polyfill: "npm:^0.12.0" - peerDependencies: - "@metamask/address-book-controller": ^7.0.1 - "@metamask/keyring-controller": ^25.0.0 - "@metamask/providers": ^22.0.0 - "@metamask/snaps-controllers": ^14.0.0 - webextension-polyfill: ^0.10.0 || ^0.11.0 || ^0.12.0 languageName: unknown linkType: soft @@ -4709,8 +4610,6 @@ __metadata: typedoc: "npm:^0.24.8" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" - peerDependencies: - "@metamask/network-controller": ^26.0.0 languageName: unknown linkType: soft @@ -4754,8 +4653,6 @@ __metadata: typedoc: "npm:^0.24.8" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" - peerDependencies: - "@metamask/keyring-controller": ^25.0.0 languageName: unknown linkType: soft @@ -4783,9 +4680,6 @@ __metadata: typedoc: "npm:^0.24.8" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" - peerDependencies: - "@metamask/network-controller": ^26.0.0 - "@metamask/permission-controller": ^12.0.0 languageName: unknown linkType: soft @@ -4814,9 +4708,6 @@ __metadata: typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" uuid: "npm:^8.3.2" - peerDependencies: - "@metamask/signature-controller": ^37.0.0 - "@metamask/transaction-controller": ^62.0.0 languageName: unknown linkType: soft @@ -4847,13 +4738,6 @@ __metadata: typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" uuid: "npm:^8.3.2" - peerDependencies: - "@metamask/accounts-controller": ^35.0.0 - "@metamask/approval-controller": ^8.0.0 - "@metamask/gator-permissions-controller": ^0.6.0 - "@metamask/keyring-controller": ^25.0.0 - "@metamask/logging-controller": ^7.0.0 - "@metamask/network-controller": ^26.0.0 languageName: unknown linkType: soft @@ -5007,8 +4891,6 @@ __metadata: typedoc: "npm:^0.24.8" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" - peerDependencies: - "@metamask/profile-sync-controller": ^27.0.0 languageName: unknown linkType: soft @@ -5113,14 +4995,6 @@ __metadata: typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" uuid: "npm:^8.3.2" - peerDependencies: - "@babel/runtime": ^7.0.0 - "@metamask/accounts-controller": ^35.0.0 - "@metamask/approval-controller": ^8.0.0 - "@metamask/eth-block-tracker": ">=9" - "@metamask/gas-fee-controller": ^26.0.0 - "@metamask/network-controller": ^26.0.0 - "@metamask/remote-feature-flag-controller": ^2.0.0 languageName: unknown linkType: soft @@ -5155,14 +5029,6 @@ __metadata: typedoc: "npm:^0.24.8" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" - peerDependencies: - "@metamask/assets-controllers": ^91.0.0 - "@metamask/bridge-controller": ^63.0.0 - "@metamask/bridge-status-controller": ^63.0.0 - "@metamask/gas-fee-controller": ^26.0.0 - "@metamask/network-controller": ^26.0.0 - "@metamask/remote-feature-flag-controller": ^2.0.0 - "@metamask/transaction-controller": ^62.0.0 languageName: unknown linkType: soft @@ -5197,13 +5063,6 @@ __metadata: typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" uuid: "npm:^8.3.2" - peerDependencies: - "@metamask/approval-controller": ^8.0.0 - "@metamask/eth-block-tracker": ">=9" - "@metamask/gas-fee-controller": ^26.0.0 - "@metamask/keyring-controller": ^25.0.0 - "@metamask/network-controller": ^26.0.0 - "@metamask/transaction-controller": ^62.0.0 languageName: unknown linkType: soft From 8a28cfbfc2c66a20d92ee936f6b55f2e48bb6ef0 Mon Sep 17 00:00:00 2001 From: Elliot Winkler Date: Fri, 21 Nov 2025 09:18:05 -0700 Subject: [PATCH 2/3] Go through one more time --- packages/account-tree-controller/package.json | 4 ++++ packages/accounts-controller/package.json | 4 ++++ packages/assets-controllers/package.json | 5 ++++ packages/controller-utils/package.json | 3 +++ packages/earn-controller/CHANGELOG.md | 1 - packages/earn-controller/package.json | 2 +- packages/gas-fee-controller/package.json | 3 +++ .../multichain-account-service/package.json | 5 ++++ packages/profile-sync-controller/package.json | 4 ++++ packages/transaction-controller/CHANGELOG.md | 1 - packages/transaction-controller/package.json | 6 ++++- .../user-operation-controller/package.json | 1 - yarn.config.cjs | 6 +++++ yarn.lock | 23 +++++++++++++++++++ 14 files changed, 63 insertions(+), 5 deletions(-) diff --git a/packages/account-tree-controller/package.json b/packages/account-tree-controller/package.json index 6d59d642d08..f478f3bed42 100644 --- a/packages/account-tree-controller/package.json +++ b/packages/account-tree-controller/package.json @@ -77,6 +77,10 @@ "typescript": "~5.3.3", "webextension-polyfill": "^0.12.0" }, + "peerDependencies": { + "@metamask/providers": "^22.0.0", + "webextension-polyfill": "^0.10.0 || ^0.11.0 || ^0.12.0" + }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/accounts-controller/package.json b/packages/accounts-controller/package.json index 69817860b4e..2d48fc773d8 100644 --- a/packages/accounts-controller/package.json +++ b/packages/accounts-controller/package.json @@ -82,6 +82,10 @@ "typescript": "~5.3.3", "webextension-polyfill": "^0.12.0" }, + "peerDependencies": { + "@metamask/providers": "^22.0.0", + "webextension-polyfill": "^0.10.0 || ^0.11.0 || ^0.12.0" + }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/assets-controllers/package.json b/packages/assets-controllers/package.json index 309d01ad2cb..6dc332d6375 100644 --- a/packages/assets-controllers/package.json +++ b/packages/assets-controllers/package.json @@ -99,6 +99,7 @@ "@metamask/ethjs-provider-http": "^0.3.0", "@metamask/keyring-internal-api": "^9.0.0", "@metamask/keyring-snap-client": "^8.0.0", + "@metamask/providers": "^22.1.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^27.4.1", "@types/lodash": "^4.14.191", @@ -114,6 +115,10 @@ "typescript": "~5.3.3", "webextension-polyfill": "^0.12.0" }, + "peerDependencies": { + "@metamask/providers": "^22.0.0", + "webextension-polyfill": "^0.10.0 || ^0.11.0 || ^0.12.0" + }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/controller-utils/package.json b/packages/controller-utils/package.json index c8e20f867fa..87e12569220 100644 --- a/packages/controller-utils/package.json +++ b/packages/controller-utils/package.json @@ -76,6 +76,9 @@ "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" }, + "peerDependencies": { + "@babel/runtime": "^7.0.0" + }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/earn-controller/CHANGELOG.md b/packages/earn-controller/CHANGELOG.md index ccbf378e429..e6a2cdd3744 100644 --- a/packages/earn-controller/CHANGELOG.md +++ b/packages/earn-controller/CHANGELOG.md @@ -13,7 +13,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - The dependencies moved are: - `@metamask/account-tree-controller` (^4.0.0) - `@metamask/network-controller` (^26.0.0) - - `@metamask/transaction-controller` (^62.1.0) - In clients, it is now possible for multiple versions of these packages to exist in the dependency tree. - For example, this scenario would be valid: a client relies on `@metamask/controller-a` 1.0.0 and `@metamask/controller-b` 1.0.0, and `@metamask/controller-b` depends on `@metamask/controller-a` 1.1.0. - Note, however, that the versions specified in the client's `package.json` always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication. diff --git a/packages/earn-controller/package.json b/packages/earn-controller/package.json index 8523ffca1e5..5e21f0c6d2c 100644 --- a/packages/earn-controller/package.json +++ b/packages/earn-controller/package.json @@ -57,11 +57,11 @@ "@metamask/messenger": "^0.3.0", "@metamask/network-controller": "^26.0.0", "@metamask/stake-sdk": "^3.2.1", - "@metamask/transaction-controller": "^62.1.0", "reselect": "^5.1.1" }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", + "@metamask/transaction-controller": "^62.1.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^27.4.1", "deepmerge": "^4.2.2", diff --git a/packages/gas-fee-controller/package.json b/packages/gas-fee-controller/package.json index 19fcae2e9ff..1c7c7c0367f 100644 --- a/packages/gas-fee-controller/package.json +++ b/packages/gas-fee-controller/package.json @@ -76,6 +76,9 @@ "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" }, + "peerDependencies": { + "@babel/runtime": "^7.0.0" + }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/multichain-account-service/package.json b/packages/multichain-account-service/package.json index 4e0c8fe2890..e4f73a19700 100644 --- a/packages/multichain-account-service/package.json +++ b/packages/multichain-account-service/package.json @@ -84,6 +84,11 @@ "uuid": "^8.3.2", "webextension-polyfill": "^0.12.0" }, + "peerDependencies": { + "@metamask/account-api": "^0.12.0", + "@metamask/providers": "^22.0.0", + "webextension-polyfill": "^0.10.0 || ^0.11.0 || ^0.12.0" + }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/profile-sync-controller/package.json b/packages/profile-sync-controller/package.json index 438cc8c955a..49dbf907c04 100644 --- a/packages/profile-sync-controller/package.json +++ b/packages/profile-sync-controller/package.json @@ -135,6 +135,10 @@ "typescript": "~5.3.3", "webextension-polyfill": "^0.12.0" }, + "peerDependencies": { + "@metamask/providers": "^22.0.0", + "webextension-polyfill": "^0.10.0 || ^0.11.0 || ^0.12.0" + }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/transaction-controller/CHANGELOG.md b/packages/transaction-controller/CHANGELOG.md index 12281b09b0f..ccbfefa79a5 100644 --- a/packages/transaction-controller/CHANGELOG.md +++ b/packages/transaction-controller/CHANGELOG.md @@ -13,7 +13,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - The dependencies moved are: - `@metamask/accounts-controller` (^35.0.0) - `@metamask/approval-controller` (^8.0.0) - - `@metamask/eth-block-tracker` (^15.0.0) - `@metamask/gas-fee-controller` (^26.0.0) - `@metamask/network-controller` (^26.0.0) - `@metamask/remote-feature-flag-controller` (^2.0.1) diff --git a/packages/transaction-controller/package.json b/packages/transaction-controller/package.json index 2a1292b5611..5d0fdda755c 100644 --- a/packages/transaction-controller/package.json +++ b/packages/transaction-controller/package.json @@ -59,7 +59,6 @@ "@metamask/approval-controller": "^8.0.0", "@metamask/base-controller": "^9.0.0", "@metamask/controller-utils": "^11.16.0", - "@metamask/eth-block-tracker": "^15.0.0", "@metamask/eth-query": "^4.0.0", "@metamask/gas-fee-controller": "^26.0.0", "@metamask/messenger": "^0.3.0", @@ -80,6 +79,7 @@ "devDependencies": { "@babel/runtime": "^7.23.9", "@metamask/auto-changelog": "^3.4.4", + "@metamask/eth-block-tracker": "^15.0.0", "@metamask/eth-json-rpc-provider": "^6.0.0", "@metamask/ethjs-provider-http": "^0.3.0", "@ts-bridge/cli": "^0.6.4", @@ -96,6 +96,10 @@ "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" }, + "peerDependencies": { + "@babel/runtime": "^7.0.0", + "@metamask/eth-block-tracker": ">=9" + }, "engines": { "node": "^18.18 || >=20" }, diff --git a/packages/user-operation-controller/package.json b/packages/user-operation-controller/package.json index eafa3b14906..3535cc15ef6 100644 --- a/packages/user-operation-controller/package.json +++ b/packages/user-operation-controller/package.json @@ -52,7 +52,6 @@ "@metamask/approval-controller": "^8.0.0", "@metamask/base-controller": "^9.0.0", "@metamask/controller-utils": "^11.16.0", - "@metamask/eth-block-tracker": "^15.0.0", "@metamask/eth-query": "^4.0.0", "@metamask/gas-fee-controller": "^26.0.0", "@metamask/keyring-controller": "^25.0.0", diff --git a/yarn.config.cjs b/yarn.config.cjs index 8aa8ef8cb5c..df1f9b4dbdb 100644 --- a/yarn.config.cjs +++ b/yarn.config.cjs @@ -785,6 +785,12 @@ function expectDependenciesForControllersAndServices( dependencyIdent, dependencyInstancesByType, ] of dependenciesByIdentAndType.entries()) { + if (dependencyIdent === '@metamask/eth-block-tracker') { + // Some packages have a peer dependency on this package, and we are still + // working through removing this peer dependency across packages. + continue; + } + const peerDependency = dependencyInstancesByType.get('peerDependencies'); const devDependency = dependencyInstancesByType.get('devDependencies'); diff --git a/yarn.lock b/yarn.lock index 3535820cf39..2d0d29b6c34 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2446,6 +2446,9 @@ __metadata: typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" webextension-polyfill: "npm:^0.12.0" + peerDependencies: + "@metamask/providers": ^22.0.0 + webextension-polyfill: ^0.10.0 || ^0.11.0 || ^0.12.0 languageName: unknown linkType: soft @@ -2484,6 +2487,9 @@ __metadata: typescript: "npm:~5.3.3" uuid: "npm:^8.3.2" webextension-polyfill: "npm:^0.12.0" + peerDependencies: + "@metamask/providers": ^22.0.0 + webextension-polyfill: ^0.10.0 || ^0.11.0 || ^0.12.0 languageName: unknown linkType: soft @@ -2683,6 +2689,9 @@ __metadata: typescript: "npm:~5.3.3" uuid: "npm:^8.3.2" webextension-polyfill: "npm:^0.12.0" + peerDependencies: + "@metamask/providers": ^22.0.0 + webextension-polyfill: ^0.10.0 || ^0.11.0 || ^0.12.0 languageName: unknown linkType: soft @@ -2990,6 +2999,8 @@ __metadata: typedoc: "npm:^0.24.8" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" + peerDependencies: + "@babel/runtime": ^7.0.0 languageName: unknown linkType: soft @@ -3729,6 +3740,8 @@ __metadata: typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" uuid: "npm:^8.3.2" + peerDependencies: + "@babel/runtime": ^7.0.0 languageName: unknown linkType: soft @@ -4047,6 +4060,10 @@ __metadata: typescript: "npm:~5.3.3" uuid: "npm:^8.3.2" webextension-polyfill: "npm:^0.12.0" + peerDependencies: + "@metamask/account-api": ^0.12.0 + "@metamask/providers": ^22.0.0 + webextension-polyfill: ^0.10.0 || ^0.11.0 || ^0.12.0 languageName: unknown linkType: soft @@ -4506,6 +4523,9 @@ __metadata: typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" webextension-polyfill: "npm:^0.12.0" + peerDependencies: + "@metamask/providers": ^22.0.0 + webextension-polyfill: ^0.10.0 || ^0.11.0 || ^0.12.0 languageName: unknown linkType: soft @@ -4995,6 +5015,9 @@ __metadata: typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" uuid: "npm:^8.3.2" + peerDependencies: + "@babel/runtime": ^7.0.0 + "@metamask/eth-block-tracker": ">=9" languageName: unknown linkType: soft From 22b1cbe281afc4b69b4082ba000de95bad0aff66 Mon Sep 17 00:00:00 2001 From: Elliot Winkler Date: Fri, 21 Nov 2025 09:27:47 -0700 Subject: [PATCH 3/3] Update lockfile --- yarn.lock | 1 + 1 file changed, 1 insertion(+) diff --git a/yarn.lock b/yarn.lock index 2d0d29b6c34..ae19c08550f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2658,6 +2658,7 @@ __metadata: "@metamask/polling-controller": "npm:^16.0.0" "@metamask/preferences-controller": "npm:^22.0.0" "@metamask/profile-sync-controller": "npm:^27.0.0" + "@metamask/providers": "npm:^22.1.0" "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/snaps-controllers": "npm:^14.0.1" "@metamask/snaps-sdk": "npm:^9.0.0"