From 619d46130cf543d569795bac5a24030f9b4d8d7d Mon Sep 17 00:00:00 2001 From: Salah-Eddine Saakoun Date: Fri, 20 Mar 2026 16:29:37 +0100 Subject: [PATCH 1/9] feat: create `@metamask/messenger-generate-action-types` package Extract `scripts/generate-method-action-types.ts` into a publishable CLI package so it can be reused across repositories. - Scaffold `@metamask/messenger-generate-action-types` with bin entry - Split script into modular source files (parse, generate, check, fix) - Use named TypeScript imports, optional ESLint peer dependency - Update 44 consuming packages to use the new binary - Update package template, CODEOWNERS, teams.json, eslint config - Add ESLint config exception for Node.js module imports - Regenerate all action type files with updated header - Delete old `scripts/generate-method-action-types.ts` --- .github/CODEOWNERS | 1 + README.md | 16 +- eslint.config.mjs | 6 + packages/account-tree-controller/package.json | 3 +- ...countTreeController-method-action-types.ts | 2 +- packages/accounts-controller/package.json | 3 +- .../AccountsController-method-action-types.ts | 2 +- packages/address-book-controller/package.json | 3 +- ...dressBookController-method-action-types.ts | 2 +- packages/analytics-controller/package.json | 3 +- ...AnalyticsController-method-action-types.ts | 2 +- .../package.json | 3 +- ...egulationController-method-action-types.ts | 2 +- ...taRegulationService-method-action-types.ts | 2 +- packages/announcement-controller/package.json | 3 +- ...ouncementController-method-action-types.ts | 2 +- packages/approval-controller/package.json | 3 +- .../ApprovalController-method-action-types.ts | 2 +- packages/assets-controller/package.json | 3 +- .../AssetsController-method-action-types.ts | 2 +- packages/assets-controllers/package.json | 7 +- ...ntTrackerController-method-action-types.ts | 2 +- ...sContractController-method-action-types.ts | 2 +- ...ainAssetsController-method-action-types.ts | 2 +- ...setsRatesController-method-action-types.ts | 2 +- ...nBalancesController-method-action-types.ts | 2 +- ...DetectionController-method-action-types.ts | 2 +- .../TokensController-method-action-types.ts | 2 +- packages/claims-controller/package.json | 3 +- .../ClaimsController-method-action-types.ts | 2 +- packages/client-controller/package.json | 3 +- .../ClientController-method-action-types.ts | 2 +- packages/compliance-controller/package.json | 3 +- ...omplianceController-method-action-types.ts | 2 +- .../ComplianceService-method-action-types.ts | 2 +- .../config-registry-controller/package.json | 3 +- ...gRegistryController-method-action-types.ts | 2 +- packages/connectivity-controller/package.json | 3 +- ...nectivityController-method-action-types.ts | 2 +- packages/core-backend/package.json | 3 +- ...ountActivityService-method-action-types.ts | 2 +- ...atformClientService-method-action-types.ts | 2 +- ...endWebSocketService-method-action-types.ts | 2 +- packages/delegation-controller/package.json | 3 +- ...elegationController-method-action-types.ts | 2 +- packages/earn-controller/package.json | 3 +- .../src/EarnController-method-action-types.ts | 2 +- packages/ens-controller/package.json | 3 +- .../src/EnsController-method-action-types.ts | 2 +- packages/error-reporting-service/package.json | 3 +- ...r-reporting-service-method-action-types.ts | 2 +- packages/gas-fee-controller/package.json | 3 +- .../GasFeeController-method-action-types.ts | 2 +- .../gator-permissions-controller/package.json | 3 +- ...rmissionsController-method-action-types.ts | 2 +- packages/geolocation-controller/package.json | 3 +- ...olocationController-method-action-types.ts | 2 +- packages/logging-controller/package.json | 3 +- .../LoggingController-method-action-types.ts | 2 +- .../CHANGELOG.md | 10 + .../messenger-generate-action-types/LICENSE | 20 + .../messenger-generate-action-types/README.md | 15 + .../jest.config.js | 27 + .../package.json | 72 ++ .../src/check.test.ts | 86 ++ .../src/check.ts | 124 +++ .../src/cli.ts | 115 +++ .../src/fix.test.ts | 105 +++ .../src/fix.ts | 60 ++ .../src/generate-content.test.ts | 86 ++ .../src/generate-content.ts | 61 ++ .../src/index.ts | 8 + .../src/parse-controller.test.ts | 206 +++++ .../src/parse-controller.ts | 421 ++++++++++ .../tsconfig.build.json | 10 + .../tsconfig.json | 8 + .../typedoc.json | 7 + .../multichain-account-service/package.json | 3 +- ...chainAccountService-method-action-types.ts | 2 +- packages/name-controller/package.json | 3 +- .../src/NameController-method-action-types.ts | 2 +- .../package.json | 3 +- ...nablementController-method-action-types.ts | 2 +- .../package.json | 5 +- ...nServicesController-method-action-types.ts | 2 +- ...vicesPushController-method-action-types.ts | 2 +- packages/permission-controller/package.json | 3 +- ...ermissionController-method-action-types.ts | 2 +- ...tMetadataController-method-action-types.ts | 2 +- .../permission-log-controller/package.json | 3 +- ...issionLogController-method-action-types.ts | 2 +- packages/preferences-controller/package.json | 3 +- ...eferencesController-method-action-types.ts | 2 +- .../profile-metrics-controller/package.json | 3 +- ...leMetricsController-method-action-types.ts | 2 +- ...ofileMetricsService-method-action-types.ts | 2 +- packages/profile-sync-controller/package.json | 5 +- ...nticationController-method-action-types.ts | 2 +- ...erStorageController-method-action-types.ts | 2 +- packages/ramps-controller/package.json | 3 +- .../RampsController-method-action-types.ts | 2 +- .../src/RampsService-method-action-types.ts | 2 +- .../src/TransakService-method-action-types.ts | 2 +- .../package.json | 3 +- ...ure-flag-controller-method-action-types.ts | 2 +- packages/sample-controllers/package.json | 3 +- ...s-prices-controller-method-action-types.ts | 2 +- ...petnames-controller-method-action-types.ts | 2 +- .../package.json | 3 +- ...nboardingController-method-action-types.ts | 2 +- .../selected-network-controller/package.json | 3 +- ...edNetworkController-method-action-types.ts | 2 +- packages/shield-controller/package.json | 3 +- .../ShieldController-method-action-types.ts | 2 +- packages/signature-controller/package.json | 3 +- ...SignatureController-method-action-types.ts | 2 +- packages/storage-service/package.json | 3 +- .../src/StorageService-method-action-types.ts | 2 +- packages/subscription-controller/package.json | 3 +- ...scriptionController-method-action-types.ts | 2 +- packages/transaction-controller/package.json | 3 +- ...ansactionController-method-action-types.ts | 2 +- .../transaction-pay-controller/package.json | 3 +- ...actionPayController-method-action-types.ts | 2 +- .../user-operation-controller/package.json | 3 +- ...OperationController-method-action-types.ts | 2 +- .../package-template/package.json | 2 + scripts/generate-method-action-types.ts | 752 ------------------ teams.json | 1 + tsconfig.build.json | 3 + tsconfig.json | 3 + yarn.config.cjs | 5 +- yarn.lock | 71 ++ 133 files changed, 1698 insertions(+), 865 deletions(-) create mode 100644 packages/messenger-generate-action-types/CHANGELOG.md create mode 100644 packages/messenger-generate-action-types/LICENSE create mode 100644 packages/messenger-generate-action-types/README.md create mode 100644 packages/messenger-generate-action-types/jest.config.js create mode 100644 packages/messenger-generate-action-types/package.json create mode 100644 packages/messenger-generate-action-types/src/check.test.ts create mode 100644 packages/messenger-generate-action-types/src/check.ts create mode 100644 packages/messenger-generate-action-types/src/cli.ts create mode 100644 packages/messenger-generate-action-types/src/fix.test.ts create mode 100644 packages/messenger-generate-action-types/src/fix.ts create mode 100644 packages/messenger-generate-action-types/src/generate-content.test.ts create mode 100644 packages/messenger-generate-action-types/src/generate-content.ts create mode 100644 packages/messenger-generate-action-types/src/index.ts create mode 100644 packages/messenger-generate-action-types/src/parse-controller.test.ts create mode 100644 packages/messenger-generate-action-types/src/parse-controller.ts create mode 100644 packages/messenger-generate-action-types/tsconfig.build.json create mode 100644 packages/messenger-generate-action-types/tsconfig.json create mode 100644 packages/messenger-generate-action-types/typedoc.json delete mode 100755 scripts/generate-method-action-types.ts diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 331f1487491..a25bad61d20 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -106,6 +106,7 @@ /packages/eth-json-rpc-middleware/src/wallet.* @MetaMask/confirmations @MetaMask/wallet-api-platform-engineers /packages/eth-json-rpc-provider @MetaMask/wallet-integrations @MetaMask/core-platform /packages/foundryup @MetaMask/mobile-platform @MetaMask/extension-platform +/packages/messenger-generate-action-types @MetaMask/core-platform /packages/json-rpc-engine @MetaMask/wallet-integrations @MetaMask/core-platform /packages/json-rpc-middleware-stream @MetaMask/wallet-integrations @MetaMask/core-platform /packages/keyring-controller @MetaMask/accounts-engineers @MetaMask/core-platform diff --git a/README.md b/README.md index 80c0514440c..af5a7e5d796 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,7 @@ Each package in this repository has its own README where you can find installati - [`@metamask/foundryup`](packages/foundryup) - [`@metamask/gas-fee-controller`](packages/gas-fee-controller) - [`@metamask/gator-permissions-controller`](packages/gator-permissions-controller) +- [`@metamask/messenger-generate-action-types`](packages/messenger-generate-action-types) - [`@metamask/geolocation-controller`](packages/geolocation-controller) - [`@metamask/json-rpc-engine`](packages/json-rpc-engine) - [`@metamask/json-rpc-middleware-stream`](packages/json-rpc-middleware-stream) @@ -142,6 +143,7 @@ linkStyle default opacity:0.5 foundryup(["@metamask/foundryup"]); gas_fee_controller(["@metamask/gas-fee-controller"]); gator_permissions_controller(["@metamask/gator-permissions-controller"]); + messenger_generate_action_types(["@metamask/messenger-generate-action-types"]); geolocation_controller(["@metamask/geolocation-controller"]); json_rpc_engine(["@metamask/json-rpc-engine"]); json_rpc_middleware_stream(["@metamask/json-rpc-middleware-stream"]); @@ -241,6 +243,7 @@ linkStyle default opacity:0.5 base_controller --> messenger; base_controller --> json_rpc_engine; bridge_controller --> accounts_controller; + bridge_controller --> assets_controller; bridge_controller --> assets_controllers; bridge_controller --> base_controller; bridge_controller --> controller_utils; @@ -258,6 +261,7 @@ linkStyle default opacity:0.5 bridge_status_controller --> bridge_controller; bridge_status_controller --> controller_utils; bridge_status_controller --> gas_fee_controller; + bridge_status_controller --> keyring_controller; bridge_status_controller --> network_controller; bridge_status_controller --> polling_controller; bridge_status_controller --> profile_sync_controller; @@ -266,8 +270,8 @@ linkStyle default opacity:0.5 chain_agnostic_permission --> permission_controller; claims_controller --> base_controller; claims_controller --> controller_utils; - claims_controller --> messenger; claims_controller --> keyring_controller; + claims_controller --> messenger; claims_controller --> profile_sync_controller; client_controller --> base_controller; client_controller --> messenger; @@ -331,6 +335,7 @@ linkStyle default opacity:0.5 gator_permissions_controller --> messenger; gator_permissions_controller --> transaction_controller; geolocation_controller --> base_controller; + geolocation_controller --> controller_utils; geolocation_controller --> messenger; json_rpc_middleware_stream --> json_rpc_engine; keyring_controller --> base_controller; @@ -395,6 +400,12 @@ linkStyle default opacity:0.5 perps_controller --> base_controller; perps_controller --> controller_utils; perps_controller --> messenger; + perps_controller --> account_tree_controller; + perps_controller --> keyring_controller; + perps_controller --> network_controller; + perps_controller --> profile_sync_controller; + perps_controller --> remote_feature_flag_controller; + perps_controller --> transaction_controller; phishing_controller --> base_controller; phishing_controller --> controller_utils; phishing_controller --> messenger; @@ -403,8 +414,6 @@ linkStyle default opacity:0.5 polling_controller --> controller_utils; polling_controller --> network_controller; preferences_controller --> base_controller; - preferences_controller --> controller_utils; - preferences_controller --> keyring_controller; preferences_controller --> messenger; profile_metrics_controller --> accounts_controller; profile_metrics_controller --> base_controller; @@ -470,6 +479,7 @@ linkStyle default opacity:0.5 transaction_controller --> remote_feature_flag_controller; transaction_controller --> eth_block_tracker; transaction_controller --> eth_json_rpc_provider; + transaction_pay_controller --> assets_controller; transaction_pay_controller --> assets_controllers; transaction_pay_controller --> base_controller; transaction_pay_controller --> bridge_controller; diff --git a/eslint.config.mjs b/eslint.config.mjs index 76bbdf4f3d4..8849fafa3fe 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -162,6 +162,12 @@ const config = createConfig([ 'n/no-deprecated-api': 'off', }, }, + { + files: ['packages/messenger-generate-action-types/**/*.{js,ts}'], + rules: { + 'import-x/no-nodejs-modules': 'off', + }, + }, { files: [ 'packages/notification-services-controller/src/NotificationServicesPushController/services/push/*-web.ts', diff --git a/packages/account-tree-controller/package.json b/packages/account-tree-controller/package.json index 7e056885f8e..e41201fdcc4 100644 --- a/packages/account-tree-controller/package.json +++ b/packages/account-tree-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/account-tree-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/account-tree-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -66,6 +66,7 @@ "devDependencies": { "@metamask/account-api": "^1.0.0", "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@metamask/providers": "^22.1.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", diff --git a/packages/account-tree-controller/src/AccountTreeController-method-action-types.ts b/packages/account-tree-controller/src/AccountTreeController-method-action-types.ts index 365dbe342c9..9ae88b382c3 100644 --- a/packages/account-tree-controller/src/AccountTreeController-method-action-types.ts +++ b/packages/account-tree-controller/src/AccountTreeController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/accounts-controller/package.json b/packages/accounts-controller/package.json index 2616ea38a8d..043f41d69a4 100644 --- a/packages/accounts-controller/package.json +++ b/packages/accounts-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/accounts-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/accounts-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -71,6 +71,7 @@ "devDependencies": { "@metamask/auto-changelog": "^3.4.4", "@metamask/controller-utils": "^11.19.0", + "@metamask/messenger-generate-action-types": "^0.0.0", "@metamask/providers": "^22.1.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", diff --git a/packages/accounts-controller/src/AccountsController-method-action-types.ts b/packages/accounts-controller/src/AccountsController-method-action-types.ts index fc8a6706d6e..f8661fb3d83 100644 --- a/packages/accounts-controller/src/AccountsController-method-action-types.ts +++ b/packages/accounts-controller/src/AccountsController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/address-book-controller/package.json b/packages/address-book-controller/package.json index 8fc382d32c0..f242739f8a4 100644 --- a/packages/address-book-controller/package.json +++ b/packages/address-book-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/address-book-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/address-book-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -55,6 +55,7 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/address-book-controller/src/AddressBookController-method-action-types.ts b/packages/address-book-controller/src/AddressBookController-method-action-types.ts index 6074a35dd07..e2a8d9ee3c0 100644 --- a/packages/address-book-controller/src/AddressBookController-method-action-types.ts +++ b/packages/address-book-controller/src/AddressBookController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/analytics-controller/package.json b/packages/analytics-controller/package.json index 25dce1f4a86..c4f0605e8f8 100644 --- a/packages/analytics-controller/package.json +++ b/packages/analytics-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/analytics-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/analytics-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -54,6 +54,7 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/analytics-controller/src/AnalyticsController-method-action-types.ts b/packages/analytics-controller/src/AnalyticsController-method-action-types.ts index cd4f15c4995..d2c6d68c10a 100644 --- a/packages/analytics-controller/src/AnalyticsController-method-action-types.ts +++ b/packages/analytics-controller/src/AnalyticsController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/analytics-data-regulation-controller/package.json b/packages/analytics-data-regulation-controller/package.json index 04d7f79797c..4593388c724 100644 --- a/packages/analytics-data-regulation-controller/package.json +++ b/packages/analytics-data-regulation-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/analytics-data-regulation-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/analytics-data-regulation-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -55,6 +55,7 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationController-method-action-types.ts b/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationController-method-action-types.ts index 4490946862b..8a6be39c0ed 100644 --- a/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationController-method-action-types.ts +++ b/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationService-method-action-types.ts b/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationService-method-action-types.ts index cae15ca9d71..f49c600680f 100644 --- a/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationService-method-action-types.ts +++ b/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationService-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/announcement-controller/package.json b/packages/announcement-controller/package.json index c51f7285c6f..cd1a4985ea5 100644 --- a/packages/announcement-controller/package.json +++ b/packages/announcement-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/announcement-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/announcement-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -53,6 +53,7 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/announcement-controller/src/AnnouncementController-method-action-types.ts b/packages/announcement-controller/src/AnnouncementController-method-action-types.ts index 2868e3c9d94..594c4b8cd99 100644 --- a/packages/announcement-controller/src/AnnouncementController-method-action-types.ts +++ b/packages/announcement-controller/src/AnnouncementController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/approval-controller/package.json b/packages/approval-controller/package.json index 47dc9b1e3f4..70ec6ff40fa 100644 --- a/packages/approval-controller/package.json +++ b/packages/approval-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/approval-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/approval-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -56,6 +56,7 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/approval-controller/src/ApprovalController-method-action-types.ts b/packages/approval-controller/src/ApprovalController-method-action-types.ts index 3dc6f6630fc..52d6228b1c5 100644 --- a/packages/approval-controller/src/ApprovalController-method-action-types.ts +++ b/packages/approval-controller/src/ApprovalController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/assets-controller/package.json b/packages/assets-controller/package.json index b868e5c4239..90ee98a352c 100644 --- a/packages/assets-controller/package.json +++ b/packages/assets-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/assets-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/assets-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -78,6 +78,7 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "@types/lodash": "^4.14.191", diff --git a/packages/assets-controller/src/AssetsController-method-action-types.ts b/packages/assets-controller/src/AssetsController-method-action-types.ts index fb600425209..ebd14795629 100644 --- a/packages/assets-controller/src/AssetsController-method-action-types.ts +++ b/packages/assets-controller/src/AssetsController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/assets-controllers/package.json b/packages/assets-controllers/package.json index e4be651de88..ed31be8cadc 100644 --- a/packages/assets-controllers/package.json +++ b/packages/assets-controllers/package.json @@ -40,9 +40,9 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/assets-controllers", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/assets-controllers", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts \"$@\" && yarn generate-method-action-types:multichain-assets-controller \"$@\" && yarn generate-method-action-types:multichain-assets-rates-controller \"$@\"", - "generate-method-action-types:multichain-assets-controller": "tsx ../../scripts/generate-method-action-types.ts src/MultichainAssetsController", - "generate-method-action-types:multichain-assets-rates-controller": "tsx ../../scripts/generate-method-action-types.ts src/MultichainAssetsRatesController", + "generate-method-action-types": "messenger-generate-action-types \"$@\" && yarn generate-method-action-types:multichain-assets-controller \"$@\" && yarn generate-method-action-types:multichain-assets-rates-controller \"$@\"", + "generate-method-action-types:multichain-assets-controller": "messenger-generate-action-types src/MultichainAssetsController", + "generate-method-action-types:multichain-assets-rates-controller": "messenger-generate-action-types src/MultichainAssetsRatesController", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -103,6 +103,7 @@ "@metamask/ethjs-provider-http": "^0.3.0", "@metamask/keyring-internal-api": "^10.0.0", "@metamask/keyring-snap-client": "^8.2.0", + "@metamask/messenger-generate-action-types": "^0.0.0", "@metamask/providers": "^22.1.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", diff --git a/packages/assets-controllers/src/AccountTrackerController-method-action-types.ts b/packages/assets-controllers/src/AccountTrackerController-method-action-types.ts index 1b8eca12469..2a83d21ffa3 100644 --- a/packages/assets-controllers/src/AccountTrackerController-method-action-types.ts +++ b/packages/assets-controllers/src/AccountTrackerController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/assets-controllers/src/AssetsContractController-method-action-types.ts b/packages/assets-controllers/src/AssetsContractController-method-action-types.ts index 7f240733734..170b2680d26 100644 --- a/packages/assets-controllers/src/AssetsContractController-method-action-types.ts +++ b/packages/assets-controllers/src/AssetsContractController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/assets-controllers/src/MultichainAssetsController/MultichainAssetsController-method-action-types.ts b/packages/assets-controllers/src/MultichainAssetsController/MultichainAssetsController-method-action-types.ts index 1d1163ea8ad..c9ed58526ac 100644 --- a/packages/assets-controllers/src/MultichainAssetsController/MultichainAssetsController-method-action-types.ts +++ b/packages/assets-controllers/src/MultichainAssetsController/MultichainAssetsController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController-method-action-types.ts b/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController-method-action-types.ts index 8e8c59b03ad..c397fb4dbc7 100644 --- a/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController-method-action-types.ts +++ b/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/assets-controllers/src/TokenBalancesController-method-action-types.ts b/packages/assets-controllers/src/TokenBalancesController-method-action-types.ts index 39ad0d2e8f5..1a5c4f0442d 100644 --- a/packages/assets-controllers/src/TokenBalancesController-method-action-types.ts +++ b/packages/assets-controllers/src/TokenBalancesController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/assets-controllers/src/TokenDetectionController-method-action-types.ts b/packages/assets-controllers/src/TokenDetectionController-method-action-types.ts index 76d99847bc8..9dd6bb2d813 100644 --- a/packages/assets-controllers/src/TokenDetectionController-method-action-types.ts +++ b/packages/assets-controllers/src/TokenDetectionController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/assets-controllers/src/TokensController-method-action-types.ts b/packages/assets-controllers/src/TokensController-method-action-types.ts index 5981e66b27c..e0b49961610 100644 --- a/packages/assets-controllers/src/TokensController-method-action-types.ts +++ b/packages/assets-controllers/src/TokensController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/claims-controller/package.json b/packages/claims-controller/package.json index d5b59fe8bf9..95d085a12ae 100644 --- a/packages/claims-controller/package.json +++ b/packages/claims-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/claims-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/claims-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -57,6 +57,7 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/claims-controller/src/ClaimsController-method-action-types.ts b/packages/claims-controller/src/ClaimsController-method-action-types.ts index 5a33bd54cb3..bb16fa693f1 100644 --- a/packages/claims-controller/src/ClaimsController-method-action-types.ts +++ b/packages/claims-controller/src/ClaimsController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/client-controller/package.json b/packages/client-controller/package.json index 1eda46f84e5..01b5eb047cf 100644 --- a/packages/client-controller/package.json +++ b/packages/client-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/client-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/client-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -53,6 +53,7 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/client-controller/src/ClientController-method-action-types.ts b/packages/client-controller/src/ClientController-method-action-types.ts index 395b224ee67..4baf7005a5a 100644 --- a/packages/client-controller/src/ClientController-method-action-types.ts +++ b/packages/client-controller/src/ClientController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/compliance-controller/package.json b/packages/compliance-controller/package.json index 5650d6468e1..67b4a8b11ca 100644 --- a/packages/compliance-controller/package.json +++ b/packages/compliance-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/compliance-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/compliance-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -57,6 +57,7 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/compliance-controller/src/ComplianceController-method-action-types.ts b/packages/compliance-controller/src/ComplianceController-method-action-types.ts index 8a0a84d94b8..6b55390ec66 100644 --- a/packages/compliance-controller/src/ComplianceController-method-action-types.ts +++ b/packages/compliance-controller/src/ComplianceController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/compliance-controller/src/ComplianceService-method-action-types.ts b/packages/compliance-controller/src/ComplianceService-method-action-types.ts index f13fc5bfbdf..8d16a508cc8 100644 --- a/packages/compliance-controller/src/ComplianceService-method-action-types.ts +++ b/packages/compliance-controller/src/ComplianceService-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/config-registry-controller/package.json b/packages/config-registry-controller/package.json index dc0ff62268f..ddf3508dc29 100644 --- a/packages/config-registry-controller/package.json +++ b/packages/config-registry-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/config-registry-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/config-registry-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "publish:preview": "yarn npm publish --tag preview", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", @@ -63,6 +63,7 @@ "devDependencies": { "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/config-registry-controller/src/ConfigRegistryController-method-action-types.ts b/packages/config-registry-controller/src/ConfigRegistryController-method-action-types.ts index b435af055a7..06ea0662b60 100644 --- a/packages/config-registry-controller/src/ConfigRegistryController-method-action-types.ts +++ b/packages/config-registry-controller/src/ConfigRegistryController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/connectivity-controller/package.json b/packages/connectivity-controller/package.json index 92587f273d7..e56e3c3a73e 100644 --- a/packages/connectivity-controller/package.json +++ b/packages/connectivity-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/connectivity-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/connectivity-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -53,6 +53,7 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/connectivity-controller/src/ConnectivityController-method-action-types.ts b/packages/connectivity-controller/src/ConnectivityController-method-action-types.ts index 49c39a37d1b..4019a54237c 100644 --- a/packages/connectivity-controller/src/ConnectivityController-method-action-types.ts +++ b/packages/connectivity-controller/src/ConnectivityController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/core-backend/package.json b/packages/core-backend/package.json index 702887206fd..6e874d6ad01 100644 --- a/packages/core-backend/package.json +++ b/packages/core-backend/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/core-backend", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/core-backend", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -59,6 +59,7 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/core-backend/src/AccountActivityService-method-action-types.ts b/packages/core-backend/src/AccountActivityService-method-action-types.ts index 29dd40a2441..4c0ea641897 100644 --- a/packages/core-backend/src/AccountActivityService-method-action-types.ts +++ b/packages/core-backend/src/AccountActivityService-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/core-backend/src/ApiPlatformClientService-method-action-types.ts b/packages/core-backend/src/ApiPlatformClientService-method-action-types.ts index 09096daa1a9..a3ff6a81984 100644 --- a/packages/core-backend/src/ApiPlatformClientService-method-action-types.ts +++ b/packages/core-backend/src/ApiPlatformClientService-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/core-backend/src/BackendWebSocketService-method-action-types.ts b/packages/core-backend/src/BackendWebSocketService-method-action-types.ts index beb7fb36959..17980ab58d9 100644 --- a/packages/core-backend/src/BackendWebSocketService-method-action-types.ts +++ b/packages/core-backend/src/BackendWebSocketService-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/delegation-controller/package.json b/packages/delegation-controller/package.json index 6d981f9047f..5648644507a 100644 --- a/packages/delegation-controller/package.json +++ b/packages/delegation-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/delegation-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/delegation-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -56,6 +56,7 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/delegation-controller/src/DelegationController-method-action-types.ts b/packages/delegation-controller/src/DelegationController-method-action-types.ts index f773c95f731..6ff24f5712c 100644 --- a/packages/delegation-controller/src/DelegationController-method-action-types.ts +++ b/packages/delegation-controller/src/DelegationController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/earn-controller/package.json b/packages/earn-controller/package.json index cccdfb1a6d1..70a9b5badd0 100644 --- a/packages/earn-controller/package.json +++ b/packages/earn-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/earn-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/earn-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -61,6 +61,7 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@metamask/transaction-controller": "^63.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", diff --git a/packages/earn-controller/src/EarnController-method-action-types.ts b/packages/earn-controller/src/EarnController-method-action-types.ts index eb8b4402586..cbc91c82e40 100644 --- a/packages/earn-controller/src/EarnController-method-action-types.ts +++ b/packages/earn-controller/src/EarnController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/ens-controller/package.json b/packages/ens-controller/package.json index 0d291cd91fc..5e53bf4c099 100644 --- a/packages/ens-controller/package.json +++ b/packages/ens-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/ens-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/ens-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -58,6 +58,7 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/ens-controller/src/EnsController-method-action-types.ts b/packages/ens-controller/src/EnsController-method-action-types.ts index f516dd91109..ce15f871e82 100644 --- a/packages/ens-controller/src/EnsController-method-action-types.ts +++ b/packages/ens-controller/src/EnsController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/error-reporting-service/package.json b/packages/error-reporting-service/package.json index 5967e89cab4..b67ed078777 100644 --- a/packages/error-reporting-service/package.json +++ b/packages/error-reporting-service/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/error-reporting-service", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/error-reporting-service", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -53,6 +53,7 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@sentry/core": "^9.22.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", diff --git a/packages/error-reporting-service/src/error-reporting-service-method-action-types.ts b/packages/error-reporting-service/src/error-reporting-service-method-action-types.ts index ca1b854f383..450b3c9d304 100644 --- a/packages/error-reporting-service/src/error-reporting-service-method-action-types.ts +++ b/packages/error-reporting-service/src/error-reporting-service-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/gas-fee-controller/package.json b/packages/gas-fee-controller/package.json index 2e9d9cca167..411e9c67068 100644 --- a/packages/gas-fee-controller/package.json +++ b/packages/gas-fee-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/gas-fee-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/gas-fee-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -63,6 +63,7 @@ "devDependencies": { "@babel/runtime": "^7.23.9", "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "@types/jest-when": "^2.7.3", diff --git a/packages/gas-fee-controller/src/GasFeeController-method-action-types.ts b/packages/gas-fee-controller/src/GasFeeController-method-action-types.ts index d00beb19b45..d22a6972bed 100644 --- a/packages/gas-fee-controller/src/GasFeeController-method-action-types.ts +++ b/packages/gas-fee-controller/src/GasFeeController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/gator-permissions-controller/package.json b/packages/gator-permissions-controller/package.json index 972b325f67a..136ae4036b3 100644 --- a/packages/gator-permissions-controller/package.json +++ b/packages/gator-permissions-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/gator-permissions-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/gator-permissions-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -63,6 +63,7 @@ "@lavamoat/allow-scripts": "^3.0.4", "@lavamoat/preinstall-always-fail": "^2.1.0", "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/gator-permissions-controller/src/GatorPermissionsController-method-action-types.ts b/packages/gator-permissions-controller/src/GatorPermissionsController-method-action-types.ts index ed9b6e4e561..e5e2edc608a 100644 --- a/packages/gator-permissions-controller/src/GatorPermissionsController-method-action-types.ts +++ b/packages/gator-permissions-controller/src/GatorPermissionsController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/geolocation-controller/package.json b/packages/geolocation-controller/package.json index 7410c13fa0e..0b0d8d2693d 100644 --- a/packages/geolocation-controller/package.json +++ b/packages/geolocation-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/geolocation-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/geolocation-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -54,6 +54,7 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/geolocation-controller/src/GeolocationController-method-action-types.ts b/packages/geolocation-controller/src/GeolocationController-method-action-types.ts index 5c6bc77aa61..5707a8ff14e 100644 --- a/packages/geolocation-controller/src/GeolocationController-method-action-types.ts +++ b/packages/geolocation-controller/src/GeolocationController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/logging-controller/package.json b/packages/logging-controller/package.json index a1fae26e914..efa21085ac4 100644 --- a/packages/logging-controller/package.json +++ b/packages/logging-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/logging-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/logging-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -55,6 +55,7 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/logging-controller/src/LoggingController-method-action-types.ts b/packages/logging-controller/src/LoggingController-method-action-types.ts index 8e4da336747..7e423a7f3d8 100644 --- a/packages/logging-controller/src/LoggingController-method-action-types.ts +++ b/packages/logging-controller/src/LoggingController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/messenger-generate-action-types/CHANGELOG.md b/packages/messenger-generate-action-types/CHANGELOG.md new file mode 100644 index 00000000000..b518709c7b8 --- /dev/null +++ b/packages/messenger-generate-action-types/CHANGELOG.md @@ -0,0 +1,10 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +[Unreleased]: https://github.com/MetaMask/core/ diff --git a/packages/messenger-generate-action-types/LICENSE b/packages/messenger-generate-action-types/LICENSE new file mode 100644 index 00000000000..c8a0ff6be3a --- /dev/null +++ b/packages/messenger-generate-action-types/LICENSE @@ -0,0 +1,20 @@ +MIT License + +Copyright (c) 2026 MetaMask + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE diff --git a/packages/messenger-generate-action-types/README.md b/packages/messenger-generate-action-types/README.md new file mode 100644 index 00000000000..76970ab9464 --- /dev/null +++ b/packages/messenger-generate-action-types/README.md @@ -0,0 +1,15 @@ +# `@metamask/messenger-generate-action-types` + +CLI tool to generate method action types for controller and service messengers + +## Installation + +`yarn add @metamask/messenger-generate-action-types` + +or + +`npm install @metamask/messenger-generate-action-types` + +## Contributing + +This package is part of a monorepo. Instructions for contributing can be found in the [monorepo README](https://github.com/MetaMask/core#readme). diff --git a/packages/messenger-generate-action-types/jest.config.js b/packages/messenger-generate-action-types/jest.config.js new file mode 100644 index 00000000000..f927adcb359 --- /dev/null +++ b/packages/messenger-generate-action-types/jest.config.js @@ -0,0 +1,27 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages'); + +const displayName = path.basename(__dirname); + +module.exports = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + // An object that configures minimum threshold enforcement for coverage results + coveragePathIgnorePatterns: ['./src/cli.ts'], + coverageThreshold: { + global: { + branches: 70, + functions: 75, + lines: 75, + statements: 75, + }, + }, +}); diff --git a/packages/messenger-generate-action-types/package.json b/packages/messenger-generate-action-types/package.json new file mode 100644 index 00000000000..828a29bdba2 --- /dev/null +++ b/packages/messenger-generate-action-types/package.json @@ -0,0 +1,72 @@ +{ + "name": "@metamask/messenger-generate-action-types", + "version": "0.0.0", + "description": "CLI tool to generate method action types for controller and service messengers", + "keywords": [ + "MetaMask", + "Ethereum" + ], + "homepage": "https://github.com/MetaMask/core/tree/main/packages/messenger-generate-action-types#readme", + "bugs": { + "url": "https://github.com/MetaMask/core/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/MetaMask/core.git" + }, + "license": "MIT", + "sideEffects": false, + "exports": { + "./package.json": "./package.json" + }, + "main": "./dist/index.cjs", + "types": "./dist/index.d.cts", + "bin": "./dist/cli.mjs", + "files": [ + "dist/" + ], + "scripts": { + "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", + "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build:docs": "typedoc", + "changelog:update": "../../scripts/update-changelog.sh @metamask/messenger-generate-action-types", + "changelog:validate": "../../scripts/validate-changelog.sh @metamask/messenger-generate-action-types", + "since-latest-release": "../../scripts/since-latest-release.sh", + "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", + "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", + "test:verbose": "NODE_OPTIONS=--experimental-vm-modules jest --verbose", + "test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch" + }, + "dependencies": { + "@metamask/utils": "^11.9.0", + "typescript": "~5.3.3", + "yargs": "^17.7.2" + }, + "devDependencies": { + "@metamask/auto-changelog": "^3.4.4", + "@ts-bridge/cli": "^0.6.4", + "@types/jest": "^29.5.14", + "@types/yargs": "^17.0.32", + "deepmerge": "^4.2.2", + "eslint": "^9.39.1", + "jest": "^29.7.0", + "ts-jest": "^29.2.5", + "typedoc": "^0.25.13", + "typedoc-plugin-missing-exports": "^2.0.0" + }, + "peerDependencies": { + "eslint": ">=8" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + }, + "engines": { + "node": "^18.18 || >=20" + }, + "publishConfig": { + "access": "public", + "registry": "https://registry.npmjs.org/" + } +} diff --git a/packages/messenger-generate-action-types/src/check.test.ts b/packages/messenger-generate-action-types/src/check.test.ts new file mode 100644 index 00000000000..dac407dd8e4 --- /dev/null +++ b/packages/messenger-generate-action-types/src/check.test.ts @@ -0,0 +1,86 @@ +import * as fs from 'node:fs'; +import * as os from 'node:os'; +import * as path from 'node:path'; + +import { checkActionTypesFiles } from './check'; +import { generateActionTypesContent } from './generate-content'; +import type { ControllerInfo } from './parse-controller'; + +describe('checkActionTypesFiles', () => { + let tmpDir: string; + const originalExitCode = globalThis.process.exitCode; + + beforeEach(async () => { + tmpDir = await fs.promises.mkdtemp( + path.join(os.tmpdir(), 'check-action-types-'), + ); + globalThis.process.exitCode = undefined; + }); + + afterEach(async () => { + await fs.promises.rm(tmpDir, { recursive: true, force: true }); + globalThis.process.exitCode = originalExitCode; + }); + + it('reports up to date when files match (no ESLint)', async () => { + const controller: ControllerInfo = { + name: 'TestController', + filePath: path.join(tmpDir, 'TestController.ts'), + exposedMethods: ['doStuff'], + methods: [{ name: 'doStuff', jsDoc: '', signature: 'doStuff' }], + }; + + const content = generateActionTypesContent(controller); + await fs.promises.writeFile( + path.join(tmpDir, 'TestController-method-action-types.ts'), + content, + 'utf8', + ); + + const consoleSpy = jest.spyOn(console, 'log').mockImplementation(); + await checkActionTypesFiles([controller], null, null); + consoleSpy.mockRestore(); + + expect(globalThis.process.exitCode).toBeUndefined(); + }); + + it('reports out of date when files differ', async () => { + const controller: ControllerInfo = { + name: 'TestController', + filePath: path.join(tmpDir, 'TestController.ts'), + exposedMethods: ['doStuff'], + methods: [{ name: 'doStuff', jsDoc: '', signature: 'doStuff' }], + }; + + await fs.promises.writeFile( + path.join(tmpDir, 'TestController-method-action-types.ts'), + '// outdated content\n', + 'utf8', + ); + + const consoleSpy = jest.spyOn(console, 'log').mockImplementation(); + const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(); + await checkActionTypesFiles([controller], null, null); + consoleSpy.mockRestore(); + consoleErrorSpy.mockRestore(); + + expect(globalThis.process.exitCode).toBe(1); + }); + + it('reports missing files', async () => { + const controller: ControllerInfo = { + name: 'TestController', + filePath: path.join(tmpDir, 'TestController.ts'), + exposedMethods: ['doStuff'], + methods: [{ name: 'doStuff', jsDoc: '', signature: 'doStuff' }], + }; + + const consoleSpy = jest.spyOn(console, 'log').mockImplementation(); + const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(); + await checkActionTypesFiles([controller], null, null); + consoleSpy.mockRestore(); + consoleErrorSpy.mockRestore(); + + expect(globalThis.process.exitCode).toBe(1); + }); +}); diff --git a/packages/messenger-generate-action-types/src/check.ts b/packages/messenger-generate-action-types/src/check.ts new file mode 100644 index 00000000000..15eb679a6f1 --- /dev/null +++ b/packages/messenger-generate-action-types/src/check.ts @@ -0,0 +1,124 @@ +import * as fs from 'node:fs'; +import * as path from 'node:path'; + +import { generateActionTypesContent } from './generate-content'; +import type { ControllerInfo } from './parse-controller'; + +type ESLintInstance = { + lintFiles(files: string[]): Promise<{ output?: string; filePath: string }[]>; +}; + +type ESLintStatic = { + outputFixes(results: { output?: string; filePath: string }[]): Promise; +}; + +/** + * Checks if generated action types files are up to date. + * + * @param controllers - Array of controller information objects. + * @param eslint - The ESLint instance to use for formatting. + * @param eslintStatic - The ESLint class for static methods. + */ +export async function checkActionTypesFiles( + controllers: ControllerInfo[], + eslint: ESLintInstance | null, + eslintStatic: ESLintStatic | null, +): Promise { + let hasErrors = false; + + const fileComparisonJobs: { + expectedTempFile: string; + actualFile: string; + baseFileName: string; + }[] = []; + + try { + for (const controller of controllers) { + console.log(`\nšŸ”§ Checking ${controller.name}...`); + const outputDir = path.dirname(controller.filePath); + const baseFileName = path.basename(controller.filePath, '.ts'); + const actualFile = path.join( + outputDir, + `${baseFileName}-method-action-types.ts`, + ); + + const expectedContent = generateActionTypesContent(controller); + const expectedTempFile = actualFile.replace('.ts', '.tmp.ts'); + + try { + await fs.promises.access(actualFile); + + await fs.promises.writeFile(expectedTempFile, expectedContent, 'utf8'); + + fileComparisonJobs.push({ + expectedTempFile, + actualFile, + baseFileName, + }); + } catch (error) { + if ((error as NodeJS.ErrnoException).code === 'ENOENT') { + console.error( + `āŒ ${baseFileName}-method-action-types.ts does not exist`, + ); + } else { + console.error( + `āŒ Error reading ${baseFileName}-method-action-types.ts:`, + error, + ); + } + hasErrors = true; + } + } + + if (fileComparisonJobs.length > 0) { + if (eslint && eslintStatic) { + console.log('\nšŸ“ Running ESLint to compare files...'); + + const results = await eslint.lintFiles( + fileComparisonJobs.map((job) => job.expectedTempFile), + ); + await eslintStatic.outputFixes(results); + } + + for (const job of fileComparisonJobs) { + const expectedContent = await fs.promises.readFile( + job.expectedTempFile, + 'utf8', + ); + const actualContent = await fs.promises.readFile( + job.actualFile, + 'utf8', + ); + + if (expectedContent === actualContent) { + console.log( + `āœ… ${job.baseFileName}-method-action-types.ts is up to date`, + ); + } else { + console.error( + `āŒ ${job.baseFileName}-method-action-types.ts is out of date`, + ); + hasErrors = true; + } + } + } + } finally { + for (const job of fileComparisonJobs) { + try { + await fs.promises.unlink(job.expectedTempFile); + } catch { + // Ignore cleanup errors + } + } + } + + if (hasErrors) { + console.error('\nšŸ’„ Some action type files are out of date or missing.'); + console.error( + 'Run `yarn generate-method-action-types --fix` to update them.', + ); + globalThis.process.exitCode = 1; + } else { + console.log('\nšŸŽ‰ All action type files are up to date!'); + } +} diff --git a/packages/messenger-generate-action-types/src/cli.ts b/packages/messenger-generate-action-types/src/cli.ts new file mode 100644 index 00000000000..53cd3c8841b --- /dev/null +++ b/packages/messenger-generate-action-types/src/cli.ts @@ -0,0 +1,115 @@ +#!/usr/bin/env node + +import yargs from 'yargs'; + +import { checkActionTypesFiles } from './check'; +import { generateAllActionTypesFiles } from './fix'; +import { findControllersWithExposedMethods } from './parse-controller'; + +type CommandLineArguments = { + check: boolean; + fix: boolean; + controllerPath: string; +}; + +/** + * Uses `yargs` to parse the arguments given to the script. + * + * @returns The command line arguments. + */ +async function parseCommandLineArguments(): Promise { + const { + check, + fix, + path: controllerPath, + } = await yargs(globalThis.process.argv.slice(2)) + .command( + '$0 [path]', + 'Generate method action types for a controller messenger', + (yargsInstance) => { + yargsInstance.positional('path', { + type: 'string', + description: 'Path to the folder where controllers are located', + default: 'src', + }); + }, + ) + .option('check', { + type: 'boolean', + description: 'Check if generated action type files are up to date', + default: false, + }) + .option('fix', { + type: 'boolean', + description: 'Generate/update action type files', + default: false, + }) + .help() + .check((argv) => { + if (!argv.check && !argv.fix) { + throw new Error('Either --check or --fix must be provided.\n'); + } + return true; + }).argv; + + return { + check, + fix, + controllerPath: controllerPath as string, + }; +} + +/** + * Attempt to load ESLint from the current project. Returns null if unavailable. + * + * @returns An object with an ESLint instance and the ESLint class, or null values. + */ +async function loadESLint(): Promise<{ + eslint: InstanceType | null; + eslintStatic: typeof import('eslint').ESLint | null; +}> { + try { + const { ESLint } = await import('eslint'); + const eslint = new ESLint({ + fix: true, + errorOnUnmatchedPattern: false, + }); + return { eslint, eslintStatic: ESLint }; + } catch { + return { eslint: null, eslintStatic: null }; + } +} + +/** + * Main entry point for the CLI. + */ +async function main(): Promise { + const { fix, controllerPath } = await parseCommandLineArguments(); + + console.log('šŸ” Searching for controllers with MESSENGER_EXPOSED_METHODS...'); + + const controllers = await findControllersWithExposedMethods(controllerPath); + + if (controllers.length === 0) { + console.log('āš ļø No controllers found with MESSENGER_EXPOSED_METHODS'); + return; + } + + console.log( + `šŸ“¦ Found ${controllers.length} controller(s) with exposed methods`, + ); + + const { eslint, eslintStatic } = await loadESLint(); + + if (fix) { + await generateAllActionTypesFiles(controllers, eslint, eslintStatic); + console.log('\nšŸŽ‰ All action types generated successfully!'); + } else { + await checkActionTypesFiles(controllers, eslint, eslintStatic); + } +} + +main().catch((error) => { + console.error('āŒ Script failed:', error); + globalThis.process.exitCode = 1; +}); diff --git a/packages/messenger-generate-action-types/src/fix.test.ts b/packages/messenger-generate-action-types/src/fix.test.ts new file mode 100644 index 00000000000..91402729506 --- /dev/null +++ b/packages/messenger-generate-action-types/src/fix.test.ts @@ -0,0 +1,105 @@ +import * as fs from 'node:fs'; +import * as os from 'node:os'; +import * as path from 'node:path'; + +import { generateAllActionTypesFiles } from './fix'; +import { generateActionTypesContent } from './generate-content'; +import type { ControllerInfo } from './parse-controller'; + +describe('generateAllActionTypesFiles', () => { + let tmpDir: string; + + beforeEach(async () => { + tmpDir = await fs.promises.mkdtemp( + path.join(os.tmpdir(), 'fix-action-types-'), + ); + }); + + afterEach(async () => { + await fs.promises.rm(tmpDir, { recursive: true, force: true }); + }); + + it('generates files for controllers (no ESLint)', async () => { + const controller: ControllerInfo = { + name: 'TestController', + filePath: path.join(tmpDir, 'TestController.ts'), + exposedMethods: ['doStuff'], + methods: [{ name: 'doStuff', jsDoc: '', signature: 'doStuff' }], + }; + + const consoleSpy = jest.spyOn(console, 'log').mockImplementation(); + await generateAllActionTypesFiles([controller], null, null); + consoleSpy.mockRestore(); + + const outputFile = path.join( + tmpDir, + 'TestController-method-action-types.ts', + ); + const content = await fs.promises.readFile(outputFile, 'utf8'); + const expected = generateActionTypesContent(controller); + + expect(content).toBe(expected); + }); + + it('generates files for multiple controllers', async () => { + const controllers: ControllerInfo[] = [ + { + name: 'FooController', + filePath: path.join(tmpDir, 'FooController.ts'), + exposedMethods: ['doFoo'], + methods: [{ name: 'doFoo', jsDoc: '', signature: 'doFoo' }], + }, + { + name: 'BarService', + filePath: path.join(tmpDir, 'BarService.ts'), + exposedMethods: ['doBar'], + methods: [{ name: 'doBar', jsDoc: '', signature: 'doBar' }], + }, + ]; + + const consoleSpy = jest.spyOn(console, 'log').mockImplementation(); + await generateAllActionTypesFiles(controllers, null, null); + consoleSpy.mockRestore(); + + const fooFile = path.join(tmpDir, 'FooController-method-action-types.ts'); + const barFile = path.join(tmpDir, 'BarService-method-action-types.ts'); + + const fooContent = await fs.promises.readFile(fooFile, 'utf8'); + const barContent = await fs.promises.readFile(barFile, 'utf8'); + + expect(fooContent).toContain('FooController'); + expect(barContent).toContain('BarService'); + }); + + it('invokes ESLint when provided', async () => { + const controller: ControllerInfo = { + name: 'TestController', + filePath: path.join(tmpDir, 'TestController.ts'), + exposedMethods: ['doStuff'], + methods: [{ name: 'doStuff', jsDoc: '', signature: 'doStuff' }], + }; + + const mockESLint = { + lintFiles: jest.fn().mockResolvedValue([]), + }; + + const mockESLintStatic = { + outputFixes: jest.fn().mockResolvedValue(undefined), + getErrorResults: jest.fn().mockReturnValue([]), + }; + + const consoleSpy = jest.spyOn(console, 'log').mockImplementation(); + await generateAllActionTypesFiles( + [controller], + mockESLint, + mockESLintStatic, + ); + consoleSpy.mockRestore(); + + expect(mockESLint.lintFiles).toHaveBeenCalledWith([ + path.join(tmpDir, 'TestController-method-action-types.ts'), + ]); + expect(mockESLintStatic.outputFixes).toHaveBeenCalled(); + expect(mockESLintStatic.getErrorResults).toHaveBeenCalled(); + }); +}); diff --git a/packages/messenger-generate-action-types/src/fix.ts b/packages/messenger-generate-action-types/src/fix.ts new file mode 100644 index 00000000000..22fcf020453 --- /dev/null +++ b/packages/messenger-generate-action-types/src/fix.ts @@ -0,0 +1,60 @@ +import * as fs from 'node:fs'; +import * as path from 'node:path'; + +import { generateActionTypesContent } from './generate-content'; +import type { ControllerInfo } from './parse-controller'; + +type ESLintInstance = { + lintFiles(files: string[]): Promise<{ output?: string; filePath: string }[]>; +}; + +type ESLintStatic = { + outputFixes(results: { output?: string; filePath: string }[]): Promise; + getErrorResults( + results: { output?: string; filePath: string }[], + ): { output?: string; filePath: string }[]; +}; + +/** + * Generates action types files for all controllers. + * + * @param controllers - Array of controller information objects. + * @param eslint - The ESLint instance to use for formatting. + * @param eslintStatic - The ESLint class for static methods. + */ +export async function generateAllActionTypesFiles( + controllers: ControllerInfo[], + eslint: ESLintInstance | null, + eslintStatic: ESLintStatic | null, +): Promise { + const outputFiles: string[] = []; + + for (const controller of controllers) { + console.log(`\nšŸ”§ Processing ${controller.name}...`); + const outputDir = path.dirname(controller.filePath); + const baseFileName = path.basename(controller.filePath, '.ts'); + const outputFile = path.join( + outputDir, + `${baseFileName}-method-action-types.ts`, + ); + + const generatedContent = generateActionTypesContent(controller); + await fs.promises.writeFile(outputFile, generatedContent, 'utf8'); + outputFiles.push(outputFile); + console.log(`āœ… Generated action types for ${controller.name}`); + } + + if (outputFiles.length > 0 && eslint && eslintStatic) { + console.log('\nšŸ“ Running ESLint on generated files...'); + + const results = await eslint.lintFiles(outputFiles); + await eslintStatic.outputFixes(results); + const errors = eslintStatic.getErrorResults(results); + if (errors.length > 0) { + console.error('āŒ ESLint errors:', errors); + globalThis.process.exitCode = 1; + } else { + console.log('āœ… ESLint formatting applied'); + } + } +} diff --git a/packages/messenger-generate-action-types/src/generate-content.test.ts b/packages/messenger-generate-action-types/src/generate-content.test.ts new file mode 100644 index 00000000000..4a6bb33a132 --- /dev/null +++ b/packages/messenger-generate-action-types/src/generate-content.test.ts @@ -0,0 +1,86 @@ +import { generateActionTypesContent } from './generate-content'; +import type { ControllerInfo } from './parse-controller'; + +describe('generateActionTypesContent', () => { + it('generates action types for a controller with one method', () => { + const controller: ControllerInfo = { + name: 'FooController', + filePath: '/some/path/FooController.ts', + exposedMethods: ['doSomething'], + methods: [ + { + name: 'doSomething', + jsDoc: '', + signature: 'doSomething', + }, + ], + }; + + const result = generateActionTypesContent(controller); + + expect(result).toContain( + 'This file is auto generated by `@metamask/messenger-generate-action-types`.', + ); + expect(result).toContain( + "import type { FooController } from './FooController';", + ); + expect(result).toContain('export type FooControllerDoSomethingAction = {'); + expect(result).toContain('type: `FooController:doSomething`;'); + expect(result).toContain("handler: FooController['doSomething'];"); + expect(result).toContain( + 'export type FooControllerMethodActions = FooControllerDoSomethingAction;', + ); + }); + + it('generates action types for a controller with multiple methods', () => { + const controller: ControllerInfo = { + name: 'BarController', + filePath: '/some/path/BarController.ts', + exposedMethods: ['methodA', 'methodB'], + methods: [ + { name: 'methodA', jsDoc: '', signature: 'methodA' }, + { name: 'methodB', jsDoc: '', signature: 'methodB' }, + ], + }; + + const result = generateActionTypesContent(controller); + + expect(result).toContain('export type BarControllerMethodAAction = {'); + expect(result).toContain('export type BarControllerMethodBAction = {'); + expect(result).toContain( + 'export type BarControllerMethodActions = BarControllerMethodAAction | BarControllerMethodBAction;', + ); + }); + + it('includes JSDoc comments when present', () => { + const controller: ControllerInfo = { + name: 'FooController', + filePath: '/some/path/FooController.ts', + exposedMethods: ['doSomething'], + methods: [ + { + name: 'doSomething', + jsDoc: '/**\n * Does something.\n */', + signature: 'doSomething', + }, + ], + }; + + const result = generateActionTypesContent(controller); + + expect(result).toContain('/**\n * Does something.\n */'); + }); + + it('generates no union type for controllers with no methods', () => { + const controller: ControllerInfo = { + name: 'EmptyController', + filePath: '/some/path/EmptyController.ts', + exposedMethods: [], + methods: [], + }; + + const result = generateActionTypesContent(controller); + + expect(result).not.toContain('EmptyControllerMethodActions'); + }); +}); diff --git a/packages/messenger-generate-action-types/src/generate-content.ts b/packages/messenger-generate-action-types/src/generate-content.ts new file mode 100644 index 00000000000..cfaabf056b0 --- /dev/null +++ b/packages/messenger-generate-action-types/src/generate-content.ts @@ -0,0 +1,61 @@ +import * as path from 'node:path'; + +import type { ControllerInfo } from './parse-controller'; + +/** + * Capitalizes the first letter of a string. + * + * @param str - The string to capitalize. + * @returns The capitalized string. + */ +function capitalize(str: string): string { + return str.charAt(0).toUpperCase() + str.slice(1); +} + +/** + * Generates the content for the action types file. + * + * @param controller - The controller information object. + * @returns The content for the action types file. + */ +export function generateActionTypesContent(controller: ControllerInfo): string { + const baseFileName = path.basename(controller.filePath, '.ts'); + const controllerImportPath = `./${baseFileName}`; + + let content = `/** + * This file is auto generated by \`@metamask/messenger-generate-action-types\`. + * Do not edit manually. + */ + +import type { ${controller.name} } from '${controllerImportPath}'; + +`; + + const actionTypeNames: string[] = []; + + for (const method of controller.methods) { + const actionTypeName = `${controller.name}${capitalize(method.name)}Action`; + const actionString = `${controller.name}:${method.name}`; + + actionTypeNames.push(actionTypeName); + + if (method.jsDoc) { + content += `${method.jsDoc}\n`; + } + + content += `export type ${actionTypeName} = { + type: \`${actionString}\`; + handler: ${controller.name}['${method.name}']; +};\n\n`; + } + + if (actionTypeNames.length > 0) { + const unionTypeName = `${controller.name}MethodActions`; + content += `/** + * Union of all ${controller.name} action types. + */ +export type ${unionTypeName} = ${actionTypeNames.join(' | ')};\n`; + } + + return `${content.trimEnd()}\n`; +} diff --git a/packages/messenger-generate-action-types/src/index.ts b/packages/messenger-generate-action-types/src/index.ts new file mode 100644 index 00000000000..c860201b902 --- /dev/null +++ b/packages/messenger-generate-action-types/src/index.ts @@ -0,0 +1,8 @@ +export { checkActionTypesFiles } from './check'; +export { generateAllActionTypesFiles } from './fix'; +export { generateActionTypesContent } from './generate-content'; +export type { ControllerInfo, MethodInfo } from './parse-controller'; +export { + findControllersWithExposedMethods, + parseControllerFile, +} from './parse-controller'; diff --git a/packages/messenger-generate-action-types/src/parse-controller.test.ts b/packages/messenger-generate-action-types/src/parse-controller.test.ts new file mode 100644 index 00000000000..1f684422dea --- /dev/null +++ b/packages/messenger-generate-action-types/src/parse-controller.test.ts @@ -0,0 +1,206 @@ +import * as fs from 'node:fs'; +import * as os from 'node:os'; +import * as path from 'node:path'; + +import { + findControllersWithExposedMethods, + parseControllerFile, +} from './parse-controller'; + +describe('parseControllerFile', () => { + let tmpDir: string; + + beforeEach(async () => { + tmpDir = await fs.promises.mkdtemp( + path.join(os.tmpdir(), 'parse-controller-'), + ); + }); + + afterEach(async () => { + await fs.promises.rm(tmpDir, { recursive: true, force: true }); + }); + + it('extracts controller info from a file with MESSENGER_EXPOSED_METHODS', async () => { + const controllerFile = path.join(tmpDir, 'TestController.ts'); + await fs.promises.writeFile( + controllerFile, + ` +const MESSENGER_EXPOSED_METHODS = ['doStuff'] as const; + +class TestController { + /** + * Does stuff. + */ + doStuff() { + return true; + } +} +`, + 'utf8', + ); + + const result = await parseControllerFile(controllerFile); + + expect(result).toStrictEqual({ + name: 'TestController', + filePath: controllerFile, + exposedMethods: ['doStuff'], + methods: [ + { + name: 'doStuff', + jsDoc: '/**\n * Does stuff.\n */', + signature: 'doStuff', + }, + ], + }); + }); + + it('returns null for a file without MESSENGER_EXPOSED_METHODS', async () => { + const controllerFile = path.join(tmpDir, 'NoExposed.ts'); + await fs.promises.writeFile( + controllerFile, + ` +class NoExposedController { + doStuff() { + return true; + } +} +`, + 'utf8', + ); + + const result = await parseControllerFile(controllerFile); + + expect(result).toBeNull(); + }); + + it('returns null for a file with empty MESSENGER_EXPOSED_METHODS', async () => { + const controllerFile = path.join(tmpDir, 'EmptyController.ts'); + await fs.promises.writeFile( + controllerFile, + ` +const MESSENGER_EXPOSED_METHODS = [] as const; + +class EmptyController { + doStuff() { + return true; + } +} +`, + 'utf8', + ); + + const result = await parseControllerFile(controllerFile); + + expect(result).toBeNull(); + }); + + it('handles array literals without as const', async () => { + const controllerFile = path.join(tmpDir, 'PlainArrayController.ts'); + await fs.promises.writeFile( + controllerFile, + ` +const MESSENGER_EXPOSED_METHODS = ['doStuff']; + +class PlainArrayController { + doStuff() { + return true; + } +} +`, + 'utf8', + ); + + const result = await parseControllerFile(controllerFile); + + expect(result).not.toBeNull(); + expect(result?.exposedMethods).toStrictEqual(['doStuff']); + }); + + it('works with Service class names', async () => { + const serviceFile = path.join(tmpDir, 'TestService.ts'); + await fs.promises.writeFile( + serviceFile, + ` +const MESSENGER_EXPOSED_METHODS = ['fetchData'] as const; + +class TestService { + fetchData() { + return []; + } +} +`, + 'utf8', + ); + + const result = await parseControllerFile(serviceFile); + + expect(result).not.toBeNull(); + expect(result?.name).toBe('TestService'); + }); +}); + +describe('findControllersWithExposedMethods', () => { + let tmpDir: string; + + beforeEach(async () => { + tmpDir = await fs.promises.mkdtemp( + path.join(os.tmpdir(), 'find-controllers-'), + ); + }); + + afterEach(async () => { + await fs.promises.rm(tmpDir, { recursive: true, force: true }); + }); + + it('finds controllers with MESSENGER_EXPOSED_METHODS in a directory', async () => { + await fs.promises.writeFile( + path.join(tmpDir, 'FooController.ts'), + ` +const MESSENGER_EXPOSED_METHODS = ['doFoo'] as const; +class FooController { + doFoo() { return 'foo'; } +} +`, + 'utf8', + ); + + await fs.promises.writeFile( + path.join(tmpDir, 'BarController.ts'), + ` +class BarController { + doBar() { return 'bar'; } +} +`, + 'utf8', + ); + + const result = await findControllersWithExposedMethods(tmpDir); + + expect(result).toHaveLength(1); + expect(result[0].name).toBe('FooController'); + }); + + it('skips test files', async () => { + await fs.promises.writeFile( + path.join(tmpDir, 'FooController.test.ts'), + ` +const MESSENGER_EXPOSED_METHODS = ['doFoo'] as const; +class FooController { + doFoo() { return 'foo'; } +} +`, + 'utf8', + ); + + const result = await findControllersWithExposedMethods(tmpDir); + + expect(result).toHaveLength(0); + }); + + it('throws an error when the path is not a directory', async () => { + await expect( + findControllersWithExposedMethods('/nonexistent/path'), + ).rejects.toThrow('The specified path is not a directory'); + }); +}); diff --git a/packages/messenger-generate-action-types/src/parse-controller.ts b/packages/messenger-generate-action-types/src/parse-controller.ts new file mode 100644 index 00000000000..f6fc8cba557 --- /dev/null +++ b/packages/messenger-generate-action-types/src/parse-controller.ts @@ -0,0 +1,421 @@ +import { assert, hasProperty, isObject } from '@metamask/utils'; +import * as fs from 'node:fs'; +import * as path from 'node:path'; +import type { + ArrayLiteralExpression, + ClassDeclaration, + Identifier, + MethodDeclaration, + Node as TSNode, + Program, + SourceFile, + Type, +} from 'typescript'; +import { + ScriptTarget, + createProgram, + createSourceFile, + findConfigFile, + forEachChild, + getJSDocCommentsAndTags, + isArrayLiteralExpression, + isAsExpression, + isClassDeclaration, + isIdentifier, + isJSDoc, + isMethodDeclaration, + isStringLiteral, + isVariableStatement, + parseJsonConfigFileContent, + readConfigFile, + sys, +} from 'typescript'; + +export type MethodInfo = { + name: string; + jsDoc: string; + signature: string; +}; + +export type ControllerInfo = { + name: string; + filePath: string; + exposedMethods: string[]; + methods: MethodInfo[]; +}; + +type VisitorContext = { + exposedMethods: string[]; + className: string; + methods: MethodInfo[]; + sourceFile: SourceFile; +}; + +/** + * Extracts JSDoc comment from a method declaration. + * + * @param node - The method declaration node. + * @param source - The source file. + * @returns The JSDoc comment. + */ +function extractJSDoc(node: MethodDeclaration, source: SourceFile): string { + const jsDocTags = getJSDocCommentsAndTags(node); + if (jsDocTags.length === 0) { + return ''; + } + + const jsDoc = jsDocTags[0]; + if (isJSDoc(jsDoc)) { + const fullText = source.getFullText(); + const start = jsDoc.getFullStart(); + const end = jsDoc.getEnd(); + const rawJsDoc = fullText.substring(start, end).trim(); + return formatJSDoc(rawJsDoc); + } + + return ''; +} + +/** + * Formats JSDoc comments to have consistent indentation for the generated file. + * + * @param rawJsDoc - The raw JSDoc comment from the source. + * @returns The formatted JSDoc comment. + */ +function formatJSDoc(rawJsDoc: string): string { + const lines = rawJsDoc.split('\n'); + const formattedLines: string[] = []; + + for (let i = 0; i < lines.length; i++) { + const line = lines[i]; + if (i === 0) { + formattedLines.push('/**'); + } else if (i === lines.length - 1) { + formattedLines.push(' */'); + } else { + const trimmed = line.trim(); + if (trimmed.startsWith('*')) { + const content = trimmed.substring(1).trim(); + formattedLines.push(content ? ` * ${content}` : ' *'); + } else { + formattedLines.push(trimmed ? ` * ${trimmed}` : ' *'); + } + } + } + + return formattedLines.join('\n'); +} + +/** + * Extracts method signature as a string for the handler type. + * + * @param node - The method declaration node. + * @returns The method signature. + */ +function extractMethodSignature(node: MethodDeclaration): string { + return node.name ? (node.name as Identifier).text : ''; +} + +/** + * Visits AST nodes to find exposed methods and controller class. + * + * @param context - The visitor context. + * @returns A function to visit nodes. + */ +function createASTVisitor(context: VisitorContext): (node: TSNode) => void { + function visitNode(node: TSNode): void { + if (isVariableStatement(node)) { + const declaration = node.declarationList.declarations[0]; + if ( + isIdentifier(declaration.name) && + declaration.name.text === 'MESSENGER_EXPOSED_METHODS' + ) { + if (declaration.initializer) { + let arrayExpression: ArrayLiteralExpression | undefined; + + if (isArrayLiteralExpression(declaration.initializer)) { + arrayExpression = declaration.initializer; + } else if ( + isAsExpression(declaration.initializer) && + isArrayLiteralExpression(declaration.initializer.expression) + ) { + arrayExpression = declaration.initializer.expression; + } + + if (arrayExpression) { + context.exposedMethods = arrayExpression.elements + .filter(isStringLiteral) + .map((element) => element.text); + } + } + } + } + + if (isClassDeclaration(node) && node.name) { + const classText = node.name.text; + if (classText.includes('Controller') || classText.includes('Service')) { + context.className = classText; + + const seenMethods = new Set(); + for (const member of node.members) { + if ( + isMethodDeclaration(member) && + member.name && + isIdentifier(member.name) + ) { + const methodName = member.name.text; + if ( + context.exposedMethods.includes(methodName) && + !seenMethods.has(methodName) + ) { + seenMethods.add(methodName); + const jsDoc = extractJSDoc(member, context.sourceFile); + const signature = extractMethodSignature(member); + context.methods.push({ + name: methodName, + jsDoc, + signature, + }); + } + } + } + } + } + + forEachChild(node, visitNode); + } + + return visitNode; +} + +/** + * Create a TypeScript program for the given file by locating the nearest + * tsconfig.json. + * + * @param filePath - Absolute path to the source file. + * @returns A TypeScript program, or null if no tsconfig was found. + */ +function createProgramForFile(filePath: string): Program | null { + const configPath = findConfigFile( + path.dirname(filePath), + sys.fileExists.bind(sys), + 'tsconfig.json', + ); + if (!configPath) { + return null; + } + + const { config, error } = readConfigFile(configPath, sys.readFile.bind(sys)); + + if (error) { + return null; + } + + const parsedConfig = parseJsonConfigFileContent( + config, + sys, + path.dirname(configPath), + ); + + return createProgram({ + rootNames: parsedConfig.fileNames, + options: parsedConfig.options, + }); +} + +/** + * Find a class declaration with the given name in a source file. + * + * @param source - The source file to search. + * @param className - The class name to look for. + * @returns The class declaration node, or null if not found. + */ +function findClassInSourceFile( + source: SourceFile, + className: string, +): ClassDeclaration | null { + return ( + source.statements.find( + (node): node is ClassDeclaration => + isClassDeclaration(node) && node.name?.text === className, + ) ?? null + ); +} + +/** + * Search through the class hierarchy of a TypeScript type to find the + * declaration of a method with the given name. + * + * @param classType - The class type to search. + * @param methodName - The method name to look for. + * @returns The method declaration node, or null if not found. + */ +function findMethodInHierarchy( + classType: Type, + methodName: string, +): MethodDeclaration | null { + const symbol = classType.getProperty(methodName); + if (!symbol) { + return null; + } + + const declarations = symbol.getDeclarations(); + if (!declarations) { + return null; + } + + for (const declaration of declarations) { + if (isMethodDeclaration(declaration)) { + return declaration; + } + } + + return null; +} + +/** + * Check if a path is a directory. + * + * @param pathValue - The path to check. + * @returns True if the path is a directory, false otherwise. + */ +async function isDirectory(pathValue: string): Promise { + try { + const stats = await fs.promises.stat(pathValue); + return stats.isDirectory(); + } catch (error) { + if ( + isObject(error) && + hasProperty(error, 'code') && + error.code === 'ENOENT' + ) { + return false; + } + + throw error; + } +} + +/** + * Parses a controller file to extract exposed methods and their metadata. + * + * @param filePath - Path to the controller file to parse. + * @returns Controller information or null if parsing fails. + */ +export async function parseControllerFile( + filePath: string, +): Promise { + try { + const content = await fs.promises.readFile(filePath, 'utf8'); + const source = createSourceFile( + filePath, + content, + ScriptTarget.Latest, + true, + ); + + const context: VisitorContext = { + exposedMethods: [], + className: '', + methods: [], + sourceFile: source, + }; + + createASTVisitor(context)(source); + + if (context.exposedMethods.length === 0 || !context.className) { + return null; + } + + const foundMethodNames = new Set( + context.methods.map((method) => method.name), + ); + + const inheritedMethodNames = context.exposedMethods.filter( + (name) => !foundMethodNames.has(name), + ); + + if (inheritedMethodNames.length > 0) { + const program = createProgramForFile(filePath); + const checker = program?.getTypeChecker(); + const programSourceFile = program?.getSourceFile(filePath); + + assert( + checker, + `Type checker could not be created for "${filePath}". Ensure a valid tsconfig.json is present.`, + ); + + assert( + programSourceFile, + `Source file "${filePath}" not found in program.`, + ); + + const classNode = findClassInSourceFile( + programSourceFile, + context.className, + ); + + assert( + classNode, + `Class "${context.className}" not found in "${filePath}".`, + ); + + const classType = checker.getTypeAtLocation(classNode); + for (const methodName of inheritedMethodNames) { + const methodDeclaration = findMethodInHierarchy(classType, methodName); + + const jsDoc = methodDeclaration + ? extractJSDoc(methodDeclaration, methodDeclaration.getSourceFile()) + : ''; + context.methods.push({ name: methodName, jsDoc, signature: '' }); + } + } + + return { + name: context.className, + filePath, + exposedMethods: context.exposedMethods, + methods: context.methods, + }; + } catch (error) { + console.error(`Error parsing ${filePath}:`, error); + return null; + } +} + +/** + * Finds all controller files that have MESSENGER_EXPOSED_METHODS constants. + * + * @param controllerPath - Path to the folder where controllers are located. + * @returns A list of controller information objects. + */ +export async function findControllersWithExposedMethods( + controllerPath: string, +): Promise { + const srcPath = path.resolve(globalThis.process.cwd(), controllerPath); + const controllers: ControllerInfo[] = []; + + if (!(await isDirectory(srcPath))) { + throw new Error(`The specified path is not a directory: ${srcPath}`); + } + + const srcFiles = await fs.promises.readdir(srcPath); + + for (const file of srcFiles) { + if (!file.endsWith('.ts') || file.endsWith('.test.ts')) { + continue; + } + + const filePath = path.join(srcPath, file); + const content = await fs.promises.readFile(filePath, 'utf8'); + + if (content.includes('MESSENGER_EXPOSED_METHODS')) { + const controllerInfo = await parseControllerFile(filePath); + if (controllerInfo) { + controllers.push(controllerInfo); + } + } + } + + return controllers; +} diff --git a/packages/messenger-generate-action-types/tsconfig.build.json b/packages/messenger-generate-action-types/tsconfig.build.json new file mode 100644 index 00000000000..02a0eea03fe --- /dev/null +++ b/packages/messenger-generate-action-types/tsconfig.build.json @@ -0,0 +1,10 @@ +{ + "extends": "../../tsconfig.packages.build.json", + "compilerOptions": { + "baseUrl": "./", + "outDir": "./dist", + "rootDir": "./src" + }, + "references": [], + "include": ["../../types", "./src"] +} diff --git a/packages/messenger-generate-action-types/tsconfig.json b/packages/messenger-generate-action-types/tsconfig.json new file mode 100644 index 00000000000..025ba2ef7f4 --- /dev/null +++ b/packages/messenger-generate-action-types/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfig.packages.json", + "compilerOptions": { + "baseUrl": "./" + }, + "references": [], + "include": ["../../types", "./src"] +} diff --git a/packages/messenger-generate-action-types/typedoc.json b/packages/messenger-generate-action-types/typedoc.json new file mode 100644 index 00000000000..c9da015dbf8 --- /dev/null +++ b/packages/messenger-generate-action-types/typedoc.json @@ -0,0 +1,7 @@ +{ + "entryPoints": ["./src/index.ts"], + "excludePrivate": true, + "hideGenerator": true, + "out": "docs", + "tsconfig": "./tsconfig.build.json" +} diff --git a/packages/multichain-account-service/package.json b/packages/multichain-account-service/package.json index beab7a520f0..70d118629c1 100644 --- a/packages/multichain-account-service/package.json +++ b/packages/multichain-account-service/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/multichain-account-service", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/multichain-account-service", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -71,6 +71,7 @@ "@metamask/account-api": "^1.0.0", "@metamask/auto-changelog": "^3.4.4", "@metamask/eth-hd-keyring": "^13.0.0", + "@metamask/messenger-generate-action-types": "^0.0.0", "@metamask/providers": "^22.1.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", diff --git a/packages/multichain-account-service/src/MultichainAccountService-method-action-types.ts b/packages/multichain-account-service/src/MultichainAccountService-method-action-types.ts index fffb94f7f25..b25e18f20b4 100644 --- a/packages/multichain-account-service/src/MultichainAccountService-method-action-types.ts +++ b/packages/multichain-account-service/src/MultichainAccountService-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/name-controller/package.json b/packages/name-controller/package.json index 2251b8b1ff6..5fc93ee8d39 100644 --- a/packages/name-controller/package.json +++ b/packages/name-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/name-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/name-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "prepare-manifest:preview": "../../scripts/prepare-preview-manifest.sh", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", @@ -57,6 +57,7 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/name-controller/src/NameController-method-action-types.ts b/packages/name-controller/src/NameController-method-action-types.ts index 5990d7a2618..87a92c5dc64 100644 --- a/packages/name-controller/src/NameController-method-action-types.ts +++ b/packages/name-controller/src/NameController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/network-enablement-controller/package.json b/packages/network-enablement-controller/package.json index 793427e3248..cb74b7ab038 100644 --- a/packages/network-enablement-controller/package.json +++ b/packages/network-enablement-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/network-enablement-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/network-enablement-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -61,6 +61,7 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/network-enablement-controller/src/NetworkEnablementController-method-action-types.ts b/packages/network-enablement-controller/src/NetworkEnablementController-method-action-types.ts index 293f2623e5a..d945b6ccb0b 100644 --- a/packages/network-enablement-controller/src/NetworkEnablementController-method-action-types.ts +++ b/packages/network-enablement-controller/src/NetworkEnablementController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/notification-services-controller/package.json b/packages/notification-services-controller/package.json index df8c28fbd01..ed7fe5e3db0 100644 --- a/packages/notification-services-controller/package.json +++ b/packages/notification-services-controller/package.json @@ -93,8 +93,8 @@ "changelog:update": "../../scripts/update-changelog.sh @metamask/notification-services-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/notification-services-controller", "generate-method-action-types": "yarn generate-method-action-types:notifications-services-controller \"$@\" && yarn generate-method-action-types:notifications-services-push-controller \"$@\"", - "generate-method-action-types:notifications-services-controller": "tsx ../../scripts/generate-method-action-types.ts src/NotificationServicesController", - "generate-method-action-types:notifications-services-push-controller": "tsx ../../scripts/generate-method-action-types.ts src/NotificationServicesPushController", + "generate-method-action-types:notifications-services-controller": "messenger-generate-action-types src/NotificationServicesController", + "generate-method-action-types:notifications-services-push-controller": "messenger-generate-action-types src/NotificationServicesPushController", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -120,6 +120,7 @@ "@lavamoat/allow-scripts": "^3.0.4", "@lavamoat/preinstall-always-fail": "^2.1.0", "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "@types/lodash": "^4.14.191", diff --git a/packages/notification-services-controller/src/NotificationServicesController/NotificationServicesController-method-action-types.ts b/packages/notification-services-controller/src/NotificationServicesController/NotificationServicesController-method-action-types.ts index 7f89067973a..a23a98df61e 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/NotificationServicesController-method-action-types.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/NotificationServicesController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/notification-services-controller/src/NotificationServicesPushController/NotificationServicesPushController-method-action-types.ts b/packages/notification-services-controller/src/NotificationServicesPushController/NotificationServicesPushController-method-action-types.ts index 0dae43eb522..731f1dad39c 100644 --- a/packages/notification-services-controller/src/NotificationServicesPushController/NotificationServicesPushController-method-action-types.ts +++ b/packages/notification-services-controller/src/NotificationServicesPushController/NotificationServicesPushController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/permission-controller/package.json b/packages/permission-controller/package.json index 352abd393b3..53c39c1e7b2 100644 --- a/packages/permission-controller/package.json +++ b/packages/permission-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/permission-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/permission-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -62,6 +62,7 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/permission-controller/src/PermissionController-method-action-types.ts b/packages/permission-controller/src/PermissionController-method-action-types.ts index b434f719e89..42106f15954 100644 --- a/packages/permission-controller/src/PermissionController-method-action-types.ts +++ b/packages/permission-controller/src/PermissionController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/permission-controller/src/SubjectMetadataController-method-action-types.ts b/packages/permission-controller/src/SubjectMetadataController-method-action-types.ts index 2d5608af6e3..d5ca7b83f2a 100644 --- a/packages/permission-controller/src/SubjectMetadataController-method-action-types.ts +++ b/packages/permission-controller/src/SubjectMetadataController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/permission-log-controller/package.json b/packages/permission-log-controller/package.json index 080c73294d3..db1c4d677d5 100644 --- a/packages/permission-log-controller/package.json +++ b/packages/permission-log-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/permission-log-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/permission-log-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -55,6 +55,7 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/deep-freeze-strict": "^1.1.0", "@types/jest": "^29.5.14", diff --git a/packages/permission-log-controller/src/PermissionLogController-method-action-types.ts b/packages/permission-log-controller/src/PermissionLogController-method-action-types.ts index d4d6a321218..1a322daf2dc 100644 --- a/packages/permission-log-controller/src/PermissionLogController-method-action-types.ts +++ b/packages/permission-log-controller/src/PermissionLogController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/preferences-controller/package.json b/packages/preferences-controller/package.json index 208ec3b1129..0166e3617fe 100644 --- a/packages/preferences-controller/package.json +++ b/packages/preferences-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/preferences-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/preferences-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -53,6 +53,7 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@metamask/utils": "^11.9.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", diff --git a/packages/preferences-controller/src/PreferencesController-method-action-types.ts b/packages/preferences-controller/src/PreferencesController-method-action-types.ts index 48a135c6ad5..2cd4cf1583e 100644 --- a/packages/preferences-controller/src/PreferencesController-method-action-types.ts +++ b/packages/preferences-controller/src/PreferencesController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/profile-metrics-controller/package.json b/packages/profile-metrics-controller/package.json index b9c164464dc..0b28b1e810a 100644 --- a/packages/profile-metrics-controller/package.json +++ b/packages/profile-metrics-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/profile-metrics-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/profile-metrics-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -62,6 +62,7 @@ "devDependencies": { "@metamask/auto-changelog": "^3.4.4", "@metamask/keyring-internal-api": "^10.0.0", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/profile-metrics-controller/src/ProfileMetricsController-method-action-types.ts b/packages/profile-metrics-controller/src/ProfileMetricsController-method-action-types.ts index 81589990bb8..db3faea8dd4 100644 --- a/packages/profile-metrics-controller/src/ProfileMetricsController-method-action-types.ts +++ b/packages/profile-metrics-controller/src/ProfileMetricsController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/profile-metrics-controller/src/ProfileMetricsService-method-action-types.ts b/packages/profile-metrics-controller/src/ProfileMetricsService-method-action-types.ts index 7d84bb447ab..30b765281e6 100644 --- a/packages/profile-metrics-controller/src/ProfileMetricsService-method-action-types.ts +++ b/packages/profile-metrics-controller/src/ProfileMetricsService-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/profile-sync-controller/package.json b/packages/profile-sync-controller/package.json index 5e745e4a093..b74b2d9a854 100644 --- a/packages/profile-sync-controller/package.json +++ b/packages/profile-sync-controller/package.json @@ -94,8 +94,8 @@ "changelog:update": "../../scripts/update-changelog.sh @metamask/profile-sync-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/profile-sync-controller", "generate-method-action-types": "yarn generate-method-action-types:authentication \"$@\" && yarn generate-method-action-types:user-storage \"$@\"", - "generate-method-action-types:authentication": "tsx ../../scripts/generate-method-action-types.ts src/controllers/authentication", - "generate-method-action-types:user-storage": "tsx ../../scripts/generate-method-action-types.ts src/controllers/user-storage", + "generate-method-action-types:authentication": "messenger-generate-action-types src/controllers/authentication", + "generate-method-action-types:user-storage": "messenger-generate-action-types src/controllers/user-storage", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -123,6 +123,7 @@ "@metamask/auto-changelog": "^3.4.4", "@metamask/keyring-api": "^21.6.0", "@metamask/keyring-internal-api": "^10.0.0", + "@metamask/messenger-generate-action-types": "^0.0.0", "@metamask/providers": "^22.1.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", diff --git a/packages/profile-sync-controller/src/controllers/authentication/AuthenticationController-method-action-types.ts b/packages/profile-sync-controller/src/controllers/authentication/AuthenticationController-method-action-types.ts index 9b3db73e8c5..5b42b7e61d6 100644 --- a/packages/profile-sync-controller/src/controllers/authentication/AuthenticationController-method-action-types.ts +++ b/packages/profile-sync-controller/src/controllers/authentication/AuthenticationController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/profile-sync-controller/src/controllers/user-storage/UserStorageController-method-action-types.ts b/packages/profile-sync-controller/src/controllers/user-storage/UserStorageController-method-action-types.ts index 46977986548..4e8832795bc 100644 --- a/packages/profile-sync-controller/src/controllers/user-storage/UserStorageController-method-action-types.ts +++ b/packages/profile-sync-controller/src/controllers/user-storage/UserStorageController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/ramps-controller/package.json b/packages/ramps-controller/package.json index b3470383e8d..ec26c104526 100644 --- a/packages/ramps-controller/package.json +++ b/packages/ramps-controller/package.json @@ -41,7 +41,7 @@ "changelog:update": "../../scripts/update-changelog.sh @metamask/ramps-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/ramps-controller", "dev": "node dev-watch.js", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -55,6 +55,7 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/ramps-controller/src/RampsController-method-action-types.ts b/packages/ramps-controller/src/RampsController-method-action-types.ts index e1bccd50175..43841e8d5f5 100644 --- a/packages/ramps-controller/src/RampsController-method-action-types.ts +++ b/packages/ramps-controller/src/RampsController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/ramps-controller/src/RampsService-method-action-types.ts b/packages/ramps-controller/src/RampsService-method-action-types.ts index 2d9acd03527..e0625416ef0 100644 --- a/packages/ramps-controller/src/RampsService-method-action-types.ts +++ b/packages/ramps-controller/src/RampsService-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/ramps-controller/src/TransakService-method-action-types.ts b/packages/ramps-controller/src/TransakService-method-action-types.ts index 78a3e64d410..ce36522f06a 100644 --- a/packages/ramps-controller/src/TransakService-method-action-types.ts +++ b/packages/ramps-controller/src/TransakService-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/remote-feature-flag-controller/package.json b/packages/remote-feature-flag-controller/package.json index 44ed625483c..08811eacccc 100644 --- a/packages/remote-feature-flag-controller/package.json +++ b/packages/remote-feature-flag-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/remote-feature-flag-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/remote-feature-flag-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -57,6 +57,7 @@ "devDependencies": { "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/remote-feature-flag-controller/src/remote-feature-flag-controller-method-action-types.ts b/packages/remote-feature-flag-controller/src/remote-feature-flag-controller-method-action-types.ts index ac01480adf5..2fb9138d8f0 100644 --- a/packages/remote-feature-flag-controller/src/remote-feature-flag-controller-method-action-types.ts +++ b/packages/remote-feature-flag-controller/src/remote-feature-flag-controller-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/sample-controllers/package.json b/packages/sample-controllers/package.json index a9c010afe2a..2c53a9494bf 100644 --- a/packages/sample-controllers/package.json +++ b/packages/sample-controllers/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/sample-controllers", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/sample-controllers", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -56,6 +56,7 @@ "devDependencies": { "@metamask/auto-changelog": "^3.4.4", "@metamask/controller-utils": "^11.19.0", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/sample-controllers/src/sample-gas-prices-controller-method-action-types.ts b/packages/sample-controllers/src/sample-gas-prices-controller-method-action-types.ts index ac64a1ed661..ed8be128aee 100644 --- a/packages/sample-controllers/src/sample-gas-prices-controller-method-action-types.ts +++ b/packages/sample-controllers/src/sample-gas-prices-controller-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/sample-controllers/src/sample-petnames-controller-method-action-types.ts b/packages/sample-controllers/src/sample-petnames-controller-method-action-types.ts index 1efce10c161..287b9fe3bd7 100644 --- a/packages/sample-controllers/src/sample-petnames-controller-method-action-types.ts +++ b/packages/sample-controllers/src/sample-petnames-controller-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/seedless-onboarding-controller/package.json b/packages/seedless-onboarding-controller/package.json index 4850d487bc4..00f114fcd43 100644 --- a/packages/seedless-onboarding-controller/package.json +++ b/packages/seedless-onboarding-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/seedless-onboarding-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/seedless-onboarding-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -64,6 +64,7 @@ "@lavamoat/allow-scripts": "^3.0.4", "@lavamoat/preinstall-always-fail": "^2.1.0", "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/elliptic": "^6", "@types/jest": "^29.5.14", diff --git a/packages/seedless-onboarding-controller/src/SeedlessOnboardingController-method-action-types.ts b/packages/seedless-onboarding-controller/src/SeedlessOnboardingController-method-action-types.ts index f63e0167656..cdde1356276 100644 --- a/packages/seedless-onboarding-controller/src/SeedlessOnboardingController-method-action-types.ts +++ b/packages/seedless-onboarding-controller/src/SeedlessOnboardingController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/selected-network-controller/package.json b/packages/selected-network-controller/package.json index 4e7abcaf3d2..29c580b5914 100644 --- a/packages/selected-network-controller/package.json +++ b/packages/selected-network-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/selected-network-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/selected-network-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -58,6 +58,7 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/selected-network-controller/src/SelectedNetworkController-method-action-types.ts b/packages/selected-network-controller/src/SelectedNetworkController-method-action-types.ts index 8f527b4bb75..1fdf2b6d2af 100644 --- a/packages/selected-network-controller/src/SelectedNetworkController-method-action-types.ts +++ b/packages/selected-network-controller/src/SelectedNetworkController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/shield-controller/package.json b/packages/shield-controller/package.json index f4d16ebe2a9..8e57b02b587 100644 --- a/packages/shield-controller/package.json +++ b/packages/shield-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/shield-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/shield-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -61,6 +61,7 @@ "@lavamoat/allow-scripts": "^3.0.4", "@lavamoat/preinstall-always-fail": "^2.1.0", "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/shield-controller/src/ShieldController-method-action-types.ts b/packages/shield-controller/src/ShieldController-method-action-types.ts index 8a2d9a7f132..154be7de653 100644 --- a/packages/shield-controller/src/ShieldController-method-action-types.ts +++ b/packages/shield-controller/src/ShieldController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/signature-controller/package.json b/packages/signature-controller/package.json index b0d9c5b92b2..519161fcba2 100644 --- a/packages/signature-controller/package.json +++ b/packages/signature-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/signature-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/signature-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -65,6 +65,7 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/signature-controller/src/SignatureController-method-action-types.ts b/packages/signature-controller/src/SignatureController-method-action-types.ts index 3c1676c0921..976d8148e1b 100644 --- a/packages/signature-controller/src/SignatureController-method-action-types.ts +++ b/packages/signature-controller/src/SignatureController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/storage-service/package.json b/packages/storage-service/package.json index 04855e95ec1..a5d919c85ab 100644 --- a/packages/storage-service/package.json +++ b/packages/storage-service/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/storage-service", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/storage-service", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -53,6 +53,7 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/storage-service/src/StorageService-method-action-types.ts b/packages/storage-service/src/StorageService-method-action-types.ts index e6a033d0249..02c41e72ac6 100644 --- a/packages/storage-service/src/StorageService-method-action-types.ts +++ b/packages/storage-service/src/StorageService-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/subscription-controller/package.json b/packages/subscription-controller/package.json index 1ebaf168c7a..367d16b3fb0 100644 --- a/packages/subscription-controller/package.json +++ b/packages/subscription-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/subscription-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/subscription-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -59,6 +59,7 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/subscription-controller/src/SubscriptionController-method-action-types.ts b/packages/subscription-controller/src/SubscriptionController-method-action-types.ts index d81456aec19..fb035398da4 100644 --- a/packages/subscription-controller/src/SubscriptionController-method-action-types.ts +++ b/packages/subscription-controller/src/SubscriptionController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/transaction-controller/package.json b/packages/transaction-controller/package.json index e46c1533f15..04081163553 100644 --- a/packages/transaction-controller/package.json +++ b/packages/transaction-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/transaction-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/transaction-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -83,6 +83,7 @@ "@metamask/eth-block-tracker": "^15.0.0", "@metamask/eth-json-rpc-provider": "^6.0.0", "@metamask/ethjs-provider-http": "^0.3.0", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/bn.js": "^5.1.5", "@types/jest": "^29.5.14", diff --git a/packages/transaction-controller/src/TransactionController-method-action-types.ts b/packages/transaction-controller/src/TransactionController-method-action-types.ts index 7dd6e81c13e..7a545cc6ad0 100644 --- a/packages/transaction-controller/src/TransactionController-method-action-types.ts +++ b/packages/transaction-controller/src/TransactionController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/transaction-pay-controller/package.json b/packages/transaction-pay-controller/package.json index 682951ed0d2..e62423bfa0d 100644 --- a/packages/transaction-pay-controller/package.json +++ b/packages/transaction-pay-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/transaction-pay-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/transaction-pay-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "prepare-manifest:preview": "../../scripts/prepare-preview-manifest.sh", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", @@ -72,6 +72,7 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/transaction-pay-controller/src/TransactionPayController-method-action-types.ts b/packages/transaction-pay-controller/src/TransactionPayController-method-action-types.ts index 380361c8d81..3aa9ce482a5 100644 --- a/packages/transaction-pay-controller/src/TransactionPayController-method-action-types.ts +++ b/packages/transaction-pay-controller/src/TransactionPayController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/packages/user-operation-controller/package.json b/packages/user-operation-controller/package.json index 4f9cd1066ec..76d5f9e4c70 100644 --- a/packages/user-operation-controller/package.json +++ b/packages/user-operation-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/user-operation-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/user-operation-controller", - "generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts", + "generate-method-action-types": "messenger-generate-action-types", "prepare-manifest:preview": "../../scripts/prepare-preview-manifest.sh", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", @@ -70,6 +70,7 @@ "devDependencies": { "@metamask/auto-changelog": "^3.4.4", "@metamask/eth-block-tracker": "^15.0.0", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/user-operation-controller/src/UserOperationController-method-action-types.ts b/packages/user-operation-controller/src/UserOperationController-method-action-types.ts index 33978bc98f0..b75bf34d8a4 100644 --- a/packages/user-operation-controller/src/UserOperationController-method-action-types.ts +++ b/packages/user-operation-controller/src/UserOperationController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `scripts/generate-method-action-types.ts`. + * This file is auto generated by `@metamask/messenger-generate-action-types`. * Do not edit manually. */ diff --git a/scripts/create-package/package-template/package.json b/scripts/create-package/package-template/package.json index 4b0c39fc028..68177867051 100644 --- a/scripts/create-package/package-template/package.json +++ b/scripts/create-package/package-template/package.json @@ -40,6 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh PACKAGE_NAME", "changelog:validate": "../../scripts/validate-changelog.sh PACKAGE_NAME", + "generate-method-action-types": "messenger-generate-action-types", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -48,6 +49,7 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", + "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/scripts/generate-method-action-types.ts b/scripts/generate-method-action-types.ts deleted file mode 100755 index 841900adcc2..00000000000 --- a/scripts/generate-method-action-types.ts +++ /dev/null @@ -1,752 +0,0 @@ -#!yarn tsx - -import { assert, hasProperty, isObject } from '@metamask/utils'; -import { ESLint } from 'eslint'; -import * as fs from 'fs'; -import * as path from 'path'; -import * as ts from 'typescript'; -import yargs from 'yargs'; - -type MethodInfo = { - name: string; - jsDoc: string; - signature: string; -}; - -type ControllerInfo = { - name: string; - filePath: string; - exposedMethods: string[]; - methods: MethodInfo[]; -}; - -/** - * The parsed command-line arguments. - */ -type CommandLineArguments = { - /** - * Whether to check if the action types files are up to date. - */ - check: boolean; - /** - * Whether to fix the action types files. - */ - fix: boolean; - /** - * Optional path to a specific controller to process. - */ - controllerPath: string; -}; - -/** - * Uses `yargs` to parse the arguments given to the script. - * - * @returns The command line arguments. - */ -async function parseCommandLineArguments(): Promise { - const { - check, - fix, - path: controllerPath, - } = await yargs(process.argv.slice(2)) - .command( - '$0 [path]', - 'Generate method action types for a controller messenger', - (yargsInstance) => { - yargsInstance.positional('path', { - type: 'string', - description: 'Path to the folder where controllers are located', - default: 'src', - }); - }, - ) - .option('check', { - type: 'boolean', - description: 'Check if generated action type files are up to date', - default: false, - }) - .option('fix', { - type: 'boolean', - description: 'Generate/update action type files', - default: false, - }) - .help() - .check((argv) => { - if (!argv.check && !argv.fix) { - throw new Error('Either --check or --fix must be provided.\n'); - } - return true; - }).argv; - - return { - check, - fix, - // TypeScript doesn't narrow the type of `controllerPath` even though we defined it as a string in yargs, so we need to cast it here. - controllerPath: controllerPath as string, - }; -} - -/** - * Checks if generated action types files are up to date. - * - * @param controllers - Array of controller information objects. - * @param eslint - The ESLint instance to use for formatting. - */ -async function checkActionTypesFiles( - controllers: ControllerInfo[], - eslint: ESLint, -): Promise { - let hasErrors = false; - - // Track files that exist and their corresponding temp files - const fileComparisonJobs: { - expectedTempFile: string; - actualFile: string; - baseFileName: string; - }[] = []; - - try { - // Check each controller and prepare comparison jobs - for (const controller of controllers) { - console.log(`\nšŸ”§ Checking ${controller.name}...`); - const outputDir = path.dirname(controller.filePath); - const baseFileName = path.basename(controller.filePath, '.ts'); - const actualFile = path.join( - outputDir, - `${baseFileName}-method-action-types.ts`, - ); - - const expectedContent = generateActionTypesContent(controller); - const expectedTempFile = actualFile.replace('.ts', '.tmp.ts'); - - try { - // Check if actual file exists first - await fs.promises.access(actualFile); - - // Write expected content to temp file - await fs.promises.writeFile(expectedTempFile, expectedContent, 'utf8'); - - // Add to comparison jobs - fileComparisonJobs.push({ - expectedTempFile, - actualFile, - baseFileName, - }); - } catch (error) { - if ((error as NodeJS.ErrnoException).code === 'ENOENT') { - console.error( - `āŒ ${baseFileName}-method-action-types.ts does not exist`, - ); - } else { - console.error( - `āŒ Error reading ${baseFileName}-method-action-types.ts:`, - error, - ); - } - hasErrors = true; - } - } - - // Run ESLint on all files at once if we have comparisons to make - if (fileComparisonJobs.length > 0) { - console.log('\nšŸ“ Running ESLint to compare files...'); - - const results = await eslint.lintFiles( - fileComparisonJobs.map((job) => job.expectedTempFile), - ); - await ESLint.outputFixes(results); - - // Compare expected vs actual content - for (const job of fileComparisonJobs) { - const expectedContent = await fs.promises.readFile( - job.expectedTempFile, - 'utf8', - ); - const actualContent = await fs.promises.readFile( - job.actualFile, - 'utf8', - ); - - if (expectedContent === actualContent) { - console.log( - `āœ… ${job.baseFileName}-method-action-types.ts is up to date`, - ); - } else { - console.error( - `āŒ ${job.baseFileName}-method-action-types.ts is out of date`, - ); - hasErrors = true; - } - } - } - } finally { - // Clean up temp files - for (const job of fileComparisonJobs) { - try { - await fs.promises.unlink(job.expectedTempFile); - } catch { - // Ignore cleanup errors - } - } - } - - if (hasErrors) { - console.error('\nšŸ’„ Some action type files are out of date or missing.'); - console.error( - 'Run `yarn generate-method-action-types --fix` to update them.', - ); - process.exitCode = 1; - } else { - console.log('\nšŸŽ‰ All action type files are up to date!'); - } -} - -/** - * Main entry point for the script. - */ -async function main(): Promise { - const { fix, controllerPath } = await parseCommandLineArguments(); - - console.log('šŸ” Searching for controllers with MESSENGER_EXPOSED_METHODS...'); - - const controllers = await findControllersWithExposedMethods(controllerPath); - - if (controllers.length === 0) { - console.log('āš ļø No controllers found with MESSENGER_EXPOSED_METHODS'); - return; - } - - console.log( - `šŸ“¦ Found ${controllers.length} controller(s) with exposed methods`, - ); - - const eslint = new ESLint({ - fix: true, - errorOnUnmatchedPattern: false, - }); - - if (fix) { - await generateAllActionTypesFiles(controllers, eslint); - console.log('\nšŸŽ‰ All action types generated successfully!'); - } else { - // -check mode: check files - await checkActionTypesFiles(controllers, eslint); - } -} - -/** - * Check if a path is a directory. - * - * @param pathValue - The path to check. - * @returns True if the path is a directory, false otherwise. - * @throws If an error occurs other than the path not existing. - */ -async function isDirectory(pathValue: string): Promise { - try { - const stats = await fs.promises.stat(pathValue); - return stats.isDirectory(); - } catch (error) { - if ( - isObject(error) && - hasProperty(error, 'code') && - error.code === 'ENOENT' - ) { - return false; - } - - throw error; - } -} - -/** - * Finds all controller files that have MESSENGER_EXPOSED_METHODS constants. - * - * @param controllerPath - Path to the folder where controllers are located. - * @returns A list of controller information objects. - */ -async function findControllersWithExposedMethods( - controllerPath: string, -): Promise { - const srcPath = path.resolve(process.cwd(), controllerPath); - const controllers: ControllerInfo[] = []; - - if (!(await isDirectory(srcPath))) { - throw new Error(`The specified path is not a directory: ${srcPath}`); - } - - const srcFiles = await fs.promises.readdir(srcPath); - - for (const file of srcFiles) { - if (!file.endsWith('.ts') || file.endsWith('.test.ts')) { - continue; - } - - const filePath = path.join(srcPath, file); - const content = await fs.promises.readFile(filePath, 'utf8'); - - if (content.includes('MESSENGER_EXPOSED_METHODS')) { - const controllerInfo = await parseControllerFile(filePath); - if (controllerInfo) { - controllers.push(controllerInfo); - } - } - } - - return controllers; -} - -/** - * Context for AST visiting. - */ -type VisitorContext = { - exposedMethods: string[]; - className: string; - methods: MethodInfo[]; - sourceFile: ts.SourceFile; -}; - -/** - * Visits AST nodes to find exposed methods and controller class. - * - * @param context - The visitor context. - * @returns A function to visit nodes. - */ -function createASTVisitor(context: VisitorContext): (node: ts.Node) => void { - /** - * Visits AST nodes to find exposed methods and controller class. - * - * @param node - The AST node to visit. - */ - function visitNode(node: ts.Node): void { - if (ts.isVariableStatement(node)) { - const declaration = node.declarationList.declarations[0]; - if ( - ts.isIdentifier(declaration.name) && - declaration.name.text === 'MESSENGER_EXPOSED_METHODS' - ) { - if (declaration.initializer) { - let arrayExpression: ts.ArrayLiteralExpression | undefined; - - // Handle direct array literal - if (ts.isArrayLiteralExpression(declaration.initializer)) { - arrayExpression = declaration.initializer; - } - // Handle "as const" assertion: expression is wrapped in type assertion - else if ( - ts.isAsExpression(declaration.initializer) && - ts.isArrayLiteralExpression(declaration.initializer.expression) - ) { - arrayExpression = declaration.initializer.expression; - } - - if (arrayExpression) { - context.exposedMethods = arrayExpression.elements - .filter(ts.isStringLiteral) - .map((element) => element.text); - } - } - } - } - - // Find the controller or service class - if (ts.isClassDeclaration(node) && node.name) { - const classText = node.name.text; - if (classText.includes('Controller') || classText.includes('Service')) { - context.className = classText; - - // Extract method info for exposed methods - const seenMethods = new Set(); - for (const member of node.members) { - if ( - ts.isMethodDeclaration(member) && - member.name && - ts.isIdentifier(member.name) - ) { - const methodName = member.name.text; - if ( - context.exposedMethods.includes(methodName) && - !seenMethods.has(methodName) - ) { - seenMethods.add(methodName); - const jsDoc = extractJSDoc(member, context.sourceFile); - const signature = extractMethodSignature(member); - context.methods.push({ - name: methodName, - jsDoc, - signature, - }); - } - } - } - } - } - - ts.forEachChild(node, visitNode); - } - - return visitNode; -} - -/** - * Create a TypeScript program for the given file by locating the nearest - * tsconfig.json. - * - * @param filePath - Absolute path to the source file. - * @returns A TypeScript program, or null if no tsconfig was found. - */ -function createProgramForFile(filePath: string): ts.Program | null { - const configPath = ts.findConfigFile( - path.dirname(filePath), - ts.sys.fileExists.bind(ts.sys), - 'tsconfig.json', - ); - if (!configPath) { - return null; - } - - const { config, error } = ts.readConfigFile( - configPath, - ts.sys.readFile.bind(ts.sys), - ); - - if (error) { - return null; - } - - const parsedConfig = ts.parseJsonConfigFileContent( - config, - ts.sys, - path.dirname(configPath), - ); - - return ts.createProgram({ - rootNames: parsedConfig.fileNames, - options: parsedConfig.options, - }); -} - -/** - * Find a class declaration with the given name in a source file. - * - * @param sourceFile - The source file to search. - * @param className - The class name to look for. - * @returns The class declaration node, or null if not found. - */ -function findClassInSourceFile( - sourceFile: ts.SourceFile, - className: string, -): ts.ClassDeclaration | null { - return ( - sourceFile.statements.find( - (node): node is ts.ClassDeclaration => - ts.isClassDeclaration(node) && node.name?.text === className, - ) ?? null - ); -} - -/** - * Search through the class hierarchy of a TypeScript type to find the - * declaration of a method with the given name. - * - * @param classType - The class type to search. - * @param methodName - The method name to look for. - * @returns The method declaration node, or null if not found. - */ -function findMethodInHierarchy( - classType: ts.Type, - methodName: string, -): ts.MethodDeclaration | null { - const symbol = classType.getProperty(methodName); - if (!symbol) { - return null; - } - - const declarations = symbol.getDeclarations(); - if (!declarations) { - return null; - } - - for (const declaration of declarations) { - if (ts.isMethodDeclaration(declaration)) { - return declaration; - } - } - - return null; -} - -/** - * Parses a controller file to extract exposed methods and their metadata. - * - * @param filePath - Path to the controller file to parse. - * @returns Controller information or null if parsing fails. - */ -async function parseControllerFile( - filePath: string, -): Promise { - try { - const content = await fs.promises.readFile(filePath, 'utf8'); - const sourceFile = ts.createSourceFile( - filePath, - content, - ts.ScriptTarget.Latest, - true, - ); - - const context: VisitorContext = { - exposedMethods: [], - className: '', - methods: [], - sourceFile, - }; - - createASTVisitor(context)(sourceFile); - - if (context.exposedMethods.length === 0 || !context.className) { - return null; - } - - // For exposed methods not found directly in the class body, attempt to - // locate them in the inheritance hierarchy using the type checker. - const foundMethodNames = new Set( - context.methods.map((method) => method.name), - ); - - const inheritedMethodNames = context.exposedMethods.filter( - (name) => !foundMethodNames.has(name), - ); - - if (inheritedMethodNames.length > 0) { - const program = createProgramForFile(filePath); - const checker = program?.getTypeChecker(); - const programSourceFile = program?.getSourceFile(filePath); - - assert( - checker, - `Type checker could not be created for "${filePath}". Ensure a valid tsconfig.json is present.`, - ); - - assert( - programSourceFile, - `Source file "${filePath}" not found in program.`, - ); - - const classNode = findClassInSourceFile( - programSourceFile, - context.className, - ); - - assert( - classNode, - `Class "${context.className}" not found in "${filePath}".`, - ); - - const classType = checker.getTypeAtLocation(classNode); - for (const methodName of inheritedMethodNames) { - const methodDeclaration = findMethodInHierarchy(classType, methodName); - - const jsDoc = methodDeclaration - ? extractJSDoc(methodDeclaration, methodDeclaration.getSourceFile()) - : ''; - context.methods.push({ name: methodName, jsDoc, signature: '' }); - } - } - - return { - name: context.className, - filePath, - exposedMethods: context.exposedMethods, - methods: context.methods, - }; - } catch (error) { - console.error(`Error parsing ${filePath}:`, error); - return null; - } -} - -/** - * Extracts JSDoc comment from a method declaration. - * - * @param node - The method declaration node. - * @param sourceFile - The source file. - * @returns The JSDoc comment. - */ -function extractJSDoc( - node: ts.MethodDeclaration, - sourceFile: ts.SourceFile, -): string { - const jsDocTags = ts.getJSDocCommentsAndTags(node); - if (jsDocTags.length === 0) { - return ''; - } - - const jsDoc = jsDocTags[0]; - if (ts.isJSDoc(jsDoc)) { - const fullText = sourceFile.getFullText(); - const start = jsDoc.getFullStart(); - const end = jsDoc.getEnd(); - const rawJsDoc = fullText.substring(start, end).trim(); - return formatJSDoc(rawJsDoc); - } - - return ''; -} - -/** - * Formats JSDoc comments to have consistent indentation for the generated file. - * - * @param rawJsDoc - The raw JSDoc comment from the source. - * @returns The formatted JSDoc comment. - */ -function formatJSDoc(rawJsDoc: string): string { - const lines = rawJsDoc.split('\n'); - const formattedLines: string[] = []; - - for (let i = 0; i < lines.length; i++) { - const line = lines[i]; - if (i === 0) { - // First line should be /** - formattedLines.push('/**'); - } else if (i === lines.length - 1) { - // Last line should be */ - formattedLines.push(' */'); - } else { - // Middle lines should start with ' * ' - const trimmed = line.trim(); - if (trimmed.startsWith('*')) { - // Remove existing * and normalize - const content = trimmed.substring(1).trim(); - formattedLines.push(content ? ` * ${content}` : ' *'); - } else { - // Handle lines that don't start with * - formattedLines.push(trimmed ? ` * ${trimmed}` : ' *'); - } - } - } - - return formattedLines.join('\n'); -} - -/** - * Extracts method signature as a string for the handler type. - * - * @param node - The method declaration node. - * @returns The method signature. - */ -function extractMethodSignature(node: ts.MethodDeclaration): string { - // Since we're just using the method reference in the handler type, - // we don't need the full signature - just return the method name - // The actual signature will be inferred from the controller class - return node.name ? (node.name as ts.Identifier).text : ''; -} - -/** - * Generates action types files for all controllers. - * - * @param controllers - Array of controller information objects. - * @param eslint - The ESLint instance to use for formatting. - */ -async function generateAllActionTypesFiles( - controllers: ControllerInfo[], - eslint: ESLint, -): Promise { - const outputFiles: string[] = []; - - // Write all files first - for (const controller of controllers) { - console.log(`\nšŸ”§ Processing ${controller.name}...`); - const outputDir = path.dirname(controller.filePath); - const baseFileName = path.basename(controller.filePath, '.ts'); - const outputFile = path.join( - outputDir, - `${baseFileName}-method-action-types.ts`, - ); - - const generatedContent = generateActionTypesContent(controller); - await fs.promises.writeFile(outputFile, generatedContent, 'utf8'); - outputFiles.push(outputFile); - console.log(`āœ… Generated action types for ${controller.name}`); - } - - // Run ESLint on all the actual files - if (outputFiles.length > 0) { - console.log('\nšŸ“ Running ESLint on generated files...'); - - const results = await eslint.lintFiles(outputFiles); - await ESLint.outputFixes(results); - const errors = ESLint.getErrorResults(results); - if (errors.length > 0) { - console.error('āŒ ESLint errors:', errors); - process.exitCode = 1; - } else { - console.log('āœ… ESLint formatting applied'); - } - } -} - -/** - * Generates the content for the action types file. - * - * @param controller - The controller information object. - * @returns The content for the action types file. - */ -function generateActionTypesContent(controller: ControllerInfo): string { - const baseFileName = path.basename(controller.filePath, '.ts'); - const controllerImportPath = `./${baseFileName}`; - - let content = `/** - * This file is auto generated by \`scripts/generate-method-action-types.ts\`. - * Do not edit manually. - */ - -import type { ${controller.name} } from '${controllerImportPath}'; - -`; - - const actionTypeNames: string[] = []; - - // Generate action types for each exposed method - for (const method of controller.methods) { - const actionTypeName = `${controller.name}${capitalize(method.name)}Action`; - const actionString = `${controller.name}:${method.name}`; - - actionTypeNames.push(actionTypeName); - - // Add the JSDoc if available - if (method.jsDoc) { - content += `${method.jsDoc}\n`; - } - - content += `export type ${actionTypeName} = { - type: \`${actionString}\`; - handler: ${controller.name}['${method.name}']; -};\n\n`; - } - - // Generate union type of all action types - if (actionTypeNames.length > 0) { - const unionTypeName = `${controller.name}MethodActions`; - content += `/** - * Union of all ${controller.name} action types. - */ -export type ${unionTypeName} = ${actionTypeNames.join(' | ')};\n`; - } - - return `${content.trimEnd()}\n`; -} - -/** - * Capitalizes the first letter of a string. - * - * @param str - The string to capitalize. - * @returns The capitalized string. - */ -function capitalize(str: string): string { - return str.charAt(0).toUpperCase() + str.slice(1); -} - -// Error handling wrapper -main().catch((error) => { - console.error('āŒ Script failed:', error); - process.exitCode = 1; -}); diff --git a/teams.json b/teams.json index 4a3f6902d14..06e27f59daf 100644 --- a/teams.json +++ b/teams.json @@ -62,6 +62,7 @@ "metamask/eth-json-rpc-middleware": "team-core-platform,team-confirmations,team-wallet-integrations", "metamask/eth-json-rpc-provider": "team-wallet-integrations,team-core-platform", "metamask/foundryup": "team-mobile-platform,team-extension-platform", + "metamask/messenger-generate-action-types": "team-core-platform", "metamask/json-rpc-engine": "team-wallet-integrations,team-core-platform", "metamask/json-rpc-middleware-stream": "team-wallet-integrations,team-core-platform", "metamask/keyring-controller": "team-accounts-framework,team-core-platform", diff --git a/tsconfig.build.json b/tsconfig.build.json index 0b4716238fb..1ae65117c27 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -121,6 +121,9 @@ { "path": "./packages/gator-permissions-controller/tsconfig.build.json" }, + { + "path": "./packages/messenger-generate-action-types/tsconfig.build.json" + }, { "path": "./packages/geolocation-controller/tsconfig.build.json" }, diff --git a/tsconfig.json b/tsconfig.json index a177726dfba..0f2074fc2cb 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -116,6 +116,9 @@ { "path": "./packages/gator-permissions-controller" }, + { + "path": "./packages/messenger-generate-action-types" + }, { "path": "./packages/geolocation-controller" }, diff --git a/yarn.config.cjs b/yarn.config.cjs index db5c54c7fe3..53fa8f73a86 100644 --- a/yarn.config.cjs +++ b/yarn.config.cjs @@ -111,7 +111,10 @@ module.exports = defineConfig({ // All non-root packages must set up ESM- and CommonJS-compatible // exports correctly. - if (workspace.ident !== '@metamask/foundryup') { + if ( + workspace.ident !== '@metamask/foundryup' && + workspace.ident !== '@metamask/messenger-generate-action-types' + ) { expectCorrectWorkspaceExports(workspace); } diff --git a/yarn.lock b/yarn.lock index 529185d3373..7999489ef65 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2534,6 +2534,7 @@ __metadata: "@metamask/keyring-api": "npm:^21.6.0" "@metamask/keyring-controller": "npm:^25.1.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/multichain-account-service": "npm:^7.1.0" "@metamask/profile-sync-controller": "npm:^28.0.0" "@metamask/providers": "npm:^22.1.0" @@ -2574,6 +2575,7 @@ __metadata: "@metamask/keyring-internal-api": "npm:^10.0.0" "@metamask/keyring-utils": "npm:^3.1.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/network-controller": "npm:^30.0.0" "@metamask/providers": "npm:^22.1.0" "@metamask/snaps-controllers": "npm:^17.2.0" @@ -2621,6 +2623,7 @@ __metadata: "@metamask/base-controller": "npm:^9.0.0" "@metamask/controller-utils": "npm:^11.19.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" @@ -2661,6 +2664,7 @@ __metadata: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/base-controller": "npm:^9.0.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" @@ -2682,6 +2686,7 @@ __metadata: "@metamask/base-controller": "npm:^9.0.0" "@metamask/controller-utils": "npm:^11.19.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" @@ -2703,6 +2708,7 @@ __metadata: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/base-controller": "npm:^9.0.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" @@ -2760,6 +2766,7 @@ __metadata: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/base-controller": "npm:^9.0.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" @@ -2794,6 +2801,7 @@ __metadata: "@metamask/keyring-internal-api": "npm:^10.0.0" "@metamask/keyring-snap-client": "npm:^8.2.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/network-controller": "npm:^30.0.0" "@metamask/network-enablement-controller": "npm:^5.0.0" "@metamask/permission-controller": "npm:^12.2.1" @@ -2848,6 +2856,7 @@ __metadata: "@metamask/keyring-internal-api": "npm:^10.0.0" "@metamask/keyring-snap-client": "npm:^8.2.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/metamask-eth-abis": "npm:^3.1.1" "@metamask/multichain-account-service": "npm:^7.1.0" "@metamask/network-controller": "npm:^30.0.0" @@ -3136,6 +3145,7 @@ __metadata: "@metamask/controller-utils": "npm:^11.19.0" "@metamask/keyring-controller": "npm:^25.1.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/profile-sync-controller": "npm:^28.0.0" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" @@ -3157,6 +3167,7 @@ __metadata: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/base-controller": "npm:^9.0.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" @@ -3178,6 +3189,7 @@ __metadata: "@metamask/base-controller": "npm:^9.0.0" "@metamask/controller-utils": "npm:^11.19.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/superstruct": "npm:^3.1.0" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" @@ -3224,6 +3236,7 @@ __metadata: "@metamask/controller-utils": "npm:^11.19.0" "@metamask/keyring-controller": "npm:^25.1.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/polling-controller": "npm:^16.0.3" "@metamask/profile-sync-controller": "npm:^28.0.0" "@metamask/remote-feature-flag-controller": "npm:^4.1.0" @@ -3250,6 +3263,7 @@ __metadata: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/base-controller": "npm:^9.0.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" @@ -3311,6 +3325,7 @@ __metadata: "@metamask/controller-utils": "npm:^11.19.0" "@metamask/keyring-controller": "npm:^25.1.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/profile-sync-controller": "npm:^28.0.0" "@metamask/utils": "npm:^11.9.0" "@tanstack/query-core": "npm:^5.62.16" @@ -3417,6 +3432,7 @@ __metadata: "@metamask/base-controller": "npm:^9.0.0" "@metamask/keyring-controller": "npm:^25.1.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" @@ -3460,6 +3476,7 @@ __metadata: "@metamask/controller-utils": "npm:^11.19.0" "@metamask/keyring-api": "npm:^21.6.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/network-controller": "npm:^30.0.0" "@metamask/stake-sdk": "npm:^3.2.1" "@metamask/transaction-controller": "npm:^63.0.0" @@ -3553,6 +3570,7 @@ __metadata: "@metamask/base-controller": "npm:^9.0.0" "@metamask/controller-utils": "npm:^11.19.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/network-controller": "npm:^30.0.0" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" @@ -3575,6 +3593,7 @@ __metadata: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/base-controller": "npm:^9.0.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@sentry/core": "npm:^9.22.0" "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" @@ -4023,6 +4042,7 @@ __metadata: "@metamask/controller-utils": "npm:^11.19.0" "@metamask/eth-query": "npm:^4.0.0" "@metamask/ethjs-unit": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/network-controller": "npm:^30.0.0" "@metamask/polling-controller": "npm:^16.0.3" "@metamask/utils": "npm:^11.9.0" @@ -4059,6 +4079,7 @@ __metadata: "@metamask/delegation-core": "npm:^0.2.0" "@metamask/delegation-deployments": "npm:^0.12.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/snaps-controllers": "npm:^17.2.0" "@metamask/snaps-sdk": "npm:^10.3.0" "@metamask/snaps-utils": "npm:^11.7.0" @@ -4084,6 +4105,7 @@ __metadata: "@metamask/base-controller": "npm:^9.0.0" "@metamask/controller-utils": "npm:^11.19.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" @@ -4289,6 +4311,7 @@ __metadata: "@metamask/base-controller": "npm:^9.0.0" "@metamask/controller-utils": "npm:^11.19.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" @@ -4326,6 +4349,33 @@ __metadata: languageName: unknown linkType: soft +"@metamask/messenger-generate-action-types@npm:^0.0.0, @metamask/messenger-generate-action-types@workspace:packages/messenger-generate-action-types": + version: 0.0.0-use.local + resolution: "@metamask/messenger-generate-action-types@workspace:packages/messenger-generate-action-types" + dependencies: + "@metamask/auto-changelog": "npm:^3.4.4" + "@metamask/utils": "npm:^11.9.0" + "@ts-bridge/cli": "npm:^0.6.4" + "@types/jest": "npm:^29.5.14" + "@types/yargs": "npm:^17.0.32" + deepmerge: "npm:^4.2.2" + eslint: "npm:^9.39.1" + jest: "npm:^29.7.0" + ts-jest: "npm:^29.2.5" + typedoc: "npm:^0.25.13" + typedoc-plugin-missing-exports: "npm:^2.0.0" + typescript: "npm:~5.3.3" + yargs: "npm:^17.7.2" + peerDependencies: + eslint: ">=8" + peerDependenciesMeta: + eslint: + optional: true + bin: + messenger-generate-action-types: ./dist/cli.mjs + languageName: unknown + linkType: soft + "@metamask/messenger@npm:^0.3.0, @metamask/messenger@workspace:packages/messenger": version: 0.0.0-use.local resolution: "@metamask/messenger@workspace:packages/messenger" @@ -4368,6 +4418,7 @@ __metadata: "@metamask/keyring-snap-client": "npm:^8.2.0" "@metamask/keyring-utils": "npm:^3.1.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/providers": "npm:^22.1.0" "@metamask/snaps-controllers": "npm:^17.2.0" "@metamask/snaps-sdk": "npm:^10.3.0" @@ -4496,6 +4547,7 @@ __metadata: "@metamask/base-controller": "npm:^9.0.0" "@metamask/controller-utils": "npm:^11.19.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" @@ -4567,6 +4619,7 @@ __metadata: "@metamask/controller-utils": "npm:^11.19.0" "@metamask/keyring-api": "npm:^21.6.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/multichain-network-controller": "npm:^3.0.5" "@metamask/network-controller": "npm:^30.0.0" "@metamask/slip44": "npm:^4.3.0" @@ -4609,6 +4662,7 @@ __metadata: "@metamask/controller-utils": "npm:^11.19.0" "@metamask/keyring-controller": "npm:^25.1.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/profile-sync-controller": "npm:^28.0.0" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" @@ -4665,6 +4719,7 @@ __metadata: "@metamask/controller-utils": "npm:^11.19.0" "@metamask/json-rpc-engine": "npm:^10.2.3" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" @@ -4691,6 +4746,7 @@ __metadata: "@metamask/base-controller": "npm:^9.0.0" "@metamask/json-rpc-engine": "npm:^10.2.3" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" "@types/deep-freeze-strict": "npm:^1.1.0" @@ -4824,6 +4880,7 @@ __metadata: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/base-controller": "npm:^9.0.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" @@ -4848,6 +4905,7 @@ __metadata: "@metamask/keyring-controller": "npm:^25.1.0" "@metamask/keyring-internal-api": "npm:^10.0.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/polling-controller": "npm:^16.0.3" "@metamask/profile-sync-controller": "npm:^28.0.0" "@metamask/transaction-controller": "npm:^63.0.0" @@ -4879,6 +4937,7 @@ __metadata: "@metamask/keyring-controller": "npm:^25.1.0" "@metamask/keyring-internal-api": "npm:^10.0.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/providers": "npm:^22.1.0" "@metamask/snaps-controllers": "npm:^17.2.0" "@metamask/snaps-sdk": "npm:^10.3.0" @@ -4937,6 +4996,7 @@ __metadata: "@metamask/base-controller": "npm:^9.0.0" "@metamask/controller-utils": "npm:^11.19.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" @@ -4995,6 +5055,7 @@ __metadata: "@metamask/base-controller": "npm:^9.0.0" "@metamask/controller-utils": "npm:^11.19.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" @@ -5035,6 +5096,7 @@ __metadata: "@metamask/base-controller": "npm:^9.0.0" "@metamask/controller-utils": "npm:^11.19.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/network-controller": "npm:^30.0.0" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" @@ -5072,6 +5134,7 @@ __metadata: "@metamask/browser-passworder": "npm:^6.0.0" "@metamask/keyring-controller": "npm:^25.1.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/toprf-secure-backup": "npm:^0.11.0" "@metamask/utils": "npm:^11.9.0" "@noble/ciphers": "npm:^1.3.0" @@ -5102,6 +5165,7 @@ __metadata: "@metamask/base-controller": "npm:^9.0.0" "@metamask/json-rpc-engine": "npm:^10.2.3" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/network-controller": "npm:^30.0.0" "@metamask/permission-controller": "npm:^12.2.1" "@metamask/swappable-obj-proxy": "npm:^2.3.0" @@ -5133,6 +5197,7 @@ __metadata: "@metamask/base-controller": "npm:^9.0.0" "@metamask/controller-utils": "npm:^11.19.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/signature-controller": "npm:^39.1.0" "@metamask/transaction-controller": "npm:^63.0.0" "@metamask/utils": "npm:^11.9.0" @@ -5165,6 +5230,7 @@ __metadata: "@metamask/keyring-controller": "npm:^25.1.0" "@metamask/logging-controller": "npm:^8.0.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/network-controller": "npm:^30.0.0" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" @@ -5350,6 +5416,7 @@ __metadata: dependencies: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" @@ -5371,6 +5438,7 @@ __metadata: "@metamask/base-controller": "npm:^9.0.0" "@metamask/controller-utils": "npm:^11.19.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/polling-controller": "npm:^16.0.3" "@metamask/profile-sync-controller": "npm:^28.0.0" "@metamask/transaction-controller": "npm:^63.0.0" @@ -5483,6 +5551,7 @@ __metadata: "@metamask/ethjs-provider-http": "npm:^0.3.0" "@metamask/gas-fee-controller": "npm:^26.1.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/metamask-eth-abis": "npm:^3.1.1" "@metamask/network-controller": "npm:^30.0.0" "@metamask/nonce-tracker": "npm:^6.0.0" @@ -5532,6 +5601,7 @@ __metadata: "@metamask/controller-utils": "npm:^11.19.0" "@metamask/gas-fee-controller": "npm:^26.1.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/metamask-eth-abis": "npm:^3.1.1" "@metamask/network-controller": "npm:^30.0.0" "@metamask/remote-feature-flag-controller": "npm:^4.1.0" @@ -5566,6 +5636,7 @@ __metadata: "@metamask/gas-fee-controller": "npm:^26.1.0" "@metamask/keyring-controller": "npm:^25.1.0" "@metamask/messenger": "npm:^0.3.0" + "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/network-controller": "npm:^30.0.0" "@metamask/polling-controller": "npm:^16.0.3" "@metamask/rpc-errors": "npm:^7.0.2" From 59843667142f294ce27247f5ec86f7df1ee22a97 Mon Sep 17 00:00:00 2001 From: Salah-Eddine Saakoun Date: Fri, 20 Mar 2026 18:01:36 +0100 Subject: [PATCH 2/9] fix: use tsx to invoke CLI source directly instead of built binary The binary requires a build step before it can be used. Using tsx to run the source TypeScript directly avoids this dependency. --- packages/account-tree-controller/package.json | 2 +- packages/accounts-controller/package.json | 2 +- packages/address-book-controller/package.json | 2 +- packages/analytics-controller/package.json | 2 +- packages/analytics-data-regulation-controller/package.json | 2 +- packages/announcement-controller/package.json | 2 +- packages/approval-controller/package.json | 2 +- packages/assets-controller/package.json | 2 +- packages/assets-controllers/package.json | 6 +++--- packages/claims-controller/package.json | 2 +- packages/client-controller/package.json | 2 +- packages/compliance-controller/package.json | 2 +- packages/config-registry-controller/package.json | 2 +- packages/connectivity-controller/package.json | 2 +- packages/core-backend/package.json | 2 +- packages/delegation-controller/package.json | 2 +- packages/earn-controller/package.json | 2 +- packages/ens-controller/package.json | 2 +- packages/error-reporting-service/package.json | 2 +- packages/gas-fee-controller/package.json | 2 +- packages/gator-permissions-controller/package.json | 2 +- packages/geolocation-controller/package.json | 2 +- packages/logging-controller/package.json | 2 +- packages/multichain-account-service/package.json | 2 +- packages/name-controller/package.json | 2 +- packages/network-enablement-controller/package.json | 2 +- packages/notification-services-controller/package.json | 4 ++-- packages/permission-controller/package.json | 2 +- packages/permission-log-controller/package.json | 2 +- packages/preferences-controller/package.json | 2 +- packages/profile-metrics-controller/package.json | 2 +- packages/profile-sync-controller/package.json | 4 ++-- packages/ramps-controller/package.json | 2 +- packages/remote-feature-flag-controller/package.json | 2 +- packages/sample-controllers/package.json | 2 +- packages/seedless-onboarding-controller/package.json | 2 +- packages/selected-network-controller/package.json | 2 +- packages/shield-controller/package.json | 2 +- packages/signature-controller/package.json | 2 +- packages/storage-service/package.json | 2 +- packages/subscription-controller/package.json | 2 +- packages/transaction-controller/package.json | 2 +- packages/transaction-pay-controller/package.json | 2 +- packages/user-operation-controller/package.json | 2 +- scripts/create-package/package-template/package.json | 2 +- 45 files changed, 49 insertions(+), 49 deletions(-) diff --git a/packages/account-tree-controller/package.json b/packages/account-tree-controller/package.json index e41201fdcc4..f5e8333afa0 100644 --- a/packages/account-tree-controller/package.json +++ b/packages/account-tree-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/account-tree-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/account-tree-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/accounts-controller/package.json b/packages/accounts-controller/package.json index 043f41d69a4..85cd4c6ba87 100644 --- a/packages/accounts-controller/package.json +++ b/packages/accounts-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/accounts-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/accounts-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/address-book-controller/package.json b/packages/address-book-controller/package.json index f242739f8a4..32eada07383 100644 --- a/packages/address-book-controller/package.json +++ b/packages/address-book-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/address-book-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/address-book-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/analytics-controller/package.json b/packages/analytics-controller/package.json index c4f0605e8f8..faf2e5710c4 100644 --- a/packages/analytics-controller/package.json +++ b/packages/analytics-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/analytics-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/analytics-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/analytics-data-regulation-controller/package.json b/packages/analytics-data-regulation-controller/package.json index 4593388c724..4349a8e15be 100644 --- a/packages/analytics-data-regulation-controller/package.json +++ b/packages/analytics-data-regulation-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/analytics-data-regulation-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/analytics-data-regulation-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/announcement-controller/package.json b/packages/announcement-controller/package.json index cd1a4985ea5..2d1b4df32be 100644 --- a/packages/announcement-controller/package.json +++ b/packages/announcement-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/announcement-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/announcement-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/approval-controller/package.json b/packages/approval-controller/package.json index 70ec6ff40fa..626d8527c0b 100644 --- a/packages/approval-controller/package.json +++ b/packages/approval-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/approval-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/approval-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/assets-controller/package.json b/packages/assets-controller/package.json index 90ee98a352c..d0adc092c8e 100644 --- a/packages/assets-controller/package.json +++ b/packages/assets-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/assets-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/assets-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/assets-controllers/package.json b/packages/assets-controllers/package.json index ed31be8cadc..4ca2ec76bfd 100644 --- a/packages/assets-controllers/package.json +++ b/packages/assets-controllers/package.json @@ -40,9 +40,9 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/assets-controllers", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/assets-controllers", - "generate-method-action-types": "messenger-generate-action-types \"$@\" && yarn generate-method-action-types:multichain-assets-controller \"$@\" && yarn generate-method-action-types:multichain-assets-rates-controller \"$@\"", - "generate-method-action-types:multichain-assets-controller": "messenger-generate-action-types src/MultichainAssetsController", - "generate-method-action-types:multichain-assets-rates-controller": "messenger-generate-action-types src/MultichainAssetsRatesController", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts \"$@\" && yarn generate-method-action-types:multichain-assets-controller \"$@\" && yarn generate-method-action-types:multichain-assets-rates-controller \"$@\"", + "generate-method-action-types:multichain-assets-controller": "tsx ../../packages/messenger-generate-action-types/src/cli.ts src/MultichainAssetsController", + "generate-method-action-types:multichain-assets-rates-controller": "tsx ../../packages/messenger-generate-action-types/src/cli.ts src/MultichainAssetsRatesController", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/claims-controller/package.json b/packages/claims-controller/package.json index 95d085a12ae..73ce6d91842 100644 --- a/packages/claims-controller/package.json +++ b/packages/claims-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/claims-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/claims-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/client-controller/package.json b/packages/client-controller/package.json index 01b5eb047cf..d8751959e17 100644 --- a/packages/client-controller/package.json +++ b/packages/client-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/client-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/client-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/compliance-controller/package.json b/packages/compliance-controller/package.json index 67b4a8b11ca..9e4611bf25d 100644 --- a/packages/compliance-controller/package.json +++ b/packages/compliance-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/compliance-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/compliance-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/config-registry-controller/package.json b/packages/config-registry-controller/package.json index ddf3508dc29..d11ec7f8b4d 100644 --- a/packages/config-registry-controller/package.json +++ b/packages/config-registry-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/config-registry-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/config-registry-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "publish:preview": "yarn npm publish --tag preview", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", diff --git a/packages/connectivity-controller/package.json b/packages/connectivity-controller/package.json index e56e3c3a73e..49f8e0307fa 100644 --- a/packages/connectivity-controller/package.json +++ b/packages/connectivity-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/connectivity-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/connectivity-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/core-backend/package.json b/packages/core-backend/package.json index 6e874d6ad01..0e1278edf6e 100644 --- a/packages/core-backend/package.json +++ b/packages/core-backend/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/core-backend", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/core-backend", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/delegation-controller/package.json b/packages/delegation-controller/package.json index 5648644507a..1bdbd1fc443 100644 --- a/packages/delegation-controller/package.json +++ b/packages/delegation-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/delegation-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/delegation-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/earn-controller/package.json b/packages/earn-controller/package.json index 70a9b5badd0..9226d93e287 100644 --- a/packages/earn-controller/package.json +++ b/packages/earn-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/earn-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/earn-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/ens-controller/package.json b/packages/ens-controller/package.json index 5e53bf4c099..dacf9e8d02e 100644 --- a/packages/ens-controller/package.json +++ b/packages/ens-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/ens-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/ens-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/error-reporting-service/package.json b/packages/error-reporting-service/package.json index b67ed078777..7a390e9705f 100644 --- a/packages/error-reporting-service/package.json +++ b/packages/error-reporting-service/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/error-reporting-service", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/error-reporting-service", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/gas-fee-controller/package.json b/packages/gas-fee-controller/package.json index 411e9c67068..ac0546d4f7e 100644 --- a/packages/gas-fee-controller/package.json +++ b/packages/gas-fee-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/gas-fee-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/gas-fee-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/gator-permissions-controller/package.json b/packages/gator-permissions-controller/package.json index 136ae4036b3..aac8e4c64b4 100644 --- a/packages/gator-permissions-controller/package.json +++ b/packages/gator-permissions-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/gator-permissions-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/gator-permissions-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/geolocation-controller/package.json b/packages/geolocation-controller/package.json index 0b0d8d2693d..efbb067b368 100644 --- a/packages/geolocation-controller/package.json +++ b/packages/geolocation-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/geolocation-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/geolocation-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/logging-controller/package.json b/packages/logging-controller/package.json index efa21085ac4..190b4419bab 100644 --- a/packages/logging-controller/package.json +++ b/packages/logging-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/logging-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/logging-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/multichain-account-service/package.json b/packages/multichain-account-service/package.json index 70d118629c1..c9498e10ae8 100644 --- a/packages/multichain-account-service/package.json +++ b/packages/multichain-account-service/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/multichain-account-service", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/multichain-account-service", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/name-controller/package.json b/packages/name-controller/package.json index 5fc93ee8d39..33fd62bf290 100644 --- a/packages/name-controller/package.json +++ b/packages/name-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/name-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/name-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "prepare-manifest:preview": "../../scripts/prepare-preview-manifest.sh", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", diff --git a/packages/network-enablement-controller/package.json b/packages/network-enablement-controller/package.json index cb74b7ab038..87d41e55911 100644 --- a/packages/network-enablement-controller/package.json +++ b/packages/network-enablement-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/network-enablement-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/network-enablement-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/notification-services-controller/package.json b/packages/notification-services-controller/package.json index ed7fe5e3db0..9b7121a0155 100644 --- a/packages/notification-services-controller/package.json +++ b/packages/notification-services-controller/package.json @@ -93,8 +93,8 @@ "changelog:update": "../../scripts/update-changelog.sh @metamask/notification-services-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/notification-services-controller", "generate-method-action-types": "yarn generate-method-action-types:notifications-services-controller \"$@\" && yarn generate-method-action-types:notifications-services-push-controller \"$@\"", - "generate-method-action-types:notifications-services-controller": "messenger-generate-action-types src/NotificationServicesController", - "generate-method-action-types:notifications-services-push-controller": "messenger-generate-action-types src/NotificationServicesPushController", + "generate-method-action-types:notifications-services-controller": "tsx ../../packages/messenger-generate-action-types/src/cli.ts src/NotificationServicesController", + "generate-method-action-types:notifications-services-push-controller": "tsx ../../packages/messenger-generate-action-types/src/cli.ts src/NotificationServicesPushController", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/permission-controller/package.json b/packages/permission-controller/package.json index 53c39c1e7b2..bd789289aaa 100644 --- a/packages/permission-controller/package.json +++ b/packages/permission-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/permission-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/permission-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/permission-log-controller/package.json b/packages/permission-log-controller/package.json index db1c4d677d5..260a3d25cc4 100644 --- a/packages/permission-log-controller/package.json +++ b/packages/permission-log-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/permission-log-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/permission-log-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/preferences-controller/package.json b/packages/preferences-controller/package.json index 0166e3617fe..4f86bfa0718 100644 --- a/packages/preferences-controller/package.json +++ b/packages/preferences-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/preferences-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/preferences-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/profile-metrics-controller/package.json b/packages/profile-metrics-controller/package.json index 0b28b1e810a..b09353e3600 100644 --- a/packages/profile-metrics-controller/package.json +++ b/packages/profile-metrics-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/profile-metrics-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/profile-metrics-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/profile-sync-controller/package.json b/packages/profile-sync-controller/package.json index b74b2d9a854..1054a5327bf 100644 --- a/packages/profile-sync-controller/package.json +++ b/packages/profile-sync-controller/package.json @@ -94,8 +94,8 @@ "changelog:update": "../../scripts/update-changelog.sh @metamask/profile-sync-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/profile-sync-controller", "generate-method-action-types": "yarn generate-method-action-types:authentication \"$@\" && yarn generate-method-action-types:user-storage \"$@\"", - "generate-method-action-types:authentication": "messenger-generate-action-types src/controllers/authentication", - "generate-method-action-types:user-storage": "messenger-generate-action-types src/controllers/user-storage", + "generate-method-action-types:authentication": "tsx ../../packages/messenger-generate-action-types/src/cli.ts src/controllers/authentication", + "generate-method-action-types:user-storage": "tsx ../../packages/messenger-generate-action-types/src/cli.ts src/controllers/user-storage", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/ramps-controller/package.json b/packages/ramps-controller/package.json index ec26c104526..384a9bc3fb2 100644 --- a/packages/ramps-controller/package.json +++ b/packages/ramps-controller/package.json @@ -41,7 +41,7 @@ "changelog:update": "../../scripts/update-changelog.sh @metamask/ramps-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/ramps-controller", "dev": "node dev-watch.js", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/remote-feature-flag-controller/package.json b/packages/remote-feature-flag-controller/package.json index 08811eacccc..1e332e021d7 100644 --- a/packages/remote-feature-flag-controller/package.json +++ b/packages/remote-feature-flag-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/remote-feature-flag-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/remote-feature-flag-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/sample-controllers/package.json b/packages/sample-controllers/package.json index 2c53a9494bf..2077bb4cedd 100644 --- a/packages/sample-controllers/package.json +++ b/packages/sample-controllers/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/sample-controllers", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/sample-controllers", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/seedless-onboarding-controller/package.json b/packages/seedless-onboarding-controller/package.json index 00f114fcd43..7507b443063 100644 --- a/packages/seedless-onboarding-controller/package.json +++ b/packages/seedless-onboarding-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/seedless-onboarding-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/seedless-onboarding-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/selected-network-controller/package.json b/packages/selected-network-controller/package.json index 29c580b5914..41d25cd91c5 100644 --- a/packages/selected-network-controller/package.json +++ b/packages/selected-network-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/selected-network-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/selected-network-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/shield-controller/package.json b/packages/shield-controller/package.json index 8e57b02b587..1e93ef8b798 100644 --- a/packages/shield-controller/package.json +++ b/packages/shield-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/shield-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/shield-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/signature-controller/package.json b/packages/signature-controller/package.json index 519161fcba2..bd09cc3bfae 100644 --- a/packages/signature-controller/package.json +++ b/packages/signature-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/signature-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/signature-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/storage-service/package.json b/packages/storage-service/package.json index a5d919c85ab..026e7e78bea 100644 --- a/packages/storage-service/package.json +++ b/packages/storage-service/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/storage-service", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/storage-service", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/subscription-controller/package.json b/packages/subscription-controller/package.json index 367d16b3fb0..b8ac67dc8ad 100644 --- a/packages/subscription-controller/package.json +++ b/packages/subscription-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/subscription-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/subscription-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/transaction-controller/package.json b/packages/transaction-controller/package.json index 04081163553..f3b78ba7ecf 100644 --- a/packages/transaction-controller/package.json +++ b/packages/transaction-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/transaction-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/transaction-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/transaction-pay-controller/package.json b/packages/transaction-pay-controller/package.json index e62423bfa0d..2487954f124 100644 --- a/packages/transaction-pay-controller/package.json +++ b/packages/transaction-pay-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/transaction-pay-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/transaction-pay-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "prepare-manifest:preview": "../../scripts/prepare-preview-manifest.sh", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", diff --git a/packages/user-operation-controller/package.json b/packages/user-operation-controller/package.json index 76d5f9e4c70..7e19438e67e 100644 --- a/packages/user-operation-controller/package.json +++ b/packages/user-operation-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/user-operation-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/user-operation-controller", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "prepare-manifest:preview": "../../scripts/prepare-preview-manifest.sh", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", diff --git a/scripts/create-package/package-template/package.json b/scripts/create-package/package-template/package.json index 68177867051..c58c283479c 100644 --- a/scripts/create-package/package-template/package.json +++ b/scripts/create-package/package-template/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh PACKAGE_NAME", "changelog:validate": "../../scripts/validate-changelog.sh PACKAGE_NAME", - "generate-method-action-types": "messenger-generate-action-types", + "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", From 3e0701608d0b7367b561a04d0d93c16d3c2b50e1 Mon Sep 17 00:00:00 2001 From: Salah-Eddine Saakoun Date: Fri, 20 Mar 2026 18:39:03 +0100 Subject: [PATCH 3/9] refactor: merge generate-action-types into @metamask/messenger Move the CLI tool into @metamask/messenger as a subpath export instead of a separate package. This keeps the library lightweight while making the codegen available via optional peer dependencies. - Move source files to packages/messenger/src/generate-action-types/ - Add ./generate-action-types subpath export and bin entry - typescript, yargs, eslint are optional peerDependencies - @metamask/utils added as dependency (needed by codegen) - Remove standalone @metamask/messenger-generate-action-types package - Update 44 consuming packages to point to new location - Revert CODEOWNERS, teams.json, tsconfig, README changes --- .github/CODEOWNERS | 1 - README.md | 2 - eslint.config.mjs | 2 +- packages/account-tree-controller/package.json | 3 +- packages/accounts-controller/package.json | 3 +- packages/address-book-controller/package.json | 3 +- packages/analytics-controller/package.json | 3 +- .../package.json | 3 +- packages/announcement-controller/package.json | 3 +- packages/approval-controller/package.json | 3 +- packages/assets-controller/package.json | 3 +- packages/assets-controllers/package.json | 7 +- packages/claims-controller/package.json | 3 +- packages/client-controller/package.json | 3 +- packages/compliance-controller/package.json | 3 +- .../config-registry-controller/package.json | 3 +- packages/connectivity-controller/package.json | 3 +- packages/core-backend/package.json | 3 +- packages/delegation-controller/package.json | 3 +- packages/earn-controller/package.json | 3 +- packages/ens-controller/package.json | 3 +- packages/error-reporting-service/package.json | 3 +- packages/gas-fee-controller/package.json | 3 +- .../gator-permissions-controller/package.json | 3 +- packages/geolocation-controller/package.json | 3 +- packages/logging-controller/package.json | 3 +- .../CHANGELOG.md | 10 --- .../messenger-generate-action-types/LICENSE | 20 ----- .../messenger-generate-action-types/README.md | 15 ---- .../jest.config.js | 27 ------- .../package.json | 72 ------------------ .../tsconfig.build.json | 10 --- .../tsconfig.json | 8 -- .../typedoc.json | 7 -- packages/messenger/jest.config.js | 10 ++- packages/messenger/package.json | 37 +++++++++- .../src/generate-action-types}/check.test.ts | 0 .../src/generate-action-types}/check.ts | 0 .../src/generate-action-types}/cli.ts | 0 .../src/generate-action-types}/fix.test.ts | 0 .../src/generate-action-types}/fix.ts | 0 .../generate-content.test.ts | 0 .../generate-content.ts | 0 .../src/generate-action-types}/index.ts | 0 .../parse-controller.test.ts | 0 .../parse-controller.ts | 0 .../multichain-account-service/package.json | 3 +- packages/name-controller/package.json | 3 +- .../package.json | 3 +- .../package.json | 5 +- packages/permission-controller/package.json | 3 +- .../permission-log-controller/package.json | 3 +- packages/preferences-controller/package.json | 3 +- .../profile-metrics-controller/package.json | 3 +- packages/profile-sync-controller/package.json | 5 +- packages/ramps-controller/package.json | 3 +- .../package.json | 3 +- packages/sample-controllers/package.json | 3 +- .../package.json | 3 +- .../selected-network-controller/package.json | 3 +- packages/shield-controller/package.json | 3 +- packages/signature-controller/package.json | 3 +- packages/storage-service/package.json | 3 +- packages/subscription-controller/package.json | 3 +- packages/transaction-controller/package.json | 3 +- .../transaction-pay-controller/package.json | 3 +- .../user-operation-controller/package.json | 3 +- .../package-template/package.json | 3 +- teams.json | 1 - tsconfig.build.json | 3 - tsconfig.json | 3 - yarn.config.cjs | 2 +- yarn.lock | 74 +++---------------- 73 files changed, 106 insertions(+), 341 deletions(-) delete mode 100644 packages/messenger-generate-action-types/CHANGELOG.md delete mode 100644 packages/messenger-generate-action-types/LICENSE delete mode 100644 packages/messenger-generate-action-types/README.md delete mode 100644 packages/messenger-generate-action-types/jest.config.js delete mode 100644 packages/messenger-generate-action-types/package.json delete mode 100644 packages/messenger-generate-action-types/tsconfig.build.json delete mode 100644 packages/messenger-generate-action-types/tsconfig.json delete mode 100644 packages/messenger-generate-action-types/typedoc.json rename packages/{messenger-generate-action-types/src => messenger/src/generate-action-types}/check.test.ts (100%) rename packages/{messenger-generate-action-types/src => messenger/src/generate-action-types}/check.ts (100%) rename packages/{messenger-generate-action-types/src => messenger/src/generate-action-types}/cli.ts (100%) rename packages/{messenger-generate-action-types/src => messenger/src/generate-action-types}/fix.test.ts (100%) rename packages/{messenger-generate-action-types/src => messenger/src/generate-action-types}/fix.ts (100%) rename packages/{messenger-generate-action-types/src => messenger/src/generate-action-types}/generate-content.test.ts (100%) rename packages/{messenger-generate-action-types/src => messenger/src/generate-action-types}/generate-content.ts (100%) rename packages/{messenger-generate-action-types/src => messenger/src/generate-action-types}/index.ts (100%) rename packages/{messenger-generate-action-types/src => messenger/src/generate-action-types}/parse-controller.test.ts (100%) rename packages/{messenger-generate-action-types/src => messenger/src/generate-action-types}/parse-controller.ts (100%) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index a25bad61d20..331f1487491 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -106,7 +106,6 @@ /packages/eth-json-rpc-middleware/src/wallet.* @MetaMask/confirmations @MetaMask/wallet-api-platform-engineers /packages/eth-json-rpc-provider @MetaMask/wallet-integrations @MetaMask/core-platform /packages/foundryup @MetaMask/mobile-platform @MetaMask/extension-platform -/packages/messenger-generate-action-types @MetaMask/core-platform /packages/json-rpc-engine @MetaMask/wallet-integrations @MetaMask/core-platform /packages/json-rpc-middleware-stream @MetaMask/wallet-integrations @MetaMask/core-platform /packages/keyring-controller @MetaMask/accounts-engineers @MetaMask/core-platform diff --git a/README.md b/README.md index af5a7e5d796..dbd4b9a5f52 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,6 @@ Each package in this repository has its own README where you can find installati - [`@metamask/foundryup`](packages/foundryup) - [`@metamask/gas-fee-controller`](packages/gas-fee-controller) - [`@metamask/gator-permissions-controller`](packages/gator-permissions-controller) -- [`@metamask/messenger-generate-action-types`](packages/messenger-generate-action-types) - [`@metamask/geolocation-controller`](packages/geolocation-controller) - [`@metamask/json-rpc-engine`](packages/json-rpc-engine) - [`@metamask/json-rpc-middleware-stream`](packages/json-rpc-middleware-stream) @@ -143,7 +142,6 @@ linkStyle default opacity:0.5 foundryup(["@metamask/foundryup"]); gas_fee_controller(["@metamask/gas-fee-controller"]); gator_permissions_controller(["@metamask/gator-permissions-controller"]); - messenger_generate_action_types(["@metamask/messenger-generate-action-types"]); geolocation_controller(["@metamask/geolocation-controller"]); json_rpc_engine(["@metamask/json-rpc-engine"]); json_rpc_middleware_stream(["@metamask/json-rpc-middleware-stream"]); diff --git a/eslint.config.mjs b/eslint.config.mjs index 8849fafa3fe..f210b8bc438 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -163,7 +163,7 @@ const config = createConfig([ }, }, { - files: ['packages/messenger-generate-action-types/**/*.{js,ts}'], + files: ['packages/messenger/src/generate-action-types/**/*.{js,ts}'], rules: { 'import-x/no-nodejs-modules': 'off', }, diff --git a/packages/account-tree-controller/package.json b/packages/account-tree-controller/package.json index f5e8333afa0..f3096c65cf9 100644 --- a/packages/account-tree-controller/package.json +++ b/packages/account-tree-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/account-tree-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/account-tree-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -66,7 +66,6 @@ "devDependencies": { "@metamask/account-api": "^1.0.0", "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@metamask/providers": "^22.1.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", diff --git a/packages/accounts-controller/package.json b/packages/accounts-controller/package.json index 85cd4c6ba87..d415ca198d3 100644 --- a/packages/accounts-controller/package.json +++ b/packages/accounts-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/accounts-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/accounts-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -71,7 +71,6 @@ "devDependencies": { "@metamask/auto-changelog": "^3.4.4", "@metamask/controller-utils": "^11.19.0", - "@metamask/messenger-generate-action-types": "^0.0.0", "@metamask/providers": "^22.1.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", diff --git a/packages/address-book-controller/package.json b/packages/address-book-controller/package.json index 32eada07383..7534103e548 100644 --- a/packages/address-book-controller/package.json +++ b/packages/address-book-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/address-book-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/address-book-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -55,7 +55,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/analytics-controller/package.json b/packages/analytics-controller/package.json index faf2e5710c4..2d09cd0be35 100644 --- a/packages/analytics-controller/package.json +++ b/packages/analytics-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/analytics-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/analytics-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -54,7 +54,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/analytics-data-regulation-controller/package.json b/packages/analytics-data-regulation-controller/package.json index 4349a8e15be..bde2be42ea8 100644 --- a/packages/analytics-data-regulation-controller/package.json +++ b/packages/analytics-data-regulation-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/analytics-data-regulation-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/analytics-data-regulation-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -55,7 +55,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/announcement-controller/package.json b/packages/announcement-controller/package.json index 2d1b4df32be..202d982c07f 100644 --- a/packages/announcement-controller/package.json +++ b/packages/announcement-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/announcement-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/announcement-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -53,7 +53,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/approval-controller/package.json b/packages/approval-controller/package.json index 626d8527c0b..d70a79e86fd 100644 --- a/packages/approval-controller/package.json +++ b/packages/approval-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/approval-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/approval-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -56,7 +56,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/assets-controller/package.json b/packages/assets-controller/package.json index d0adc092c8e..e7566dfab06 100644 --- a/packages/assets-controller/package.json +++ b/packages/assets-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/assets-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/assets-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -78,7 +78,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "@types/lodash": "^4.14.191", diff --git a/packages/assets-controllers/package.json b/packages/assets-controllers/package.json index 4ca2ec76bfd..531ce049060 100644 --- a/packages/assets-controllers/package.json +++ b/packages/assets-controllers/package.json @@ -40,9 +40,9 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/assets-controllers", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/assets-controllers", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts \"$@\" && yarn generate-method-action-types:multichain-assets-controller \"$@\" && yarn generate-method-action-types:multichain-assets-rates-controller \"$@\"", - "generate-method-action-types:multichain-assets-controller": "tsx ../../packages/messenger-generate-action-types/src/cli.ts src/MultichainAssetsController", - "generate-method-action-types:multichain-assets-rates-controller": "tsx ../../packages/messenger-generate-action-types/src/cli.ts src/MultichainAssetsRatesController", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts \"$@\" && yarn generate-method-action-types:multichain-assets-controller \"$@\" && yarn generate-method-action-types:multichain-assets-rates-controller \"$@\"", + "generate-method-action-types:multichain-assets-controller": "tsx ../../packages/messenger/src/generate-action-types/cli.ts src/MultichainAssetsController", + "generate-method-action-types:multichain-assets-rates-controller": "tsx ../../packages/messenger/src/generate-action-types/cli.ts src/MultichainAssetsRatesController", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -103,7 +103,6 @@ "@metamask/ethjs-provider-http": "^0.3.0", "@metamask/keyring-internal-api": "^10.0.0", "@metamask/keyring-snap-client": "^8.2.0", - "@metamask/messenger-generate-action-types": "^0.0.0", "@metamask/providers": "^22.1.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", diff --git a/packages/claims-controller/package.json b/packages/claims-controller/package.json index 73ce6d91842..8cfb42e00b0 100644 --- a/packages/claims-controller/package.json +++ b/packages/claims-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/claims-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/claims-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -57,7 +57,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/client-controller/package.json b/packages/client-controller/package.json index d8751959e17..b6fb9b1f369 100644 --- a/packages/client-controller/package.json +++ b/packages/client-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/client-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/client-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -53,7 +53,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/compliance-controller/package.json b/packages/compliance-controller/package.json index 9e4611bf25d..fd23e898f8a 100644 --- a/packages/compliance-controller/package.json +++ b/packages/compliance-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/compliance-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/compliance-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -57,7 +57,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/config-registry-controller/package.json b/packages/config-registry-controller/package.json index d11ec7f8b4d..dd42a8cf09d 100644 --- a/packages/config-registry-controller/package.json +++ b/packages/config-registry-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/config-registry-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/config-registry-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "publish:preview": "yarn npm publish --tag preview", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", @@ -63,7 +63,6 @@ "devDependencies": { "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/connectivity-controller/package.json b/packages/connectivity-controller/package.json index 49f8e0307fa..8cf15a309e2 100644 --- a/packages/connectivity-controller/package.json +++ b/packages/connectivity-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/connectivity-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/connectivity-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -53,7 +53,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/core-backend/package.json b/packages/core-backend/package.json index 0e1278edf6e..a7677157d41 100644 --- a/packages/core-backend/package.json +++ b/packages/core-backend/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/core-backend", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/core-backend", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -59,7 +59,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/delegation-controller/package.json b/packages/delegation-controller/package.json index 1bdbd1fc443..168d19f61a0 100644 --- a/packages/delegation-controller/package.json +++ b/packages/delegation-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/delegation-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/delegation-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -56,7 +56,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/earn-controller/package.json b/packages/earn-controller/package.json index 9226d93e287..cda60371cab 100644 --- a/packages/earn-controller/package.json +++ b/packages/earn-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/earn-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/earn-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -61,7 +61,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@metamask/transaction-controller": "^63.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", diff --git a/packages/ens-controller/package.json b/packages/ens-controller/package.json index dacf9e8d02e..9377b0fdd81 100644 --- a/packages/ens-controller/package.json +++ b/packages/ens-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/ens-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/ens-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -58,7 +58,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/error-reporting-service/package.json b/packages/error-reporting-service/package.json index 7a390e9705f..9a75bf1330b 100644 --- a/packages/error-reporting-service/package.json +++ b/packages/error-reporting-service/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/error-reporting-service", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/error-reporting-service", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -53,7 +53,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@sentry/core": "^9.22.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", diff --git a/packages/gas-fee-controller/package.json b/packages/gas-fee-controller/package.json index ac0546d4f7e..b958cddedec 100644 --- a/packages/gas-fee-controller/package.json +++ b/packages/gas-fee-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/gas-fee-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/gas-fee-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -63,7 +63,6 @@ "devDependencies": { "@babel/runtime": "^7.23.9", "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "@types/jest-when": "^2.7.3", diff --git a/packages/gator-permissions-controller/package.json b/packages/gator-permissions-controller/package.json index aac8e4c64b4..6ee34bfadc2 100644 --- a/packages/gator-permissions-controller/package.json +++ b/packages/gator-permissions-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/gator-permissions-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/gator-permissions-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -63,7 +63,6 @@ "@lavamoat/allow-scripts": "^3.0.4", "@lavamoat/preinstall-always-fail": "^2.1.0", "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/geolocation-controller/package.json b/packages/geolocation-controller/package.json index efbb067b368..ba63816a5e4 100644 --- a/packages/geolocation-controller/package.json +++ b/packages/geolocation-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/geolocation-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/geolocation-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -54,7 +54,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/logging-controller/package.json b/packages/logging-controller/package.json index 190b4419bab..68bcf23d699 100644 --- a/packages/logging-controller/package.json +++ b/packages/logging-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/logging-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/logging-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -55,7 +55,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/messenger-generate-action-types/CHANGELOG.md b/packages/messenger-generate-action-types/CHANGELOG.md deleted file mode 100644 index b518709c7b8..00000000000 --- a/packages/messenger-generate-action-types/CHANGELOG.md +++ /dev/null @@ -1,10 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [Unreleased] - -[Unreleased]: https://github.com/MetaMask/core/ diff --git a/packages/messenger-generate-action-types/LICENSE b/packages/messenger-generate-action-types/LICENSE deleted file mode 100644 index c8a0ff6be3a..00000000000 --- a/packages/messenger-generate-action-types/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -MIT License - -Copyright (c) 2026 MetaMask - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE diff --git a/packages/messenger-generate-action-types/README.md b/packages/messenger-generate-action-types/README.md deleted file mode 100644 index 76970ab9464..00000000000 --- a/packages/messenger-generate-action-types/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# `@metamask/messenger-generate-action-types` - -CLI tool to generate method action types for controller and service messengers - -## Installation - -`yarn add @metamask/messenger-generate-action-types` - -or - -`npm install @metamask/messenger-generate-action-types` - -## Contributing - -This package is part of a monorepo. Instructions for contributing can be found in the [monorepo README](https://github.com/MetaMask/core#readme). diff --git a/packages/messenger-generate-action-types/jest.config.js b/packages/messenger-generate-action-types/jest.config.js deleted file mode 100644 index f927adcb359..00000000000 --- a/packages/messenger-generate-action-types/jest.config.js +++ /dev/null @@ -1,27 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -const merge = require('deepmerge'); -const path = require('path'); - -const baseConfig = require('../../jest.config.packages'); - -const displayName = path.basename(__dirname); - -module.exports = merge(baseConfig, { - // The display name when running multiple projects - displayName, - - // An object that configures minimum threshold enforcement for coverage results - coveragePathIgnorePatterns: ['./src/cli.ts'], - coverageThreshold: { - global: { - branches: 70, - functions: 75, - lines: 75, - statements: 75, - }, - }, -}); diff --git a/packages/messenger-generate-action-types/package.json b/packages/messenger-generate-action-types/package.json deleted file mode 100644 index 828a29bdba2..00000000000 --- a/packages/messenger-generate-action-types/package.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "name": "@metamask/messenger-generate-action-types", - "version": "0.0.0", - "description": "CLI tool to generate method action types for controller and service messengers", - "keywords": [ - "MetaMask", - "Ethereum" - ], - "homepage": "https://github.com/MetaMask/core/tree/main/packages/messenger-generate-action-types#readme", - "bugs": { - "url": "https://github.com/MetaMask/core/issues" - }, - "repository": { - "type": "git", - "url": "https://github.com/MetaMask/core.git" - }, - "license": "MIT", - "sideEffects": false, - "exports": { - "./package.json": "./package.json" - }, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", - "bin": "./dist/cli.mjs", - "files": [ - "dist/" - ], - "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", - "build:docs": "typedoc", - "changelog:update": "../../scripts/update-changelog.sh @metamask/messenger-generate-action-types", - "changelog:validate": "../../scripts/validate-changelog.sh @metamask/messenger-generate-action-types", - "since-latest-release": "../../scripts/since-latest-release.sh", - "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", - "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", - "test:verbose": "NODE_OPTIONS=--experimental-vm-modules jest --verbose", - "test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch" - }, - "dependencies": { - "@metamask/utils": "^11.9.0", - "typescript": "~5.3.3", - "yargs": "^17.7.2" - }, - "devDependencies": { - "@metamask/auto-changelog": "^3.4.4", - "@ts-bridge/cli": "^0.6.4", - "@types/jest": "^29.5.14", - "@types/yargs": "^17.0.32", - "deepmerge": "^4.2.2", - "eslint": "^9.39.1", - "jest": "^29.7.0", - "ts-jest": "^29.2.5", - "typedoc": "^0.25.13", - "typedoc-plugin-missing-exports": "^2.0.0" - }, - "peerDependencies": { - "eslint": ">=8" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - }, - "engines": { - "node": "^18.18 || >=20" - }, - "publishConfig": { - "access": "public", - "registry": "https://registry.npmjs.org/" - } -} diff --git a/packages/messenger-generate-action-types/tsconfig.build.json b/packages/messenger-generate-action-types/tsconfig.build.json deleted file mode 100644 index 02a0eea03fe..00000000000 --- a/packages/messenger-generate-action-types/tsconfig.build.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "../../tsconfig.packages.build.json", - "compilerOptions": { - "baseUrl": "./", - "outDir": "./dist", - "rootDir": "./src" - }, - "references": [], - "include": ["../../types", "./src"] -} diff --git a/packages/messenger-generate-action-types/tsconfig.json b/packages/messenger-generate-action-types/tsconfig.json deleted file mode 100644 index 025ba2ef7f4..00000000000 --- a/packages/messenger-generate-action-types/tsconfig.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "../../tsconfig.packages.json", - "compilerOptions": { - "baseUrl": "./" - }, - "references": [], - "include": ["../../types", "./src"] -} diff --git a/packages/messenger-generate-action-types/typedoc.json b/packages/messenger-generate-action-types/typedoc.json deleted file mode 100644 index c9da015dbf8..00000000000 --- a/packages/messenger-generate-action-types/typedoc.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "entryPoints": ["./src/index.ts"], - "excludePrivate": true, - "hideGenerator": true, - "out": "docs", - "tsconfig": "./tsconfig.build.json" -} diff --git a/packages/messenger/jest.config.js b/packages/messenger/jest.config.js index ca084133399..49c7241cf77 100644 --- a/packages/messenger/jest.config.js +++ b/packages/messenger/jest.config.js @@ -14,13 +14,21 @@ module.exports = merge(baseConfig, { // The display name when running multiple projects displayName, + coveragePathIgnorePatterns: ['./src/generate-action-types/cli.ts'], + // An object that configures minimum threshold enforcement for coverage results coverageThreshold: { - global: { + './src/Messenger.ts': { branches: 100, functions: 100, lines: 100, statements: 100, }, + './src/generate-action-types/': { + branches: 70, + functions: 75, + lines: 75, + statements: 75, + }, }, }); diff --git a/packages/messenger/package.json b/packages/messenger/package.json index e52c99da962..bf7f556a1cd 100644 --- a/packages/messenger/package.json +++ b/packages/messenger/package.json @@ -27,10 +27,23 @@ "default": "./dist/index.cjs" } }, + "./generate-action-types": { + "import": { + "types": "./dist/generate-action-types/index.d.mts", + "default": "./dist/generate-action-types/index.mjs" + }, + "require": { + "types": "./dist/generate-action-types/index.d.cts", + "default": "./dist/generate-action-types/index.cjs" + } + }, "./package.json": "./package.json" }, "main": "./dist/index.cjs", "types": "./dist/index.d.cts", + "bin": { + "messenger-generate-action-types": "./dist/generate-action-types/cli.mjs" + }, "files": [ "dist/" ], @@ -46,17 +59,39 @@ "test:verbose": "NODE_OPTIONS=--experimental-vm-modules jest --verbose", "test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch" }, + "dependencies": { + "@metamask/utils": "^11.9.0" + }, + "peerDependencies": { + "eslint": ">=8", + "typescript": "~5.3.3", + "yargs": "^17.7.2" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "typescript": { + "optional": true + }, + "yargs": { + "optional": true + } + }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", + "@types/yargs": "^17.0.32", "deepmerge": "^4.2.2", + "eslint": "^9.39.1", "immer": "^9.0.6", "jest": "^29.7.0", "ts-jest": "^29.2.5", "typedoc": "^0.25.13", "typedoc-plugin-missing-exports": "^2.0.0", - "typescript": "~5.3.3" + "typescript": "~5.3.3", + "yargs": "^17.7.2" }, "engines": { "node": "^18.18 || >=20" diff --git a/packages/messenger-generate-action-types/src/check.test.ts b/packages/messenger/src/generate-action-types/check.test.ts similarity index 100% rename from packages/messenger-generate-action-types/src/check.test.ts rename to packages/messenger/src/generate-action-types/check.test.ts diff --git a/packages/messenger-generate-action-types/src/check.ts b/packages/messenger/src/generate-action-types/check.ts similarity index 100% rename from packages/messenger-generate-action-types/src/check.ts rename to packages/messenger/src/generate-action-types/check.ts diff --git a/packages/messenger-generate-action-types/src/cli.ts b/packages/messenger/src/generate-action-types/cli.ts similarity index 100% rename from packages/messenger-generate-action-types/src/cli.ts rename to packages/messenger/src/generate-action-types/cli.ts diff --git a/packages/messenger-generate-action-types/src/fix.test.ts b/packages/messenger/src/generate-action-types/fix.test.ts similarity index 100% rename from packages/messenger-generate-action-types/src/fix.test.ts rename to packages/messenger/src/generate-action-types/fix.test.ts diff --git a/packages/messenger-generate-action-types/src/fix.ts b/packages/messenger/src/generate-action-types/fix.ts similarity index 100% rename from packages/messenger-generate-action-types/src/fix.ts rename to packages/messenger/src/generate-action-types/fix.ts diff --git a/packages/messenger-generate-action-types/src/generate-content.test.ts b/packages/messenger/src/generate-action-types/generate-content.test.ts similarity index 100% rename from packages/messenger-generate-action-types/src/generate-content.test.ts rename to packages/messenger/src/generate-action-types/generate-content.test.ts diff --git a/packages/messenger-generate-action-types/src/generate-content.ts b/packages/messenger/src/generate-action-types/generate-content.ts similarity index 100% rename from packages/messenger-generate-action-types/src/generate-content.ts rename to packages/messenger/src/generate-action-types/generate-content.ts diff --git a/packages/messenger-generate-action-types/src/index.ts b/packages/messenger/src/generate-action-types/index.ts similarity index 100% rename from packages/messenger-generate-action-types/src/index.ts rename to packages/messenger/src/generate-action-types/index.ts diff --git a/packages/messenger-generate-action-types/src/parse-controller.test.ts b/packages/messenger/src/generate-action-types/parse-controller.test.ts similarity index 100% rename from packages/messenger-generate-action-types/src/parse-controller.test.ts rename to packages/messenger/src/generate-action-types/parse-controller.test.ts diff --git a/packages/messenger-generate-action-types/src/parse-controller.ts b/packages/messenger/src/generate-action-types/parse-controller.ts similarity index 100% rename from packages/messenger-generate-action-types/src/parse-controller.ts rename to packages/messenger/src/generate-action-types/parse-controller.ts diff --git a/packages/multichain-account-service/package.json b/packages/multichain-account-service/package.json index c9498e10ae8..698b4fca529 100644 --- a/packages/multichain-account-service/package.json +++ b/packages/multichain-account-service/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/multichain-account-service", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/multichain-account-service", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -71,7 +71,6 @@ "@metamask/account-api": "^1.0.0", "@metamask/auto-changelog": "^3.4.4", "@metamask/eth-hd-keyring": "^13.0.0", - "@metamask/messenger-generate-action-types": "^0.0.0", "@metamask/providers": "^22.1.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", diff --git a/packages/name-controller/package.json b/packages/name-controller/package.json index 33fd62bf290..55b9bdf4541 100644 --- a/packages/name-controller/package.json +++ b/packages/name-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/name-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/name-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "prepare-manifest:preview": "../../scripts/prepare-preview-manifest.sh", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", @@ -57,7 +57,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/network-enablement-controller/package.json b/packages/network-enablement-controller/package.json index 87d41e55911..f11122528ee 100644 --- a/packages/network-enablement-controller/package.json +++ b/packages/network-enablement-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/network-enablement-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/network-enablement-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -61,7 +61,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/notification-services-controller/package.json b/packages/notification-services-controller/package.json index 9b7121a0155..0d9e83ddf5a 100644 --- a/packages/notification-services-controller/package.json +++ b/packages/notification-services-controller/package.json @@ -93,8 +93,8 @@ "changelog:update": "../../scripts/update-changelog.sh @metamask/notification-services-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/notification-services-controller", "generate-method-action-types": "yarn generate-method-action-types:notifications-services-controller \"$@\" && yarn generate-method-action-types:notifications-services-push-controller \"$@\"", - "generate-method-action-types:notifications-services-controller": "tsx ../../packages/messenger-generate-action-types/src/cli.ts src/NotificationServicesController", - "generate-method-action-types:notifications-services-push-controller": "tsx ../../packages/messenger-generate-action-types/src/cli.ts src/NotificationServicesPushController", + "generate-method-action-types:notifications-services-controller": "tsx ../../packages/messenger/src/generate-action-types/cli.ts src/NotificationServicesController", + "generate-method-action-types:notifications-services-push-controller": "tsx ../../packages/messenger/src/generate-action-types/cli.ts src/NotificationServicesPushController", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -120,7 +120,6 @@ "@lavamoat/allow-scripts": "^3.0.4", "@lavamoat/preinstall-always-fail": "^2.1.0", "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "@types/lodash": "^4.14.191", diff --git a/packages/permission-controller/package.json b/packages/permission-controller/package.json index bd789289aaa..6f2006563c5 100644 --- a/packages/permission-controller/package.json +++ b/packages/permission-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/permission-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/permission-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -62,7 +62,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/permission-log-controller/package.json b/packages/permission-log-controller/package.json index 260a3d25cc4..2f24567a530 100644 --- a/packages/permission-log-controller/package.json +++ b/packages/permission-log-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/permission-log-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/permission-log-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -55,7 +55,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/deep-freeze-strict": "^1.1.0", "@types/jest": "^29.5.14", diff --git a/packages/preferences-controller/package.json b/packages/preferences-controller/package.json index 4f86bfa0718..13d78ef5f9d 100644 --- a/packages/preferences-controller/package.json +++ b/packages/preferences-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/preferences-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/preferences-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -53,7 +53,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@metamask/utils": "^11.9.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", diff --git a/packages/profile-metrics-controller/package.json b/packages/profile-metrics-controller/package.json index b09353e3600..04db8c6c6c9 100644 --- a/packages/profile-metrics-controller/package.json +++ b/packages/profile-metrics-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/profile-metrics-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/profile-metrics-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -62,7 +62,6 @@ "devDependencies": { "@metamask/auto-changelog": "^3.4.4", "@metamask/keyring-internal-api": "^10.0.0", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/profile-sync-controller/package.json b/packages/profile-sync-controller/package.json index 1054a5327bf..e5872843004 100644 --- a/packages/profile-sync-controller/package.json +++ b/packages/profile-sync-controller/package.json @@ -94,8 +94,8 @@ "changelog:update": "../../scripts/update-changelog.sh @metamask/profile-sync-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/profile-sync-controller", "generate-method-action-types": "yarn generate-method-action-types:authentication \"$@\" && yarn generate-method-action-types:user-storage \"$@\"", - "generate-method-action-types:authentication": "tsx ../../packages/messenger-generate-action-types/src/cli.ts src/controllers/authentication", - "generate-method-action-types:user-storage": "tsx ../../packages/messenger-generate-action-types/src/cli.ts src/controllers/user-storage", + "generate-method-action-types:authentication": "tsx ../../packages/messenger/src/generate-action-types/cli.ts src/controllers/authentication", + "generate-method-action-types:user-storage": "tsx ../../packages/messenger/src/generate-action-types/cli.ts src/controllers/user-storage", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -123,7 +123,6 @@ "@metamask/auto-changelog": "^3.4.4", "@metamask/keyring-api": "^21.6.0", "@metamask/keyring-internal-api": "^10.0.0", - "@metamask/messenger-generate-action-types": "^0.0.0", "@metamask/providers": "^22.1.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", diff --git a/packages/ramps-controller/package.json b/packages/ramps-controller/package.json index 384a9bc3fb2..e77ef8c2fda 100644 --- a/packages/ramps-controller/package.json +++ b/packages/ramps-controller/package.json @@ -41,7 +41,7 @@ "changelog:update": "../../scripts/update-changelog.sh @metamask/ramps-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/ramps-controller", "dev": "node dev-watch.js", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -55,7 +55,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/remote-feature-flag-controller/package.json b/packages/remote-feature-flag-controller/package.json index 1e332e021d7..e7eea8a8f7e 100644 --- a/packages/remote-feature-flag-controller/package.json +++ b/packages/remote-feature-flag-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/remote-feature-flag-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/remote-feature-flag-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -57,7 +57,6 @@ "devDependencies": { "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/sample-controllers/package.json b/packages/sample-controllers/package.json index 2077bb4cedd..aef8b7bb171 100644 --- a/packages/sample-controllers/package.json +++ b/packages/sample-controllers/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/sample-controllers", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/sample-controllers", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -56,7 +56,6 @@ "devDependencies": { "@metamask/auto-changelog": "^3.4.4", "@metamask/controller-utils": "^11.19.0", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/seedless-onboarding-controller/package.json b/packages/seedless-onboarding-controller/package.json index 7507b443063..e701ecb4852 100644 --- a/packages/seedless-onboarding-controller/package.json +++ b/packages/seedless-onboarding-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/seedless-onboarding-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/seedless-onboarding-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -64,7 +64,6 @@ "@lavamoat/allow-scripts": "^3.0.4", "@lavamoat/preinstall-always-fail": "^2.1.0", "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/elliptic": "^6", "@types/jest": "^29.5.14", diff --git a/packages/selected-network-controller/package.json b/packages/selected-network-controller/package.json index 41d25cd91c5..84c20b65c82 100644 --- a/packages/selected-network-controller/package.json +++ b/packages/selected-network-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/selected-network-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/selected-network-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -58,7 +58,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/shield-controller/package.json b/packages/shield-controller/package.json index 1e93ef8b798..fa17103a9cb 100644 --- a/packages/shield-controller/package.json +++ b/packages/shield-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/shield-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/shield-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -61,7 +61,6 @@ "@lavamoat/allow-scripts": "^3.0.4", "@lavamoat/preinstall-always-fail": "^2.1.0", "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/signature-controller/package.json b/packages/signature-controller/package.json index bd09cc3bfae..794e46d47d1 100644 --- a/packages/signature-controller/package.json +++ b/packages/signature-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/signature-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/signature-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -65,7 +65,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/storage-service/package.json b/packages/storage-service/package.json index 026e7e78bea..09bd04cc0c9 100644 --- a/packages/storage-service/package.json +++ b/packages/storage-service/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/storage-service", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/storage-service", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -53,7 +53,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/subscription-controller/package.json b/packages/subscription-controller/package.json index b8ac67dc8ad..748b37f3d65 100644 --- a/packages/subscription-controller/package.json +++ b/packages/subscription-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/subscription-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/subscription-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -59,7 +59,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/transaction-controller/package.json b/packages/transaction-controller/package.json index f3b78ba7ecf..80294e7e411 100644 --- a/packages/transaction-controller/package.json +++ b/packages/transaction-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/transaction-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/transaction-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -83,7 +83,6 @@ "@metamask/eth-block-tracker": "^15.0.0", "@metamask/eth-json-rpc-provider": "^6.0.0", "@metamask/ethjs-provider-http": "^0.3.0", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/bn.js": "^5.1.5", "@types/jest": "^29.5.14", diff --git a/packages/transaction-pay-controller/package.json b/packages/transaction-pay-controller/package.json index 2487954f124..c3586a9bee5 100644 --- a/packages/transaction-pay-controller/package.json +++ b/packages/transaction-pay-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/transaction-pay-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/transaction-pay-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "prepare-manifest:preview": "../../scripts/prepare-preview-manifest.sh", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", @@ -72,7 +72,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/user-operation-controller/package.json b/packages/user-operation-controller/package.json index 7e19438e67e..c787ce1326a 100644 --- a/packages/user-operation-controller/package.json +++ b/packages/user-operation-controller/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/user-operation-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/user-operation-controller", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "prepare-manifest:preview": "../../scripts/prepare-preview-manifest.sh", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", @@ -70,7 +70,6 @@ "devDependencies": { "@metamask/auto-changelog": "^3.4.4", "@metamask/eth-block-tracker": "^15.0.0", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/scripts/create-package/package-template/package.json b/scripts/create-package/package-template/package.json index c58c283479c..3e62b61e574 100644 --- a/scripts/create-package/package-template/package.json +++ b/scripts/create-package/package-template/package.json @@ -40,7 +40,7 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh PACKAGE_NAME", "changelog:validate": "../../scripts/validate-changelog.sh PACKAGE_NAME", - "generate-method-action-types": "tsx ../../packages/messenger-generate-action-types/src/cli.ts", + "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", @@ -49,7 +49,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/messenger-generate-action-types": "^0.0.0", "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/teams.json b/teams.json index 06e27f59daf..4a3f6902d14 100644 --- a/teams.json +++ b/teams.json @@ -62,7 +62,6 @@ "metamask/eth-json-rpc-middleware": "team-core-platform,team-confirmations,team-wallet-integrations", "metamask/eth-json-rpc-provider": "team-wallet-integrations,team-core-platform", "metamask/foundryup": "team-mobile-platform,team-extension-platform", - "metamask/messenger-generate-action-types": "team-core-platform", "metamask/json-rpc-engine": "team-wallet-integrations,team-core-platform", "metamask/json-rpc-middleware-stream": "team-wallet-integrations,team-core-platform", "metamask/keyring-controller": "team-accounts-framework,team-core-platform", diff --git a/tsconfig.build.json b/tsconfig.build.json index 1ae65117c27..0b4716238fb 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -121,9 +121,6 @@ { "path": "./packages/gator-permissions-controller/tsconfig.build.json" }, - { - "path": "./packages/messenger-generate-action-types/tsconfig.build.json" - }, { "path": "./packages/geolocation-controller/tsconfig.build.json" }, diff --git a/tsconfig.json b/tsconfig.json index 0f2074fc2cb..a177726dfba 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -116,9 +116,6 @@ { "path": "./packages/gator-permissions-controller" }, - { - "path": "./packages/messenger-generate-action-types" - }, { "path": "./packages/geolocation-controller" }, diff --git a/yarn.config.cjs b/yarn.config.cjs index 53fa8f73a86..6e5bcae193e 100644 --- a/yarn.config.cjs +++ b/yarn.config.cjs @@ -113,7 +113,7 @@ module.exports = defineConfig({ // exports correctly. if ( workspace.ident !== '@metamask/foundryup' && - workspace.ident !== '@metamask/messenger-generate-action-types' + workspace.ident !== '@metamask/messenger' ) { expectCorrectWorkspaceExports(workspace); } diff --git a/yarn.lock b/yarn.lock index 7999489ef65..e98b91cb08c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2534,7 +2534,6 @@ __metadata: "@metamask/keyring-api": "npm:^21.6.0" "@metamask/keyring-controller": "npm:^25.1.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/multichain-account-service": "npm:^7.1.0" "@metamask/profile-sync-controller": "npm:^28.0.0" "@metamask/providers": "npm:^22.1.0" @@ -2575,7 +2574,6 @@ __metadata: "@metamask/keyring-internal-api": "npm:^10.0.0" "@metamask/keyring-utils": "npm:^3.1.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/network-controller": "npm:^30.0.0" "@metamask/providers": "npm:^22.1.0" "@metamask/snaps-controllers": "npm:^17.2.0" @@ -2623,7 +2621,6 @@ __metadata: "@metamask/base-controller": "npm:^9.0.0" "@metamask/controller-utils": "npm:^11.19.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" @@ -2664,7 +2661,6 @@ __metadata: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/base-controller": "npm:^9.0.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" @@ -2686,7 +2682,6 @@ __metadata: "@metamask/base-controller": "npm:^9.0.0" "@metamask/controller-utils": "npm:^11.19.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" @@ -2708,7 +2703,6 @@ __metadata: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/base-controller": "npm:^9.0.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" @@ -2766,7 +2760,6 @@ __metadata: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/base-controller": "npm:^9.0.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" @@ -2801,7 +2794,6 @@ __metadata: "@metamask/keyring-internal-api": "npm:^10.0.0" "@metamask/keyring-snap-client": "npm:^8.2.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/network-controller": "npm:^30.0.0" "@metamask/network-enablement-controller": "npm:^5.0.0" "@metamask/permission-controller": "npm:^12.2.1" @@ -2856,7 +2848,6 @@ __metadata: "@metamask/keyring-internal-api": "npm:^10.0.0" "@metamask/keyring-snap-client": "npm:^8.2.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/metamask-eth-abis": "npm:^3.1.1" "@metamask/multichain-account-service": "npm:^7.1.0" "@metamask/network-controller": "npm:^30.0.0" @@ -3145,7 +3136,6 @@ __metadata: "@metamask/controller-utils": "npm:^11.19.0" "@metamask/keyring-controller": "npm:^25.1.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/profile-sync-controller": "npm:^28.0.0" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" @@ -3167,7 +3157,6 @@ __metadata: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/base-controller": "npm:^9.0.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" @@ -3189,7 +3178,6 @@ __metadata: "@metamask/base-controller": "npm:^9.0.0" "@metamask/controller-utils": "npm:^11.19.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/superstruct": "npm:^3.1.0" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" @@ -3236,7 +3224,6 @@ __metadata: "@metamask/controller-utils": "npm:^11.19.0" "@metamask/keyring-controller": "npm:^25.1.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/polling-controller": "npm:^16.0.3" "@metamask/profile-sync-controller": "npm:^28.0.0" "@metamask/remote-feature-flag-controller": "npm:^4.1.0" @@ -3263,7 +3250,6 @@ __metadata: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/base-controller": "npm:^9.0.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" @@ -3325,7 +3311,6 @@ __metadata: "@metamask/controller-utils": "npm:^11.19.0" "@metamask/keyring-controller": "npm:^25.1.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/profile-sync-controller": "npm:^28.0.0" "@metamask/utils": "npm:^11.9.0" "@tanstack/query-core": "npm:^5.62.16" @@ -3432,7 +3417,6 @@ __metadata: "@metamask/base-controller": "npm:^9.0.0" "@metamask/keyring-controller": "npm:^25.1.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" @@ -3476,7 +3460,6 @@ __metadata: "@metamask/controller-utils": "npm:^11.19.0" "@metamask/keyring-api": "npm:^21.6.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/network-controller": "npm:^30.0.0" "@metamask/stake-sdk": "npm:^3.2.1" "@metamask/transaction-controller": "npm:^63.0.0" @@ -3570,7 +3553,6 @@ __metadata: "@metamask/base-controller": "npm:^9.0.0" "@metamask/controller-utils": "npm:^11.19.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/network-controller": "npm:^30.0.0" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" @@ -3593,7 +3575,6 @@ __metadata: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/base-controller": "npm:^9.0.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@sentry/core": "npm:^9.22.0" "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" @@ -4042,7 +4023,6 @@ __metadata: "@metamask/controller-utils": "npm:^11.19.0" "@metamask/eth-query": "npm:^4.0.0" "@metamask/ethjs-unit": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/network-controller": "npm:^30.0.0" "@metamask/polling-controller": "npm:^16.0.3" "@metamask/utils": "npm:^11.9.0" @@ -4079,7 +4059,6 @@ __metadata: "@metamask/delegation-core": "npm:^0.2.0" "@metamask/delegation-deployments": "npm:^0.12.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/snaps-controllers": "npm:^17.2.0" "@metamask/snaps-sdk": "npm:^10.3.0" "@metamask/snaps-utils": "npm:^11.7.0" @@ -4105,7 +4084,6 @@ __metadata: "@metamask/base-controller": "npm:^9.0.0" "@metamask/controller-utils": "npm:^11.19.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" @@ -4311,7 +4289,6 @@ __metadata: "@metamask/base-controller": "npm:^9.0.0" "@metamask/controller-utils": "npm:^11.19.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" @@ -4349,9 +4326,9 @@ __metadata: languageName: unknown linkType: soft -"@metamask/messenger-generate-action-types@npm:^0.0.0, @metamask/messenger-generate-action-types@workspace:packages/messenger-generate-action-types": +"@metamask/messenger@npm:^0.3.0, @metamask/messenger@workspace:packages/messenger": version: 0.0.0-use.local - resolution: "@metamask/messenger-generate-action-types@workspace:packages/messenger-generate-action-types" + resolution: "@metamask/messenger@workspace:packages/messenger" dependencies: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/utils": "npm:^11.9.0" @@ -4360,6 +4337,7 @@ __metadata: "@types/yargs": "npm:^17.0.32" deepmerge: "npm:^4.2.2" eslint: "npm:^9.39.1" + immer: "npm:^9.0.6" jest: "npm:^29.7.0" ts-jest: "npm:^29.2.5" typedoc: "npm:^0.25.13" @@ -4368,28 +4346,17 @@ __metadata: yargs: "npm:^17.7.2" peerDependencies: eslint: ">=8" + typescript: ~5.3.3 + yargs: ^17.7.2 peerDependenciesMeta: eslint: optional: true + typescript: + optional: true + yargs: + optional: true bin: - messenger-generate-action-types: ./dist/cli.mjs - languageName: unknown - linkType: soft - -"@metamask/messenger@npm:^0.3.0, @metamask/messenger@workspace:packages/messenger": - version: 0.0.0-use.local - resolution: "@metamask/messenger@workspace:packages/messenger" - dependencies: - "@metamask/auto-changelog": "npm:^3.4.4" - "@ts-bridge/cli": "npm:^0.6.4" - "@types/jest": "npm:^29.5.14" - deepmerge: "npm:^4.2.2" - immer: "npm:^9.0.6" - jest: "npm:^29.7.0" - ts-jest: "npm:^29.2.5" - typedoc: "npm:^0.25.13" - typedoc-plugin-missing-exports: "npm:^2.0.0" - typescript: "npm:~5.3.3" + messenger-generate-action-types: ./dist/generate-action-types/cli.mjs languageName: unknown linkType: soft @@ -4418,7 +4385,6 @@ __metadata: "@metamask/keyring-snap-client": "npm:^8.2.0" "@metamask/keyring-utils": "npm:^3.1.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/providers": "npm:^22.1.0" "@metamask/snaps-controllers": "npm:^17.2.0" "@metamask/snaps-sdk": "npm:^10.3.0" @@ -4547,7 +4513,6 @@ __metadata: "@metamask/base-controller": "npm:^9.0.0" "@metamask/controller-utils": "npm:^11.19.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" @@ -4619,7 +4584,6 @@ __metadata: "@metamask/controller-utils": "npm:^11.19.0" "@metamask/keyring-api": "npm:^21.6.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/multichain-network-controller": "npm:^3.0.5" "@metamask/network-controller": "npm:^30.0.0" "@metamask/slip44": "npm:^4.3.0" @@ -4662,7 +4626,6 @@ __metadata: "@metamask/controller-utils": "npm:^11.19.0" "@metamask/keyring-controller": "npm:^25.1.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/profile-sync-controller": "npm:^28.0.0" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" @@ -4719,7 +4682,6 @@ __metadata: "@metamask/controller-utils": "npm:^11.19.0" "@metamask/json-rpc-engine": "npm:^10.2.3" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" @@ -4746,7 +4708,6 @@ __metadata: "@metamask/base-controller": "npm:^9.0.0" "@metamask/json-rpc-engine": "npm:^10.2.3" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" "@types/deep-freeze-strict": "npm:^1.1.0" @@ -4880,7 +4841,6 @@ __metadata: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/base-controller": "npm:^9.0.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" @@ -4905,7 +4865,6 @@ __metadata: "@metamask/keyring-controller": "npm:^25.1.0" "@metamask/keyring-internal-api": "npm:^10.0.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/polling-controller": "npm:^16.0.3" "@metamask/profile-sync-controller": "npm:^28.0.0" "@metamask/transaction-controller": "npm:^63.0.0" @@ -4937,7 +4896,6 @@ __metadata: "@metamask/keyring-controller": "npm:^25.1.0" "@metamask/keyring-internal-api": "npm:^10.0.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/providers": "npm:^22.1.0" "@metamask/snaps-controllers": "npm:^17.2.0" "@metamask/snaps-sdk": "npm:^10.3.0" @@ -4996,7 +4954,6 @@ __metadata: "@metamask/base-controller": "npm:^9.0.0" "@metamask/controller-utils": "npm:^11.19.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" @@ -5055,7 +5012,6 @@ __metadata: "@metamask/base-controller": "npm:^9.0.0" "@metamask/controller-utils": "npm:^11.19.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" @@ -5096,7 +5052,6 @@ __metadata: "@metamask/base-controller": "npm:^9.0.0" "@metamask/controller-utils": "npm:^11.19.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/network-controller": "npm:^30.0.0" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" @@ -5134,7 +5089,6 @@ __metadata: "@metamask/browser-passworder": "npm:^6.0.0" "@metamask/keyring-controller": "npm:^25.1.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/toprf-secure-backup": "npm:^0.11.0" "@metamask/utils": "npm:^11.9.0" "@noble/ciphers": "npm:^1.3.0" @@ -5165,7 +5119,6 @@ __metadata: "@metamask/base-controller": "npm:^9.0.0" "@metamask/json-rpc-engine": "npm:^10.2.3" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/network-controller": "npm:^30.0.0" "@metamask/permission-controller": "npm:^12.2.1" "@metamask/swappable-obj-proxy": "npm:^2.3.0" @@ -5197,7 +5150,6 @@ __metadata: "@metamask/base-controller": "npm:^9.0.0" "@metamask/controller-utils": "npm:^11.19.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/signature-controller": "npm:^39.1.0" "@metamask/transaction-controller": "npm:^63.0.0" "@metamask/utils": "npm:^11.9.0" @@ -5230,7 +5182,6 @@ __metadata: "@metamask/keyring-controller": "npm:^25.1.0" "@metamask/logging-controller": "npm:^8.0.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/network-controller": "npm:^30.0.0" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" @@ -5416,7 +5367,6 @@ __metadata: dependencies: "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/utils": "npm:^11.9.0" "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" @@ -5438,7 +5388,6 @@ __metadata: "@metamask/base-controller": "npm:^9.0.0" "@metamask/controller-utils": "npm:^11.19.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/polling-controller": "npm:^16.0.3" "@metamask/profile-sync-controller": "npm:^28.0.0" "@metamask/transaction-controller": "npm:^63.0.0" @@ -5551,7 +5500,6 @@ __metadata: "@metamask/ethjs-provider-http": "npm:^0.3.0" "@metamask/gas-fee-controller": "npm:^26.1.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/metamask-eth-abis": "npm:^3.1.1" "@metamask/network-controller": "npm:^30.0.0" "@metamask/nonce-tracker": "npm:^6.0.0" @@ -5601,7 +5549,6 @@ __metadata: "@metamask/controller-utils": "npm:^11.19.0" "@metamask/gas-fee-controller": "npm:^26.1.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/metamask-eth-abis": "npm:^3.1.1" "@metamask/network-controller": "npm:^30.0.0" "@metamask/remote-feature-flag-controller": "npm:^4.1.0" @@ -5636,7 +5583,6 @@ __metadata: "@metamask/gas-fee-controller": "npm:^26.1.0" "@metamask/keyring-controller": "npm:^25.1.0" "@metamask/messenger": "npm:^0.3.0" - "@metamask/messenger-generate-action-types": "npm:^0.0.0" "@metamask/network-controller": "npm:^30.0.0" "@metamask/polling-controller": "npm:^16.0.3" "@metamask/rpc-errors": "npm:^7.0.2" From 2f2c07ec03d764a0ca824ac8be8ea3727d93af33 Mon Sep 17 00:00:00 2001 From: Salah-Eddine Saakoun Date: Fri, 20 Mar 2026 18:46:24 +0100 Subject: [PATCH 4/9] chore: add changelog entry for generate-action-types in @metamask/messenger --- packages/messenger/CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/messenger/CHANGELOG.md b/packages/messenger/CHANGELOG.md index 00371d21c6d..0c95ad18e7c 100644 --- a/packages/messenger/CHANGELOG.md +++ b/packages/messenger/CHANGELOG.md @@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Added + +- Add `generate-action-types` CLI tool and subpath export ([#8264](https://github.com/MetaMask/core/pull/8264)) + - Generates TypeScript action type files for controllers and services that define `MESSENGER_EXPOSED_METHODS`. + - Available as a CLI binary (`messenger-generate-action-types`) and as a programmatic API via `@metamask/messenger/generate-action-types`. + - `typescript`, `yargs`, and `eslint` are optional peer dependencies, only required when using the codegen tool. + ## [0.3.0] ### Added From 6108913f427638407d322274a4ada1fcc872327d Mon Sep 17 00:00:00 2001 From: Salah-Eddine Saakoun Date: Fri, 20 Mar 2026 19:51:36 +0100 Subject: [PATCH 5/9] test: achieve 100% coverage for generate-action-types in @metamask/messenger --- packages/messenger/jest.config.js | 8 +- .../src/generate-action-types/check.test.ts | 59 ++++ .../src/generate-action-types/fix.test.ts | 40 +++ .../parse-controller.test.ts | 307 ++++++++++++++++++ .../generate-action-types/parse-controller.ts | 7 +- 5 files changed, 413 insertions(+), 8 deletions(-) diff --git a/packages/messenger/jest.config.js b/packages/messenger/jest.config.js index 49c7241cf77..4f4c55b563c 100644 --- a/packages/messenger/jest.config.js +++ b/packages/messenger/jest.config.js @@ -18,17 +18,11 @@ module.exports = merge(baseConfig, { // An object that configures minimum threshold enforcement for coverage results coverageThreshold: { - './src/Messenger.ts': { + global: { branches: 100, functions: 100, lines: 100, statements: 100, }, - './src/generate-action-types/': { - branches: 70, - functions: 75, - lines: 75, - statements: 75, - }, }, }); diff --git a/packages/messenger/src/generate-action-types/check.test.ts b/packages/messenger/src/generate-action-types/check.test.ts index dac407dd8e4..ab8425dafef 100644 --- a/packages/messenger/src/generate-action-types/check.test.ts +++ b/packages/messenger/src/generate-action-types/check.test.ts @@ -83,4 +83,63 @@ describe('checkActionTypesFiles', () => { expect(globalThis.process.exitCode).toBe(1); }); + + it('reports non-ENOENT errors when accessing files', async () => { + const controller: ControllerInfo = { + name: 'TestController', + filePath: path.join(tmpDir, 'TestController.ts'), + exposedMethods: ['doStuff'], + methods: [{ name: 'doStuff', jsDoc: '', signature: 'doStuff' }], + }; + + // Mock fs.promises.access to throw a non-ENOENT error + const accessSpy = jest + .spyOn(fs.promises, 'access') + .mockRejectedValue(Object.assign(new Error('EPERM'), { code: 'EPERM' })); + + const consoleSpy = jest.spyOn(console, 'log').mockImplementation(); + const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(); + await checkActionTypesFiles([controller], null, null); + + expect(consoleErrorSpy).toHaveBeenCalledWith( + expect.stringContaining('Error reading'), + expect.anything(), + ); + expect(globalThis.process.exitCode).toBe(1); + + accessSpy.mockRestore(); + consoleSpy.mockRestore(); + consoleErrorSpy.mockRestore(); + }); + + it('uses ESLint when provided', async () => { + const controller: ControllerInfo = { + name: 'TestController', + filePath: path.join(tmpDir, 'TestController.ts'), + exposedMethods: ['doStuff'], + methods: [{ name: 'doStuff', jsDoc: '', signature: 'doStuff' }], + }; + + const content = generateActionTypesContent(controller); + await fs.promises.writeFile( + path.join(tmpDir, 'TestController-method-action-types.ts'), + content, + 'utf8', + ); + + const mockESLint = { + lintFiles: jest.fn().mockResolvedValue([]), + }; + const mockESLintStatic = { + outputFixes: jest.fn().mockResolvedValue(undefined), + }; + + const consoleSpy = jest.spyOn(console, 'log').mockImplementation(); + await checkActionTypesFiles([controller], mockESLint, mockESLintStatic); + consoleSpy.mockRestore(); + + expect(mockESLint.lintFiles).toHaveBeenCalled(); + expect(mockESLintStatic.outputFixes).toHaveBeenCalled(); + expect(globalThis.process.exitCode).toBeUndefined(); + }); }); diff --git a/packages/messenger/src/generate-action-types/fix.test.ts b/packages/messenger/src/generate-action-types/fix.test.ts index 91402729506..46918a78eff 100644 --- a/packages/messenger/src/generate-action-types/fix.test.ts +++ b/packages/messenger/src/generate-action-types/fix.test.ts @@ -8,15 +8,18 @@ import type { ControllerInfo } from './parse-controller'; describe('generateAllActionTypesFiles', () => { let tmpDir: string; + const originalExitCode = globalThis.process.exitCode; beforeEach(async () => { tmpDir = await fs.promises.mkdtemp( path.join(os.tmpdir(), 'fix-action-types-'), ); + globalThis.process.exitCode = undefined; }); afterEach(async () => { await fs.promises.rm(tmpDir, { recursive: true, force: true }); + globalThis.process.exitCode = originalExitCode; }); it('generates files for controllers (no ESLint)', async () => { @@ -102,4 +105,41 @@ describe('generateAllActionTypesFiles', () => { expect(mockESLintStatic.outputFixes).toHaveBeenCalled(); expect(mockESLintStatic.getErrorResults).toHaveBeenCalled(); }); + + it('sets exitCode when ESLint reports errors', async () => { + const controller: ControllerInfo = { + name: 'TestController', + filePath: path.join(tmpDir, 'TestController.ts'), + exposedMethods: ['doStuff'], + methods: [{ name: 'doStuff', jsDoc: '', signature: 'doStuff' }], + }; + + const mockESLint = { + lintFiles: jest.fn().mockResolvedValue([{ filePath: 'test.ts' }]), + }; + + const mockESLintStatic = { + outputFixes: jest.fn().mockResolvedValue(undefined), + getErrorResults: jest + .fn() + .mockReturnValue([{ filePath: 'test.ts', messages: ['err'] }]), + }; + + const consoleSpy = jest.spyOn(console, 'log').mockImplementation(); + const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(); + await generateAllActionTypesFiles( + [controller], + mockESLint, + mockESLintStatic, + ); + + expect(globalThis.process.exitCode).toBe(1); + expect(consoleErrorSpy).toHaveBeenCalledWith( + 'āŒ ESLint errors:', + expect.anything(), + ); + + consoleSpy.mockRestore(); + consoleErrorSpy.mockRestore(); + }); }); diff --git a/packages/messenger/src/generate-action-types/parse-controller.test.ts b/packages/messenger/src/generate-action-types/parse-controller.test.ts index 1f684422dea..ad8382ecfa4 100644 --- a/packages/messenger/src/generate-action-types/parse-controller.test.ts +++ b/packages/messenger/src/generate-action-types/parse-controller.test.ts @@ -138,6 +138,299 @@ class TestService { expect(result).not.toBeNull(); expect(result?.name).toBe('TestService'); }); + + it('extracts methods without JSDoc', async () => { + const controllerFile = path.join(tmpDir, 'NoDocController.ts'); + await fs.promises.writeFile( + controllerFile, + ` +const MESSENGER_EXPOSED_METHODS = ['doStuff'] as const; + +class NoDocController { + doStuff() { + return true; + } +} +`, + 'utf8', + ); + + const result = await parseControllerFile(controllerFile); + + expect(result).not.toBeNull(); + expect(result?.methods[0].jsDoc).toBe(''); + }); + + it('handles inherited methods via type checker', async () => { + // Create a tsconfig.json so the type checker can work + await fs.promises.writeFile( + path.join(tmpDir, 'tsconfig.json'), + JSON.stringify({ + compilerOptions: { + target: 'ES2020', + module: 'commonjs', + strict: true, + }, + include: ['./*.ts'], + }), + 'utf8', + ); + + await fs.promises.writeFile( + path.join(tmpDir, 'BaseController.ts'), + ` +export class BaseController { + /** + * Base method. + */ + baseMethod() { + return 'base'; + } +} +`, + 'utf8', + ); + + const controllerFile = path.join(tmpDir, 'ChildController.ts'); + await fs.promises.writeFile( + controllerFile, + ` +import { BaseController } from './BaseController'; + +const MESSENGER_EXPOSED_METHODS = ['doStuff', 'baseMethod'] as const; + +class ChildController extends BaseController { + doStuff() { + return true; + } +} +`, + 'utf8', + ); + + const result = await parseControllerFile(controllerFile); + + expect(result).not.toBeNull(); + expect(result?.methods).toHaveLength(2); + expect(result?.methods[0].name).toBe('doStuff'); + expect(result?.methods[1].name).toBe('baseMethod'); + expect(result?.methods[1].jsDoc).toContain('Base method.'); + }); + + it('handles inherited methods without JSDoc', async () => { + await fs.promises.writeFile( + path.join(tmpDir, 'tsconfig.json'), + JSON.stringify({ + compilerOptions: { target: 'ES2020', module: 'commonjs', strict: true }, + include: ['./*.ts'], + }), + 'utf8', + ); + + await fs.promises.writeFile( + path.join(tmpDir, 'BaseNoDoc.ts'), + ` +export class BaseNoDoc { + baseMethod() { + return 'base'; + } +} +`, + 'utf8', + ); + + const controllerFile = path.join(tmpDir, 'ChildNoDocController.ts'); + await fs.promises.writeFile( + controllerFile, + ` +import { BaseNoDoc } from './BaseNoDoc'; + +const MESSENGER_EXPOSED_METHODS = ['doStuff', 'baseMethod'] as const; + +class ChildNoDocController extends BaseNoDoc { + doStuff() { + return true; + } +} +`, + 'utf8', + ); + + const result = await parseControllerFile(controllerFile); + + expect(result).not.toBeNull(); + expect(result?.methods).toHaveLength(2); + expect(result?.methods[1].name).toBe('baseMethod'); + // Method without JSDoc should have empty string + expect(result?.methods[1].jsDoc).toBe(''); + }); + + it('handles exposed method not found in hierarchy', async () => { + await fs.promises.writeFile( + path.join(tmpDir, 'tsconfig.json'), + JSON.stringify({ + compilerOptions: { target: 'ES2020', module: 'commonjs', strict: true }, + include: ['./*.ts'], + }), + 'utf8', + ); + + const controllerFile = path.join(tmpDir, 'MissingMethodController.ts'); + await fs.promises.writeFile( + controllerFile, + ` +const MESSENGER_EXPOSED_METHODS = ['doStuff', 'nonExistentMethod'] as const; + +class MissingMethodController { + doStuff() { + return true; + } +} +`, + 'utf8', + ); + + const result = await parseControllerFile(controllerFile); + + expect(result).not.toBeNull(); + expect(result?.methods).toHaveLength(2); + expect(result?.methods[1].name).toBe('nonExistentMethod'); + expect(result?.methods[1].jsDoc).toBe(''); + }); + + it('formats JSDoc with empty middle lines', async () => { + const controllerFile = path.join(tmpDir, 'EmptyLineDocController.ts'); + await fs.promises.writeFile( + controllerFile, + ` +const MESSENGER_EXPOSED_METHODS = ['doStuff'] as const; + +class EmptyLineDocController { + /** + * First line. + * + * After empty line. + */ + doStuff() { + return true; + } +} +`, + 'utf8', + ); + + const result = await parseControllerFile(controllerFile); + + expect(result).not.toBeNull(); + expect(result?.methods[0].jsDoc).toContain(' *\n'); + expect(result?.methods[0].jsDoc).toContain(' * First line.'); + expect(result?.methods[0].jsDoc).toContain(' * After empty line.'); + }); + + it('extracts JSDoc with non-standard middle lines', async () => { + const controllerFile = path.join(tmpDir, 'WeirdDocController.ts'); + // Write file with a JSDoc containing a line without * prefix and an empty line without * prefix + const source = [ + '', + "const MESSENGER_EXPOSED_METHODS = ['doStuff'] as const;", + '', + 'class WeirdDocController {', + ' /**', + ' This line has no asterisk prefix.', + ' ', + ' */', + ' doStuff() {', + ' return true;', + ' }', + '}', + '', + ].join('\n'); + await fs.promises.writeFile(controllerFile, source, 'utf8'); + + const result = await parseControllerFile(controllerFile); + + expect(result).not.toBeNull(); + expect(result?.methods[0].jsDoc).toContain( + ' * This line has no asterisk prefix.', + ); + // The empty line (only whitespace, no *) should become ' *' + expect(result?.methods[0].jsDoc).toContain(' *\n'); + }); + + it('handles inherited methods with malformed tsconfig', async () => { + // Write an invalid tsconfig to trigger readConfigFile error + await fs.promises.writeFile( + path.join(tmpDir, 'tsconfig.json'), + 'this is not valid json', + 'utf8', + ); + + const controllerFile = path.join(tmpDir, 'BadTsconfigController.ts'); + await fs.promises.writeFile( + controllerFile, + ` +const MESSENGER_EXPOSED_METHODS = ['doStuff', 'inherited'] as const; + +class BadTsconfigController { + doStuff() { + return true; + } +} +`, + 'utf8', + ); + + const consoleErrorSpy = jest + .spyOn(console, 'error') + .mockImplementation(); + const result = await parseControllerFile(controllerFile); + + expect(result).toBeNull(); + expect(consoleErrorSpy).toHaveBeenCalled(); + + consoleErrorSpy.mockRestore(); + }); + + it('handles inherited methods when tsconfig is missing', async () => { + // No tsconfig.json in tmpDir — createProgramForFile should fail with assert + const controllerFile = path.join(tmpDir, 'NoTsconfigController.ts'); + await fs.promises.writeFile( + controllerFile, + ` +const MESSENGER_EXPOSED_METHODS = ['doStuff', 'inheritedMethod'] as const; + +class NoTsconfigController { + doStuff() { + return true; + } +} +`, + 'utf8', + ); + + const consoleErrorSpy = jest + .spyOn(console, 'error') + .mockImplementation(); + const result = await parseControllerFile(controllerFile); + + // Should return null because assert fails when type checker can't be created + expect(result).toBeNull(); + expect(consoleErrorSpy).toHaveBeenCalled(); + + consoleErrorSpy.mockRestore(); + }); + + it('returns null and logs error for invalid file', async () => { + const consoleErrorSpy = jest + .spyOn(console, 'error') + .mockImplementation(); + + const result = await parseControllerFile('/nonexistent/file.ts'); + + expect(result).toBeNull(); + expect(consoleErrorSpy).toHaveBeenCalled(); + consoleErrorSpy.mockRestore(); + }); }); describe('findControllersWithExposedMethods', () => { @@ -203,4 +496,18 @@ class FooController { findControllersWithExposedMethods('/nonexistent/path'), ).rejects.toThrow('The specified path is not a directory'); }); + + it('re-throws non-ENOENT errors from isDirectory', async () => { + const statSpy = jest + .spyOn(fs.promises, 'stat') + .mockRejectedValue( + Object.assign(new Error('EACCES'), { code: 'EACCES' }), + ); + + await expect(findControllersWithExposedMethods(tmpDir)).rejects.toThrow( + 'EACCES', + ); + + statSpy.mockRestore(); + }); }); diff --git a/packages/messenger/src/generate-action-types/parse-controller.ts b/packages/messenger/src/generate-action-types/parse-controller.ts index f6fc8cba557..0f10bdfea61 100644 --- a/packages/messenger/src/generate-action-types/parse-controller.ts +++ b/packages/messenger/src/generate-action-types/parse-controller.ts @@ -73,6 +73,7 @@ function extractJSDoc(node: MethodDeclaration, source: SourceFile): string { return formatJSDoc(rawJsDoc); } + // istanbul ignore next: defensive check — getJSDocCommentsAndTags always returns JSDoc nodes return ''; } @@ -113,6 +114,7 @@ function formatJSDoc(rawJsDoc: string): string { * @returns The method signature. */ function extractMethodSignature(node: MethodDeclaration): string { + // istanbul ignore next: method declarations always have a name return node.name ? (node.name as Identifier).text : ''; } @@ -238,7 +240,8 @@ function findClassInSourceFile( source.statements.find( (node): node is ClassDeclaration => isClassDeclaration(node) && node.name?.text === className, - ) ?? null + ) ?? // istanbul ignore next: class is always found when called from parseControllerFile + null ); } @@ -260,6 +263,7 @@ function findMethodInHierarchy( } const declarations = symbol.getDeclarations(); + // istanbul ignore next: defensive check — symbols from getProperty always have declarations if (!declarations) { return null; } @@ -270,6 +274,7 @@ function findMethodInHierarchy( } } + // istanbul ignore next: defensive fallback — property found but not a method declaration return null; } From 46cf0e66d4c03515476963f7d7c3d398e427bcfc Mon Sep 17 00:00:00 2001 From: Salah-Eddine Saakoun Date: Fri, 20 Mar 2026 20:42:20 +0100 Subject: [PATCH 6/9] refactor: simplify generate-action-types code - Remove unused `MethodInfo.signature` field - Remove redundant `ControllerInfo.exposedMethods` (derivable from methods) - Extract shared ESLint types to `types.ts`, deduplicate across check/fix - Combine eslint/eslintStatic params into single `ESLint | null` object - Inline single-use `capitalize()` helper - Remove unused `Identifier` type import and `extractMethodSignature` --- .../src/generate-action-types/check.test.ts | 45 ++++++------ .../src/generate-action-types/check.ts | 21 ++---- .../src/generate-action-types/cli.ts | 22 +++--- .../src/generate-action-types/fix.test.ts | 69 ++++++++----------- .../src/generate-action-types/fix.ts | 26 ++----- .../generate-content.test.ts | 12 ++-- .../generate-action-types/generate-content.ts | 14 +--- .../src/generate-action-types/index.ts | 1 + .../parse-controller.test.ts | 18 ++--- .../generate-action-types/parse-controller.ts | 19 +---- .../src/generate-action-types/types.ts | 11 +++ 11 files changed, 103 insertions(+), 155 deletions(-) create mode 100644 packages/messenger/src/generate-action-types/types.ts diff --git a/packages/messenger/src/generate-action-types/check.test.ts b/packages/messenger/src/generate-action-types/check.test.ts index ab8425dafef..53a87d5dbe1 100644 --- a/packages/messenger/src/generate-action-types/check.test.ts +++ b/packages/messenger/src/generate-action-types/check.test.ts @@ -26,8 +26,8 @@ describe('checkActionTypesFiles', () => { const controller: ControllerInfo = { name: 'TestController', filePath: path.join(tmpDir, 'TestController.ts'), - exposedMethods: ['doStuff'], - methods: [{ name: 'doStuff', jsDoc: '', signature: 'doStuff' }], + + methods: [{ name: 'doStuff', jsDoc: '' }], }; const content = generateActionTypesContent(controller); @@ -38,7 +38,7 @@ describe('checkActionTypesFiles', () => { ); const consoleSpy = jest.spyOn(console, 'log').mockImplementation(); - await checkActionTypesFiles([controller], null, null); + await checkActionTypesFiles([controller], null); consoleSpy.mockRestore(); expect(globalThis.process.exitCode).toBeUndefined(); @@ -48,8 +48,8 @@ describe('checkActionTypesFiles', () => { const controller: ControllerInfo = { name: 'TestController', filePath: path.join(tmpDir, 'TestController.ts'), - exposedMethods: ['doStuff'], - methods: [{ name: 'doStuff', jsDoc: '', signature: 'doStuff' }], + + methods: [{ name: 'doStuff', jsDoc: '' }], }; await fs.promises.writeFile( @@ -60,7 +60,7 @@ describe('checkActionTypesFiles', () => { const consoleSpy = jest.spyOn(console, 'log').mockImplementation(); const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(); - await checkActionTypesFiles([controller], null, null); + await checkActionTypesFiles([controller], null); consoleSpy.mockRestore(); consoleErrorSpy.mockRestore(); @@ -71,13 +71,13 @@ describe('checkActionTypesFiles', () => { const controller: ControllerInfo = { name: 'TestController', filePath: path.join(tmpDir, 'TestController.ts'), - exposedMethods: ['doStuff'], - methods: [{ name: 'doStuff', jsDoc: '', signature: 'doStuff' }], + + methods: [{ name: 'doStuff', jsDoc: '' }], }; const consoleSpy = jest.spyOn(console, 'log').mockImplementation(); const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(); - await checkActionTypesFiles([controller], null, null); + await checkActionTypesFiles([controller], null); consoleSpy.mockRestore(); consoleErrorSpy.mockRestore(); @@ -88,8 +88,8 @@ describe('checkActionTypesFiles', () => { const controller: ControllerInfo = { name: 'TestController', filePath: path.join(tmpDir, 'TestController.ts'), - exposedMethods: ['doStuff'], - methods: [{ name: 'doStuff', jsDoc: '', signature: 'doStuff' }], + + methods: [{ name: 'doStuff', jsDoc: '' }], }; // Mock fs.promises.access to throw a non-ENOENT error @@ -99,7 +99,7 @@ describe('checkActionTypesFiles', () => { const consoleSpy = jest.spyOn(console, 'log').mockImplementation(); const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(); - await checkActionTypesFiles([controller], null, null); + await checkActionTypesFiles([controller], null); expect(consoleErrorSpy).toHaveBeenCalledWith( expect.stringContaining('Error reading'), @@ -116,8 +116,8 @@ describe('checkActionTypesFiles', () => { const controller: ControllerInfo = { name: 'TestController', filePath: path.join(tmpDir, 'TestController.ts'), - exposedMethods: ['doStuff'], - methods: [{ name: 'doStuff', jsDoc: '', signature: 'doStuff' }], + + methods: [{ name: 'doStuff', jsDoc: '' }], }; const content = generateActionTypesContent(controller); @@ -127,19 +127,20 @@ describe('checkActionTypesFiles', () => { 'utf8', ); - const mockESLint = { - lintFiles: jest.fn().mockResolvedValue([]), - }; - const mockESLintStatic = { - outputFixes: jest.fn().mockResolvedValue(undefined), + const mockEslint = { + instance: { lintFiles: jest.fn().mockResolvedValue([]) }, + static: { + outputFixes: jest.fn().mockResolvedValue(undefined), + getErrorResults: jest.fn().mockReturnValue([]), + }, }; const consoleSpy = jest.spyOn(console, 'log').mockImplementation(); - await checkActionTypesFiles([controller], mockESLint, mockESLintStatic); + await checkActionTypesFiles([controller], mockEslint); consoleSpy.mockRestore(); - expect(mockESLint.lintFiles).toHaveBeenCalled(); - expect(mockESLintStatic.outputFixes).toHaveBeenCalled(); + expect(mockEslint.instance.lintFiles).toHaveBeenCalled(); + expect(mockEslint.static.outputFixes).toHaveBeenCalled(); expect(globalThis.process.exitCode).toBeUndefined(); }); }); diff --git a/packages/messenger/src/generate-action-types/check.ts b/packages/messenger/src/generate-action-types/check.ts index 15eb679a6f1..661f0664dcb 100644 --- a/packages/messenger/src/generate-action-types/check.ts +++ b/packages/messenger/src/generate-action-types/check.ts @@ -3,26 +3,17 @@ import * as path from 'node:path'; import { generateActionTypesContent } from './generate-content'; import type { ControllerInfo } from './parse-controller'; - -type ESLintInstance = { - lintFiles(files: string[]): Promise<{ output?: string; filePath: string }[]>; -}; - -type ESLintStatic = { - outputFixes(results: { output?: string; filePath: string }[]): Promise; -}; +import type { ESLint } from './types'; /** * Checks if generated action types files are up to date. * * @param controllers - Array of controller information objects. - * @param eslint - The ESLint instance to use for formatting. - * @param eslintStatic - The ESLint class for static methods. + * @param eslint - Optional ESLint instance and static methods for formatting. */ export async function checkActionTypesFiles( controllers: ControllerInfo[], - eslint: ESLintInstance | null, - eslintStatic: ESLintStatic | null, + eslint: ESLint | null, ): Promise { let hasErrors = false; @@ -71,13 +62,13 @@ export async function checkActionTypesFiles( } if (fileComparisonJobs.length > 0) { - if (eslint && eslintStatic) { + if (eslint) { console.log('\nšŸ“ Running ESLint to compare files...'); - const results = await eslint.lintFiles( + const results = await eslint.instance.lintFiles( fileComparisonJobs.map((job) => job.expectedTempFile), ); - await eslintStatic.outputFixes(results); + await eslint.static.outputFixes(results); } for (const job of fileComparisonJobs) { diff --git a/packages/messenger/src/generate-action-types/cli.ts b/packages/messenger/src/generate-action-types/cli.ts index 53cd3c8841b..561cd2965b8 100644 --- a/packages/messenger/src/generate-action-types/cli.ts +++ b/packages/messenger/src/generate-action-types/cli.ts @@ -5,6 +5,7 @@ import yargs from 'yargs'; import { checkActionTypesFiles } from './check'; import { generateAllActionTypesFiles } from './fix'; import { findControllersWithExposedMethods } from './parse-controller'; +import type { ESLint } from './types'; type CommandLineArguments = { check: boolean; @@ -62,21 +63,18 @@ async function parseCommandLineArguments(): Promise { /** * Attempt to load ESLint from the current project. Returns null if unavailable. * - * @returns An object with an ESLint instance and the ESLint class, or null values. + * @returns An ESLint object with instance and static methods, or null if unavailable. */ -async function loadESLint(): Promise<{ - eslint: InstanceType | null; - eslintStatic: typeof import('eslint').ESLint | null; -}> { +async function loadESLint(): Promise { try { - const { ESLint } = await import('eslint'); - const eslint = new ESLint({ + const { ESLint: ESLintClass } = await import('eslint'); + const instance = new ESLintClass({ fix: true, errorOnUnmatchedPattern: false, }); - return { eslint, eslintStatic: ESLint }; + return { instance, static: ESLintClass }; } catch { - return { eslint: null, eslintStatic: null }; + return null; } } @@ -99,13 +97,13 @@ async function main(): Promise { `šŸ“¦ Found ${controllers.length} controller(s) with exposed methods`, ); - const { eslint, eslintStatic } = await loadESLint(); + const eslint = await loadESLint(); if (fix) { - await generateAllActionTypesFiles(controllers, eslint, eslintStatic); + await generateAllActionTypesFiles(controllers, eslint); console.log('\nšŸŽ‰ All action types generated successfully!'); } else { - await checkActionTypesFiles(controllers, eslint, eslintStatic); + await checkActionTypesFiles(controllers, eslint); } } diff --git a/packages/messenger/src/generate-action-types/fix.test.ts b/packages/messenger/src/generate-action-types/fix.test.ts index 46918a78eff..110a1cf9358 100644 --- a/packages/messenger/src/generate-action-types/fix.test.ts +++ b/packages/messenger/src/generate-action-types/fix.test.ts @@ -26,12 +26,12 @@ describe('generateAllActionTypesFiles', () => { const controller: ControllerInfo = { name: 'TestController', filePath: path.join(tmpDir, 'TestController.ts'), - exposedMethods: ['doStuff'], - methods: [{ name: 'doStuff', jsDoc: '', signature: 'doStuff' }], + + methods: [{ name: 'doStuff', jsDoc: '' }], }; const consoleSpy = jest.spyOn(console, 'log').mockImplementation(); - await generateAllActionTypesFiles([controller], null, null); + await generateAllActionTypesFiles([controller], null); consoleSpy.mockRestore(); const outputFile = path.join( @@ -49,19 +49,17 @@ describe('generateAllActionTypesFiles', () => { { name: 'FooController', filePath: path.join(tmpDir, 'FooController.ts'), - exposedMethods: ['doFoo'], - methods: [{ name: 'doFoo', jsDoc: '', signature: 'doFoo' }], + methods: [{ name: 'doFoo', jsDoc: '' }], }, { name: 'BarService', filePath: path.join(tmpDir, 'BarService.ts'), - exposedMethods: ['doBar'], - methods: [{ name: 'doBar', jsDoc: '', signature: 'doBar' }], + methods: [{ name: 'doBar', jsDoc: '' }], }, ]; const consoleSpy = jest.spyOn(console, 'log').mockImplementation(); - await generateAllActionTypesFiles(controllers, null, null); + await generateAllActionTypesFiles(controllers, null); consoleSpy.mockRestore(); const fooFile = path.join(tmpDir, 'FooController-method-action-types.ts'); @@ -78,60 +76,51 @@ describe('generateAllActionTypesFiles', () => { const controller: ControllerInfo = { name: 'TestController', filePath: path.join(tmpDir, 'TestController.ts'), - exposedMethods: ['doStuff'], - methods: [{ name: 'doStuff', jsDoc: '', signature: 'doStuff' }], - }; - const mockESLint = { - lintFiles: jest.fn().mockResolvedValue([]), + methods: [{ name: 'doStuff', jsDoc: '' }], }; - const mockESLintStatic = { - outputFixes: jest.fn().mockResolvedValue(undefined), - getErrorResults: jest.fn().mockReturnValue([]), + const mockEslint = { + instance: { lintFiles: jest.fn().mockResolvedValue([]) }, + static: { + outputFixes: jest.fn().mockResolvedValue(undefined), + getErrorResults: jest.fn().mockReturnValue([]), + }, }; const consoleSpy = jest.spyOn(console, 'log').mockImplementation(); - await generateAllActionTypesFiles( - [controller], - mockESLint, - mockESLintStatic, - ); + await generateAllActionTypesFiles([controller], mockEslint); consoleSpy.mockRestore(); - expect(mockESLint.lintFiles).toHaveBeenCalledWith([ + expect(mockEslint.instance.lintFiles).toHaveBeenCalledWith([ path.join(tmpDir, 'TestController-method-action-types.ts'), ]); - expect(mockESLintStatic.outputFixes).toHaveBeenCalled(); - expect(mockESLintStatic.getErrorResults).toHaveBeenCalled(); + expect(mockEslint.static.outputFixes).toHaveBeenCalled(); + expect(mockEslint.static.getErrorResults).toHaveBeenCalled(); }); it('sets exitCode when ESLint reports errors', async () => { const controller: ControllerInfo = { name: 'TestController', filePath: path.join(tmpDir, 'TestController.ts'), - exposedMethods: ['doStuff'], - methods: [{ name: 'doStuff', jsDoc: '', signature: 'doStuff' }], + methods: [{ name: 'doStuff', jsDoc: '' }], }; - const mockESLint = { - lintFiles: jest.fn().mockResolvedValue([{ filePath: 'test.ts' }]), - }; - - const mockESLintStatic = { - outputFixes: jest.fn().mockResolvedValue(undefined), - getErrorResults: jest - .fn() - .mockReturnValue([{ filePath: 'test.ts', messages: ['err'] }]), + const mockEslint = { + instance: { + lintFiles: jest.fn().mockResolvedValue([{ filePath: 'test.ts' }]), + }, + static: { + outputFixes: jest.fn().mockResolvedValue(undefined), + getErrorResults: jest + .fn() + .mockReturnValue([{ filePath: 'test.ts', messages: ['err'] }]), + }, }; const consoleSpy = jest.spyOn(console, 'log').mockImplementation(); const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(); - await generateAllActionTypesFiles( - [controller], - mockESLint, - mockESLintStatic, - ); + await generateAllActionTypesFiles([controller], mockEslint); expect(globalThis.process.exitCode).toBe(1); expect(consoleErrorSpy).toHaveBeenCalledWith( diff --git a/packages/messenger/src/generate-action-types/fix.ts b/packages/messenger/src/generate-action-types/fix.ts index 22fcf020453..8ca8d95305c 100644 --- a/packages/messenger/src/generate-action-types/fix.ts +++ b/packages/messenger/src/generate-action-types/fix.ts @@ -3,29 +3,17 @@ import * as path from 'node:path'; import { generateActionTypesContent } from './generate-content'; import type { ControllerInfo } from './parse-controller'; - -type ESLintInstance = { - lintFiles(files: string[]): Promise<{ output?: string; filePath: string }[]>; -}; - -type ESLintStatic = { - outputFixes(results: { output?: string; filePath: string }[]): Promise; - getErrorResults( - results: { output?: string; filePath: string }[], - ): { output?: string; filePath: string }[]; -}; +import type { ESLint } from './types'; /** * Generates action types files for all controllers. * * @param controllers - Array of controller information objects. - * @param eslint - The ESLint instance to use for formatting. - * @param eslintStatic - The ESLint class for static methods. + * @param eslint - Optional ESLint instance and static methods for formatting. */ export async function generateAllActionTypesFiles( controllers: ControllerInfo[], - eslint: ESLintInstance | null, - eslintStatic: ESLintStatic | null, + eslint: ESLint | null, ): Promise { const outputFiles: string[] = []; @@ -44,12 +32,12 @@ export async function generateAllActionTypesFiles( console.log(`āœ… Generated action types for ${controller.name}`); } - if (outputFiles.length > 0 && eslint && eslintStatic) { + if (outputFiles.length > 0 && eslint) { console.log('\nšŸ“ Running ESLint on generated files...'); - const results = await eslint.lintFiles(outputFiles); - await eslintStatic.outputFixes(results); - const errors = eslintStatic.getErrorResults(results); + const results = await eslint.instance.lintFiles(outputFiles); + await eslint.static.outputFixes(results); + const errors = eslint.static.getErrorResults(results); if (errors.length > 0) { console.error('āŒ ESLint errors:', errors); globalThis.process.exitCode = 1; diff --git a/packages/messenger/src/generate-action-types/generate-content.test.ts b/packages/messenger/src/generate-action-types/generate-content.test.ts index 4a6bb33a132..7c5bd466d0c 100644 --- a/packages/messenger/src/generate-action-types/generate-content.test.ts +++ b/packages/messenger/src/generate-action-types/generate-content.test.ts @@ -6,7 +6,7 @@ describe('generateActionTypesContent', () => { const controller: ControllerInfo = { name: 'FooController', filePath: '/some/path/FooController.ts', - exposedMethods: ['doSomething'], + methods: [ { name: 'doSomething', @@ -36,10 +36,10 @@ describe('generateActionTypesContent', () => { const controller: ControllerInfo = { name: 'BarController', filePath: '/some/path/BarController.ts', - exposedMethods: ['methodA', 'methodB'], + methods: [ - { name: 'methodA', jsDoc: '', signature: 'methodA' }, - { name: 'methodB', jsDoc: '', signature: 'methodB' }, + { name: 'methodA', jsDoc: '' }, + { name: 'methodB', jsDoc: '' }, ], }; @@ -56,7 +56,7 @@ describe('generateActionTypesContent', () => { const controller: ControllerInfo = { name: 'FooController', filePath: '/some/path/FooController.ts', - exposedMethods: ['doSomething'], + methods: [ { name: 'doSomething', @@ -75,7 +75,7 @@ describe('generateActionTypesContent', () => { const controller: ControllerInfo = { name: 'EmptyController', filePath: '/some/path/EmptyController.ts', - exposedMethods: [], + methods: [], }; diff --git a/packages/messenger/src/generate-action-types/generate-content.ts b/packages/messenger/src/generate-action-types/generate-content.ts index cfaabf056b0..30695ddeed0 100644 --- a/packages/messenger/src/generate-action-types/generate-content.ts +++ b/packages/messenger/src/generate-action-types/generate-content.ts @@ -2,16 +2,6 @@ import * as path from 'node:path'; import type { ControllerInfo } from './parse-controller'; -/** - * Capitalizes the first letter of a string. - * - * @param str - The string to capitalize. - * @returns The capitalized string. - */ -function capitalize(str: string): string { - return str.charAt(0).toUpperCase() + str.slice(1); -} - /** * Generates the content for the action types file. * @@ -34,7 +24,9 @@ import type { ${controller.name} } from '${controllerImportPath}'; const actionTypeNames: string[] = []; for (const method of controller.methods) { - const actionTypeName = `${controller.name}${capitalize(method.name)}Action`; + const capitalizedName = + method.name.charAt(0).toUpperCase() + method.name.slice(1); + const actionTypeName = `${controller.name}${capitalizedName}Action`; const actionString = `${controller.name}:${method.name}`; actionTypeNames.push(actionTypeName); diff --git a/packages/messenger/src/generate-action-types/index.ts b/packages/messenger/src/generate-action-types/index.ts index c860201b902..f04a1b902b0 100644 --- a/packages/messenger/src/generate-action-types/index.ts +++ b/packages/messenger/src/generate-action-types/index.ts @@ -6,3 +6,4 @@ export { findControllersWithExposedMethods, parseControllerFile, } from './parse-controller'; +export type { ESLint } from './types'; diff --git a/packages/messenger/src/generate-action-types/parse-controller.test.ts b/packages/messenger/src/generate-action-types/parse-controller.test.ts index ad8382ecfa4..c5f3d6e48a4 100644 --- a/packages/messenger/src/generate-action-types/parse-controller.test.ts +++ b/packages/messenger/src/generate-action-types/parse-controller.test.ts @@ -44,12 +44,10 @@ class TestController { expect(result).toStrictEqual({ name: 'TestController', filePath: controllerFile, - exposedMethods: ['doStuff'], methods: [ { name: 'doStuff', jsDoc: '/**\n * Does stuff.\n */', - signature: 'doStuff', }, ], }); @@ -114,7 +112,9 @@ class PlainArrayController { const result = await parseControllerFile(controllerFile); expect(result).not.toBeNull(); - expect(result?.exposedMethods).toStrictEqual(['doStuff']); + expect(result?.methods.map((method) => method.name)).toStrictEqual([ + 'doStuff', + ]); }); it('works with Service class names', async () => { @@ -380,9 +380,7 @@ class BadTsconfigController { 'utf8', ); - const consoleErrorSpy = jest - .spyOn(console, 'error') - .mockImplementation(); + const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(); const result = await parseControllerFile(controllerFile); expect(result).toBeNull(); @@ -408,9 +406,7 @@ class NoTsconfigController { 'utf8', ); - const consoleErrorSpy = jest - .spyOn(console, 'error') - .mockImplementation(); + const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(); const result = await parseControllerFile(controllerFile); // Should return null because assert fails when type checker can't be created @@ -421,9 +417,7 @@ class NoTsconfigController { }); it('returns null and logs error for invalid file', async () => { - const consoleErrorSpy = jest - .spyOn(console, 'error') - .mockImplementation(); + const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(); const result = await parseControllerFile('/nonexistent/file.ts'); diff --git a/packages/messenger/src/generate-action-types/parse-controller.ts b/packages/messenger/src/generate-action-types/parse-controller.ts index 0f10bdfea61..a329120247e 100644 --- a/packages/messenger/src/generate-action-types/parse-controller.ts +++ b/packages/messenger/src/generate-action-types/parse-controller.ts @@ -4,7 +4,6 @@ import * as path from 'node:path'; import type { ArrayLiteralExpression, ClassDeclaration, - Identifier, MethodDeclaration, Node as TSNode, Program, @@ -34,13 +33,11 @@ import { export type MethodInfo = { name: string; jsDoc: string; - signature: string; }; export type ControllerInfo = { name: string; filePath: string; - exposedMethods: string[]; methods: MethodInfo[]; }; @@ -107,17 +104,6 @@ function formatJSDoc(rawJsDoc: string): string { return formattedLines.join('\n'); } -/** - * Extracts method signature as a string for the handler type. - * - * @param node - The method declaration node. - * @returns The method signature. - */ -function extractMethodSignature(node: MethodDeclaration): string { - // istanbul ignore next: method declarations always have a name - return node.name ? (node.name as Identifier).text : ''; -} - /** * Visits AST nodes to find exposed methods and controller class. * @@ -172,11 +158,9 @@ function createASTVisitor(context: VisitorContext): (node: TSNode) => void { ) { seenMethods.add(methodName); const jsDoc = extractJSDoc(member, context.sourceFile); - const signature = extractMethodSignature(member); context.methods.push({ name: methodName, jsDoc, - signature, }); } } @@ -372,14 +356,13 @@ export async function parseControllerFile( const jsDoc = methodDeclaration ? extractJSDoc(methodDeclaration, methodDeclaration.getSourceFile()) : ''; - context.methods.push({ name: methodName, jsDoc, signature: '' }); + context.methods.push({ name: methodName, jsDoc }); } } return { name: context.className, filePath, - exposedMethods: context.exposedMethods, methods: context.methods, }; } catch (error) { diff --git a/packages/messenger/src/generate-action-types/types.ts b/packages/messenger/src/generate-action-types/types.ts new file mode 100644 index 00000000000..1d7d3682efe --- /dev/null +++ b/packages/messenger/src/generate-action-types/types.ts @@ -0,0 +1,11 @@ +type LintResult = { output?: string; filePath: string }; + +export type ESLint = { + instance: { + lintFiles(files: string[]): Promise; + }; + static: { + outputFixes(results: LintResult[]): Promise; + getErrorResults(results: LintResult[]): LintResult[]; + }; +}; From 75e5b1231c217e84c040504179dce480d1d3f5db Mon Sep 17 00:00:00 2001 From: Salah-Eddine Saakoun Date: Fri, 20 Mar 2026 20:47:29 +0100 Subject: [PATCH 7/9] fix: update generated file header to `@metamask/messenger/generate-action-types` --- .../src/AccountTreeController-method-action-types.ts | 2 +- .../src/AccountsController-method-action-types.ts | 2 +- .../src/AddressBookController-method-action-types.ts | 2 +- .../src/AnalyticsController-method-action-types.ts | 2 +- .../AnalyticsDataRegulationController-method-action-types.ts | 2 +- .../src/AnalyticsDataRegulationService-method-action-types.ts | 2 +- .../src/AnnouncementController-method-action-types.ts | 2 +- .../src/ApprovalController-method-action-types.ts | 2 +- .../src/AssetsController-method-action-types.ts | 2 +- .../src/AccountTrackerController-method-action-types.ts | 2 +- .../src/AssetsContractController-method-action-types.ts | 2 +- .../MultichainAssetsController-method-action-types.ts | 2 +- .../MultichainAssetsRatesController-method-action-types.ts | 2 +- .../src/TokenBalancesController-method-action-types.ts | 2 +- .../src/TokenDetectionController-method-action-types.ts | 2 +- .../src/TokensController-method-action-types.ts | 2 +- .../src/ClaimsController-method-action-types.ts | 2 +- .../src/ClientController-method-action-types.ts | 2 +- .../src/ComplianceController-method-action-types.ts | 2 +- .../src/ComplianceService-method-action-types.ts | 2 +- .../src/ConfigRegistryController-method-action-types.ts | 2 +- .../src/ConnectivityController-method-action-types.ts | 2 +- .../src/AccountActivityService-method-action-types.ts | 2 +- .../src/ApiPlatformClientService-method-action-types.ts | 2 +- .../src/BackendWebSocketService-method-action-types.ts | 2 +- .../src/DelegationController-method-action-types.ts | 2 +- .../earn-controller/src/EarnController-method-action-types.ts | 2 +- .../ens-controller/src/EnsController-method-action-types.ts | 2 +- .../src/error-reporting-service-method-action-types.ts | 2 +- .../src/GasFeeController-method-action-types.ts | 2 +- .../src/GatorPermissionsController-method-action-types.ts | 2 +- .../src/GeolocationController-method-action-types.ts | 2 +- .../src/LoggingController-method-action-types.ts | 2 +- .../src/generate-action-types/generate-content.test.ts | 2 +- .../messenger/src/generate-action-types/generate-content.ts | 2 +- .../src/MultichainAccountService-method-action-types.ts | 2 +- .../name-controller/src/NameController-method-action-types.ts | 2 +- .../src/NetworkEnablementController-method-action-types.ts | 2 +- .../NotificationServicesController-method-action-types.ts | 2 +- .../NotificationServicesPushController-method-action-types.ts | 2 +- .../src/PermissionController-method-action-types.ts | 2 +- .../src/SubjectMetadataController-method-action-types.ts | 2 +- .../src/PermissionLogController-method-action-types.ts | 2 +- .../src/PreferencesController-method-action-types.ts | 2 +- .../src/ProfileMetricsController-method-action-types.ts | 2 +- .../src/ProfileMetricsService-method-action-types.ts | 2 +- .../AuthenticationController-method-action-types.ts | 2 +- .../user-storage/UserStorageController-method-action-types.ts | 2 +- .../ramps-controller/src/RampsController-method-action-types.ts | 2 +- .../ramps-controller/src/RampsService-method-action-types.ts | 2 +- .../ramps-controller/src/TransakService-method-action-types.ts | 2 +- .../src/remote-feature-flag-controller-method-action-types.ts | 2 +- .../src/sample-gas-prices-controller-method-action-types.ts | 2 +- .../src/sample-petnames-controller-method-action-types.ts | 2 +- .../src/SeedlessOnboardingController-method-action-types.ts | 2 +- .../src/SelectedNetworkController-method-action-types.ts | 2 +- .../src/ShieldController-method-action-types.ts | 2 +- .../src/SignatureController-method-action-types.ts | 2 +- .../storage-service/src/StorageService-method-action-types.ts | 2 +- .../src/SubscriptionController-method-action-types.ts | 2 +- .../src/TransactionController-method-action-types.ts | 2 +- .../src/TransactionPayController-method-action-types.ts | 2 +- .../src/UserOperationController-method-action-types.ts | 2 +- 63 files changed, 63 insertions(+), 63 deletions(-) diff --git a/packages/account-tree-controller/src/AccountTreeController-method-action-types.ts b/packages/account-tree-controller/src/AccountTreeController-method-action-types.ts index 9ae88b382c3..0006c6d7a85 100644 --- a/packages/account-tree-controller/src/AccountTreeController-method-action-types.ts +++ b/packages/account-tree-controller/src/AccountTreeController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/accounts-controller/src/AccountsController-method-action-types.ts b/packages/accounts-controller/src/AccountsController-method-action-types.ts index f8661fb3d83..8007f656ef8 100644 --- a/packages/accounts-controller/src/AccountsController-method-action-types.ts +++ b/packages/accounts-controller/src/AccountsController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/address-book-controller/src/AddressBookController-method-action-types.ts b/packages/address-book-controller/src/AddressBookController-method-action-types.ts index e2a8d9ee3c0..b902cbc2bf3 100644 --- a/packages/address-book-controller/src/AddressBookController-method-action-types.ts +++ b/packages/address-book-controller/src/AddressBookController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/analytics-controller/src/AnalyticsController-method-action-types.ts b/packages/analytics-controller/src/AnalyticsController-method-action-types.ts index d2c6d68c10a..eb3a4d719ac 100644 --- a/packages/analytics-controller/src/AnalyticsController-method-action-types.ts +++ b/packages/analytics-controller/src/AnalyticsController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationController-method-action-types.ts b/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationController-method-action-types.ts index 8a6be39c0ed..1bffd87f769 100644 --- a/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationController-method-action-types.ts +++ b/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationService-method-action-types.ts b/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationService-method-action-types.ts index f49c600680f..da4bbd64e25 100644 --- a/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationService-method-action-types.ts +++ b/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationService-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/announcement-controller/src/AnnouncementController-method-action-types.ts b/packages/announcement-controller/src/AnnouncementController-method-action-types.ts index 594c4b8cd99..0d8159394c0 100644 --- a/packages/announcement-controller/src/AnnouncementController-method-action-types.ts +++ b/packages/announcement-controller/src/AnnouncementController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/approval-controller/src/ApprovalController-method-action-types.ts b/packages/approval-controller/src/ApprovalController-method-action-types.ts index 52d6228b1c5..6afadb02314 100644 --- a/packages/approval-controller/src/ApprovalController-method-action-types.ts +++ b/packages/approval-controller/src/ApprovalController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/assets-controller/src/AssetsController-method-action-types.ts b/packages/assets-controller/src/AssetsController-method-action-types.ts index ebd14795629..a4e5352a25a 100644 --- a/packages/assets-controller/src/AssetsController-method-action-types.ts +++ b/packages/assets-controller/src/AssetsController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/assets-controllers/src/AccountTrackerController-method-action-types.ts b/packages/assets-controllers/src/AccountTrackerController-method-action-types.ts index 2a83d21ffa3..6077429cd2e 100644 --- a/packages/assets-controllers/src/AccountTrackerController-method-action-types.ts +++ b/packages/assets-controllers/src/AccountTrackerController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/assets-controllers/src/AssetsContractController-method-action-types.ts b/packages/assets-controllers/src/AssetsContractController-method-action-types.ts index 170b2680d26..596f27396ce 100644 --- a/packages/assets-controllers/src/AssetsContractController-method-action-types.ts +++ b/packages/assets-controllers/src/AssetsContractController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/assets-controllers/src/MultichainAssetsController/MultichainAssetsController-method-action-types.ts b/packages/assets-controllers/src/MultichainAssetsController/MultichainAssetsController-method-action-types.ts index c9ed58526ac..1eb1966f49e 100644 --- a/packages/assets-controllers/src/MultichainAssetsController/MultichainAssetsController-method-action-types.ts +++ b/packages/assets-controllers/src/MultichainAssetsController/MultichainAssetsController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController-method-action-types.ts b/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController-method-action-types.ts index c397fb4dbc7..65732ba8170 100644 --- a/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController-method-action-types.ts +++ b/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/assets-controllers/src/TokenBalancesController-method-action-types.ts b/packages/assets-controllers/src/TokenBalancesController-method-action-types.ts index 1a5c4f0442d..b5bff3a8915 100644 --- a/packages/assets-controllers/src/TokenBalancesController-method-action-types.ts +++ b/packages/assets-controllers/src/TokenBalancesController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/assets-controllers/src/TokenDetectionController-method-action-types.ts b/packages/assets-controllers/src/TokenDetectionController-method-action-types.ts index 9dd6bb2d813..b752ec31183 100644 --- a/packages/assets-controllers/src/TokenDetectionController-method-action-types.ts +++ b/packages/assets-controllers/src/TokenDetectionController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/assets-controllers/src/TokensController-method-action-types.ts b/packages/assets-controllers/src/TokensController-method-action-types.ts index e0b49961610..d7dc0575e03 100644 --- a/packages/assets-controllers/src/TokensController-method-action-types.ts +++ b/packages/assets-controllers/src/TokensController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/claims-controller/src/ClaimsController-method-action-types.ts b/packages/claims-controller/src/ClaimsController-method-action-types.ts index bb16fa693f1..a65e5ab3f1d 100644 --- a/packages/claims-controller/src/ClaimsController-method-action-types.ts +++ b/packages/claims-controller/src/ClaimsController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/client-controller/src/ClientController-method-action-types.ts b/packages/client-controller/src/ClientController-method-action-types.ts index 4baf7005a5a..1256f5bb8d9 100644 --- a/packages/client-controller/src/ClientController-method-action-types.ts +++ b/packages/client-controller/src/ClientController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/compliance-controller/src/ComplianceController-method-action-types.ts b/packages/compliance-controller/src/ComplianceController-method-action-types.ts index 6b55390ec66..91cc7f2b5e0 100644 --- a/packages/compliance-controller/src/ComplianceController-method-action-types.ts +++ b/packages/compliance-controller/src/ComplianceController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/compliance-controller/src/ComplianceService-method-action-types.ts b/packages/compliance-controller/src/ComplianceService-method-action-types.ts index 8d16a508cc8..edfabcd87af 100644 --- a/packages/compliance-controller/src/ComplianceService-method-action-types.ts +++ b/packages/compliance-controller/src/ComplianceService-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/config-registry-controller/src/ConfigRegistryController-method-action-types.ts b/packages/config-registry-controller/src/ConfigRegistryController-method-action-types.ts index 06ea0662b60..0edf347717c 100644 --- a/packages/config-registry-controller/src/ConfigRegistryController-method-action-types.ts +++ b/packages/config-registry-controller/src/ConfigRegistryController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/connectivity-controller/src/ConnectivityController-method-action-types.ts b/packages/connectivity-controller/src/ConnectivityController-method-action-types.ts index 4019a54237c..17f1034e58f 100644 --- a/packages/connectivity-controller/src/ConnectivityController-method-action-types.ts +++ b/packages/connectivity-controller/src/ConnectivityController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/core-backend/src/AccountActivityService-method-action-types.ts b/packages/core-backend/src/AccountActivityService-method-action-types.ts index 4c0ea641897..ae1b151ad88 100644 --- a/packages/core-backend/src/AccountActivityService-method-action-types.ts +++ b/packages/core-backend/src/AccountActivityService-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/core-backend/src/ApiPlatformClientService-method-action-types.ts b/packages/core-backend/src/ApiPlatformClientService-method-action-types.ts index a3ff6a81984..c7b76bda40c 100644 --- a/packages/core-backend/src/ApiPlatformClientService-method-action-types.ts +++ b/packages/core-backend/src/ApiPlatformClientService-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/core-backend/src/BackendWebSocketService-method-action-types.ts b/packages/core-backend/src/BackendWebSocketService-method-action-types.ts index 17980ab58d9..78f0478fe79 100644 --- a/packages/core-backend/src/BackendWebSocketService-method-action-types.ts +++ b/packages/core-backend/src/BackendWebSocketService-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/delegation-controller/src/DelegationController-method-action-types.ts b/packages/delegation-controller/src/DelegationController-method-action-types.ts index 6ff24f5712c..fed7b85145f 100644 --- a/packages/delegation-controller/src/DelegationController-method-action-types.ts +++ b/packages/delegation-controller/src/DelegationController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/earn-controller/src/EarnController-method-action-types.ts b/packages/earn-controller/src/EarnController-method-action-types.ts index cbc91c82e40..782792022dc 100644 --- a/packages/earn-controller/src/EarnController-method-action-types.ts +++ b/packages/earn-controller/src/EarnController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/ens-controller/src/EnsController-method-action-types.ts b/packages/ens-controller/src/EnsController-method-action-types.ts index ce15f871e82..7df36788337 100644 --- a/packages/ens-controller/src/EnsController-method-action-types.ts +++ b/packages/ens-controller/src/EnsController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/error-reporting-service/src/error-reporting-service-method-action-types.ts b/packages/error-reporting-service/src/error-reporting-service-method-action-types.ts index 450b3c9d304..ed636977359 100644 --- a/packages/error-reporting-service/src/error-reporting-service-method-action-types.ts +++ b/packages/error-reporting-service/src/error-reporting-service-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/gas-fee-controller/src/GasFeeController-method-action-types.ts b/packages/gas-fee-controller/src/GasFeeController-method-action-types.ts index d22a6972bed..83a101b6456 100644 --- a/packages/gas-fee-controller/src/GasFeeController-method-action-types.ts +++ b/packages/gas-fee-controller/src/GasFeeController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/gator-permissions-controller/src/GatorPermissionsController-method-action-types.ts b/packages/gator-permissions-controller/src/GatorPermissionsController-method-action-types.ts index e5e2edc608a..88d07117806 100644 --- a/packages/gator-permissions-controller/src/GatorPermissionsController-method-action-types.ts +++ b/packages/gator-permissions-controller/src/GatorPermissionsController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/geolocation-controller/src/GeolocationController-method-action-types.ts b/packages/geolocation-controller/src/GeolocationController-method-action-types.ts index 5707a8ff14e..6b74d340ed4 100644 --- a/packages/geolocation-controller/src/GeolocationController-method-action-types.ts +++ b/packages/geolocation-controller/src/GeolocationController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/logging-controller/src/LoggingController-method-action-types.ts b/packages/logging-controller/src/LoggingController-method-action-types.ts index 7e423a7f3d8..bafebfab780 100644 --- a/packages/logging-controller/src/LoggingController-method-action-types.ts +++ b/packages/logging-controller/src/LoggingController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/messenger/src/generate-action-types/generate-content.test.ts b/packages/messenger/src/generate-action-types/generate-content.test.ts index 7c5bd466d0c..acf3a6763cd 100644 --- a/packages/messenger/src/generate-action-types/generate-content.test.ts +++ b/packages/messenger/src/generate-action-types/generate-content.test.ts @@ -19,7 +19,7 @@ describe('generateActionTypesContent', () => { const result = generateActionTypesContent(controller); expect(result).toContain( - 'This file is auto generated by `@metamask/messenger-generate-action-types`.', + 'This file is auto generated by `@metamask/messenger/generate-action-types`.', ); expect(result).toContain( "import type { FooController } from './FooController';", diff --git a/packages/messenger/src/generate-action-types/generate-content.ts b/packages/messenger/src/generate-action-types/generate-content.ts index 30695ddeed0..0a8804b0a51 100644 --- a/packages/messenger/src/generate-action-types/generate-content.ts +++ b/packages/messenger/src/generate-action-types/generate-content.ts @@ -13,7 +13,7 @@ export function generateActionTypesContent(controller: ControllerInfo): string { const controllerImportPath = `./${baseFileName}`; let content = `/** - * This file is auto generated by \`@metamask/messenger-generate-action-types\`. + * This file is auto generated by \`@metamask/messenger/generate-action-types\`. * Do not edit manually. */ diff --git a/packages/multichain-account-service/src/MultichainAccountService-method-action-types.ts b/packages/multichain-account-service/src/MultichainAccountService-method-action-types.ts index b25e18f20b4..4748ef8a4bd 100644 --- a/packages/multichain-account-service/src/MultichainAccountService-method-action-types.ts +++ b/packages/multichain-account-service/src/MultichainAccountService-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/name-controller/src/NameController-method-action-types.ts b/packages/name-controller/src/NameController-method-action-types.ts index 87a92c5dc64..3b1fcaf69ee 100644 --- a/packages/name-controller/src/NameController-method-action-types.ts +++ b/packages/name-controller/src/NameController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/network-enablement-controller/src/NetworkEnablementController-method-action-types.ts b/packages/network-enablement-controller/src/NetworkEnablementController-method-action-types.ts index d945b6ccb0b..d22b9ad48d4 100644 --- a/packages/network-enablement-controller/src/NetworkEnablementController-method-action-types.ts +++ b/packages/network-enablement-controller/src/NetworkEnablementController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/notification-services-controller/src/NotificationServicesController/NotificationServicesController-method-action-types.ts b/packages/notification-services-controller/src/NotificationServicesController/NotificationServicesController-method-action-types.ts index a23a98df61e..ec89daa069d 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/NotificationServicesController-method-action-types.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/NotificationServicesController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/notification-services-controller/src/NotificationServicesPushController/NotificationServicesPushController-method-action-types.ts b/packages/notification-services-controller/src/NotificationServicesPushController/NotificationServicesPushController-method-action-types.ts index 731f1dad39c..5bbe56c66cf 100644 --- a/packages/notification-services-controller/src/NotificationServicesPushController/NotificationServicesPushController-method-action-types.ts +++ b/packages/notification-services-controller/src/NotificationServicesPushController/NotificationServicesPushController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/permission-controller/src/PermissionController-method-action-types.ts b/packages/permission-controller/src/PermissionController-method-action-types.ts index 42106f15954..fbabee895fc 100644 --- a/packages/permission-controller/src/PermissionController-method-action-types.ts +++ b/packages/permission-controller/src/PermissionController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/permission-controller/src/SubjectMetadataController-method-action-types.ts b/packages/permission-controller/src/SubjectMetadataController-method-action-types.ts index d5ca7b83f2a..3ddc1c9e936 100644 --- a/packages/permission-controller/src/SubjectMetadataController-method-action-types.ts +++ b/packages/permission-controller/src/SubjectMetadataController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/permission-log-controller/src/PermissionLogController-method-action-types.ts b/packages/permission-log-controller/src/PermissionLogController-method-action-types.ts index 1a322daf2dc..6784b6e17f0 100644 --- a/packages/permission-log-controller/src/PermissionLogController-method-action-types.ts +++ b/packages/permission-log-controller/src/PermissionLogController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/preferences-controller/src/PreferencesController-method-action-types.ts b/packages/preferences-controller/src/PreferencesController-method-action-types.ts index 2cd4cf1583e..517f4501870 100644 --- a/packages/preferences-controller/src/PreferencesController-method-action-types.ts +++ b/packages/preferences-controller/src/PreferencesController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/profile-metrics-controller/src/ProfileMetricsController-method-action-types.ts b/packages/profile-metrics-controller/src/ProfileMetricsController-method-action-types.ts index db3faea8dd4..11967e83a5a 100644 --- a/packages/profile-metrics-controller/src/ProfileMetricsController-method-action-types.ts +++ b/packages/profile-metrics-controller/src/ProfileMetricsController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/profile-metrics-controller/src/ProfileMetricsService-method-action-types.ts b/packages/profile-metrics-controller/src/ProfileMetricsService-method-action-types.ts index 30b765281e6..58dd563ba4f 100644 --- a/packages/profile-metrics-controller/src/ProfileMetricsService-method-action-types.ts +++ b/packages/profile-metrics-controller/src/ProfileMetricsService-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/profile-sync-controller/src/controllers/authentication/AuthenticationController-method-action-types.ts b/packages/profile-sync-controller/src/controllers/authentication/AuthenticationController-method-action-types.ts index 5b42b7e61d6..e5457085487 100644 --- a/packages/profile-sync-controller/src/controllers/authentication/AuthenticationController-method-action-types.ts +++ b/packages/profile-sync-controller/src/controllers/authentication/AuthenticationController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/profile-sync-controller/src/controllers/user-storage/UserStorageController-method-action-types.ts b/packages/profile-sync-controller/src/controllers/user-storage/UserStorageController-method-action-types.ts index 4e8832795bc..89848312122 100644 --- a/packages/profile-sync-controller/src/controllers/user-storage/UserStorageController-method-action-types.ts +++ b/packages/profile-sync-controller/src/controllers/user-storage/UserStorageController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/ramps-controller/src/RampsController-method-action-types.ts b/packages/ramps-controller/src/RampsController-method-action-types.ts index 43841e8d5f5..40fc86ad153 100644 --- a/packages/ramps-controller/src/RampsController-method-action-types.ts +++ b/packages/ramps-controller/src/RampsController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/ramps-controller/src/RampsService-method-action-types.ts b/packages/ramps-controller/src/RampsService-method-action-types.ts index e0625416ef0..f8f267b8e79 100644 --- a/packages/ramps-controller/src/RampsService-method-action-types.ts +++ b/packages/ramps-controller/src/RampsService-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/ramps-controller/src/TransakService-method-action-types.ts b/packages/ramps-controller/src/TransakService-method-action-types.ts index ce36522f06a..035eaed558a 100644 --- a/packages/ramps-controller/src/TransakService-method-action-types.ts +++ b/packages/ramps-controller/src/TransakService-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/remote-feature-flag-controller/src/remote-feature-flag-controller-method-action-types.ts b/packages/remote-feature-flag-controller/src/remote-feature-flag-controller-method-action-types.ts index 2fb9138d8f0..92c160dd82c 100644 --- a/packages/remote-feature-flag-controller/src/remote-feature-flag-controller-method-action-types.ts +++ b/packages/remote-feature-flag-controller/src/remote-feature-flag-controller-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/sample-controllers/src/sample-gas-prices-controller-method-action-types.ts b/packages/sample-controllers/src/sample-gas-prices-controller-method-action-types.ts index ed8be128aee..c037e1b098c 100644 --- a/packages/sample-controllers/src/sample-gas-prices-controller-method-action-types.ts +++ b/packages/sample-controllers/src/sample-gas-prices-controller-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/sample-controllers/src/sample-petnames-controller-method-action-types.ts b/packages/sample-controllers/src/sample-petnames-controller-method-action-types.ts index 287b9fe3bd7..bb53037336d 100644 --- a/packages/sample-controllers/src/sample-petnames-controller-method-action-types.ts +++ b/packages/sample-controllers/src/sample-petnames-controller-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/seedless-onboarding-controller/src/SeedlessOnboardingController-method-action-types.ts b/packages/seedless-onboarding-controller/src/SeedlessOnboardingController-method-action-types.ts index cdde1356276..ce0ebeaf690 100644 --- a/packages/seedless-onboarding-controller/src/SeedlessOnboardingController-method-action-types.ts +++ b/packages/seedless-onboarding-controller/src/SeedlessOnboardingController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/selected-network-controller/src/SelectedNetworkController-method-action-types.ts b/packages/selected-network-controller/src/SelectedNetworkController-method-action-types.ts index 1fdf2b6d2af..ef5cb8796fc 100644 --- a/packages/selected-network-controller/src/SelectedNetworkController-method-action-types.ts +++ b/packages/selected-network-controller/src/SelectedNetworkController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/shield-controller/src/ShieldController-method-action-types.ts b/packages/shield-controller/src/ShieldController-method-action-types.ts index 154be7de653..139e0eeba3c 100644 --- a/packages/shield-controller/src/ShieldController-method-action-types.ts +++ b/packages/shield-controller/src/ShieldController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/signature-controller/src/SignatureController-method-action-types.ts b/packages/signature-controller/src/SignatureController-method-action-types.ts index 976d8148e1b..c647deb1ffb 100644 --- a/packages/signature-controller/src/SignatureController-method-action-types.ts +++ b/packages/signature-controller/src/SignatureController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/storage-service/src/StorageService-method-action-types.ts b/packages/storage-service/src/StorageService-method-action-types.ts index 02c41e72ac6..2e2191fef72 100644 --- a/packages/storage-service/src/StorageService-method-action-types.ts +++ b/packages/storage-service/src/StorageService-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/subscription-controller/src/SubscriptionController-method-action-types.ts b/packages/subscription-controller/src/SubscriptionController-method-action-types.ts index fb035398da4..f7158ee9908 100644 --- a/packages/subscription-controller/src/SubscriptionController-method-action-types.ts +++ b/packages/subscription-controller/src/SubscriptionController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/transaction-controller/src/TransactionController-method-action-types.ts b/packages/transaction-controller/src/TransactionController-method-action-types.ts index 7a545cc6ad0..3ddf5a29660 100644 --- a/packages/transaction-controller/src/TransactionController-method-action-types.ts +++ b/packages/transaction-controller/src/TransactionController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/transaction-pay-controller/src/TransactionPayController-method-action-types.ts b/packages/transaction-pay-controller/src/TransactionPayController-method-action-types.ts index 3aa9ce482a5..8e6d969f97f 100644 --- a/packages/transaction-pay-controller/src/TransactionPayController-method-action-types.ts +++ b/packages/transaction-pay-controller/src/TransactionPayController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ diff --git a/packages/user-operation-controller/src/UserOperationController-method-action-types.ts b/packages/user-operation-controller/src/UserOperationController-method-action-types.ts index b75bf34d8a4..22bb7918755 100644 --- a/packages/user-operation-controller/src/UserOperationController-method-action-types.ts +++ b/packages/user-operation-controller/src/UserOperationController-method-action-types.ts @@ -1,5 +1,5 @@ /** - * This file is auto generated by `@metamask/messenger-generate-action-types`. + * This file is auto generated by `@metamask/messenger/generate-action-types`. * Do not edit manually. */ From f11c28cc2d35b711c25a80336979c61131abd980 Mon Sep 17 00:00:00 2001 From: Salah-Eddine Saakoun Date: Fri, 20 Mar 2026 20:48:17 +0100 Subject: [PATCH 8/9] chore: revert unrelated README.md changes --- README.md | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index dbd4b9a5f52..80c0514440c 100644 --- a/README.md +++ b/README.md @@ -241,7 +241,6 @@ linkStyle default opacity:0.5 base_controller --> messenger; base_controller --> json_rpc_engine; bridge_controller --> accounts_controller; - bridge_controller --> assets_controller; bridge_controller --> assets_controllers; bridge_controller --> base_controller; bridge_controller --> controller_utils; @@ -259,7 +258,6 @@ linkStyle default opacity:0.5 bridge_status_controller --> bridge_controller; bridge_status_controller --> controller_utils; bridge_status_controller --> gas_fee_controller; - bridge_status_controller --> keyring_controller; bridge_status_controller --> network_controller; bridge_status_controller --> polling_controller; bridge_status_controller --> profile_sync_controller; @@ -268,8 +266,8 @@ linkStyle default opacity:0.5 chain_agnostic_permission --> permission_controller; claims_controller --> base_controller; claims_controller --> controller_utils; - claims_controller --> keyring_controller; claims_controller --> messenger; + claims_controller --> keyring_controller; claims_controller --> profile_sync_controller; client_controller --> base_controller; client_controller --> messenger; @@ -333,7 +331,6 @@ linkStyle default opacity:0.5 gator_permissions_controller --> messenger; gator_permissions_controller --> transaction_controller; geolocation_controller --> base_controller; - geolocation_controller --> controller_utils; geolocation_controller --> messenger; json_rpc_middleware_stream --> json_rpc_engine; keyring_controller --> base_controller; @@ -398,12 +395,6 @@ linkStyle default opacity:0.5 perps_controller --> base_controller; perps_controller --> controller_utils; perps_controller --> messenger; - perps_controller --> account_tree_controller; - perps_controller --> keyring_controller; - perps_controller --> network_controller; - perps_controller --> profile_sync_controller; - perps_controller --> remote_feature_flag_controller; - perps_controller --> transaction_controller; phishing_controller --> base_controller; phishing_controller --> controller_utils; phishing_controller --> messenger; @@ -412,6 +403,8 @@ linkStyle default opacity:0.5 polling_controller --> controller_utils; polling_controller --> network_controller; preferences_controller --> base_controller; + preferences_controller --> controller_utils; + preferences_controller --> keyring_controller; preferences_controller --> messenger; profile_metrics_controller --> accounts_controller; profile_metrics_controller --> base_controller; @@ -477,7 +470,6 @@ linkStyle default opacity:0.5 transaction_controller --> remote_feature_flag_controller; transaction_controller --> eth_block_tracker; transaction_controller --> eth_json_rpc_provider; - transaction_pay_controller --> assets_controller; transaction_pay_controller --> assets_controllers; transaction_pay_controller --> base_controller; transaction_pay_controller --> bridge_controller; From 89da66fe93fc84e8fdb87c7d94226c05fccf075f Mon Sep 17 00:00:00 2001 From: Salah-Eddine Saakoun Date: Fri, 20 Mar 2026 21:03:44 +0100 Subject: [PATCH 9/9] chore: fix prettier formatting in messenger package.json --- packages/messenger/package.json | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/packages/messenger/package.json b/packages/messenger/package.json index bf7f556a1cd..30ffc4b8a76 100644 --- a/packages/messenger/package.json +++ b/packages/messenger/package.json @@ -62,6 +62,21 @@ "dependencies": { "@metamask/utils": "^11.9.0" }, + "devDependencies": { + "@metamask/auto-changelog": "^3.4.4", + "@ts-bridge/cli": "^0.6.4", + "@types/jest": "^29.5.14", + "@types/yargs": "^17.0.32", + "deepmerge": "^4.2.2", + "eslint": "^9.39.1", + "immer": "^9.0.6", + "jest": "^29.7.0", + "ts-jest": "^29.2.5", + "typedoc": "^0.25.13", + "typedoc-plugin-missing-exports": "^2.0.0", + "typescript": "~5.3.3", + "yargs": "^17.7.2" + }, "peerDependencies": { "eslint": ">=8", "typescript": "~5.3.3", @@ -78,21 +93,6 @@ "optional": true } }, - "devDependencies": { - "@metamask/auto-changelog": "^3.4.4", - "@ts-bridge/cli": "^0.6.4", - "@types/jest": "^29.5.14", - "@types/yargs": "^17.0.32", - "deepmerge": "^4.2.2", - "eslint": "^9.39.1", - "immer": "^9.0.6", - "jest": "^29.7.0", - "ts-jest": "^29.2.5", - "typedoc": "^0.25.13", - "typedoc-plugin-missing-exports": "^2.0.0", - "typescript": "~5.3.3", - "yargs": "^17.7.2" - }, "engines": { "node": "^18.18 || >=20" },