diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index bf4843288bb..a1cc193b5d2 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,159 +1,711 @@ # NOTE: This file is autogenerated. -# Don't modify this file directly; instead, modify `codeowners.ts` -# and re-run `yarn codeowners:generate`. - -# Lines starting with '#' are comments. -# Each line is a file pattern followed by one or more owners. - -# Please keep this synchronized with the `teams.json` file in the repository root. -# That file is used for some automated workflows, and maps controller to owning team(s). - -/.github/ @MetaMask/core-platform - -## Accounts Team -/packages/accounts-controller @MetaMask/accounts-engineers -/packages/multichain-transactions-controller @MetaMask/accounts-engineers -/packages/multichain-account-service @MetaMask/accounts-engineers -/packages/account-tree-controller @MetaMask/accounts-engineers -/packages/profile-sync-controller @MetaMask/accounts-engineers -/packages/money-account-controller @MetaMask/accounts-engineers -/packages/snap-account-service @MetaMask/accounts-engineers - -## Auth Team -/packages/authenticated-user-storage @MetaMask/auth-engineers - -## Assets Team -/packages/assets-controllers @MetaMask/metamask-assets -/packages/network-enablement-controller @MetaMask/metamask-assets -/packages/assets-controller @MetaMask/metamask-assets -/packages/core-backend @MetaMask/metamask-assets - -## Confirmations Team -/packages/address-book-controller @MetaMask/confirmations -/packages/approval-controller @MetaMask/confirmations -/packages/gas-fee-controller @MetaMask/confirmations -/packages/logging-controller @MetaMask/confirmations -/packages/message-manager @MetaMask/confirmations -/packages/name-controller @MetaMask/confirmations -/packages/signature-controller @MetaMask/confirmations -/packages/transaction-controller @MetaMask/confirmations -/packages/transaction-pay-controller @MetaMask/confirmations -/packages/user-operation-controller @MetaMask/confirmations - -## Transactions Team -/packages/smart-transactions-controller @MetaMask/transactions - -## Delegation Team -/packages/delegation-controller @MetaMask/delegation -/packages/gator-permissions-controller @MetaMask/delegation -/packages/eip-7702-internal-rpc-middleware @MetaMask/delegation @MetaMask/core-platform - -## Earn Team -/packages/earn-controller @MetaMask/earn -/packages/money-account-balance-service @MetaMask/earn -/packages/money-account-api-data-service @MetaMask/earn -/packages/chomp-api-service @MetaMask/earn @MetaMask/delegation -/packages/money-account-upgrade-controller @MetaMask/earn @MetaMask/delegation -/packages/money-account-utils @MetaMask/earn +# Don't modify this file directly; instead, modify `codeowners.ts` and re-run `yarn codeowners:generate`. -## Social AI Team -/packages/ai-controllers @MetaMask/social-ai -/packages/social-controllers @MetaMask/social-ai +# Packages +# -------- -## Money Movement Team -/packages/ramps-controller @MetaMask/money-movement +### account-tree-controller +/packages/account-tree-controller @MetaMask/accounts-engineers +/packages/account-tree-controller/CHANGELOG.md @MetaMask/accounts-engineers @MetaMask/core-platform +/packages/account-tree-controller/package.json @MetaMask/accounts-engineers @MetaMask/core-platform +/packages/account-tree-controller/tsconfig.* @MetaMask/accounts-engineers @MetaMask/core-platform +/packages/account-tree-controller/typedoc.json @MetaMask/accounts-engineers @MetaMask/core-platform -## Networks Team -/packages/config-registry-controller @MetaMask/networks @MetaMask/emerging-opportunities +### accounts-controller +/packages/accounts-controller @MetaMask/accounts-engineers +/packages/accounts-controller/CHANGELOG.md @MetaMask/accounts-engineers @MetaMask/core-platform +/packages/accounts-controller/package.json @MetaMask/accounts-engineers @MetaMask/core-platform +/packages/accounts-controller/tsconfig.* @MetaMask/accounts-engineers @MetaMask/core-platform +/packages/accounts-controller/typedoc.json @MetaMask/accounts-engineers @MetaMask/core-platform -## Engagement Team -/packages/notification-services-controller @MetaMask/engagement +### address-book-controller +/packages/address-book-controller @MetaMask/confirmations +/packages/address-book-controller/CHANGELOG.md @MetaMask/confirmations @MetaMask/core-platform +/packages/address-book-controller/package.json @MetaMask/confirmations @MetaMask/core-platform +/packages/address-book-controller/tsconfig.* @MetaMask/confirmations @MetaMask/core-platform +/packages/address-book-controller/typedoc.json @MetaMask/confirmations @MetaMask/core-platform -## Perps Team -/packages/compliance-controller @MetaMask/perps -/packages/perps-controller @MetaMask/perps +### ai-controllers +/packages/ai-controllers @MetaMask/social-ai +/packages/ai-controllers/CHANGELOG.md @MetaMask/core-platform @MetaMask/social-ai +/packages/ai-controllers/package.json @MetaMask/core-platform @MetaMask/social-ai +/packages/ai-controllers/tsconfig.* @MetaMask/core-platform @MetaMask/social-ai +/packages/ai-controllers/typedoc.json @MetaMask/core-platform @MetaMask/social-ai -## Product Safety Team -/packages/phishing-controller @MetaMask/product-safety +### analytics-controller +/packages/analytics-controller @MetaMask/extension-platform @MetaMask/mobile-platform +/packages/analytics-controller/CHANGELOG.md @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform +/packages/analytics-controller/package.json @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform +/packages/analytics-controller/tsconfig.* @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform +/packages/analytics-controller/typedoc.json @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform -## Universal KYC Team -/packages/kyc-controller @MetaMask/universal-kyc +### analytics-data-regulation-controller +/packages/analytics-data-regulation-controller @MetaMask/extension-platform @MetaMask/mobile-platform +/packages/analytics-data-regulation-controller/CHANGELOG.md @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform +/packages/analytics-data-regulation-controller/package.json @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform +/packages/analytics-data-regulation-controller/tsconfig.* @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform +/packages/analytics-data-regulation-controller/typedoc.json @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform -## Swaps-Bridge Team -/packages/bridge-controller @MetaMask/swaps-engineers -/packages/bridge-status-controller @MetaMask/swaps-engineers +### announcement-controller +/packages/announcement-controller @MetaMask/core-extension-ux @MetaMask/mobile-core-ux +/packages/announcement-controller/CHANGELOG.md @MetaMask/core-extension-ux @MetaMask/core-platform @MetaMask/mobile-core-ux +/packages/announcement-controller/package.json @MetaMask/core-extension-ux @MetaMask/core-platform @MetaMask/mobile-core-ux +/packages/announcement-controller/tsconfig.* @MetaMask/core-extension-ux @MetaMask/core-platform @MetaMask/mobile-core-ux +/packages/announcement-controller/typedoc.json @MetaMask/core-extension-ux @MetaMask/core-platform @MetaMask/mobile-core-ux -## Mobile Platform Team +### app-metadata-controller /packages/app-metadata-controller @MetaMask/mobile-platform -/packages/analytics-controller @MetaMask/mobile-platform @MetaMask/extension-platform -/packages/analytics-data-regulation-controller @MetaMask/mobile-platform @MetaMask/extension-platform -/packages/geolocation-controller @MetaMask/mobile-platform - -## Core Platform Team -/packages/base-controller @MetaMask/core-platform -/packages/base-data-service @MetaMask/core-platform -/packages/build-utils @MetaMask/core-platform -/packages/chain-agnostic-permission @MetaMask/core-platform -/packages/composable-controller @MetaMask/core-platform +/packages/app-metadata-controller/CHANGELOG.md @MetaMask/core-platform @MetaMask/mobile-platform +/packages/app-metadata-controller/package.json @MetaMask/core-platform @MetaMask/mobile-platform +/packages/app-metadata-controller/tsconfig.* @MetaMask/core-platform @MetaMask/mobile-platform +/packages/app-metadata-controller/typedoc.json @MetaMask/core-platform @MetaMask/mobile-platform + +### approval-controller +/packages/approval-controller @MetaMask/confirmations +/packages/approval-controller/CHANGELOG.md @MetaMask/confirmations @MetaMask/core-platform +/packages/approval-controller/package.json @MetaMask/confirmations @MetaMask/core-platform +/packages/approval-controller/tsconfig.* @MetaMask/confirmations @MetaMask/core-platform +/packages/approval-controller/typedoc.json @MetaMask/confirmations @MetaMask/core-platform + +### assets-controller +/packages/assets-controller @MetaMask/metamask-assets +/packages/assets-controller/CHANGELOG.md @MetaMask/core-platform @MetaMask/metamask-assets +/packages/assets-controller/package.json @MetaMask/core-platform @MetaMask/metamask-assets +/packages/assets-controller/tsconfig.* @MetaMask/core-platform @MetaMask/metamask-assets +/packages/assets-controller/typedoc.json @MetaMask/core-platform @MetaMask/metamask-assets + +### assets-controllers +/packages/assets-controllers @MetaMask/metamask-assets +/packages/assets-controllers/CHANGELOG.md @MetaMask/core-platform @MetaMask/metamask-assets +/packages/assets-controllers/package.json @MetaMask/core-platform @MetaMask/metamask-assets +/packages/assets-controllers/tsconfig.* @MetaMask/core-platform @MetaMask/metamask-assets +/packages/assets-controllers/typedoc.json @MetaMask/core-platform @MetaMask/metamask-assets + +### authenticated-user-storage +/packages/authenticated-user-storage @MetaMask/auth-engineers +/packages/authenticated-user-storage/CHANGELOG.md @MetaMask/auth-engineers @MetaMask/core-platform +/packages/authenticated-user-storage/package.json @MetaMask/auth-engineers @MetaMask/core-platform +/packages/authenticated-user-storage/tsconfig.* @MetaMask/auth-engineers @MetaMask/core-platform +/packages/authenticated-user-storage/typedoc.json @MetaMask/auth-engineers @MetaMask/core-platform + +### base-controller +/packages/base-controller @MetaMask/core-platform +/packages/base-controller/CHANGELOG.md @MetaMask/core-platform +/packages/base-controller/package.json @MetaMask/core-platform +/packages/base-controller/tsconfig.* @MetaMask/core-platform +/packages/base-controller/typedoc.json @MetaMask/core-platform + +### base-data-service +/packages/base-data-service @MetaMask/core-platform +/packages/base-data-service/CHANGELOG.md @MetaMask/core-platform +/packages/base-data-service/package.json @MetaMask/core-platform +/packages/base-data-service/tsconfig.* @MetaMask/core-platform +/packages/base-data-service/typedoc.json @MetaMask/core-platform + +### bitcoin-regtest-up +/packages/bitcoin-regtest-up @MetaMask/emerging-opportunities @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/networks +/packages/bitcoin-regtest-up/CHANGELOG.md @MetaMask/core-platform @MetaMask/emerging-opportunities @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/networks +/packages/bitcoin-regtest-up/package.json @MetaMask/core-platform @MetaMask/emerging-opportunities @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/networks +/packages/bitcoin-regtest-up/tsconfig.* @MetaMask/core-platform @MetaMask/emerging-opportunities @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/networks +/packages/bitcoin-regtest-up/typedoc.json @MetaMask/core-platform @MetaMask/emerging-opportunities @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/networks + +### bridge-controller +/packages/bridge-controller @MetaMask/swaps-engineers +/packages/bridge-controller/CHANGELOG.md @MetaMask/core-platform @MetaMask/swaps-engineers +/packages/bridge-controller/package.json @MetaMask/core-platform @MetaMask/swaps-engineers +/packages/bridge-controller/tsconfig.* @MetaMask/core-platform @MetaMask/swaps-engineers +/packages/bridge-controller/typedoc.json @MetaMask/core-platform @MetaMask/swaps-engineers + +### bridge-status-controller +/packages/bridge-status-controller @MetaMask/swaps-engineers +/packages/bridge-status-controller/CHANGELOG.md @MetaMask/core-platform @MetaMask/swaps-engineers +/packages/bridge-status-controller/package.json @MetaMask/core-platform @MetaMask/swaps-engineers +/packages/bridge-status-controller/tsconfig.* @MetaMask/core-platform @MetaMask/swaps-engineers +/packages/bridge-status-controller/typedoc.json @MetaMask/core-platform @MetaMask/swaps-engineers + +### build-utils +/packages/build-utils @MetaMask/core-platform +/packages/build-utils/CHANGELOG.md @MetaMask/core-platform +/packages/build-utils/package.json @MetaMask/core-platform +/packages/build-utils/tsconfig.* @MetaMask/core-platform +/packages/build-utils/typedoc.json @MetaMask/core-platform + +### chain-agnostic-permission +/packages/chain-agnostic-permission @MetaMask/core-platform +/packages/chain-agnostic-permission/CHANGELOG.md @MetaMask/core-platform +/packages/chain-agnostic-permission/package.json @MetaMask/core-platform +/packages/chain-agnostic-permission/tsconfig.* @MetaMask/core-platform +/packages/chain-agnostic-permission/typedoc.json @MetaMask/core-platform + +### chomp-api-service +/packages/chomp-api-service @MetaMask/delegation @MetaMask/earn +/packages/chomp-api-service/CHANGELOG.md @MetaMask/core-platform @MetaMask/delegation @MetaMask/earn +/packages/chomp-api-service/package.json @MetaMask/core-platform @MetaMask/delegation @MetaMask/earn +/packages/chomp-api-service/tsconfig.* @MetaMask/core-platform @MetaMask/delegation @MetaMask/earn +/packages/chomp-api-service/typedoc.json @MetaMask/core-platform @MetaMask/delegation @MetaMask/earn + +### claims-controller +/packages/claims-controller @MetaMask/web3auth +/packages/claims-controller/CHANGELOG.md @MetaMask/core-platform @MetaMask/web3auth +/packages/claims-controller/package.json @MetaMask/core-platform @MetaMask/web3auth +/packages/claims-controller/tsconfig.* @MetaMask/core-platform @MetaMask/web3auth +/packages/claims-controller/typedoc.json @MetaMask/core-platform @MetaMask/web3auth + +### claims-service +/packages/claims-service @MetaMask/web3auth +/packages/claims-service/CHANGELOG.md @MetaMask/core-platform @MetaMask/web3auth +/packages/claims-service/package.json @MetaMask/core-platform @MetaMask/web3auth +/packages/claims-service/tsconfig.* @MetaMask/core-platform @MetaMask/web3auth +/packages/claims-service/typedoc.json @MetaMask/core-platform @MetaMask/web3auth + +### client-controller +/packages/client-controller @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform +/packages/client-controller/CHANGELOG.md @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform +/packages/client-controller/package.json @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform +/packages/client-controller/tsconfig.* @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform +/packages/client-controller/typedoc.json @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform + +### client-utils +/packages/client-utils @MetaMask/core-extension-ux @MetaMask/mobile-core-ux +/packages/client-utils/CHANGELOG.md @MetaMask/core-extension-ux @MetaMask/core-platform @MetaMask/mobile-core-ux +/packages/client-utils/package.json @MetaMask/core-extension-ux @MetaMask/core-platform @MetaMask/mobile-core-ux +/packages/client-utils/tsconfig.* @MetaMask/core-extension-ux @MetaMask/core-platform @MetaMask/mobile-core-ux +/packages/client-utils/typedoc.json @MetaMask/core-extension-ux @MetaMask/core-platform @MetaMask/mobile-core-ux + +### compliance-controller +/packages/compliance-controller @MetaMask/perps +/packages/compliance-controller/CHANGELOG.md @MetaMask/core-platform @MetaMask/perps +/packages/compliance-controller/package.json @MetaMask/core-platform @MetaMask/perps +/packages/compliance-controller/tsconfig.* @MetaMask/core-platform @MetaMask/perps +/packages/compliance-controller/typedoc.json @MetaMask/core-platform @MetaMask/perps + +### composable-controller +/packages/composable-controller @MetaMask/core-platform +/packages/composable-controller/CHANGELOG.md @MetaMask/core-platform +/packages/composable-controller/package.json @MetaMask/core-platform +/packages/composable-controller/tsconfig.* @MetaMask/core-platform +/packages/composable-controller/typedoc.json @MetaMask/core-platform + +### config-registry-controller +/packages/config-registry-controller @MetaMask/emerging-opportunities @MetaMask/networks +/packages/config-registry-controller/CHANGELOG.md @MetaMask/core-platform @MetaMask/emerging-opportunities @MetaMask/networks +/packages/config-registry-controller/package.json @MetaMask/core-platform @MetaMask/emerging-opportunities @MetaMask/networks +/packages/config-registry-controller/tsconfig.* @MetaMask/core-platform @MetaMask/emerging-opportunities @MetaMask/networks +/packages/config-registry-controller/typedoc.json @MetaMask/core-platform @MetaMask/emerging-opportunities @MetaMask/networks + +### connectivity-controller /packages/connectivity-controller @MetaMask/core-platform -/packages/controller-utils @MetaMask/core-platform -/packages/cryptography @MetaMask/core-platform -/packages/eip-5792-middleware @MetaMask/core-platform -/packages/eip1193-permission-middleware @MetaMask/core-platform -/packages/eth-block-tracker @MetaMask/core-platform +/packages/connectivity-controller/CHANGELOG.md @MetaMask/core-platform +/packages/connectivity-controller/package.json @MetaMask/core-platform +/packages/connectivity-controller/tsconfig.* @MetaMask/core-platform +/packages/connectivity-controller/typedoc.json @MetaMask/core-platform + +### controller-utils +/packages/controller-utils @MetaMask/core-platform +/packages/controller-utils/CHANGELOG.md @MetaMask/core-platform +/packages/controller-utils/package.json @MetaMask/core-platform +/packages/controller-utils/tsconfig.* @MetaMask/core-platform +/packages/controller-utils/typedoc.json @MetaMask/core-platform + +### core-backend +/packages/core-backend @MetaMask/metamask-assets +/packages/core-backend/CHANGELOG.md @MetaMask/core-platform @MetaMask/metamask-assets +/packages/core-backend/package.json @MetaMask/core-platform @MetaMask/metamask-assets +/packages/core-backend/tsconfig.* @MetaMask/core-platform @MetaMask/metamask-assets +/packages/core-backend/typedoc.json @MetaMask/core-platform @MetaMask/metamask-assets + +### cryptography +/packages/cryptography @MetaMask/core-platform +/packages/cryptography/CHANGELOG.md @MetaMask/core-platform +/packages/cryptography/package.json @MetaMask/core-platform +/packages/cryptography/tsconfig.* @MetaMask/core-platform +/packages/cryptography/typedoc.json @MetaMask/core-platform + +### delegation-controller +/packages/delegation-controller @MetaMask/delegation +/packages/delegation-controller/CHANGELOG.md @MetaMask/core-platform @MetaMask/delegation +/packages/delegation-controller/package.json @MetaMask/core-platform @MetaMask/delegation +/packages/delegation-controller/tsconfig.* @MetaMask/core-platform @MetaMask/delegation +/packages/delegation-controller/typedoc.json @MetaMask/core-platform @MetaMask/delegation + +### earn-controller +/packages/earn-controller @MetaMask/earn +/packages/earn-controller/CHANGELOG.md @MetaMask/core-platform @MetaMask/earn +/packages/earn-controller/package.json @MetaMask/core-platform @MetaMask/earn +/packages/earn-controller/tsconfig.* @MetaMask/core-platform @MetaMask/earn +/packages/earn-controller/typedoc.json @MetaMask/core-platform @MetaMask/earn + +### eip-5792-middleware +/packages/eip-5792-middleware @MetaMask/core-platform +/packages/eip-5792-middleware/CHANGELOG.md @MetaMask/core-platform +/packages/eip-5792-middleware/package.json @MetaMask/core-platform +/packages/eip-5792-middleware/tsconfig.* @MetaMask/core-platform +/packages/eip-5792-middleware/typedoc.json @MetaMask/core-platform + +### eip-7702-internal-rpc-middleware +/packages/eip-7702-internal-rpc-middleware @MetaMask/core-platform @MetaMask/delegation +/packages/eip-7702-internal-rpc-middleware/CHANGELOG.md @MetaMask/core-platform @MetaMask/delegation +/packages/eip-7702-internal-rpc-middleware/package.json @MetaMask/core-platform @MetaMask/delegation +/packages/eip-7702-internal-rpc-middleware/tsconfig.* @MetaMask/core-platform @MetaMask/delegation +/packages/eip-7702-internal-rpc-middleware/typedoc.json @MetaMask/core-platform @MetaMask/delegation + +### eip1193-permission-middleware +/packages/eip1193-permission-middleware @MetaMask/core-platform +/packages/eip1193-permission-middleware/CHANGELOG.md @MetaMask/core-platform +/packages/eip1193-permission-middleware/package.json @MetaMask/core-platform +/packages/eip1193-permission-middleware/tsconfig.* @MetaMask/core-platform +/packages/eip1193-permission-middleware/typedoc.json @MetaMask/core-platform + +### eth-block-tracker +/packages/eth-block-tracker @MetaMask/core-platform +/packages/eth-block-tracker/CHANGELOG.md @MetaMask/core-platform +/packages/eth-block-tracker/package.json @MetaMask/core-platform +/packages/eth-block-tracker/tsconfig.* @MetaMask/core-platform +/packages/eth-block-tracker/typedoc.json @MetaMask/core-platform + +### eth-json-rpc-middleware /packages/eth-json-rpc-middleware @MetaMask/core-platform -/packages/eth-json-rpc-provider @MetaMask/core-platform -/packages/json-rpc-engine @MetaMask/core-platform -/packages/json-rpc-middleware-stream @MetaMask/core-platform -/packages/messenger @MetaMask/core-platform -/packages/messenger-cli @MetaMask/core-platform -/packages/multichain-api-middleware @MetaMask/core-platform -/packages/network-connection-banner-controller @MetaMask/core-platform -/packages/permission-controller @MetaMask/core-platform -/packages/permission-log-controller @MetaMask/core-platform -/packages/platform-api-docs @MetaMask/core-platform -/packages/polling-controller @MetaMask/core-platform -/packages/preferences-controller @MetaMask/core-platform -/packages/rate-limit-controller @MetaMask/core-platform -/packages/react-data-query @MetaMask/core-platform -/packages/sample-controllers @MetaMask/core-platform -/packages/selected-network-controller @MetaMask/core-platform -/packages/utils @MetaMask/core-platform -/packages/wallet @MetaMask/core-platform -/packages/wallet-cli @MetaMask/core-platform -/packages/wallet-framework-docs @MetaMask/core-platform - -## Web3Auth Team -/packages/seedless-onboarding-controller @MetaMask/web3auth -/packages/passkey-controller @MetaMask/web3auth +/packages/eth-json-rpc-middleware/CHANGELOG.md @MetaMask/core-platform +/packages/eth-json-rpc-middleware/package.json @MetaMask/core-platform +/packages/eth-json-rpc-middleware/tsconfig.* @MetaMask/core-platform +/packages/eth-json-rpc-middleware/typedoc.json @MetaMask/core-platform + +### eth-json-rpc-provider +/packages/eth-json-rpc-provider @MetaMask/core-platform +/packages/eth-json-rpc-provider/CHANGELOG.md @MetaMask/core-platform +/packages/eth-json-rpc-provider/package.json @MetaMask/core-platform +/packages/eth-json-rpc-provider/tsconfig.* @MetaMask/core-platform +/packages/eth-json-rpc-provider/typedoc.json @MetaMask/core-platform + +### foundryup +/packages/foundryup @MetaMask/extension-platform @MetaMask/mobile-platform +/packages/foundryup/CHANGELOG.md @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform +/packages/foundryup/package.json @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform +/packages/foundryup/tsconfig.* @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform +/packages/foundryup/typedoc.json @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform + +### gas-fee-controller +/packages/gas-fee-controller @MetaMask/confirmations +/packages/gas-fee-controller/CHANGELOG.md @MetaMask/confirmations @MetaMask/core-platform +/packages/gas-fee-controller/package.json @MetaMask/confirmations @MetaMask/core-platform +/packages/gas-fee-controller/tsconfig.* @MetaMask/confirmations @MetaMask/core-platform +/packages/gas-fee-controller/typedoc.json @MetaMask/confirmations @MetaMask/core-platform + +### gator-permissions-controller +/packages/gator-permissions-controller @MetaMask/delegation +/packages/gator-permissions-controller/CHANGELOG.md @MetaMask/core-platform @MetaMask/delegation +/packages/gator-permissions-controller/package.json @MetaMask/core-platform @MetaMask/delegation +/packages/gator-permissions-controller/tsconfig.* @MetaMask/core-platform @MetaMask/delegation +/packages/gator-permissions-controller/typedoc.json @MetaMask/core-platform @MetaMask/delegation + +### geolocation-controller +/packages/geolocation-controller @MetaMask/mobile-platform +/packages/geolocation-controller/CHANGELOG.md @MetaMask/core-platform @MetaMask/mobile-platform +/packages/geolocation-controller/package.json @MetaMask/core-platform @MetaMask/mobile-platform +/packages/geolocation-controller/tsconfig.* @MetaMask/core-platform @MetaMask/mobile-platform +/packages/geolocation-controller/typedoc.json @MetaMask/core-platform @MetaMask/mobile-platform + +### java-tron-up +/packages/java-tron-up @MetaMask/emerging-opportunities @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/networks +/packages/java-tron-up/CHANGELOG.md @MetaMask/core-platform @MetaMask/emerging-opportunities @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/networks +/packages/java-tron-up/package.json @MetaMask/core-platform @MetaMask/emerging-opportunities @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/networks +/packages/java-tron-up/tsconfig.* @MetaMask/core-platform @MetaMask/emerging-opportunities @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/networks +/packages/java-tron-up/typedoc.json @MetaMask/core-platform @MetaMask/emerging-opportunities @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/networks + +### json-rpc-engine +/packages/json-rpc-engine @MetaMask/core-platform +/packages/json-rpc-engine/CHANGELOG.md @MetaMask/core-platform +/packages/json-rpc-engine/package.json @MetaMask/core-platform +/packages/json-rpc-engine/tsconfig.* @MetaMask/core-platform +/packages/json-rpc-engine/typedoc.json @MetaMask/core-platform + +### json-rpc-middleware-stream +/packages/json-rpc-middleware-stream @MetaMask/core-platform +/packages/json-rpc-middleware-stream/CHANGELOG.md @MetaMask/core-platform +/packages/json-rpc-middleware-stream/package.json @MetaMask/core-platform +/packages/json-rpc-middleware-stream/tsconfig.* @MetaMask/core-platform +/packages/json-rpc-middleware-stream/typedoc.json @MetaMask/core-platform + +### keyring-controller +/packages/keyring-controller @MetaMask/accounts-engineers @MetaMask/core-platform +/packages/keyring-controller/CHANGELOG.md @MetaMask/accounts-engineers @MetaMask/core-platform +/packages/keyring-controller/package.json @MetaMask/accounts-engineers @MetaMask/core-platform +/packages/keyring-controller/tsconfig.* @MetaMask/accounts-engineers @MetaMask/core-platform +/packages/keyring-controller/typedoc.json @MetaMask/accounts-engineers @MetaMask/core-platform + +### kyc-controller +/packages/kyc-controller @MetaMask/universal-kyc +/packages/kyc-controller/CHANGELOG.md @MetaMask/core-platform @MetaMask/universal-kyc +/packages/kyc-controller/package.json @MetaMask/core-platform @MetaMask/universal-kyc +/packages/kyc-controller/tsconfig.* @MetaMask/core-platform @MetaMask/universal-kyc +/packages/kyc-controller/typedoc.json @MetaMask/core-platform @MetaMask/universal-kyc + +### local-node-utils +/packages/local-node-utils @MetaMask/emerging-opportunities @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/networks +/packages/local-node-utils/CHANGELOG.md @MetaMask/core-platform @MetaMask/emerging-opportunities @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/networks +/packages/local-node-utils/package.json @MetaMask/core-platform @MetaMask/emerging-opportunities @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/networks +/packages/local-node-utils/tsconfig.* @MetaMask/core-platform @MetaMask/emerging-opportunities @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/networks +/packages/local-node-utils/typedoc.json @MetaMask/core-platform @MetaMask/emerging-opportunities @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/networks + +### logging-controller +/packages/logging-controller @MetaMask/confirmations +/packages/logging-controller/CHANGELOG.md @MetaMask/confirmations @MetaMask/core-platform +/packages/logging-controller/package.json @MetaMask/confirmations @MetaMask/core-platform +/packages/logging-controller/tsconfig.* @MetaMask/confirmations @MetaMask/core-platform +/packages/logging-controller/typedoc.json @MetaMask/confirmations @MetaMask/core-platform + +### message-manager +/packages/message-manager @MetaMask/confirmations +/packages/message-manager/CHANGELOG.md @MetaMask/confirmations @MetaMask/core-platform +/packages/message-manager/package.json @MetaMask/confirmations @MetaMask/core-platform +/packages/message-manager/tsconfig.* @MetaMask/confirmations @MetaMask/core-platform +/packages/message-manager/typedoc.json @MetaMask/confirmations @MetaMask/core-platform + +### messenger +/packages/messenger @MetaMask/core-platform +/packages/messenger/CHANGELOG.md @MetaMask/core-platform +/packages/messenger/package.json @MetaMask/core-platform +/packages/messenger/tsconfig.* @MetaMask/core-platform +/packages/messenger/typedoc.json @MetaMask/core-platform + +### messenger-cli +/packages/messenger-cli @MetaMask/core-platform +/packages/messenger-cli/CHANGELOG.md @MetaMask/core-platform +/packages/messenger-cli/package.json @MetaMask/core-platform +/packages/messenger-cli/tsconfig.* @MetaMask/core-platform +/packages/messenger-cli/typedoc.json @MetaMask/core-platform + +### money-account-api-data-service +/packages/money-account-api-data-service @MetaMask/earn +/packages/money-account-api-data-service/CHANGELOG.md @MetaMask/core-platform @MetaMask/earn +/packages/money-account-api-data-service/package.json @MetaMask/core-platform @MetaMask/earn +/packages/money-account-api-data-service/tsconfig.* @MetaMask/core-platform @MetaMask/earn +/packages/money-account-api-data-service/typedoc.json @MetaMask/core-platform @MetaMask/earn + +### money-account-balance-service +/packages/money-account-balance-service @MetaMask/earn +/packages/money-account-balance-service/CHANGELOG.md @MetaMask/core-platform @MetaMask/earn +/packages/money-account-balance-service/package.json @MetaMask/core-platform @MetaMask/earn +/packages/money-account-balance-service/tsconfig.* @MetaMask/core-platform @MetaMask/earn +/packages/money-account-balance-service/typedoc.json @MetaMask/core-platform @MetaMask/earn + +### money-account-controller +/packages/money-account-controller @MetaMask/accounts-engineers +/packages/money-account-controller/CHANGELOG.md @MetaMask/accounts-engineers @MetaMask/core-platform +/packages/money-account-controller/package.json @MetaMask/accounts-engineers @MetaMask/core-platform +/packages/money-account-controller/tsconfig.* @MetaMask/accounts-engineers @MetaMask/core-platform +/packages/money-account-controller/typedoc.json @MetaMask/accounts-engineers @MetaMask/core-platform + +### money-account-upgrade-controller +/packages/money-account-upgrade-controller @MetaMask/delegation @MetaMask/earn +/packages/money-account-upgrade-controller/CHANGELOG.md @MetaMask/core-platform @MetaMask/delegation @MetaMask/earn +/packages/money-account-upgrade-controller/package.json @MetaMask/core-platform @MetaMask/delegation @MetaMask/earn +/packages/money-account-upgrade-controller/tsconfig.* @MetaMask/core-platform @MetaMask/delegation @MetaMask/earn +/packages/money-account-upgrade-controller/typedoc.json @MetaMask/core-platform @MetaMask/delegation @MetaMask/earn + +### money-account-utils +/packages/money-account-utils @MetaMask/earn +/packages/money-account-utils/CHANGELOG.md @MetaMask/core-platform @MetaMask/earn +/packages/money-account-utils/package.json @MetaMask/core-platform @MetaMask/earn +/packages/money-account-utils/tsconfig.* @MetaMask/core-platform @MetaMask/earn +/packages/money-account-utils/typedoc.json @MetaMask/core-platform @MetaMask/earn + +### multichain-account-service +/packages/multichain-account-service @MetaMask/accounts-engineers +/packages/multichain-account-service/CHANGELOG.md @MetaMask/accounts-engineers @MetaMask/core-platform +/packages/multichain-account-service/package.json @MetaMask/accounts-engineers @MetaMask/core-platform +/packages/multichain-account-service/tsconfig.* @MetaMask/accounts-engineers @MetaMask/core-platform +/packages/multichain-account-service/typedoc.json @MetaMask/accounts-engineers @MetaMask/core-platform + +### multichain-api-middleware +/packages/multichain-api-middleware @MetaMask/core-platform +/packages/multichain-api-middleware/CHANGELOG.md @MetaMask/core-platform +/packages/multichain-api-middleware/package.json @MetaMask/core-platform +/packages/multichain-api-middleware/tsconfig.* @MetaMask/core-platform +/packages/multichain-api-middleware/typedoc.json @MetaMask/core-platform + +### multichain-network-controller +/packages/multichain-network-controller @MetaMask/accounts-engineers @MetaMask/core-platform @MetaMask/metamask-assets +/packages/multichain-network-controller/CHANGELOG.md @MetaMask/accounts-engineers @MetaMask/core-platform @MetaMask/metamask-assets +/packages/multichain-network-controller/package.json @MetaMask/accounts-engineers @MetaMask/core-platform @MetaMask/metamask-assets +/packages/multichain-network-controller/tsconfig.* @MetaMask/accounts-engineers @MetaMask/core-platform @MetaMask/metamask-assets +/packages/multichain-network-controller/typedoc.json @MetaMask/accounts-engineers @MetaMask/core-platform @MetaMask/metamask-assets + +### multichain-transactions-controller +/packages/multichain-transactions-controller @MetaMask/accounts-engineers +/packages/multichain-transactions-controller/CHANGELOG.md @MetaMask/accounts-engineers @MetaMask/core-platform +/packages/multichain-transactions-controller/package.json @MetaMask/accounts-engineers @MetaMask/core-platform +/packages/multichain-transactions-controller/tsconfig.* @MetaMask/accounts-engineers @MetaMask/core-platform +/packages/multichain-transactions-controller/typedoc.json @MetaMask/accounts-engineers @MetaMask/core-platform + +### name-controller +/packages/name-controller @MetaMask/confirmations +/packages/name-controller/CHANGELOG.md @MetaMask/confirmations @MetaMask/core-platform +/packages/name-controller/package.json @MetaMask/confirmations @MetaMask/core-platform +/packages/name-controller/tsconfig.* @MetaMask/confirmations @MetaMask/core-platform +/packages/name-controller/typedoc.json @MetaMask/confirmations @MetaMask/core-platform + +### network-connection-banner-controller +/packages/network-connection-banner-controller @MetaMask/core-platform +/packages/network-connection-banner-controller/CHANGELOG.md @MetaMask/core-platform +/packages/network-connection-banner-controller/package.json @MetaMask/core-platform +/packages/network-connection-banner-controller/tsconfig.* @MetaMask/core-platform +/packages/network-connection-banner-controller/typedoc.json @MetaMask/core-platform + +### network-controller +/packages/network-controller @MetaMask/core-platform @MetaMask/metamask-assets +/packages/network-controller/CHANGELOG.md @MetaMask/core-platform @MetaMask/metamask-assets +/packages/network-controller/package.json @MetaMask/core-platform @MetaMask/metamask-assets +/packages/network-controller/tsconfig.* @MetaMask/core-platform @MetaMask/metamask-assets +/packages/network-controller/typedoc.json @MetaMask/core-platform @MetaMask/metamask-assets + +### network-enablement-controller +/packages/network-enablement-controller @MetaMask/metamask-assets +/packages/network-enablement-controller/CHANGELOG.md @MetaMask/core-platform @MetaMask/metamask-assets +/packages/network-enablement-controller/package.json @MetaMask/core-platform @MetaMask/metamask-assets +/packages/network-enablement-controller/tsconfig.* @MetaMask/core-platform @MetaMask/metamask-assets +/packages/network-enablement-controller/typedoc.json @MetaMask/core-platform @MetaMask/metamask-assets + +### notification-services-controller +/packages/notification-services-controller @MetaMask/engagement +/packages/notification-services-controller/CHANGELOG.md @MetaMask/core-platform @MetaMask/engagement +/packages/notification-services-controller/package.json @MetaMask/core-platform @MetaMask/engagement +/packages/notification-services-controller/tsconfig.* @MetaMask/core-platform @MetaMask/engagement +/packages/notification-services-controller/typedoc.json @MetaMask/core-platform @MetaMask/engagement + +### passkey-controller +/packages/passkey-controller @MetaMask/web3auth +/packages/passkey-controller/CHANGELOG.md @MetaMask/core-platform @MetaMask/web3auth +/packages/passkey-controller/package.json @MetaMask/core-platform @MetaMask/web3auth +/packages/passkey-controller/tsconfig.* @MetaMask/core-platform @MetaMask/web3auth +/packages/passkey-controller/typedoc.json @MetaMask/core-platform @MetaMask/web3auth + +### permission-controller +/packages/permission-controller @MetaMask/core-platform +/packages/permission-controller/CHANGELOG.md @MetaMask/core-platform +/packages/permission-controller/package.json @MetaMask/core-platform +/packages/permission-controller/tsconfig.* @MetaMask/core-platform +/packages/permission-controller/typedoc.json @MetaMask/core-platform + +### permission-log-controller +/packages/permission-log-controller @MetaMask/core-platform +/packages/permission-log-controller/CHANGELOG.md @MetaMask/core-platform +/packages/permission-log-controller/package.json @MetaMask/core-platform +/packages/permission-log-controller/tsconfig.* @MetaMask/core-platform +/packages/permission-log-controller/typedoc.json @MetaMask/core-platform + +### perps-controller +/packages/perps-controller @MetaMask/perps +/packages/perps-controller/CHANGELOG.md @MetaMask/core-platform @MetaMask/perps +/packages/perps-controller/package.json @MetaMask/core-platform @MetaMask/perps +/packages/perps-controller/tsconfig.* @MetaMask/core-platform @MetaMask/perps +/packages/perps-controller/typedoc.json @MetaMask/core-platform @MetaMask/perps + +### phishing-controller +/packages/phishing-controller @MetaMask/product-safety +/packages/phishing-controller/CHANGELOG.md @MetaMask/core-platform @MetaMask/product-safety +/packages/phishing-controller/package.json @MetaMask/core-platform @MetaMask/product-safety +/packages/phishing-controller/tsconfig.* @MetaMask/core-platform @MetaMask/product-safety +/packages/phishing-controller/typedoc.json @MetaMask/core-platform @MetaMask/product-safety + +### platform-api-docs +/packages/platform-api-docs @MetaMask/core-platform +/packages/platform-api-docs/CHANGELOG.md @MetaMask/core-platform +/packages/platform-api-docs/package.json @MetaMask/core-platform +/packages/platform-api-docs/tsconfig.* @MetaMask/core-platform +/packages/platform-api-docs/typedoc.json @MetaMask/core-platform + +### polling-controller +/packages/polling-controller @MetaMask/core-platform +/packages/polling-controller/CHANGELOG.md @MetaMask/core-platform +/packages/polling-controller/package.json @MetaMask/core-platform +/packages/polling-controller/tsconfig.* @MetaMask/core-platform +/packages/polling-controller/typedoc.json @MetaMask/core-platform + +### preferences-controller +/packages/preferences-controller @MetaMask/core-platform +/packages/preferences-controller/CHANGELOG.md @MetaMask/core-platform +/packages/preferences-controller/package.json @MetaMask/core-platform +/packages/preferences-controller/tsconfig.* @MetaMask/core-platform +/packages/preferences-controller/typedoc.json @MetaMask/core-platform + +### profile-metrics-controller +/packages/profile-metrics-controller @MetaMask/extension-platform @MetaMask/mobile-platform +/packages/profile-metrics-controller/CHANGELOG.md @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform +/packages/profile-metrics-controller/package.json @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform +/packages/profile-metrics-controller/tsconfig.* @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform +/packages/profile-metrics-controller/typedoc.json @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform + +### profile-sync-controller +/packages/profile-sync-controller @MetaMask/accounts-engineers +/packages/profile-sync-controller/CHANGELOG.md @MetaMask/accounts-engineers @MetaMask/core-platform +/packages/profile-sync-controller/package.json @MetaMask/accounts-engineers @MetaMask/core-platform +/packages/profile-sync-controller/tsconfig.* @MetaMask/accounts-engineers @MetaMask/core-platform +/packages/profile-sync-controller/typedoc.json @MetaMask/accounts-engineers @MetaMask/core-platform + +### ramps-controller +/packages/ramps-controller @MetaMask/money-movement +/packages/ramps-controller/CHANGELOG.md @MetaMask/core-platform @MetaMask/money-movement +/packages/ramps-controller/package.json @MetaMask/core-platform @MetaMask/money-movement +/packages/ramps-controller/tsconfig.* @MetaMask/core-platform @MetaMask/money-movement +/packages/ramps-controller/typedoc.json @MetaMask/core-platform @MetaMask/money-movement + +### rate-limit-controller +/packages/rate-limit-controller @MetaMask/core-platform +/packages/rate-limit-controller/CHANGELOG.md @MetaMask/core-platform +/packages/rate-limit-controller/package.json @MetaMask/core-platform +/packages/rate-limit-controller/tsconfig.* @MetaMask/core-platform +/packages/rate-limit-controller/typedoc.json @MetaMask/core-platform + +### react-data-query +/packages/react-data-query @MetaMask/core-platform +/packages/react-data-query/CHANGELOG.md @MetaMask/core-platform +/packages/react-data-query/package.json @MetaMask/core-platform +/packages/react-data-query/tsconfig.* @MetaMask/core-platform +/packages/react-data-query/typedoc.json @MetaMask/core-platform + +### remote-feature-flag-controller +/packages/remote-feature-flag-controller @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform +/packages/remote-feature-flag-controller/CHANGELOG.md @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform +/packages/remote-feature-flag-controller/package.json @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform +/packages/remote-feature-flag-controller/tsconfig.* @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform +/packages/remote-feature-flag-controller/typedoc.json @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform + +### sample-controllers +/packages/sample-controllers @MetaMask/core-platform +/packages/sample-controllers/CHANGELOG.md @MetaMask/core-platform +/packages/sample-controllers/package.json @MetaMask/core-platform +/packages/sample-controllers/tsconfig.* @MetaMask/core-platform +/packages/sample-controllers/typedoc.json @MetaMask/core-platform + +### seedless-onboarding-controller +/packages/seedless-onboarding-controller @MetaMask/web3auth +/packages/seedless-onboarding-controller/CHANGELOG.md @MetaMask/core-platform @MetaMask/web3auth +/packages/seedless-onboarding-controller/package.json @MetaMask/core-platform @MetaMask/web3auth +/packages/seedless-onboarding-controller/tsconfig.* @MetaMask/core-platform @MetaMask/web3auth +/packages/seedless-onboarding-controller/typedoc.json @MetaMask/core-platform @MetaMask/web3auth + +### selected-network-controller +/packages/selected-network-controller @MetaMask/core-platform +/packages/selected-network-controller/CHANGELOG.md @MetaMask/core-platform +/packages/selected-network-controller/package.json @MetaMask/core-platform +/packages/selected-network-controller/tsconfig.* @MetaMask/core-platform +/packages/selected-network-controller/typedoc.json @MetaMask/core-platform + +### sentinel-api-service +/packages/sentinel-api-service @MetaMask/confirmations @MetaMask/transactions +/packages/sentinel-api-service/CHANGELOG.md @MetaMask/confirmations @MetaMask/core-platform @MetaMask/transactions +/packages/sentinel-api-service/package.json @MetaMask/confirmations @MetaMask/core-platform @MetaMask/transactions +/packages/sentinel-api-service/tsconfig.* @MetaMask/confirmations @MetaMask/core-platform @MetaMask/transactions +/packages/sentinel-api-service/typedoc.json @MetaMask/confirmations @MetaMask/core-platform @MetaMask/transactions + +### shield-api-service +/packages/shield-api-service @MetaMask/web3auth +/packages/shield-api-service/CHANGELOG.md @MetaMask/core-platform @MetaMask/web3auth +/packages/shield-api-service/package.json @MetaMask/core-platform @MetaMask/web3auth +/packages/shield-api-service/tsconfig.* @MetaMask/core-platform @MetaMask/web3auth +/packages/shield-api-service/typedoc.json @MetaMask/core-platform @MetaMask/web3auth + +### shield-controller /packages/shield-controller @MetaMask/web3auth -/packages/subscription-controller @MetaMask/web3auth -/packages/claims-controller @MetaMask/web3auth +/packages/shield-controller/CHANGELOG.md @MetaMask/core-platform @MetaMask/web3auth +/packages/shield-controller/package.json @MetaMask/core-platform @MetaMask/web3auth +/packages/shield-controller/tsconfig.* @MetaMask/core-platform @MetaMask/web3auth +/packages/shield-controller/typedoc.json @MetaMask/core-platform @MetaMask/web3auth -## Universal KYC Team -/packages/kyc-controller @MetaMask/universal-kyc +### signature-controller +/packages/signature-controller @MetaMask/confirmations +/packages/signature-controller/CHANGELOG.md @MetaMask/confirmations @MetaMask/core-platform +/packages/signature-controller/package.json @MetaMask/confirmations @MetaMask/core-platform +/packages/signature-controller/tsconfig.* @MetaMask/confirmations @MetaMask/core-platform +/packages/signature-controller/typedoc.json @MetaMask/confirmations @MetaMask/core-platform -## Joint team ownership -/packages/announcement-controller @MetaMask/core-extension-ux @MetaMask/mobile-core-ux -/packages/client-utils @MetaMask/core-extension-ux @MetaMask/mobile-core-ux -/packages/eth-json-rpc-middleware/src/methods @MetaMask/confirmations @MetaMask/core-platform -/packages/eth-json-rpc-middleware/src/wallet.* @MetaMask/confirmations @MetaMask/core-platform -/packages/foundryup @MetaMask/mobile-platform @MetaMask/extension-platform -/packages/bitcoin-regtest-up @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/networks @MetaMask/emerging-opportunities -/packages/java-tron-up @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/networks @MetaMask/emerging-opportunities -/packages/local-node-utils @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/networks @MetaMask/emerging-opportunities -/packages/solana-test-validator-up @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/networks @MetaMask/emerging-opportunities -/packages/stellar-quickstart-up @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/networks @MetaMask/emerging-opportunities -/packages/keyring-controller @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/multichain-network-controller @MetaMask/core-platform @MetaMask/accounts-engineers @MetaMask/metamask-assets -/packages/network-controller @MetaMask/core-platform @MetaMask/metamask-assets -/packages/remote-feature-flag-controller @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/core-platform -/packages/sentinel-api-service @MetaMask/confirmations @MetaMask/transactions -/packages/storage-service @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/core-platform -/packages/client-controller @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform -/packages/profile-metrics-controller @MetaMask/mobile-platform @MetaMask/extension-platform - -## Initialization +### smart-transactions-controller +/packages/smart-transactions-controller @MetaMask/transactions +/packages/smart-transactions-controller/CHANGELOG.md @MetaMask/core-platform @MetaMask/transactions +/packages/smart-transactions-controller/package.json @MetaMask/core-platform @MetaMask/transactions +/packages/smart-transactions-controller/tsconfig.* @MetaMask/core-platform @MetaMask/transactions +/packages/smart-transactions-controller/typedoc.json @MetaMask/core-platform @MetaMask/transactions + +### snap-account-service +/packages/snap-account-service @MetaMask/accounts-engineers +/packages/snap-account-service/CHANGELOG.md @MetaMask/accounts-engineers @MetaMask/core-platform +/packages/snap-account-service/package.json @MetaMask/accounts-engineers @MetaMask/core-platform +/packages/snap-account-service/tsconfig.* @MetaMask/accounts-engineers @MetaMask/core-platform +/packages/snap-account-service/typedoc.json @MetaMask/accounts-engineers @MetaMask/core-platform + +### social-controllers +/packages/social-controllers @MetaMask/social-ai +/packages/social-controllers/CHANGELOG.md @MetaMask/core-platform @MetaMask/social-ai +/packages/social-controllers/package.json @MetaMask/core-platform @MetaMask/social-ai +/packages/social-controllers/tsconfig.* @MetaMask/core-platform @MetaMask/social-ai +/packages/social-controllers/typedoc.json @MetaMask/core-platform @MetaMask/social-ai + +### solana-test-validator-up +/packages/solana-test-validator-up @MetaMask/emerging-opportunities @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/networks +/packages/solana-test-validator-up/CHANGELOG.md @MetaMask/core-platform @MetaMask/emerging-opportunities @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/networks +/packages/solana-test-validator-up/package.json @MetaMask/core-platform @MetaMask/emerging-opportunities @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/networks +/packages/solana-test-validator-up/tsconfig.* @MetaMask/core-platform @MetaMask/emerging-opportunities @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/networks +/packages/solana-test-validator-up/typedoc.json @MetaMask/core-platform @MetaMask/emerging-opportunities @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/networks + +### stellar-quickstart-up +/packages/stellar-quickstart-up @MetaMask/emerging-opportunities @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/networks +/packages/stellar-quickstart-up/CHANGELOG.md @MetaMask/core-platform @MetaMask/emerging-opportunities @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/networks +/packages/stellar-quickstart-up/package.json @MetaMask/core-platform @MetaMask/emerging-opportunities @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/networks +/packages/stellar-quickstart-up/tsconfig.* @MetaMask/core-platform @MetaMask/emerging-opportunities @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/networks +/packages/stellar-quickstart-up/typedoc.json @MetaMask/core-platform @MetaMask/emerging-opportunities @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/networks + +### storage-service +/packages/storage-service @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform +/packages/storage-service/CHANGELOG.md @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform +/packages/storage-service/package.json @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform +/packages/storage-service/tsconfig.* @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform +/packages/storage-service/typedoc.json @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform + +### subscription-controller +/packages/subscription-controller @MetaMask/web3auth +/packages/subscription-controller/CHANGELOG.md @MetaMask/core-platform @MetaMask/web3auth +/packages/subscription-controller/package.json @MetaMask/core-platform @MetaMask/web3auth +/packages/subscription-controller/tsconfig.* @MetaMask/core-platform @MetaMask/web3auth +/packages/subscription-controller/typedoc.json @MetaMask/core-platform @MetaMask/web3auth + +### subscription-service +/packages/subscription-service @MetaMask/web3auth +/packages/subscription-service/CHANGELOG.md @MetaMask/core-platform @MetaMask/web3auth +/packages/subscription-service/package.json @MetaMask/core-platform @MetaMask/web3auth +/packages/subscription-service/tsconfig.* @MetaMask/core-platform @MetaMask/web3auth +/packages/subscription-service/typedoc.json @MetaMask/core-platform @MetaMask/web3auth + +### transaction-controller +/packages/transaction-controller @MetaMask/confirmations +/packages/transaction-controller/CHANGELOG.md @MetaMask/confirmations @MetaMask/core-platform +/packages/transaction-controller/package.json @MetaMask/confirmations @MetaMask/core-platform +/packages/transaction-controller/tsconfig.* @MetaMask/confirmations @MetaMask/core-platform +/packages/transaction-controller/typedoc.json @MetaMask/confirmations @MetaMask/core-platform + +### transaction-pay-controller +/packages/transaction-pay-controller @MetaMask/confirmations +/packages/transaction-pay-controller/CHANGELOG.md @MetaMask/confirmations @MetaMask/core-platform +/packages/transaction-pay-controller/package.json @MetaMask/confirmations @MetaMask/core-platform +/packages/transaction-pay-controller/tsconfig.* @MetaMask/confirmations @MetaMask/core-platform +/packages/transaction-pay-controller/typedoc.json @MetaMask/confirmations @MetaMask/core-platform + +### user-operation-controller +/packages/user-operation-controller @MetaMask/confirmations +/packages/user-operation-controller/CHANGELOG.md @MetaMask/confirmations @MetaMask/core-platform +/packages/user-operation-controller/package.json @MetaMask/confirmations @MetaMask/core-platform +/packages/user-operation-controller/tsconfig.* @MetaMask/confirmations @MetaMask/core-platform +/packages/user-operation-controller/typedoc.json @MetaMask/confirmations @MetaMask/core-platform + +### utils +/packages/utils @MetaMask/core-platform +/packages/utils/CHANGELOG.md @MetaMask/core-platform +/packages/utils/package.json @MetaMask/core-platform +/packages/utils/tsconfig.* @MetaMask/core-platform +/packages/utils/typedoc.json @MetaMask/core-platform + +### wallet +/packages/wallet @MetaMask/core-platform /packages/wallet/src/initialization/instances/accounts-controller/ @MetaMask/accounts-engineers /packages/wallet/src/initialization/instances/address-book-controller/ @MetaMask/confirmations /packages/wallet/src/initialization/instances/approval-controller/ @MetaMask/confirmations @@ -163,273 +715,36 @@ /packages/wallet/src/initialization/instances/gas-fee-controller/ @MetaMask/confirmations /packages/wallet/src/initialization/instances/keyring-controller/ @MetaMask/accounts-engineers @MetaMask/core-platform /packages/wallet/src/initialization/instances/passkey-controller/ @MetaMask/web3auth -/packages/wallet/src/initialization/instances/remote-feature-flag-controller/ @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/core-platform +/packages/wallet/src/initialization/instances/remote-feature-flag-controller/ @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform /packages/wallet/src/initialization/instances/seedless-onboarding-controller/ @MetaMask/web3auth /packages/wallet/src/initialization/instances/shield-api-service/ @MetaMask/web3auth /packages/wallet/src/initialization/instances/shield-controller/ @MetaMask/web3auth -/packages/wallet/src/initialization/instances/storage-service/ @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/core-platform +/packages/wallet/src/initialization/instances/storage-service/ @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform /packages/wallet/src/initialization/instances/subscription-controller/ @MetaMask/web3auth /packages/wallet/src/initialization/instances/subscription-service/ @MetaMask/web3auth /packages/wallet/src/initialization/instances/transaction-controller/ @MetaMask/confirmations +/packages/wallet/CHANGELOG.md @MetaMask/core-platform +/packages/wallet/package.json @MetaMask/core-platform +/packages/wallet/tsconfig.* @MetaMask/core-platform +/packages/wallet/typedoc.json @MetaMask/core-platform + +### wallet-cli +/packages/wallet-cli @MetaMask/core-platform +/packages/wallet-cli/CHANGELOG.md @MetaMask/core-platform +/packages/wallet-cli/package.json @MetaMask/core-platform +/packages/wallet-cli/tsconfig.* @MetaMask/core-platform +/packages/wallet-cli/typedoc.json @MetaMask/core-platform -## Package Release related -/packages/account-tree-controller/package.json @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/account-tree-controller/CHANGELOG.md @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/account-tree-controller/tsconfig.* @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/account-tree-controller/typedoc.json @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/accounts-controller/package.json @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/accounts-controller/CHANGELOG.md @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/accounts-controller/tsconfig.* @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/accounts-controller/typedoc.json @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/analytics-controller/package.json @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/core-platform -/packages/analytics-controller/CHANGELOG.md @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/core-platform -/packages/analytics-controller/tsconfig.* @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/core-platform -/packages/analytics-controller/typedoc.json @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/core-platform -/packages/analytics-data-regulation-controller/package.json @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/core-platform -/packages/analytics-data-regulation-controller/CHANGELOG.md @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/core-platform -/packages/analytics-data-regulation-controller/tsconfig.* @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/core-platform -/packages/analytics-data-regulation-controller/typedoc.json @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/core-platform -/packages/address-book-controller/package.json @MetaMask/confirmations @MetaMask/core-platform -/packages/address-book-controller/CHANGELOG.md @MetaMask/confirmations @MetaMask/core-platform -/packages/address-book-controller/tsconfig.* @MetaMask/confirmations @MetaMask/core-platform -/packages/address-book-controller/typedoc.json @MetaMask/confirmations @MetaMask/core-platform -/packages/announcement-controller/package.json @MetaMask/core-extension-ux @MetaMask/mobile-core-ux @MetaMask/core-platform -/packages/announcement-controller/CHANGELOG.md @MetaMask/core-extension-ux @MetaMask/mobile-core-ux @MetaMask/core-platform -/packages/announcement-controller/tsconfig.* @MetaMask/core-extension-ux @MetaMask/mobile-core-ux @MetaMask/core-platform -/packages/announcement-controller/typedoc.json @MetaMask/core-extension-ux @MetaMask/mobile-core-ux @MetaMask/core-platform -/packages/client-utils/package.json @MetaMask/core-extension-ux @MetaMask/mobile-core-ux @MetaMask/core-platform -/packages/client-utils/CHANGELOG.md @MetaMask/core-extension-ux @MetaMask/mobile-core-ux @MetaMask/core-platform -/packages/client-utils/tsconfig.* @MetaMask/core-extension-ux @MetaMask/mobile-core-ux @MetaMask/core-platform -/packages/client-utils/typedoc.json @MetaMask/core-extension-ux @MetaMask/mobile-core-ux @MetaMask/core-platform -/packages/approval-controller/package.json @MetaMask/confirmations @MetaMask/core-platform -/packages/approval-controller/CHANGELOG.md @MetaMask/confirmations @MetaMask/core-platform -/packages/approval-controller/tsconfig.* @MetaMask/confirmations @MetaMask/core-platform -/packages/approval-controller/typedoc.json @MetaMask/confirmations @MetaMask/core-platform -/packages/assets-controllers/package.json @MetaMask/metamask-assets @MetaMask/core-platform -/packages/assets-controllers/CHANGELOG.md @MetaMask/metamask-assets @MetaMask/core-platform -/packages/assets-controllers/tsconfig.* @MetaMask/metamask-assets @MetaMask/core-platform -/packages/assets-controllers/typedoc.json @MetaMask/metamask-assets @MetaMask/core-platform -/packages/assets-controller/package.json @MetaMask/metamask-assets @MetaMask/core-platform -/packages/assets-controller/CHANGELOG.md @MetaMask/metamask-assets @MetaMask/core-platform -/packages/assets-controller/tsconfig.* @MetaMask/metamask-assets @MetaMask/core-platform -/packages/assets-controller/typedoc.json @MetaMask/metamask-assets @MetaMask/core-platform -/packages/config-registry-controller/package.json @MetaMask/networks @MetaMask/emerging-opportunities @MetaMask/core-platform -/packages/config-registry-controller/CHANGELOG.md @MetaMask/networks @MetaMask/emerging-opportunities @MetaMask/core-platform -/packages/config-registry-controller/tsconfig.* @MetaMask/networks @MetaMask/emerging-opportunities @MetaMask/core-platform -/packages/config-registry-controller/typedoc.json @MetaMask/networks @MetaMask/emerging-opportunities @MetaMask/core-platform -/packages/delegation-controller/package.json @MetaMask/delegation @MetaMask/core-platform -/packages/delegation-controller/CHANGELOG.md @MetaMask/delegation @MetaMask/core-platform -/packages/delegation-controller/tsconfig.* @MetaMask/delegation @MetaMask/core-platform -/packages/delegation-controller/typedoc.json @MetaMask/delegation @MetaMask/core-platform -/packages/earn-controller/package.json @MetaMask/earn @MetaMask/core-platform -/packages/earn-controller/CHANGELOG.md @MetaMask/earn @MetaMask/core-platform -/packages/earn-controller/tsconfig.* @MetaMask/earn @MetaMask/core-platform -/packages/earn-controller/typedoc.json @MetaMask/earn @MetaMask/core-platform -/packages/money-account-balance-service/package.json @MetaMask/earn @MetaMask/core-platform -/packages/money-account-balance-service/CHANGELOG.md @MetaMask/earn @MetaMask/core-platform -/packages/money-account-balance-service/tsconfig.* @MetaMask/earn @MetaMask/core-platform -/packages/money-account-balance-service/typedoc.json @MetaMask/earn @MetaMask/core-platform -/packages/money-account-api-data-service/package.json @MetaMask/earn @MetaMask/core-platform -/packages/money-account-api-data-service/CHANGELOG.md @MetaMask/earn @MetaMask/core-platform -/packages/money-account-api-data-service/tsconfig.* @MetaMask/earn @MetaMask/core-platform -/packages/money-account-api-data-service/typedoc.json @MetaMask/earn @MetaMask/core-platform -/packages/gas-fee-controller/package.json @MetaMask/confirmations @MetaMask/core-platform -/packages/gas-fee-controller/CHANGELOG.md @MetaMask/confirmations @MetaMask/core-platform -/packages/gas-fee-controller/tsconfig.* @MetaMask/confirmations @MetaMask/core-platform -/packages/gas-fee-controller/typedoc.json @MetaMask/confirmations @MetaMask/core-platform -/packages/gator-permissions-controller/package.json @MetaMask/delegation @MetaMask/core-platform -/packages/gator-permissions-controller/CHANGELOG.md @MetaMask/delegation @MetaMask/core-platform -/packages/gator-permissions-controller/tsconfig.* @MetaMask/delegation @MetaMask/core-platform -/packages/gator-permissions-controller/typedoc.json @MetaMask/delegation @MetaMask/core-platform -/packages/geolocation-controller/package.json @MetaMask/mobile-platform @MetaMask/core-platform -/packages/geolocation-controller/CHANGELOG.md @MetaMask/mobile-platform @MetaMask/core-platform -/packages/geolocation-controller/tsconfig.* @MetaMask/mobile-platform @MetaMask/core-platform -/packages/geolocation-controller/typedoc.json @MetaMask/mobile-platform @MetaMask/core-platform -/packages/keyring-controller/package.json @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/keyring-controller/CHANGELOG.md @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/keyring-controller/tsconfig.* @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/keyring-controller/typedoc.json @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/passkey-controller/package.json @MetaMask/web3auth @MetaMask/core-platform -/packages/passkey-controller/CHANGELOG.md @MetaMask/web3auth @MetaMask/core-platform -/packages/passkey-controller/tsconfig.* @MetaMask/web3auth @MetaMask/core-platform -/packages/passkey-controller/typedoc.json @MetaMask/web3auth @MetaMask/core-platform -/packages/logging-controller/package.json @MetaMask/confirmations @MetaMask/core-platform -/packages/logging-controller/CHANGELOG.md @MetaMask/confirmations @MetaMask/core-platform -/packages/logging-controller/tsconfig.* @MetaMask/confirmations @MetaMask/core-platform -/packages/logging-controller/typedoc.json @MetaMask/confirmations @MetaMask/core-platform -/packages/message-manager/package.json @MetaMask/confirmations @MetaMask/core-platform -/packages/message-manager/CHANGELOG.md @MetaMask/confirmations @MetaMask/core-platform -/packages/message-manager/tsconfig.* @MetaMask/confirmations @MetaMask/core-platform -/packages/message-manager/typedoc.json @MetaMask/confirmations @MetaMask/core-platform -/packages/multichain-account-service/package.json @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/multichain-account-service/CHANGELOG.md @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/multichain-account-service/tsconfig.* @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/multichain-account-service/typedoc.json @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/name-controller/package.json @MetaMask/confirmations @MetaMask/core-platform -/packages/name-controller/CHANGELOG.md @MetaMask/confirmations @MetaMask/core-platform -/packages/name-controller/tsconfig.* @MetaMask/confirmations @MetaMask/core-platform -/packages/name-controller/typedoc.json @MetaMask/confirmations @MetaMask/core-platform -/packages/notification-services-controller/package.json @MetaMask/engagement @MetaMask/core-platform -/packages/notification-services-controller/CHANGELOG.md @MetaMask/engagement @MetaMask/core-platform -/packages/notification-services-controller/tsconfig.* @MetaMask/engagement @MetaMask/core-platform -/packages/notification-services-controller/typedoc.json @MetaMask/engagement @MetaMask/core-platform -/packages/compliance-controller/package.json @MetaMask/perps @MetaMask/core-platform -/packages/compliance-controller/CHANGELOG.md @MetaMask/perps @MetaMask/core-platform -/packages/compliance-controller/tsconfig.* @MetaMask/perps @MetaMask/core-platform -/packages/compliance-controller/typedoc.json @MetaMask/perps @MetaMask/core-platform -/packages/perps-controller/package.json @MetaMask/perps @MetaMask/core-platform -/packages/perps-controller/CHANGELOG.md @MetaMask/perps @MetaMask/core-platform -/packages/perps-controller/tsconfig.* @MetaMask/perps @MetaMask/core-platform -/packages/perps-controller/typedoc.json @MetaMask/perps @MetaMask/core-platform -/packages/phishing-controller/package.json @MetaMask/product-safety @MetaMask/core-platform -/packages/phishing-controller/CHANGELOG.md @MetaMask/product-safety @MetaMask/core-platform -/packages/phishing-controller/tsconfig.* @MetaMask/product-safety @MetaMask/core-platform -/packages/phishing-controller/typedoc.json @MetaMask/product-safety @MetaMask/core-platform -/packages/ramps-controller/package.json @MetaMask/money-movement @MetaMask/core-platform -/packages/ramps-controller/CHANGELOG.md @MetaMask/money-movement @MetaMask/core-platform -/packages/ramps-controller/tsconfig.* @MetaMask/money-movement @MetaMask/core-platform -/packages/ramps-controller/typedoc.json @MetaMask/money-movement @MetaMask/core-platform -/packages/authenticated-user-storage/package.json @MetaMask/auth-engineers @MetaMask/core-platform -/packages/authenticated-user-storage/CHANGELOG.md @MetaMask/auth-engineers @MetaMask/core-platform -/packages/authenticated-user-storage/tsconfig.* @MetaMask/auth-engineers @MetaMask/core-platform -/packages/authenticated-user-storage/typedoc.json @MetaMask/auth-engineers @MetaMask/core-platform -/packages/profile-metrics-controller/package.json @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/core-platform -/packages/profile-metrics-controller/CHANGELOG.md @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/core-platform -/packages/profile-metrics-controller/tsconfig.* @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/core-platform -/packages/profile-metrics-controller/typedoc.json @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/core-platform -/packages/profile-sync-controller/package.json @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/profile-sync-controller/CHANGELOG.md @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/profile-sync-controller/tsconfig.* @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/profile-sync-controller/typedoc.json @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/signature-controller/package.json @MetaMask/confirmations @MetaMask/core-platform -/packages/signature-controller/CHANGELOG.md @MetaMask/confirmations @MetaMask/core-platform -/packages/signature-controller/tsconfig.* @MetaMask/confirmations @MetaMask/core-platform -/packages/signature-controller/typedoc.json @MetaMask/confirmations @MetaMask/core-platform -/packages/smart-transactions-controller/package.json @MetaMask/transactions @MetaMask/core-platform -/packages/smart-transactions-controller/CHANGELOG.md @MetaMask/transactions @MetaMask/core-platform -/packages/smart-transactions-controller/tsconfig.* @MetaMask/transactions @MetaMask/core-platform -/packages/smart-transactions-controller/typedoc.json @MetaMask/transactions @MetaMask/core-platform -/packages/sentinel-api-service/package.json @MetaMask/confirmations @MetaMask/transactions @MetaMask/core-platform -/packages/sentinel-api-service/CHANGELOG.md @MetaMask/confirmations @MetaMask/transactions @MetaMask/core-platform -/packages/sentinel-api-service/tsconfig.* @MetaMask/confirmations @MetaMask/transactions @MetaMask/core-platform -/packages/sentinel-api-service/typedoc.json @MetaMask/confirmations @MetaMask/transactions @MetaMask/core-platform -/packages/transaction-controller/package.json @MetaMask/confirmations @MetaMask/core-platform -/packages/transaction-controller/CHANGELOG.md @MetaMask/confirmations @MetaMask/core-platform -/packages/transaction-controller/tsconfig.* @MetaMask/confirmations @MetaMask/core-platform -/packages/transaction-controller/typedoc.json @MetaMask/confirmations @MetaMask/core-platform -/packages/transaction-pay-controller/package.json @MetaMask/confirmations @MetaMask/core-platform -/packages/transaction-pay-controller/CHANGELOG.md @MetaMask/confirmations @MetaMask/core-platform -/packages/transaction-pay-controller/tsconfig.* @MetaMask/confirmations @MetaMask/core-platform -/packages/transaction-pay-controller/typedoc.json @MetaMask/confirmations @MetaMask/core-platform -/packages/user-operation-controller/package.json @MetaMask/confirmations @MetaMask/core-platform -/packages/user-operation-controller/CHANGELOG.md @MetaMask/confirmations @MetaMask/core-platform -/packages/user-operation-controller/tsconfig.* @MetaMask/confirmations @MetaMask/core-platform -/packages/user-operation-controller/typedoc.json @MetaMask/confirmations @MetaMask/core-platform -/packages/multichain-transactions-controller/package.json @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/multichain-transactions-controller/CHANGELOG.md @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/multichain-transactions-controller/tsconfig.* @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/multichain-transactions-controller/typedoc.json @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/bridge-controller/package.json @MetaMask/swaps-engineers @MetaMask/core-platform -/packages/bridge-controller/CHANGELOG.md @MetaMask/swaps-engineers @MetaMask/core-platform -/packages/bridge-controller/tsconfig.* @MetaMask/swaps-engineers @MetaMask/core-platform -/packages/bridge-controller/typedoc.json @MetaMask/swaps-engineers @MetaMask/core-platform -/packages/remote-feature-flag-controller/package.json @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/core-platform -/packages/remote-feature-flag-controller/CHANGELOG.md @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/core-platform -/packages/remote-feature-flag-controller/tsconfig.* @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/core-platform -/packages/remote-feature-flag-controller/typedoc.json @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/core-platform -/packages/storage-service/package.json @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/core-platform -/packages/storage-service/CHANGELOG.md @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/core-platform -/packages/storage-service/tsconfig.* @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/core-platform -/packages/storage-service/typedoc.json @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/core-platform -/packages/bridge-status-controller/package.json @MetaMask/swaps-engineers @MetaMask/core-platform -/packages/bridge-status-controller/CHANGELOG.md @MetaMask/swaps-engineers @MetaMask/core-platform -/packages/bridge-status-controller/tsconfig.* @MetaMask/swaps-engineers @MetaMask/core-platform -/packages/bridge-status-controller/typedoc.json @MetaMask/swaps-engineers @MetaMask/core-platform -/packages/app-metadata-controller/package.json @MetaMask/mobile-platform @MetaMask/core-platform -/packages/app-metadata-controller/CHANGELOG.md @MetaMask/mobile-platform @MetaMask/core-platform -/packages/app-metadata-controller/tsconfig.* @MetaMask/mobile-platform @MetaMask/core-platform -/packages/app-metadata-controller/typedoc.json @MetaMask/mobile-platform @MetaMask/core-platform -/packages/foundryup/package.json @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/core-platform -/packages/foundryup/CHANGELOG.md @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/core-platform -/packages/foundryup/tsconfig.* @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/core-platform -/packages/foundryup/typedoc.json @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/core-platform -/packages/bitcoin-regtest-up/package.json @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/networks @MetaMask/emerging-opportunities @MetaMask/core-platform -/packages/bitcoin-regtest-up/CHANGELOG.md @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/networks @MetaMask/emerging-opportunities @MetaMask/core-platform -/packages/bitcoin-regtest-up/tsconfig.* @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/networks @MetaMask/emerging-opportunities @MetaMask/core-platform -/packages/bitcoin-regtest-up/typedoc.json @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/networks @MetaMask/emerging-opportunities @MetaMask/core-platform -/packages/java-tron-up/package.json @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/networks @MetaMask/emerging-opportunities @MetaMask/core-platform -/packages/java-tron-up/CHANGELOG.md @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/networks @MetaMask/emerging-opportunities @MetaMask/core-platform -/packages/java-tron-up/tsconfig.* @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/networks @MetaMask/emerging-opportunities @MetaMask/core-platform -/packages/java-tron-up/typedoc.json @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/networks @MetaMask/emerging-opportunities @MetaMask/core-platform -/packages/local-node-utils/package.json @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/networks @MetaMask/emerging-opportunities @MetaMask/core-platform -/packages/local-node-utils/CHANGELOG.md @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/networks @MetaMask/emerging-opportunities @MetaMask/core-platform -/packages/local-node-utils/tsconfig.* @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/networks @MetaMask/emerging-opportunities @MetaMask/core-platform -/packages/local-node-utils/typedoc.json @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/networks @MetaMask/emerging-opportunities @MetaMask/core-platform -/packages/solana-test-validator-up/package.json @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/networks @MetaMask/emerging-opportunities @MetaMask/core-platform -/packages/solana-test-validator-up/CHANGELOG.md @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/networks @MetaMask/emerging-opportunities @MetaMask/core-platform -/packages/solana-test-validator-up/tsconfig.* @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/networks @MetaMask/emerging-opportunities @MetaMask/core-platform -/packages/solana-test-validator-up/typedoc.json @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/networks @MetaMask/emerging-opportunities @MetaMask/core-platform -/packages/stellar-quickstart-up/package.json @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/networks @MetaMask/emerging-opportunities @MetaMask/core-platform -/packages/stellar-quickstart-up/CHANGELOG.md @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/networks @MetaMask/emerging-opportunities @MetaMask/core-platform -/packages/stellar-quickstart-up/tsconfig.* @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/networks @MetaMask/emerging-opportunities @MetaMask/core-platform -/packages/stellar-quickstart-up/typedoc.json @MetaMask/mobile-platform @MetaMask/extension-platform @MetaMask/networks @MetaMask/emerging-opportunities @MetaMask/core-platform -/packages/seedless-onboarding-controller/package.json @MetaMask/web3auth @MetaMask/core-platform -/packages/seedless-onboarding-controller/CHANGELOG.md @MetaMask/web3auth @MetaMask/core-platform -/packages/seedless-onboarding-controller/tsconfig.* @MetaMask/web3auth @MetaMask/core-platform -/packages/seedless-onboarding-controller/typedoc.json @MetaMask/web3auth @MetaMask/core-platform -/packages/shield-controller/package.json @MetaMask/web3auth @MetaMask/core-platform -/packages/shield-controller/CHANGELOG.md @MetaMask/web3auth @MetaMask/core-platform -/packages/shield-controller/tsconfig.* @MetaMask/web3auth @MetaMask/core-platform -/packages/shield-controller/typedoc.json @MetaMask/web3auth @MetaMask/core-platform -/packages/network-enablement-controller/package.json @MetaMask/metamask-assets @MetaMask/core-platform -/packages/network-enablement-controller/CHANGELOG.md @MetaMask/metamask-assets @MetaMask/core-platform -/packages/network-enablement-controller/tsconfig.* @MetaMask/metamask-assets @MetaMask/core-platform -/packages/network-enablement-controller/typedoc.json @MetaMask/metamask-assets @MetaMask/core-platform -/packages/subscription-controller/package.json @MetaMask/web3auth @MetaMask/core-platform -/packages/subscription-controller/CHANGELOG.md @MetaMask/web3auth @MetaMask/core-platform -/packages/subscription-controller/tsconfig.* @MetaMask/web3auth @MetaMask/core-platform -/packages/subscription-controller/typedoc.json @MetaMask/web3auth @MetaMask/core-platform -/packages/core-backend/package.json @MetaMask/metamask-assets @MetaMask/core-platform -/packages/core-backend/CHANGELOG.md @MetaMask/metamask-assets @MetaMask/core-platform -/packages/core-backend/tsconfig.* @MetaMask/metamask-assets @MetaMask/core-platform -/packages/core-backend/typedoc.json @MetaMask/metamask-assets @MetaMask/core-platform -/packages/claims-controller/package.json @MetaMask/web3auth @MetaMask/core-platform -/packages/claims-controller/CHANGELOG.md @MetaMask/web3auth @MetaMask/core-platform -/packages/claims-controller/tsconfig.* @MetaMask/web3auth @MetaMask/core-platform -/packages/claims-controller/typedoc.json @MetaMask/web3auth @MetaMask/core-platform -/packages/ai-controllers/package.json @MetaMask/social-ai @MetaMask/core-platform -/packages/ai-controllers/CHANGELOG.md @MetaMask/social-ai @MetaMask/core-platform -/packages/ai-controllers/tsconfig.* @MetaMask/social-ai @MetaMask/core-platform -/packages/ai-controllers/typedoc.json @MetaMask/social-ai @MetaMask/core-platform -/packages/client-controller/package.json @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform -/packages/client-controller/CHANGELOG.md @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform -/packages/client-controller/tsconfig.* @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform -/packages/client-controller/typedoc.json @MetaMask/core-platform @MetaMask/extension-platform @MetaMask/mobile-platform -/packages/social-controllers/package.json @MetaMask/social-ai @MetaMask/core-platform -/packages/social-controllers/CHANGELOG.md @MetaMask/social-ai @MetaMask/core-platform -/packages/social-controllers/tsconfig.* @MetaMask/social-ai @MetaMask/core-platform -/packages/social-controllers/typedoc.json @MetaMask/social-ai @MetaMask/core-platform -/packages/money-account-controller/package.json @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/money-account-controller/CHANGELOG.md @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/money-account-controller/tsconfig.* @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/money-account-controller/typedoc.json @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/chomp-api-service/package.json @MetaMask/earn @MetaMask/delegation @MetaMask/core-platform -/packages/chomp-api-service/CHANGELOG.md @MetaMask/earn @MetaMask/delegation @MetaMask/core-platform -/packages/chomp-api-service/tsconfig.* @MetaMask/earn @MetaMask/delegation @MetaMask/core-platform -/packages/chomp-api-service/typedoc.json @MetaMask/earn @MetaMask/delegation @MetaMask/core-platform -/packages/money-account-upgrade-controller/package.json @MetaMask/earn @MetaMask/delegation @MetaMask/core-platform -/packages/money-account-upgrade-controller/CHANGELOG.md @MetaMask/earn @MetaMask/delegation @MetaMask/core-platform -/packages/money-account-upgrade-controller/tsconfig.* @MetaMask/earn @MetaMask/delegation @MetaMask/core-platform -/packages/money-account-upgrade-controller/typedoc.json @MetaMask/earn @MetaMask/delegation @MetaMask/core-platform -/packages/money-account-utils/package.json @MetaMask/earn @MetaMask/core-platform -/packages/money-account-utils/CHANGELOG.md @MetaMask/earn @MetaMask/core-platform -/packages/money-account-utils/tsconfig.* @MetaMask/earn @MetaMask/core-platform -/packages/money-account-utils/typedoc.json @MetaMask/earn @MetaMask/core-platform -/packages/snap-account-service/package.json @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/snap-account-service/CHANGELOG.md @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/snap-account-service/tsconfig.* @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/snap-account-service/typedoc.json @MetaMask/accounts-engineers @MetaMask/core-platform -/packages/kyc-controller/package.json @MetaMask/universal-kyc @MetaMask/core-platform -/packages/kyc-controller/CHANGELOG.md @MetaMask/universal-kyc @MetaMask/core-platform -/packages/kyc-controller/tsconfig.* @MetaMask/universal-kyc @MetaMask/core-platform -/packages/kyc-controller/typedoc.json @MetaMask/universal-kyc @MetaMask/core-platform \ No newline at end of file +### wallet-framework-docs +/packages/wallet-framework-docs @MetaMask/core-platform +/packages/wallet-framework-docs/CHANGELOG.md @MetaMask/core-platform +/packages/wallet-framework-docs/package.json @MetaMask/core-platform +/packages/wallet-framework-docs/tsconfig.* @MetaMask/core-platform +/packages/wallet-framework-docs/typedoc.json @MetaMask/core-platform + +# Overrides +# --------- + +/.github/ @MetaMask/core-platform +/packages/eth-json-rpc-middleware/src/methods @MetaMask/confirmations @MetaMask/core-platform +/packages/eth-json-rpc-middleware/src/wallet.* @MetaMask/confirmations @MetaMask/core-platform \ No newline at end of file diff --git a/codeowners.ts b/codeowners.ts index 830e72abd91..bfcb7ecc30d 100644 --- a/codeowners.ts +++ b/codeowners.ts @@ -1,763 +1,393 @@ -import type { - CodeownersRule, - CodeownersSection, -} from './scripts/manage-codeowners/types.js'; +// This file defines the mapping between GitHub teams and the packages they +// codeown within this repo (and defines other, custom codeowner rules). +// +// Please keep the teams referenced in this file synchronized with the +// `teams.json` file in the repository root. That file is used for some +// automated workflows. -/** - * Metadata about a package in the monorepo, used to generate CODEOWNERS - * rules for it. - */ -type PackageInfo = { - /** - * The GitHub team(s) that own this package's top-level directory. - */ - teams: string[]; +import type { CodeownersConfig } from './scripts/manage-codeowners/types.js'; - /** - * The package's directory name under - * `/packages/wallet/src/initialization/instances`, used to generate its rule - * in the "Initialization" section. Omit this if the package has not been - * added to the Wallet Library yet. - */ - initializationPath?: string; -}; - -/** - * Metadata about each package in the monorepo that has a CODEOWNERS entry, - * keyed by its directory name under `/packages`. This is the single source - * of truth for which team(s) own a package, and is used to populate the - * sections in `codeownersSections` below. - */ -const PACKAGES: Record = { - 'account-tree-controller': { - teams: ['@MetaMask/accounts-engineers'], - }, - 'accounts-controller': { - teams: ['@MetaMask/accounts-engineers'], - initializationPath: 'accounts-controller', - }, - 'address-book-controller': { - teams: ['@MetaMask/confirmations'], - initializationPath: 'address-book-controller', - }, - 'ai-controllers': { - teams: ['@MetaMask/social-ai'], - }, - 'analytics-controller': { - teams: ['@MetaMask/mobile-platform', '@MetaMask/extension-platform'], - }, - 'analytics-data-regulation-controller': { - teams: ['@MetaMask/mobile-platform', '@MetaMask/extension-platform'], - }, - 'announcement-controller': { - teams: ['@MetaMask/core-extension-ux', '@MetaMask/mobile-core-ux'], - }, - 'app-metadata-controller': { - teams: ['@MetaMask/mobile-platform'], - }, - 'approval-controller': { - teams: ['@MetaMask/confirmations'], - initializationPath: 'approval-controller', - }, - 'assets-controller': { - teams: ['@MetaMask/metamask-assets'], - }, - 'assets-controllers': { - teams: ['@MetaMask/metamask-assets'], - }, - 'authenticated-user-storage': { - teams: ['@MetaMask/auth-engineers'], - }, - 'base-controller': { - teams: ['@MetaMask/core-platform'], - }, - 'base-data-service': { - teams: ['@MetaMask/core-platform'], - }, - 'bitcoin-regtest-up': { - teams: [ - '@MetaMask/mobile-platform', - '@MetaMask/extension-platform', - '@MetaMask/networks', - '@MetaMask/emerging-opportunities', - ], - }, - 'bridge-controller': { - teams: ['@MetaMask/swaps-engineers'], - }, - 'bridge-status-controller': { - teams: ['@MetaMask/swaps-engineers'], - }, - 'build-utils': { - teams: ['@MetaMask/core-platform'], - }, - 'chain-agnostic-permission': { - teams: ['@MetaMask/core-platform'], - }, - 'chomp-api-service': { - teams: ['@MetaMask/earn', '@MetaMask/delegation'], - }, - 'claims-controller': { - teams: ['@MetaMask/web3auth'], - initializationPath: 'claims-controller', - }, - 'claims-service': { - teams: ['@MetaMask/web3auth'], - initializationPath: 'claims-service', - }, - 'client-controller': { - teams: [ - '@MetaMask/core-platform', - '@MetaMask/extension-platform', - '@MetaMask/mobile-platform', - ], - }, - 'client-utils': { - teams: ['@MetaMask/core-extension-ux', '@MetaMask/mobile-core-ux'], - }, - 'compliance-controller': { - teams: ['@MetaMask/perps'], - }, - 'composable-controller': { - teams: ['@MetaMask/core-platform'], - }, - 'config-registry-controller': { - teams: ['@MetaMask/networks', '@MetaMask/emerging-opportunities'], - }, - 'connectivity-controller': { - teams: ['@MetaMask/core-platform'], - initializationPath: 'connectivity-controller', - }, - 'controller-utils': { - teams: ['@MetaMask/core-platform'], - }, - 'core-backend': { - teams: ['@MetaMask/metamask-assets'], - }, - cryptography: { - teams: ['@MetaMask/core-platform'], - }, - 'delegation-controller': { - teams: ['@MetaMask/delegation'], - }, - 'earn-controller': { - teams: ['@MetaMask/earn'], - }, - 'eip-5792-middleware': { - teams: ['@MetaMask/core-platform'], - }, - 'eip-7702-internal-rpc-middleware': { - teams: ['@MetaMask/delegation', '@MetaMask/core-platform'], - }, - 'eip1193-permission-middleware': { - teams: ['@MetaMask/core-platform'], - }, - 'eth-block-tracker': { - teams: ['@MetaMask/core-platform'], - }, - 'eth-json-rpc-middleware': { - teams: ['@MetaMask/core-platform'], - }, - 'eth-json-rpc-provider': { - teams: ['@MetaMask/core-platform'], - }, - foundryup: { - teams: ['@MetaMask/mobile-platform', '@MetaMask/extension-platform'], - }, - 'gas-fee-controller': { - teams: ['@MetaMask/confirmations'], - initializationPath: 'gas-fee-controller', - }, - 'gator-permissions-controller': { - teams: ['@MetaMask/delegation'], - }, - 'geolocation-controller': { - teams: ['@MetaMask/mobile-platform'], - }, - 'java-tron-up': { - teams: [ - '@MetaMask/mobile-platform', - '@MetaMask/extension-platform', - '@MetaMask/networks', - '@MetaMask/emerging-opportunities', - ], - }, - 'json-rpc-engine': { - teams: ['@MetaMask/core-platform'], - }, - 'json-rpc-middleware-stream': { - teams: ['@MetaMask/core-platform'], - }, - 'keyring-controller': { - teams: ['@MetaMask/accounts-engineers', '@MetaMask/core-platform'], - initializationPath: 'keyring-controller', - }, - 'kyc-controller': { - teams: ['@MetaMask/universal-kyc'], - }, - 'local-node-utils': { - teams: [ - '@MetaMask/mobile-platform', - '@MetaMask/extension-platform', - '@MetaMask/networks', - '@MetaMask/emerging-opportunities', - ], - }, - 'logging-controller': { - teams: ['@MetaMask/confirmations'], - }, - 'message-manager': { - teams: ['@MetaMask/confirmations'], - }, - messenger: { - teams: ['@MetaMask/core-platform'], - }, - 'messenger-cli': { - teams: ['@MetaMask/core-platform'], - }, - 'money-account-api-data-service': { - teams: ['@MetaMask/earn'], - }, - 'money-account-balance-service': { - teams: ['@MetaMask/earn'], - }, - 'money-account-controller': { - teams: ['@MetaMask/accounts-engineers'], - }, - 'money-account-upgrade-controller': { - teams: ['@MetaMask/earn', '@MetaMask/delegation'], - }, - 'money-account-utils': { - teams: ['@MetaMask/earn'], - }, - 'multichain-account-service': { - teams: ['@MetaMask/accounts-engineers'], - }, - 'multichain-api-middleware': { - teams: ['@MetaMask/core-platform'], - }, - 'multichain-network-controller': { - teams: [ - '@MetaMask/core-platform', - '@MetaMask/accounts-engineers', - '@MetaMask/metamask-assets', - ], - }, - 'multichain-transactions-controller': { - teams: ['@MetaMask/accounts-engineers'], - }, - 'name-controller': { - teams: ['@MetaMask/confirmations'], - }, - 'network-connection-banner-controller': { - teams: ['@MetaMask/core-platform'], - }, - 'network-controller': { - teams: ['@MetaMask/core-platform', '@MetaMask/metamask-assets'], - }, - 'network-enablement-controller': { - teams: ['@MetaMask/metamask-assets'], - }, - 'notification-services-controller': { - teams: ['@MetaMask/engagement'], - }, - 'passkey-controller': { - teams: ['@MetaMask/web3auth'], - initializationPath: 'passkey-controller', - }, - 'permission-controller': { - teams: ['@MetaMask/core-platform'], - }, - 'permission-log-controller': { - teams: ['@MetaMask/core-platform'], - }, - 'perps-controller': { - teams: ['@MetaMask/perps'], - }, - 'phishing-controller': { - teams: ['@MetaMask/product-safety'], - }, - 'platform-api-docs': { - teams: ['@MetaMask/core-platform'], - }, - 'polling-controller': { - teams: ['@MetaMask/core-platform'], - }, - 'preferences-controller': { - teams: ['@MetaMask/core-platform'], - }, - 'profile-metrics-controller': { - teams: ['@MetaMask/mobile-platform', '@MetaMask/extension-platform'], - }, - 'profile-sync-controller': { - teams: ['@MetaMask/accounts-engineers'], - }, - 'ramps-controller': { - teams: ['@MetaMask/money-movement'], - }, - 'rate-limit-controller': { - teams: ['@MetaMask/core-platform'], - }, - 'react-data-query': { - teams: ['@MetaMask/core-platform'], - }, - 'remote-feature-flag-controller': { - teams: [ - '@MetaMask/extension-platform', - '@MetaMask/mobile-platform', - '@MetaMask/core-platform', - ], - initializationPath: 'remote-feature-flag-controller', - }, - 'sample-controllers': { - teams: ['@MetaMask/core-platform'], - }, - 'seedless-onboarding-controller': { - teams: ['@MetaMask/web3auth'], - initializationPath: 'seedless-onboarding-controller', - }, - 'selected-network-controller': { - teams: ['@MetaMask/core-platform'], - }, - 'sentinel-api-service': { - teams: ['@MetaMask/confirmations', '@MetaMask/transactions'], - }, - 'shield-api-service': { - teams: ['@MetaMask/web3auth'], - initializationPath: 'shield-api-service', - }, - 'shield-controller': { - teams: ['@MetaMask/web3auth'], - initializationPath: 'shield-controller', - }, - 'signature-controller': { - teams: ['@MetaMask/confirmations'], - }, - 'smart-transactions-controller': { - teams: ['@MetaMask/transactions'], - }, - 'snap-account-service': { - teams: ['@MetaMask/accounts-engineers'], - }, - 'social-controllers': { - teams: ['@MetaMask/social-ai'], - }, - 'solana-test-validator-up': { - teams: [ - '@MetaMask/mobile-platform', - '@MetaMask/extension-platform', - '@MetaMask/networks', - '@MetaMask/emerging-opportunities', - ], - }, - 'stellar-quickstart-up': { - teams: [ - '@MetaMask/mobile-platform', - '@MetaMask/extension-platform', - '@MetaMask/networks', - '@MetaMask/emerging-opportunities', - ], - }, - 'storage-service': { - teams: [ - '@MetaMask/extension-platform', - '@MetaMask/mobile-platform', - '@MetaMask/core-platform', - ], - initializationPath: 'storage-service', - }, - 'subscription-controller': { - teams: ['@MetaMask/web3auth'], - initializationPath: 'subscription-controller', - }, - 'subscription-service': { - teams: ['@MetaMask/web3auth'], - initializationPath: 'subscription-service', - }, - 'transaction-controller': { - teams: ['@MetaMask/confirmations'], - initializationPath: 'transaction-controller', - }, - 'transaction-pay-controller': { - teams: ['@MetaMask/confirmations'], - }, - 'user-operation-controller': { - teams: ['@MetaMask/confirmations'], - }, - utils: { - teams: ['@MetaMask/core-platform'], - }, - wallet: { - teams: ['@MetaMask/core-platform'], - }, - 'wallet-cli': { - teams: ['@MetaMask/core-platform'], - }, - 'wallet-framework-docs': { - teams: ['@MetaMask/core-platform'], - }, -}; - -/** - * The CODEOWNERS sections, in the order they should appear in the generated - * `.github/CODEOWNERS` file. - */ -const codeownersSections: CodeownersSection[] = [ - buildFirstSection(), - ...buildTeamSections(), - buildJointTeamOwnershipSection(), - buildInitializationSection(), - buildPackageReleaseSection(), -]; - -/** - * Builds the section at the top of CODEOWNERS that is reserved for files that - * should always be owned by Core Platform. - * - * @returns The first section. - */ -function buildFirstSection(): CodeownersSection { - return { - rules: [{ pattern: '/.github/', owners: ['@MetaMask/core-platform'] }], - }; -} - -/** - * Build sections within CODEOWNERS that define teams and the packages they own. - * - * @returns The team sections. - */ -function buildTeamSections(): CodeownersSection[] { - return [ - { - title: 'Accounts Team', - rules: [ - buildRuleForPackage('accounts-controller'), - buildRuleForPackage('multichain-transactions-controller'), - buildRuleForPackage('multichain-account-service'), - buildRuleForPackage('account-tree-controller'), - buildRuleForPackage('profile-sync-controller'), - buildRuleForPackage('money-account-controller'), - buildRuleForPackage('snap-account-service'), - ], +const config = { + packages: { + 'account-tree-controller': { + teams: ['@MetaMask/accounts-engineers'], }, - { - title: 'Auth Team', - rules: [buildRuleForPackage('authenticated-user-storage')], + 'accounts-controller': { + teams: ['@MetaMask/accounts-engineers'], + initializationPath: 'accounts-controller', }, - { - title: 'Assets Team', - rules: [ - buildRuleForPackage('assets-controllers'), - buildRuleForPackage('network-enablement-controller'), - buildRuleForPackage('assets-controller'), - buildRuleForPackage('core-backend'), + 'address-book-controller': { + teams: ['@MetaMask/confirmations'], + initializationPath: 'address-book-controller', + }, + 'ai-controllers': { + teams: ['@MetaMask/social-ai'], + }, + 'analytics-controller': { + teams: ['@MetaMask/mobile-platform', '@MetaMask/extension-platform'], + }, + 'analytics-data-regulation-controller': { + teams: ['@MetaMask/mobile-platform', '@MetaMask/extension-platform'], + }, + 'announcement-controller': { + teams: ['@MetaMask/core-extension-ux', '@MetaMask/mobile-core-ux'], + }, + 'app-metadata-controller': { + teams: ['@MetaMask/mobile-platform'], + }, + 'approval-controller': { + teams: ['@MetaMask/confirmations'], + initializationPath: 'approval-controller', + }, + 'assets-controller': { + teams: ['@MetaMask/metamask-assets'], + }, + 'assets-controllers': { + teams: ['@MetaMask/metamask-assets'], + }, + 'authenticated-user-storage': { + teams: ['@MetaMask/auth-engineers'], + }, + 'base-controller': { + teams: ['@MetaMask/core-platform'], + }, + 'base-data-service': { + teams: ['@MetaMask/core-platform'], + }, + 'bitcoin-regtest-up': { + teams: [ + '@MetaMask/mobile-platform', + '@MetaMask/extension-platform', + '@MetaMask/networks', + '@MetaMask/emerging-opportunities', ], }, - { - title: 'Confirmations Team', - rules: [ - buildRuleForPackage('address-book-controller'), - buildRuleForPackage('approval-controller'), - buildRuleForPackage('gas-fee-controller'), - buildRuleForPackage('logging-controller'), - buildRuleForPackage('message-manager'), - buildRuleForPackage('name-controller'), - buildRuleForPackage('signature-controller'), - buildRuleForPackage('transaction-controller'), - buildRuleForPackage('transaction-pay-controller'), - buildRuleForPackage('user-operation-controller'), + 'bridge-controller': { + teams: ['@MetaMask/swaps-engineers'], + }, + 'bridge-status-controller': { + teams: ['@MetaMask/swaps-engineers'], + }, + 'build-utils': { + teams: ['@MetaMask/core-platform'], + }, + 'chain-agnostic-permission': { + teams: ['@MetaMask/core-platform'], + }, + 'chomp-api-service': { + teams: ['@MetaMask/earn', '@MetaMask/delegation'], + }, + 'claims-controller': { + teams: ['@MetaMask/web3auth'], + initializationPath: 'claims-controller', + }, + 'claims-service': { + teams: ['@MetaMask/web3auth'], + initializationPath: 'claims-service', + }, + 'client-controller': { + teams: [ + '@MetaMask/core-platform', + '@MetaMask/extension-platform', + '@MetaMask/mobile-platform', ], }, - { - title: 'Transactions Team', - rules: [buildRuleForPackage('smart-transactions-controller')], + 'client-utils': { + teams: ['@MetaMask/core-extension-ux', '@MetaMask/mobile-core-ux'], }, - { - title: 'Delegation Team', - rules: [ - buildRuleForPackage('delegation-controller'), - buildRuleForPackage('gator-permissions-controller'), - buildRuleForPackage('eip-7702-internal-rpc-middleware'), + 'compliance-controller': { + teams: ['@MetaMask/perps'], + }, + 'composable-controller': { + teams: ['@MetaMask/core-platform'], + }, + 'config-registry-controller': { + teams: ['@MetaMask/networks', '@MetaMask/emerging-opportunities'], + }, + 'connectivity-controller': { + teams: ['@MetaMask/core-platform'], + initializationPath: 'connectivity-controller', + }, + 'controller-utils': { + teams: ['@MetaMask/core-platform'], + }, + 'core-backend': { + teams: ['@MetaMask/metamask-assets'], + }, + cryptography: { + teams: ['@MetaMask/core-platform'], + }, + 'delegation-controller': { + teams: ['@MetaMask/delegation'], + }, + 'earn-controller': { + teams: ['@MetaMask/earn'], + }, + 'eip-5792-middleware': { + teams: ['@MetaMask/core-platform'], + }, + 'eip-7702-internal-rpc-middleware': { + teams: ['@MetaMask/delegation', '@MetaMask/core-platform'], + }, + 'eip1193-permission-middleware': { + teams: ['@MetaMask/core-platform'], + }, + 'eth-block-tracker': { + teams: ['@MetaMask/core-platform'], + }, + 'eth-json-rpc-middleware': { + teams: ['@MetaMask/core-platform'], + }, + 'eth-json-rpc-provider': { + teams: ['@MetaMask/core-platform'], + }, + foundryup: { + teams: ['@MetaMask/mobile-platform', '@MetaMask/extension-platform'], + }, + 'gas-fee-controller': { + teams: ['@MetaMask/confirmations'], + initializationPath: 'gas-fee-controller', + }, + 'gator-permissions-controller': { + teams: ['@MetaMask/delegation'], + }, + 'geolocation-controller': { + teams: ['@MetaMask/mobile-platform'], + }, + 'java-tron-up': { + teams: [ + '@MetaMask/mobile-platform', + '@MetaMask/extension-platform', + '@MetaMask/networks', + '@MetaMask/emerging-opportunities', ], }, - { - title: 'Earn Team', - rules: [ - buildRuleForPackage('earn-controller'), - buildRuleForPackage('money-account-balance-service'), - buildRuleForPackage('money-account-api-data-service'), - buildRuleForPackage('chomp-api-service'), - buildRuleForPackage('money-account-upgrade-controller'), - buildRuleForPackage('money-account-utils'), + 'json-rpc-engine': { + teams: ['@MetaMask/core-platform'], + }, + 'json-rpc-middleware-stream': { + teams: ['@MetaMask/core-platform'], + }, + 'keyring-controller': { + teams: ['@MetaMask/accounts-engineers', '@MetaMask/core-platform'], + initializationPath: 'keyring-controller', + }, + 'kyc-controller': { + teams: ['@MetaMask/universal-kyc'], + }, + 'local-node-utils': { + teams: [ + '@MetaMask/mobile-platform', + '@MetaMask/extension-platform', + '@MetaMask/networks', + '@MetaMask/emerging-opportunities', ], }, - { - title: 'Social AI Team', - rules: [ - buildRuleForPackage('ai-controllers'), - buildRuleForPackage('social-controllers'), + 'logging-controller': { + teams: ['@MetaMask/confirmations'], + }, + 'message-manager': { + teams: ['@MetaMask/confirmations'], + }, + messenger: { + teams: ['@MetaMask/core-platform'], + }, + 'messenger-cli': { + teams: ['@MetaMask/core-platform'], + }, + 'money-account-api-data-service': { + teams: ['@MetaMask/earn'], + }, + 'money-account-balance-service': { + teams: ['@MetaMask/earn'], + }, + 'money-account-controller': { + teams: ['@MetaMask/accounts-engineers'], + }, + 'money-account-upgrade-controller': { + teams: ['@MetaMask/earn', '@MetaMask/delegation'], + }, + 'money-account-utils': { + teams: ['@MetaMask/earn'], + }, + 'multichain-account-service': { + teams: ['@MetaMask/accounts-engineers'], + }, + 'multichain-api-middleware': { + teams: ['@MetaMask/core-platform'], + }, + 'multichain-network-controller': { + teams: [ + '@MetaMask/core-platform', + '@MetaMask/accounts-engineers', + '@MetaMask/metamask-assets', ], }, - { - title: 'Money Movement Team', - rules: [buildRuleForPackage('ramps-controller')], + 'multichain-transactions-controller': { + teams: ['@MetaMask/accounts-engineers'], }, - { - title: 'Networks Team', - rules: [buildRuleForPackage('config-registry-controller')], + 'name-controller': { + teams: ['@MetaMask/confirmations'], }, - { - title: 'Engagement Team', - rules: [buildRuleForPackage('notification-services-controller')], + 'network-connection-banner-controller': { + teams: ['@MetaMask/core-platform'], }, - { - title: 'Perps Team', - rules: [ - buildRuleForPackage('compliance-controller'), - buildRuleForPackage('perps-controller'), + 'network-controller': { + teams: ['@MetaMask/core-platform', '@MetaMask/metamask-assets'], + }, + 'network-enablement-controller': { + teams: ['@MetaMask/metamask-assets'], + }, + 'notification-services-controller': { + teams: ['@MetaMask/engagement'], + }, + 'passkey-controller': { + teams: ['@MetaMask/web3auth'], + initializationPath: 'passkey-controller', + }, + 'permission-controller': { + teams: ['@MetaMask/core-platform'], + }, + 'permission-log-controller': { + teams: ['@MetaMask/core-platform'], + }, + 'perps-controller': { + teams: ['@MetaMask/perps'], + }, + 'phishing-controller': { + teams: ['@MetaMask/product-safety'], + }, + 'platform-api-docs': { + teams: ['@MetaMask/core-platform'], + }, + 'polling-controller': { + teams: ['@MetaMask/core-platform'], + }, + 'preferences-controller': { + teams: ['@MetaMask/core-platform'], + }, + 'profile-metrics-controller': { + teams: ['@MetaMask/mobile-platform', '@MetaMask/extension-platform'], + }, + 'profile-sync-controller': { + teams: ['@MetaMask/accounts-engineers'], + }, + 'ramps-controller': { + teams: ['@MetaMask/money-movement'], + }, + 'rate-limit-controller': { + teams: ['@MetaMask/core-platform'], + }, + 'react-data-query': { + teams: ['@MetaMask/core-platform'], + }, + 'remote-feature-flag-controller': { + teams: [ + '@MetaMask/extension-platform', + '@MetaMask/mobile-platform', + '@MetaMask/core-platform', ], + initializationPath: 'remote-feature-flag-controller', }, - { - title: 'Product Safety Team', - rules: [buildRuleForPackage('phishing-controller')], + 'sample-controllers': { + teams: ['@MetaMask/core-platform'], }, - { - title: 'Universal KYC Team', - rules: [buildRuleForPackage('kyc-controller')], + 'seedless-onboarding-controller': { + teams: ['@MetaMask/web3auth'], + initializationPath: 'seedless-onboarding-controller', }, - { - title: 'Swaps-Bridge Team', - rules: [ - buildRuleForPackage('bridge-controller'), - buildRuleForPackage('bridge-status-controller'), + 'selected-network-controller': { + teams: ['@MetaMask/core-platform'], + }, + 'sentinel-api-service': { + teams: ['@MetaMask/confirmations', '@MetaMask/transactions'], + }, + 'shield-api-service': { + teams: ['@MetaMask/web3auth'], + initializationPath: 'shield-api-service', + }, + 'shield-controller': { + teams: ['@MetaMask/web3auth'], + initializationPath: 'shield-controller', + }, + 'signature-controller': { + teams: ['@MetaMask/confirmations'], + }, + 'smart-transactions-controller': { + teams: ['@MetaMask/transactions'], + }, + 'snap-account-service': { + teams: ['@MetaMask/accounts-engineers'], + }, + 'social-controllers': { + teams: ['@MetaMask/social-ai'], + }, + 'solana-test-validator-up': { + teams: [ + '@MetaMask/mobile-platform', + '@MetaMask/extension-platform', + '@MetaMask/networks', + '@MetaMask/emerging-opportunities', ], }, - { - title: 'Mobile Platform Team', - rules: [ - buildRuleForPackage('app-metadata-controller'), - buildRuleForPackage('analytics-controller'), - buildRuleForPackage('analytics-data-regulation-controller'), - buildRuleForPackage('geolocation-controller'), + 'stellar-quickstart-up': { + teams: [ + '@MetaMask/mobile-platform', + '@MetaMask/extension-platform', + '@MetaMask/networks', + '@MetaMask/emerging-opportunities', ], }, - { - title: 'Core Platform Team', - rules: [ - buildRuleForPackage('base-controller'), - buildRuleForPackage('base-data-service'), - buildRuleForPackage('build-utils'), - buildRuleForPackage('chain-agnostic-permission'), - buildRuleForPackage('composable-controller'), - buildRuleForPackage('connectivity-controller'), - buildRuleForPackage('controller-utils'), - buildRuleForPackage('cryptography'), - buildRuleForPackage('eip-5792-middleware'), - buildRuleForPackage('eip1193-permission-middleware'), - buildRuleForPackage('eth-block-tracker'), - buildRuleForPackage('eth-json-rpc-middleware'), - buildRuleForPackage('eth-json-rpc-provider'), - buildRuleForPackage('json-rpc-engine'), - buildRuleForPackage('json-rpc-middleware-stream'), - buildRuleForPackage('messenger'), - buildRuleForPackage('messenger-cli'), - buildRuleForPackage('multichain-api-middleware'), - buildRuleForPackage('network-connection-banner-controller'), - buildRuleForPackage('permission-controller'), - buildRuleForPackage('permission-log-controller'), - buildRuleForPackage('platform-api-docs'), - buildRuleForPackage('polling-controller'), - buildRuleForPackage('preferences-controller'), - buildRuleForPackage('rate-limit-controller'), - buildRuleForPackage('react-data-query'), - buildRuleForPackage('sample-controllers'), - buildRuleForPackage('selected-network-controller'), - buildRuleForPackage('utils'), - buildRuleForPackage('wallet'), - buildRuleForPackage('wallet-cli'), - buildRuleForPackage('wallet-framework-docs'), + 'storage-service': { + teams: [ + '@MetaMask/extension-platform', + '@MetaMask/mobile-platform', + '@MetaMask/core-platform', ], + initializationPath: 'storage-service', + }, + 'subscription-controller': { + teams: ['@MetaMask/web3auth'], + initializationPath: 'subscription-controller', + }, + 'subscription-service': { + teams: ['@MetaMask/web3auth'], + initializationPath: 'subscription-service', + }, + 'transaction-controller': { + teams: ['@MetaMask/confirmations'], + initializationPath: 'transaction-controller', }, + 'transaction-pay-controller': { + teams: ['@MetaMask/confirmations'], + }, + 'user-operation-controller': { + teams: ['@MetaMask/confirmations'], + }, + utils: { + teams: ['@MetaMask/core-platform'], + }, + wallet: { + teams: ['@MetaMask/core-platform'], + }, + 'wallet-cli': { + teams: ['@MetaMask/core-platform'], + }, + 'wallet-framework-docs': { + teams: ['@MetaMask/core-platform'], + }, + }, + overrides: [ + { pattern: '/.github/', owners: ['@MetaMask/core-platform'] }, { - title: 'Web3Auth Team', - rules: [ - buildRuleForPackage('seedless-onboarding-controller'), - buildRuleForPackage('passkey-controller'), - buildRuleForPackage('shield-controller'), - buildRuleForPackage('subscription-controller'), - buildRuleForPackage('claims-controller'), - ], + pattern: '/packages/eth-json-rpc-middleware/src/methods', + owners: ['@MetaMask/confirmations', '@MetaMask/core-platform'], }, { - title: 'Universal KYC Team', - rules: [buildRuleForPackage('kyc-controller')], + pattern: '/packages/eth-json-rpc-middleware/src/wallet.*', + owners: ['@MetaMask/confirmations', '@MetaMask/core-platform'], }, - ]; -} - -/** - * Builds the section that defines packages owned by multiple teams. - * - * @returns The "Joint team ownership" section. - */ -function buildJointTeamOwnershipSection(): CodeownersSection { - return { - title: 'Joint team ownership', - rules: [ - buildRuleForPackage('announcement-controller'), - buildRuleForPackage('client-utils'), - { - pattern: '/packages/eth-json-rpc-middleware/src/methods', - owners: ['@MetaMask/confirmations', '@MetaMask/core-platform'], - }, - { - pattern: '/packages/eth-json-rpc-middleware/src/wallet.*', - owners: ['@MetaMask/confirmations', '@MetaMask/core-platform'], - }, - buildRuleForPackage('foundryup'), - buildRuleForPackage('bitcoin-regtest-up'), - buildRuleForPackage('java-tron-up'), - buildRuleForPackage('local-node-utils'), - buildRuleForPackage('solana-test-validator-up'), - buildRuleForPackage('stellar-quickstart-up'), - buildRuleForPackage('keyring-controller'), - buildRuleForPackage('multichain-network-controller'), - buildRuleForPackage('network-controller'), - buildRuleForPackage('remote-feature-flag-controller'), - buildRuleForPackage('sentinel-api-service'), - buildRuleForPackage('storage-service'), - buildRuleForPackage('client-controller'), - buildRuleForPackage('profile-metrics-controller'), - ], - }; -} - -/** - * Builds the section that maps initialization code for packages in `@metamask/wallet` to the - * teams that own those packages. - * - * @returns The "Initialization" section. - */ -function buildInitializationSection(): CodeownersSection { - return { - title: 'Initialization', - rules: Object.keys(PACKAGES) - .filter((name) => PACKAGES[name].initializationPath !== undefined) - .sort() - .map((name) => { - const { teams, initializationPath } = PACKAGES[name]; - return { - pattern: `/packages/wallet/src/initialization/instances/${initializationPath}/`, - owners: teams, - }; - }), - }; -} - -/** - * Builds the "Package Release related" section from all packages in `PACKAGES`. - * The Core Platform team is added to each rule's owners (if not already - * present), since that team co-owns the release process for every package. - * - * @returns The "Package Release related" CODEOWNERS section. - */ -function buildPackageReleaseSection(): CodeownersSection { - // These packages are currently not alphabetized. - const packageNames = [ - 'account-tree-controller', - 'accounts-controller', - 'analytics-controller', - 'analytics-data-regulation-controller', - 'address-book-controller', - 'announcement-controller', - 'client-utils', - 'approval-controller', - 'assets-controllers', - 'assets-controller', - 'config-registry-controller', - 'delegation-controller', - 'earn-controller', - 'money-account-balance-service', - 'money-account-api-data-service', - 'gas-fee-controller', - 'gator-permissions-controller', - 'geolocation-controller', - 'keyring-controller', - 'passkey-controller', - 'logging-controller', - 'message-manager', - 'multichain-account-service', - 'name-controller', - 'notification-services-controller', - 'compliance-controller', - 'perps-controller', - 'phishing-controller', - 'ramps-controller', - 'authenticated-user-storage', - 'profile-metrics-controller', - 'profile-sync-controller', - 'signature-controller', - 'smart-transactions-controller', - 'sentinel-api-service', - 'transaction-controller', - 'transaction-pay-controller', - 'user-operation-controller', - 'multichain-transactions-controller', - 'bridge-controller', - 'remote-feature-flag-controller', - 'storage-service', - 'bridge-status-controller', - 'app-metadata-controller', - 'foundryup', - 'bitcoin-regtest-up', - 'java-tron-up', - 'local-node-utils', - 'solana-test-validator-up', - 'stellar-quickstart-up', - 'seedless-onboarding-controller', - 'shield-controller', - 'network-enablement-controller', - 'subscription-controller', - 'core-backend', - 'claims-controller', - 'ai-controllers', - 'client-controller', - 'social-controllers', - 'money-account-controller', - 'chomp-api-service', - 'money-account-upgrade-controller', - 'money-account-utils', - 'snap-account-service', - 'kyc-controller', - ] as const satisfies (keyof typeof PACKAGES)[]; - - return { - title: 'Package Release related', - rules: packageNames.flatMap((name) => { - const { teams } = PACKAGES[name]; - const workspacePath = `/packages/${name}`; - const owners = teams.includes('@MetaMask/core-platform') - ? teams - : [...teams, '@MetaMask/core-platform']; - return [ - { pattern: `${workspacePath}/package.json`, owners }, - { pattern: `${workspacePath}/CHANGELOG.md`, owners }, - { pattern: `${workspacePath}/tsconfig.*`, owners }, - { pattern: `${workspacePath}/typedoc.json`, owners }, - ]; - }), - }; -} - -/** - * Builds the rule that maps a package's directory to the team(s) that own it. - * - * @param name - The package's directory name under `/packages`. - * @returns The rule for the package. - */ -function buildRuleForPackage(name: keyof typeof PACKAGES): CodeownersRule { - return { pattern: `/packages/${name}`, owners: PACKAGES[name].teams }; -} + ], +} satisfies CodeownersConfig; -export default codeownersSections; +export default config; diff --git a/scripts/manage-codeowners/assemble.test.ts b/scripts/manage-codeowners/assemble.test.ts new file mode 100644 index 00000000000..cd4ec697d29 --- /dev/null +++ b/scripts/manage-codeowners/assemble.test.ts @@ -0,0 +1,259 @@ +import { assembleCodeownersSections } from './assemble.js'; +import type { CodeownersConfig } from './types.js'; + +describe('assembleCodeownersSections', () => { + it('groups all package rules in one alphabetized Packages section', () => { + const config: CodeownersConfig = { + packages: { + zebra: { teams: ['@MetaMask/z-team'] }, + alpha: { + teams: ['@MetaMask/b-team', '@MetaMask/a-team'], + initializationPath: 'alpha', + }, + }, + overrides: [], + }; + + const sections = assembleCodeownersSections(config); + + expect(sections).toStrictEqual([ + { + title: 'Packages', + rules: [], + subsections: [ + { + title: 'alpha', + rules: [ + { + pattern: '/packages/alpha', + owners: ['@MetaMask/a-team', '@MetaMask/b-team'], + }, + { + pattern: '/packages/alpha/CHANGELOG.md', + owners: [ + '@MetaMask/a-team', + '@MetaMask/b-team', + '@MetaMask/core-platform', + ], + }, + { + pattern: '/packages/alpha/package.json', + owners: [ + '@MetaMask/a-team', + '@MetaMask/b-team', + '@MetaMask/core-platform', + ], + }, + { + pattern: '/packages/alpha/tsconfig.*', + owners: [ + '@MetaMask/a-team', + '@MetaMask/b-team', + '@MetaMask/core-platform', + ], + }, + { + pattern: '/packages/alpha/typedoc.json', + owners: [ + '@MetaMask/a-team', + '@MetaMask/b-team', + '@MetaMask/core-platform', + ], + }, + ], + }, + { + title: 'zebra', + rules: [ + { + pattern: '/packages/zebra', + owners: ['@MetaMask/z-team'], + }, + { + pattern: '/packages/zebra/CHANGELOG.md', + owners: ['@MetaMask/core-platform', '@MetaMask/z-team'], + }, + { + pattern: '/packages/zebra/package.json', + owners: ['@MetaMask/core-platform', '@MetaMask/z-team'], + }, + { + pattern: '/packages/zebra/tsconfig.*', + owners: ['@MetaMask/core-platform', '@MetaMask/z-team'], + }, + { + pattern: '/packages/zebra/typedoc.json', + owners: ['@MetaMask/core-platform', '@MetaMask/z-team'], + }, + ], + }, + ], + }, + { + title: 'Overrides', + rules: [], + }, + ]); + }); + + it('does not list the Core Platform team twice when it already owns a package', () => { + const config: CodeownersConfig = { + packages: { + 'platform-package': { teams: ['@MetaMask/core-platform'] }, + }, + overrides: [], + }; + + const sections = assembleCodeownersSections(config); + + expect(sections[0]?.subsections?.[0]).toStrictEqual({ + title: 'platform-package', + rules: [ + { + pattern: '/packages/platform-package', + owners: ['@MetaMask/core-platform'], + }, + { + pattern: '/packages/platform-package/CHANGELOG.md', + owners: ['@MetaMask/core-platform'], + }, + { + pattern: '/packages/platform-package/package.json', + owners: ['@MetaMask/core-platform'], + }, + { + pattern: '/packages/platform-package/tsconfig.*', + owners: ['@MetaMask/core-platform'], + }, + { + pattern: '/packages/platform-package/typedoc.json', + owners: ['@MetaMask/core-platform'], + }, + ], + }); + }); + + it('appends overrides after Packages', () => { + const config: CodeownersConfig = { + packages: {}, + overrides: [ + { + pattern: '/packages/zebra/specific', + owners: ['@MetaMask/team'], + }, + ], + }; + + const sections = assembleCodeownersSections(config); + + expect(sections).toStrictEqual([ + { title: 'Packages', rules: [], subsections: [] }, + { title: 'Overrides', rules: config.overrides }, + ]); + }); + + it('emits initialization rules in the wallet package section', () => { + const config: CodeownersConfig = { + packages: { + 'accounts-controller': { + teams: ['@MetaMask/accounts-engineers'], + initializationPath: 'accounts-controller', + }, + wallet: { teams: ['@MetaMask/core-platform'] }, + }, + overrides: [ + { + pattern: '/packages/eth-json-rpc-middleware/src/methods', + owners: ['@MetaMask/confirmations', '@MetaMask/core-platform'], + }, + ], + }; + + const sections = assembleCodeownersSections(config); + + expect(sections).toStrictEqual([ + { + title: 'Packages', + rules: [], + subsections: [ + { + title: 'accounts-controller', + rules: [ + { + pattern: '/packages/accounts-controller', + owners: ['@MetaMask/accounts-engineers'], + }, + { + pattern: '/packages/accounts-controller/CHANGELOG.md', + owners: [ + '@MetaMask/accounts-engineers', + '@MetaMask/core-platform', + ], + }, + { + pattern: '/packages/accounts-controller/package.json', + owners: [ + '@MetaMask/accounts-engineers', + '@MetaMask/core-platform', + ], + }, + { + pattern: '/packages/accounts-controller/tsconfig.*', + owners: [ + '@MetaMask/accounts-engineers', + '@MetaMask/core-platform', + ], + }, + { + pattern: '/packages/accounts-controller/typedoc.json', + owners: [ + '@MetaMask/accounts-engineers', + '@MetaMask/core-platform', + ], + }, + ], + }, + { + title: 'wallet', + rules: [ + { + pattern: '/packages/wallet', + owners: ['@MetaMask/core-platform'], + }, + { + pattern: + '/packages/wallet/src/initialization/instances/accounts-controller/', + owners: ['@MetaMask/accounts-engineers'], + }, + { + pattern: '/packages/wallet/CHANGELOG.md', + owners: ['@MetaMask/core-platform'], + }, + { + pattern: '/packages/wallet/package.json', + owners: ['@MetaMask/core-platform'], + }, + { + pattern: '/packages/wallet/tsconfig.*', + owners: ['@MetaMask/core-platform'], + }, + { + pattern: '/packages/wallet/typedoc.json', + owners: ['@MetaMask/core-platform'], + }, + ], + }, + ], + }, + { + title: 'Overrides', + rules: [ + { + pattern: '/packages/eth-json-rpc-middleware/src/methods', + owners: ['@MetaMask/confirmations', '@MetaMask/core-platform'], + }, + ], + }, + ]); + }); +}); diff --git a/scripts/manage-codeowners/assemble.ts b/scripts/manage-codeowners/assemble.ts new file mode 100644 index 00000000000..d73bd5ed6db --- /dev/null +++ b/scripts/manage-codeowners/assemble.ts @@ -0,0 +1,125 @@ +import type { + CodeownersConfig, + CodeownersRule, + CodeownersSection, + PackageInfo, +} from './types.js'; + +const CORE_PLATFORM_TEAM = '@MetaMask/core-platform'; + +/** + * Assembles the sections from the codeowners configuration file that will be + * used to (re-)generate CODEOWNERS. + * + * @param config - The configuration specified in `codeowners.ts`. + * @returns The assembled sections. + */ +export function assembleCodeownersSections( + config: CodeownersConfig, +): CodeownersSection[] { + return [ + buildPackagesSection(config.packages), + { + title: 'Overrides', + rules: config.overrides, + }, + ]; +} + +/** + * Builds the Packages section with one nested section for each package, sorted + * by package name. + * + * @param packages - Package ownership metadata, as defined in the codeowners + * configuration file. + * @returns The Packages section. + */ +function buildPackagesSection( + packages: Record, +): CodeownersSection { + const initializationRules = buildInitializationRules(packages); + + return { + title: 'Packages', + rules: [], + subsections: Object.entries(packages) + .sort(([firstPackageName], [secondPackageName]) => + firstPackageName.localeCompare(secondPackageName), + ) + .map(([packageName, packageInfo]) => ({ + title: packageName, + rules: buildPackageRules(packageName, packageInfo, initializationRules), + })), + }; +} + +/** + * Builds all CODEOWNERS rules associated with one package. As specified in the + * codeowners configuration file, one or more teams will own the whole directory + * for the package, and, optionally, certain initialization files in the Wallet + * Library. The README, changelog, manifest, and certain configuration files + * will be co-owned by the Core Platform team. + * + * @param packageDirectoryName - The directory in `packages/` where the package + * is located. + * @param packageInfo - The package ownership metadata, as defined in the + * codeowners configuration file. + * @param initializationRules - Rules for Wallet package initialization code. + * @returns The package's rules. + */ +function buildPackageRules( + packageDirectoryName: string, + packageInfo: PackageInfo, + initializationRules: CodeownersRule[], +): CodeownersRule[] { + const owners = [...packageInfo.teams].sort(); + + const rules: CodeownersRule[] = [ + { pattern: `/packages/${packageDirectoryName}`, owners }, + ]; + + if (packageDirectoryName === 'wallet') { + rules.push(...initializationRules); + } + + const releaseOwners = [ + ...new Set([...packageInfo.teams, CORE_PLATFORM_TEAM]), + ].sort(); + const workspacePath = `/packages/${packageDirectoryName}`; + rules.push( + { pattern: `${workspacePath}/CHANGELOG.md`, owners: releaseOwners }, + { pattern: `${workspacePath}/package.json`, owners: releaseOwners }, + { pattern: `${workspacePath}/tsconfig.*`, owners: releaseOwners }, + { pattern: `${workspacePath}/typedoc.json`, owners: releaseOwners }, + ); + + return rules; +} + +/** + * Builds rules for package initialization code in the Wallet package. These are + * emitted directly after the generic Wallet package rule so they take precedence + * in GitHub's last-match-wins CODEOWNERS evaluation. + * + * @param packages - Package ownership metadata, as defined in the codeowners + * configuration file. + * @returns The initialization rules, sorted by package name. + */ +function buildInitializationRules( + packages: Record, +): CodeownersRule[] { + return Object.entries(packages) + .sort(([firstPackageName], [secondPackageName]) => + firstPackageName.localeCompare(secondPackageName), + ) + .flatMap(([, packageInfo]) => { + if (packageInfo.initializationPath === undefined) { + return []; + } + + return { + pattern: `/packages/wallet/src/initialization/instances/${packageInfo.initializationPath}/`, + owners: [...packageInfo.teams].sort(), + }; + }); +} diff --git a/scripts/manage-codeowners/generate.test.ts b/scripts/manage-codeowners/generate.test.ts new file mode 100644 index 00000000000..a83ece32d73 --- /dev/null +++ b/scripts/manage-codeowners/generate.test.ts @@ -0,0 +1,62 @@ +import { generateCodeownersFileContent } from './generate.js'; +import type { CodeownersConfig } from './types.js'; + +describe('generateCodeownersFileContent', () => { + it('renders the preamble, Packages section, and Overrides section', () => { + const config: CodeownersConfig = { + packages: { + 'b-controller': { teams: ['@MetaMask/b-team'] }, + 'a-controller': { + teams: ['@MetaMask/b-team', '@MetaMask/a-team'], + initializationPath: 'a-controller', + }, + wallet: { teams: ['@MetaMask/core-platform'] }, + }, + overrides: [ + { pattern: '/.github/', owners: ['@MetaMask/core-platform'] }, + { + pattern: '/packages/b-controller/src/special', + owners: ['@MetaMask/a-team', '@MetaMask/core-platform'], + }, + ], + }; + + const content = generateCodeownersFileContent(config); + + expect(content).toBe( + `# NOTE: This file is autogenerated. +# Don't modify this file directly; instead, modify \`codeowners.ts\` and re-run \`yarn codeowners:generate\`. + +# Packages +# -------- + +### a-controller +/packages/a-controller @MetaMask/a-team @MetaMask/b-team +/packages/a-controller/CHANGELOG.md @MetaMask/a-team @MetaMask/b-team @MetaMask/core-platform +/packages/a-controller/package.json @MetaMask/a-team @MetaMask/b-team @MetaMask/core-platform +/packages/a-controller/tsconfig.* @MetaMask/a-team @MetaMask/b-team @MetaMask/core-platform +/packages/a-controller/typedoc.json @MetaMask/a-team @MetaMask/b-team @MetaMask/core-platform + +### b-controller +/packages/b-controller @MetaMask/b-team +/packages/b-controller/CHANGELOG.md @MetaMask/b-team @MetaMask/core-platform +/packages/b-controller/package.json @MetaMask/b-team @MetaMask/core-platform +/packages/b-controller/tsconfig.* @MetaMask/b-team @MetaMask/core-platform +/packages/b-controller/typedoc.json @MetaMask/b-team @MetaMask/core-platform + +### wallet +/packages/wallet @MetaMask/core-platform +/packages/wallet/src/initialization/instances/a-controller/ @MetaMask/a-team @MetaMask/b-team +/packages/wallet/CHANGELOG.md @MetaMask/core-platform +/packages/wallet/package.json @MetaMask/core-platform +/packages/wallet/tsconfig.* @MetaMask/core-platform +/packages/wallet/typedoc.json @MetaMask/core-platform + +# Overrides +# --------- + +/.github/ @MetaMask/core-platform +/packages/b-controller/src/special @MetaMask/a-team @MetaMask/core-platform`, + ); + }); +}); diff --git a/scripts/manage-codeowners/generate.ts b/scripts/manage-codeowners/generate.ts new file mode 100644 index 00000000000..d95f118bf5c --- /dev/null +++ b/scripts/manage-codeowners/generate.ts @@ -0,0 +1,27 @@ +import { assembleCodeownersSections } from './assemble.js'; +import { renderCodeownersSection } from './render.js'; +import type { CodeownersConfig } from './types.js'; + +/** + * The lines that appear before the CODEOWNERS rules. + */ +const CODEOWNERS_PRELUDE = ` +# NOTE: This file is autogenerated. +# Don't modify this file directly; instead, modify \`codeowners.ts\` and re-run \`yarn codeowners:generate\`. +`.trim(); + +/** + * Generates the content of the CODEOWNERS file from configuration. + * + * @param config - The CODEOWNERS configuration. + * @returns The full CODEOWNERS file contents. + */ +export function generateCodeownersFileContent( + config: CodeownersConfig, +): string { + const sectionLines = assembleCodeownersSections(config).map((section) => + renderCodeownersSection(section), + ); + + return [CODEOWNERS_PRELUDE, ...sectionLines].join('\n\n'); +} diff --git a/scripts/manage-codeowners/main.ts b/scripts/manage-codeowners/main.ts index ec7aebcaa62..a64fc98f189 100644 --- a/scripts/manage-codeowners/main.ts +++ b/scripts/manage-codeowners/main.ts @@ -2,7 +2,8 @@ import fs from 'fs'; import * as path from 'path'; import yargs from 'yargs'; -import codeownersSections from '../../codeowners.js'; +import config from '../../codeowners.js'; +import { generateCodeownersFileContent } from './generate.js'; /** * The path to the generated CODEOWNERS file. @@ -12,21 +13,6 @@ const CODEOWNERS_FILE_PATH = path.resolve( '../../.github/CODEOWNERS', ); -/** - * The lines that appear before the CODEOWNERS rules. - */ -const CODEOWNERS_PRELUDE = ` -# NOTE: This file is autogenerated. -# Don't modify this file directly; instead, modify \`codeowners.ts\` -# and re-run \`yarn codeowners:generate\`. - -# Lines starting with '#' are comments. -# Each line is a file pattern followed by one or more owners. - -# Please keep this synchronized with the \`teams.json\` file in the repository root. -# That file is used for some automated workflows, and maps controller to owning team(s). -`.trim(); - /** * The entrypoint to the script. */ @@ -59,7 +45,7 @@ async function checkCodeowners(): Promise { CODEOWNERS_FILE_PATH, 'utf8', ); - const generatedContent = generateCodeownersFileContent(); + const generatedContent = generateCodeownersFileContent(config); if (existingContent !== generatedContent) { console.error( @@ -70,43 +56,11 @@ async function checkCodeowners(): Promise { } /** - * Generates the CODEOWNERS file on disk. + * Generates a new version of the CODEOWNERS file, then writes it to disk. */ async function generateCodeowners(): Promise { await fs.promises.writeFile( CODEOWNERS_FILE_PATH, - generateCodeownersFileContent(), + generateCodeownersFileContent(config), ); } - -/** - * Generates the content of the CODEOWNERS file from the configuration in - * `codeowners.ts`. - * - * @returns The full CODEOWNERS file contents. - */ -function generateCodeownersFileContent(): string { - const sectionLines = codeownersSections.map((section) => { - const lines: string[] = []; - - // This is useful to discriminate the union. - - if ('title' in section) { - lines.push(`## ${section.title}`); - } - - const maxPatternLength = Math.max( - ...section.rules.map((rule) => rule.pattern.length), - ); - const patternLengthWithPadding = maxPatternLength + 4; - for (const rule of section.rules) { - lines.push( - rule.pattern.padEnd(patternLengthWithPadding) + rule.owners.join(' '), - ); - } - - return lines.join('\n'); - }); - - return [CODEOWNERS_PRELUDE, ...sectionLines].join('\n\n'); -} diff --git a/scripts/manage-codeowners/render.test.ts b/scripts/manage-codeowners/render.test.ts new file mode 100644 index 00000000000..622aa868319 --- /dev/null +++ b/scripts/manage-codeowners/render.test.ts @@ -0,0 +1,96 @@ +import { renderCodeownersSection } from './render.js'; + +describe('renderCodeownersSection', () => { + it('renders a package section without a blank line between its header and rules', () => { + const section = { + title: 'accounts-controller', + rules: [ + { + pattern: '/packages/accounts-controller', + owners: ['@MetaMask/accounts-engineers'], + }, + ], + }; + + expect(renderCodeownersSection(section, 3)).toBe( + '### accounts-controller\n/packages/accounts-controller @MetaMask/accounts-engineers', + ); + }); + + it('pads patterns so that owners align within a section', () => { + const section = { + title: 'example', + rules: [ + { pattern: '/packages/example', owners: ['@MetaMask/team'] }, + { + pattern: '/packages/example/CHANGELOG.md', + owners: ['@MetaMask/team', '@MetaMask/core-platform'], + }, + ], + }; + + expect(renderCodeownersSection(section, 3)).toBe( + '### example\n' + + '/packages/example @MetaMask/team\n' + + '/packages/example/CHANGELOG.md @MetaMask/team @MetaMask/core-platform', + ); + }); + + it('underlines a top-level section heading', () => { + expect( + renderCodeownersSection({ + title: '@MetaMask/accounts-engineers', + rules: [], + }), + ).toBe('# @MetaMask/accounts-engineers\n# ----------------------------'); + }); + + it('renders a team section with a blank line before each nested package section', () => { + const section = { + title: '@MetaMask/team', + rules: [], + subsections: [ + { + title: 'alpha', + rules: [ + { pattern: '/packages/alpha', owners: ['@MetaMask/team'] }, + { + pattern: '/packages/alpha/CHANGELOG.md', + owners: ['@MetaMask/team', '@MetaMask/core-platform'], + }, + ], + }, + { + title: 'beta', + rules: [{ pattern: '/packages/beta', owners: ['@MetaMask/team'] }], + }, + ], + }; + + expect(renderCodeownersSection(section)).toBe( + `# @MetaMask/team +# -------------- + +### alpha +/packages/alpha @MetaMask/team +/packages/alpha/CHANGELOG.md @MetaMask/team @MetaMask/core-platform + +### beta +/packages/beta @MetaMask/team`, + ); + }); + + it('adds a blank line between the Overrides heading and its rules', () => { + expect( + renderCodeownersSection({ + title: 'Overrides', + rules: [ + { + pattern: '/.github/', + owners: ['@MetaMask/core-platform'], + }, + ], + }), + ).toBe('# Overrides\n# ---------\n\n/.github/ @MetaMask/core-platform'); + }); +}); diff --git a/scripts/manage-codeowners/render.ts b/scripts/manage-codeowners/render.ts new file mode 100644 index 00000000000..b07039a359c --- /dev/null +++ b/scripts/manage-codeowners/render.ts @@ -0,0 +1,74 @@ +import type { CodeownersSection } from './types.js'; + +/** + * Renders a section in the CODEOWNERS file. This can either be a team section, + * a package section, or an overrides section. + * + * A team section is a series of package sections (i.e., it has subsections). An + * overrides section is like a package section (except it's listed last in the + * CODEOWNERS file). A package/overrides section is a series of rules, where + * each rule has a glob pattern followed by the teams or users that own the + * files or directories which match that pattern. For each rule, there will be + * four spaces between the pattern and owners. + * + * @param section - The section to render. + * @param headingLevel - The Markdown heading level to use. + * @returns The rendered section. + */ +export function renderCodeownersSection( + section: CodeownersSection, + headingLevel = 2, +): string { + const blocks = [renderHeading(section, headingLevel)]; + const { rules } = section; + + if (rules.length > 0) { + const patternLengthWithPadding = + Math.max(...rules.map((rule) => rule.pattern.length)) + 4; + blocks.push( + rules + .map( + (rule) => + rule.pattern.padEnd(patternLengthWithPadding) + + rule.owners.join(' '), + ) + .join('\n'), + ); + } + + if (section.subsections !== undefined) { + blocks.push( + ...section.subsections.map((subsection) => + renderCodeownersSection(subsection, headingLevel + 1), + ), + ); + } + + const separator = + section.title === 'Overrides' || section.subsections !== undefined + ? '\n\n' + : '\n'; + return blocks.join(separator); +} + +/** + * Renders a section heading. + * + * A team section will have an underlined header above it; a package section + * will have a header prefixed with `###`. + * + * @param section - The section whose heading should be rendered. + * @param headingLevel - The heading level to use. + * @returns The rendered heading. + */ +function renderHeading( + section: CodeownersSection, + headingLevel: number, +): string { + if (headingLevel === 2) { + const heading = `# ${section.title}`; + return `${heading}\n# ${'-'.repeat(heading.length - 2)}`; + } + + return `${'#'.repeat(headingLevel)} ${section.title}`; +} diff --git a/scripts/manage-codeowners/types.ts b/scripts/manage-codeowners/types.ts index d61d84f44aa..798eb23d11d 100644 --- a/scripts/manage-codeowners/types.ts +++ b/scripts/manage-codeowners/types.ts @@ -29,4 +29,40 @@ export type CodeownersSection = { * The rules that belong to this section. */ rules: CodeownersRule[]; + + /** + * Nested sections rendered below this section's rules. + */ + subsections?: CodeownersSection[]; +}; + +/** + * Metadata about a package used to generate its CODEOWNERS rules. + */ +export type PackageInfo = { + /** + * The GitHub teams that own the package's top-level directory. + */ + teams: string[]; + + /** + * The package directory's path under the wallet initialization instances. + */ + initializationPath?: string; +}; + +/** + * The declarative configuration used to generate CODEOWNERS. + */ +export type CodeownersConfig = { + /** + * Package ownership metadata keyed by package directory name. + */ + packages: Record; + + /** + * Rules that are emitted last so that they take precedence over generated + * package rules. + */ + overrides: CodeownersRule[]; };