Skip to content

feat(messenger): add generate-action-types CLI tool as subpath export#8264

Open
cryptodev-2s wants to merge 17 commits intomainfrom
feat/messenger-generate-action-types-package
Open

feat(messenger): add generate-action-types CLI tool as subpath export#8264
cryptodev-2s wants to merge 17 commits intomainfrom
feat/messenger-generate-action-types-package

Conversation

@cryptodev-2s
Copy link
Contributor

@cryptodev-2s cryptodev-2s commented Mar 20, 2026

Explanation

The script scripts/generate-method-action-types.ts generates TypeScript action type files for controllers/services that define MESSENGER_EXPOSED_METHODS. It was a monorepo-local script invoked via tsx ../../scripts/generate-method-action-types.ts from 44 packages.

This PR moves it into @metamask/messenger as a subpath export (@metamask/messenger/generate-action-types), keeping the library lightweight while making the codegen reusable in other repositories.

What changed:

  • Add generate-action-types/ subdirectory under packages/messenger/src/ with modular source files (parse-source.ts, generate-content.ts, check.ts, fix.ts, cli.ts)
  • Add ./generate-action-types subpath export and messenger-generate-action-types bin entry to @metamask/messenger
  • All codegen dependencies (@metamask/utils, typescript, yargs, eslint) are optional peer dependencies — only needed when using the codegen tool. The core Messenger library remains truly zero-dependency.
  • Update all 44 consuming packages to invoke the CLI via tsx ../../packages/messenger/src/generate-action-types/cli.ts
  • Delete old scripts/generate-method-action-types.ts
  • Regenerate all *-method-action-types.ts files with updated header

References

Checklist

  • I've updated the test suite for new or updated code as appropriate
  • I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate
  • I've communicated my changes to consumers by updating changelogs for packages I've changed
  • I've introduced breaking changes in this PR and have prepared draft pull requests for clients and consumer packages to resolve them

Note

Medium Risk
Adds a new published CLI/subpath export in @metamask/messenger and rewires many packages’ codegen scripts to use it, which could impact build/codegen workflows if packaging or optional peer deps are misconfigured. Runtime controller logic is unaffected; most changes are tooling and regenerated type files.

Overview
Moves the monorepo’s generate-method-action-types codegen from scripts/generate-method-action-types.ts into @metamask/messenger as a new generate-action-types module, including a CLI (messenger-generate-action-types) and programmatic exports.

Updates dozens of packages to call the new CLI entrypoint and regenerates *-method-action-types.ts headers/content accordingly, while deleting the old script. Also adjusts @metamask/messenger packaging (subpath export, bin, optional peer deps for typescript/yargs/eslint/@metamask/utils) and adds lint/test config tweaks to support the new generator code.

Written by Cursor Bugbot for commit a462582. This will update automatically on new commits. Configure here.

@cryptodev-2s cryptodev-2s changed the title feat: create @metamask/messenger-generate-action-types package feat(messenger): add generate-action-types CLI tool as subpath export Mar 20, 2026
@cryptodev-2s
Copy link
Contributor Author

@metamaskbot publish-preview

@github-actions
Copy link
Contributor

Preview builds have been published. Learn how to use preview builds in other projects.

Expand for full list of packages and versions.
@metamask-previews/account-tree-controller@5.0.1-preview-f11c28cc2
@metamask-previews/accounts-controller@37.0.0-preview-f11c28cc2
@metamask-previews/address-book-controller@7.1.0-preview-f11c28cc2
@metamask-previews/ai-controllers@0.4.0-preview-f11c28cc2
@metamask-previews/analytics-controller@1.0.0-preview-f11c28cc2
@metamask-previews/analytics-data-regulation-controller@0.0.0-preview-f11c28cc2
@metamask-previews/announcement-controller@8.0.0-preview-f11c28cc2
@metamask-previews/app-metadata-controller@2.0.0-preview-f11c28cc2
@metamask-previews/approval-controller@9.0.0-preview-f11c28cc2
@metamask-previews/assets-controller@3.0.0-preview-f11c28cc2
@metamask-previews/assets-controllers@101.0.1-preview-f11c28cc2
@metamask-previews/base-controller@9.0.0-preview-f11c28cc2
@metamask-previews/base-data-service@0.0.0-preview-f11c28cc2
@metamask-previews/bridge-controller@69.1.1-preview-f11c28cc2
@metamask-previews/bridge-status-controller@70.0.0-preview-f11c28cc2
@metamask-previews/build-utils@3.0.4-preview-f11c28cc2
@metamask-previews/chain-agnostic-permission@1.4.0-preview-f11c28cc2
@metamask-previews/claims-controller@0.4.3-preview-f11c28cc2
@metamask-previews/client-controller@1.0.0-preview-f11c28cc2
@metamask-previews/compliance-controller@1.0.1-preview-f11c28cc2
@metamask-previews/composable-controller@12.0.0-preview-f11c28cc2
@metamask-previews/config-registry-controller@0.1.1-preview-f11c28cc2
@metamask-previews/connectivity-controller@0.1.0-preview-f11c28cc2
@metamask-previews/controller-utils@11.19.0-preview-f11c28cc2
@metamask-previews/core-backend@6.2.0-preview-f11c28cc2
@metamask-previews/delegation-controller@2.0.2-preview-f11c28cc2
@metamask-previews/earn-controller@11.1.2-preview-f11c28cc2
@metamask-previews/eip-5792-middleware@3.0.1-preview-f11c28cc2
@metamask-previews/eip-7702-internal-rpc-middleware@0.1.0-preview-f11c28cc2
@metamask-previews/eip1193-permission-middleware@1.0.3-preview-f11c28cc2
@metamask-previews/ens-controller@19.1.0-preview-f11c28cc2
@metamask-previews/error-reporting-service@3.0.1-preview-f11c28cc2
@metamask-previews/eth-block-tracker@15.0.1-preview-f11c28cc2
@metamask-previews/eth-json-rpc-middleware@23.1.0-preview-f11c28cc2
@metamask-previews/eth-json-rpc-provider@6.0.0-preview-f11c28cc2
@metamask-previews/foundryup@1.0.1-preview-f11c28cc2
@metamask-previews/gas-fee-controller@26.1.0-preview-f11c28cc2
@metamask-previews/gator-permissions-controller@2.1.1-preview-f11c28cc2
@metamask-previews/geolocation-controller@0.1.1-preview-f11c28cc2
@metamask-previews/json-rpc-engine@10.2.3-preview-f11c28cc2
@metamask-previews/json-rpc-middleware-stream@8.0.8-preview-f11c28cc2
@metamask-previews/keyring-controller@25.1.0-preview-f11c28cc2
@metamask-previews/logging-controller@8.0.0-preview-f11c28cc2
@metamask-previews/message-manager@14.1.0-preview-f11c28cc2
@metamask-previews/messenger@0.3.0-preview-f11c28cc2
@metamask-previews/multichain-account-service@7.1.0-preview-f11c28cc2
@metamask-previews/multichain-api-middleware@1.2.7-preview-f11c28cc2
@metamask-previews/multichain-network-controller@3.0.5-preview-f11c28cc2
@metamask-previews/multichain-transactions-controller@7.0.2-preview-f11c28cc2
@metamask-previews/name-controller@9.1.0-preview-f11c28cc2
@metamask-previews/network-controller@30.0.0-preview-f11c28cc2
@metamask-previews/network-enablement-controller@5.0.0-preview-f11c28cc2
@metamask-previews/notification-services-controller@23.0.0-preview-f11c28cc2
@metamask-previews/permission-controller@12.2.1-preview-f11c28cc2
@metamask-previews/permission-log-controller@5.0.0-preview-f11c28cc2
@metamask-previews/perps-controller@1.3.0-preview-f11c28cc2
@metamask-previews/phishing-controller@17.0.0-preview-f11c28cc2
@metamask-previews/polling-controller@16.0.3-preview-f11c28cc2
@metamask-previews/preferences-controller@23.0.0-preview-f11c28cc2
@metamask-previews/profile-metrics-controller@3.1.1-preview-f11c28cc2
@metamask-previews/profile-sync-controller@28.0.0-preview-f11c28cc2
@metamask-previews/ramps-controller@12.0.0-preview-f11c28cc2
@metamask-previews/rate-limit-controller@7.0.0-preview-f11c28cc2
@metamask-previews/react-data-query@0.0.0-preview-f11c28cc2
@metamask-previews/remote-feature-flag-controller@4.1.0-preview-f11c28cc2
@metamask-previews/sample-controllers@4.0.3-preview-f11c28cc2
@metamask-previews/seedless-onboarding-controller@9.0.0-preview-f11c28cc2
@metamask-previews/selected-network-controller@26.0.3-preview-f11c28cc2
@metamask-previews/shield-controller@5.0.2-preview-f11c28cc2
@metamask-previews/signature-controller@39.1.0-preview-f11c28cc2
@metamask-previews/storage-service@1.0.0-preview-f11c28cc2
@metamask-previews/subscription-controller@6.0.2-preview-f11c28cc2
@metamask-previews/transaction-controller@63.0.0-preview-f11c28cc2
@metamask-previews/transaction-pay-controller@18.0.0-preview-f11c28cc2
@metamask-previews/user-operation-controller@41.1.0-preview-f11c28cc2

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`
The binary requires a build step before it can be used. Using tsx
to run the source TypeScript directly avoids this dependency.
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
- 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`
@cryptodev-2s cryptodev-2s force-pushed the feat/messenger-generate-action-types-package branch from 89da66f to 0202e79 Compare March 23, 2026 18:35
@cryptodev-2s cryptodev-2s self-assigned this Mar 23, 2026
@cryptodev-2s cryptodev-2s marked this pull request as ready for review March 23, 2026 18:50
@cryptodev-2s cryptodev-2s requested review from a team as code owners March 23, 2026 18:50
The module parses both controllers and services, not just controllers.
@metamask/utils is only used by the generate-action-types subpath,
not the core Messenger library. Keep it consistent with the other
codegen-only dependencies (typescript, yargs, eslint).
@cryptodev-2s
Copy link
Contributor Author

@metamaskbot publish-preview

@github-actions
Copy link
Contributor

Preview builds have been published. Learn how to use preview builds in other projects.

Expand for full list of packages and versions.
@metamask-previews/account-tree-controller@5.0.1-preview-b9ae764
@metamask-previews/accounts-controller@37.0.0-preview-b9ae764
@metamask-previews/address-book-controller@7.1.0-preview-b9ae764
@metamask-previews/ai-controllers@0.5.0-preview-b9ae764
@metamask-previews/analytics-controller@1.0.0-preview-b9ae764
@metamask-previews/analytics-data-regulation-controller@0.0.0-preview-b9ae764
@metamask-previews/announcement-controller@8.0.0-preview-b9ae764
@metamask-previews/app-metadata-controller@2.0.0-preview-b9ae764
@metamask-previews/approval-controller@9.0.0-preview-b9ae764
@metamask-previews/assets-controller@3.0.0-preview-b9ae764
@metamask-previews/assets-controllers@101.0.1-preview-b9ae764
@metamask-previews/base-controller@9.0.0-preview-b9ae764
@metamask-previews/base-data-service@0.0.0-preview-b9ae764
@metamask-previews/bridge-controller@69.2.0-preview-b9ae764
@metamask-previews/bridge-status-controller@70.0.0-preview-b9ae764
@metamask-previews/build-utils@3.0.4-preview-b9ae764
@metamask-previews/chain-agnostic-permission@1.4.0-preview-b9ae764
@metamask-previews/claims-controller@0.4.3-preview-b9ae764
@metamask-previews/client-controller@1.0.0-preview-b9ae764
@metamask-previews/compliance-controller@1.0.1-preview-b9ae764
@metamask-previews/composable-controller@12.0.0-preview-b9ae764
@metamask-previews/config-registry-controller@0.1.1-preview-b9ae764
@metamask-previews/connectivity-controller@0.1.0-preview-b9ae764
@metamask-previews/controller-utils@11.19.0-preview-b9ae764
@metamask-previews/core-backend@6.2.0-preview-b9ae764
@metamask-previews/delegation-controller@2.0.2-preview-b9ae764
@metamask-previews/earn-controller@11.1.2-preview-b9ae764
@metamask-previews/eip-5792-middleware@3.0.1-preview-b9ae764
@metamask-previews/eip-7702-internal-rpc-middleware@0.1.0-preview-b9ae764
@metamask-previews/eip1193-permission-middleware@1.0.3-preview-b9ae764
@metamask-previews/ens-controller@19.1.0-preview-b9ae764
@metamask-previews/error-reporting-service@3.0.1-preview-b9ae764
@metamask-previews/eth-block-tracker@15.0.1-preview-b9ae764
@metamask-previews/eth-json-rpc-middleware@23.1.0-preview-b9ae764
@metamask-previews/eth-json-rpc-provider@6.0.0-preview-b9ae764
@metamask-previews/foundryup@1.0.1-preview-b9ae764
@metamask-previews/gas-fee-controller@26.1.0-preview-b9ae764
@metamask-previews/gator-permissions-controller@2.1.1-preview-b9ae764
@metamask-previews/geolocation-controller@0.1.1-preview-b9ae764
@metamask-previews/json-rpc-engine@10.2.3-preview-b9ae764
@metamask-previews/json-rpc-middleware-stream@8.0.8-preview-b9ae764
@metamask-previews/keyring-controller@25.1.0-preview-b9ae764
@metamask-previews/logging-controller@8.0.0-preview-b9ae764
@metamask-previews/message-manager@14.1.0-preview-b9ae764
@metamask-previews/messenger@0.3.0-preview-b9ae764
@metamask-previews/multichain-account-service@7.1.0-preview-b9ae764
@metamask-previews/multichain-api-middleware@1.2.7-preview-b9ae764
@metamask-previews/multichain-network-controller@3.0.5-preview-b9ae764
@metamask-previews/multichain-transactions-controller@7.0.2-preview-b9ae764
@metamask-previews/name-controller@9.1.0-preview-b9ae764
@metamask-previews/network-controller@30.0.0-preview-b9ae764
@metamask-previews/network-enablement-controller@5.0.0-preview-b9ae764
@metamask-previews/notification-services-controller@23.0.0-preview-b9ae764
@metamask-previews/permission-controller@12.2.1-preview-b9ae764
@metamask-previews/permission-log-controller@5.0.0-preview-b9ae764
@metamask-previews/perps-controller@1.3.0-preview-b9ae764
@metamask-previews/phishing-controller@17.0.0-preview-b9ae764
@metamask-previews/polling-controller@16.0.3-preview-b9ae764
@metamask-previews/preferences-controller@23.0.0-preview-b9ae764
@metamask-previews/profile-metrics-controller@3.1.1-preview-b9ae764
@metamask-previews/profile-sync-controller@28.0.0-preview-b9ae764
@metamask-previews/ramps-controller@12.0.1-preview-b9ae764
@metamask-previews/rate-limit-controller@7.0.0-preview-b9ae764
@metamask-previews/react-data-query@0.0.0-preview-b9ae764
@metamask-previews/remote-feature-flag-controller@4.1.0-preview-b9ae764
@metamask-previews/sample-controllers@4.0.3-preview-b9ae764
@metamask-previews/seedless-onboarding-controller@9.0.0-preview-b9ae764
@metamask-previews/selected-network-controller@26.0.3-preview-b9ae764
@metamask-previews/shield-controller@5.0.2-preview-b9ae764
@metamask-previews/signature-controller@39.1.0-preview-b9ae764
@metamask-previews/storage-service@1.0.0-preview-b9ae764
@metamask-previews/subscription-controller@6.0.2-preview-b9ae764
@metamask-previews/transaction-controller@63.1.0-preview-b9ae764
@metamask-previews/transaction-pay-controller@18.0.0-preview-b9ae764
@metamask-previews/user-operation-controller@41.1.0-preview-b9ae764

…action-types

Rename types, functions, params, and variables to be neutral:
ControllerInfo → SourceInfo, parseControllerFile → parseSourceFile,
findControllersWithExposedMethods → findSourcesWithExposedMethods.
The tool works for both controllers and services.
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

@cryptodev-2s
Copy link
Contributor Author

@metamaskbot publish-preview

@github-actions
Copy link
Contributor

Preview builds have been published. Learn how to use preview builds in other projects.

Expand for full list of packages and versions.
@metamask-previews/account-tree-controller@5.0.1-preview-3f2e0ea
@metamask-previews/accounts-controller@37.0.0-preview-3f2e0ea
@metamask-previews/address-book-controller@7.1.0-preview-3f2e0ea
@metamask-previews/ai-controllers@0.5.0-preview-3f2e0ea
@metamask-previews/analytics-controller@1.0.0-preview-3f2e0ea
@metamask-previews/analytics-data-regulation-controller@0.0.0-preview-3f2e0ea
@metamask-previews/announcement-controller@8.0.0-preview-3f2e0ea
@metamask-previews/app-metadata-controller@2.0.0-preview-3f2e0ea
@metamask-previews/approval-controller@9.0.0-preview-3f2e0ea
@metamask-previews/assets-controller@3.0.0-preview-3f2e0ea
@metamask-previews/assets-controllers@101.0.1-preview-3f2e0ea
@metamask-previews/base-controller@9.0.0-preview-3f2e0ea
@metamask-previews/base-data-service@0.0.0-preview-3f2e0ea
@metamask-previews/bridge-controller@69.2.0-preview-3f2e0ea
@metamask-previews/bridge-status-controller@70.0.0-preview-3f2e0ea
@metamask-previews/build-utils@3.0.4-preview-3f2e0ea
@metamask-previews/chain-agnostic-permission@1.4.0-preview-3f2e0ea
@metamask-previews/claims-controller@0.4.3-preview-3f2e0ea
@metamask-previews/client-controller@1.0.0-preview-3f2e0ea
@metamask-previews/compliance-controller@1.0.1-preview-3f2e0ea
@metamask-previews/composable-controller@12.0.0-preview-3f2e0ea
@metamask-previews/config-registry-controller@0.1.1-preview-3f2e0ea
@metamask-previews/connectivity-controller@0.1.0-preview-3f2e0ea
@metamask-previews/controller-utils@11.19.0-preview-3f2e0ea
@metamask-previews/core-backend@6.2.0-preview-3f2e0ea
@metamask-previews/delegation-controller@2.0.2-preview-3f2e0ea
@metamask-previews/earn-controller@11.1.2-preview-3f2e0ea
@metamask-previews/eip-5792-middleware@3.0.1-preview-3f2e0ea
@metamask-previews/eip-7702-internal-rpc-middleware@0.1.0-preview-3f2e0ea
@metamask-previews/eip1193-permission-middleware@1.0.3-preview-3f2e0ea
@metamask-previews/ens-controller@19.1.0-preview-3f2e0ea
@metamask-previews/error-reporting-service@3.0.1-preview-3f2e0ea
@metamask-previews/eth-block-tracker@15.0.1-preview-3f2e0ea
@metamask-previews/eth-json-rpc-middleware@23.1.0-preview-3f2e0ea
@metamask-previews/eth-json-rpc-provider@6.0.0-preview-3f2e0ea
@metamask-previews/foundryup@1.0.1-preview-3f2e0ea
@metamask-previews/gas-fee-controller@26.1.0-preview-3f2e0ea
@metamask-previews/gator-permissions-controller@2.1.1-preview-3f2e0ea
@metamask-previews/geolocation-controller@0.1.1-preview-3f2e0ea
@metamask-previews/json-rpc-engine@10.2.3-preview-3f2e0ea
@metamask-previews/json-rpc-middleware-stream@8.0.8-preview-3f2e0ea
@metamask-previews/keyring-controller@25.1.0-preview-3f2e0ea
@metamask-previews/logging-controller@8.0.0-preview-3f2e0ea
@metamask-previews/message-manager@14.1.0-preview-3f2e0ea
@metamask-previews/messenger@0.3.0-preview-3f2e0ea
@metamask-previews/multichain-account-service@7.1.0-preview-3f2e0ea
@metamask-previews/multichain-api-middleware@1.2.7-preview-3f2e0ea
@metamask-previews/multichain-network-controller@3.0.5-preview-3f2e0ea
@metamask-previews/multichain-transactions-controller@7.0.2-preview-3f2e0ea
@metamask-previews/name-controller@9.1.0-preview-3f2e0ea
@metamask-previews/network-controller@30.0.0-preview-3f2e0ea
@metamask-previews/network-enablement-controller@5.0.0-preview-3f2e0ea
@metamask-previews/notification-services-controller@23.0.0-preview-3f2e0ea
@metamask-previews/permission-controller@12.2.1-preview-3f2e0ea
@metamask-previews/permission-log-controller@5.0.0-preview-3f2e0ea
@metamask-previews/perps-controller@1.3.0-preview-3f2e0ea
@metamask-previews/phishing-controller@17.0.0-preview-3f2e0ea
@metamask-previews/polling-controller@16.0.3-preview-3f2e0ea
@metamask-previews/preferences-controller@23.0.0-preview-3f2e0ea
@metamask-previews/profile-metrics-controller@3.1.1-preview-3f2e0ea
@metamask-previews/profile-sync-controller@28.0.0-preview-3f2e0ea
@metamask-previews/ramps-controller@12.0.1-preview-3f2e0ea
@metamask-previews/rate-limit-controller@7.0.0-preview-3f2e0ea
@metamask-previews/react-data-query@0.0.0-preview-3f2e0ea
@metamask-previews/remote-feature-flag-controller@4.1.0-preview-3f2e0ea
@metamask-previews/sample-controllers@4.0.3-preview-3f2e0ea
@metamask-previews/seedless-onboarding-controller@9.0.0-preview-3f2e0ea
@metamask-previews/selected-network-controller@26.0.3-preview-3f2e0ea
@metamask-previews/shield-controller@5.0.2-preview-3f2e0ea
@metamask-previews/signature-controller@39.1.0-preview-3f2e0ea
@metamask-previews/storage-service@1.0.0-preview-3f2e0ea
@metamask-previews/subscription-controller@6.0.2-preview-3f2e0ea
@metamask-previews/transaction-controller@63.1.0-preview-3f2e0ea
@metamask-previews/transaction-pay-controller@18.0.0-preview-3f2e0ea
@metamask-previews/user-operation-controller@41.1.0-preview-3f2e0ea

@cryptodev-2s
Copy link
Contributor Author

@metamaskbot publish-preview

@github-actions
Copy link
Contributor

Preview builds have been published. Learn how to use preview builds in other projects.

Expand for full list of packages and versions.
@metamask-previews/account-tree-controller@5.0.1-preview-74da211
@metamask-previews/accounts-controller@37.0.0-preview-74da211
@metamask-previews/address-book-controller@7.1.0-preview-74da211
@metamask-previews/ai-controllers@0.5.0-preview-74da211
@metamask-previews/analytics-controller@1.0.0-preview-74da211
@metamask-previews/analytics-data-regulation-controller@0.0.0-preview-74da211
@metamask-previews/announcement-controller@8.0.0-preview-74da211
@metamask-previews/app-metadata-controller@2.0.0-preview-74da211
@metamask-previews/approval-controller@9.0.0-preview-74da211
@metamask-previews/assets-controller@3.0.0-preview-74da211
@metamask-previews/assets-controllers@101.0.1-preview-74da211
@metamask-previews/base-controller@9.0.0-preview-74da211
@metamask-previews/base-data-service@0.0.0-preview-74da211
@metamask-previews/bridge-controller@69.2.0-preview-74da211
@metamask-previews/bridge-status-controller@70.0.0-preview-74da211
@metamask-previews/build-utils@3.0.4-preview-74da211
@metamask-previews/chain-agnostic-permission@1.4.0-preview-74da211
@metamask-previews/claims-controller@0.4.3-preview-74da211
@metamask-previews/client-controller@1.0.0-preview-74da211
@metamask-previews/compliance-controller@1.0.1-preview-74da211
@metamask-previews/composable-controller@12.0.0-preview-74da211
@metamask-previews/config-registry-controller@0.1.1-preview-74da211
@metamask-previews/connectivity-controller@0.1.0-preview-74da211
@metamask-previews/controller-utils@11.19.0-preview-74da211
@metamask-previews/core-backend@6.2.0-preview-74da211
@metamask-previews/delegation-controller@2.0.2-preview-74da211
@metamask-previews/earn-controller@11.1.2-preview-74da211
@metamask-previews/eip-5792-middleware@3.0.1-preview-74da211
@metamask-previews/eip-7702-internal-rpc-middleware@0.1.0-preview-74da211
@metamask-previews/eip1193-permission-middleware@1.0.3-preview-74da211
@metamask-previews/ens-controller@19.1.0-preview-74da211
@metamask-previews/error-reporting-service@3.0.1-preview-74da211
@metamask-previews/eth-block-tracker@15.0.1-preview-74da211
@metamask-previews/eth-json-rpc-middleware@23.1.0-preview-74da211
@metamask-previews/eth-json-rpc-provider@6.0.0-preview-74da211
@metamask-previews/foundryup@1.0.1-preview-74da211
@metamask-previews/gas-fee-controller@26.1.0-preview-74da211
@metamask-previews/gator-permissions-controller@2.1.1-preview-74da211
@metamask-previews/geolocation-controller@0.1.1-preview-74da211
@metamask-previews/json-rpc-engine@10.2.3-preview-74da211
@metamask-previews/json-rpc-middleware-stream@8.0.8-preview-74da211
@metamask-previews/keyring-controller@25.1.0-preview-74da211
@metamask-previews/logging-controller@8.0.0-preview-74da211
@metamask-previews/message-manager@14.1.0-preview-74da211
@metamask-previews/messenger@0.3.0-preview-74da211
@metamask-previews/multichain-account-service@7.1.0-preview-74da211
@metamask-previews/multichain-api-middleware@1.2.7-preview-74da211
@metamask-previews/multichain-network-controller@3.0.5-preview-74da211
@metamask-previews/multichain-transactions-controller@7.0.2-preview-74da211
@metamask-previews/name-controller@9.1.0-preview-74da211
@metamask-previews/network-controller@30.0.0-preview-74da211
@metamask-previews/network-enablement-controller@5.0.0-preview-74da211
@metamask-previews/notification-services-controller@23.0.0-preview-74da211
@metamask-previews/permission-controller@12.2.1-preview-74da211
@metamask-previews/permission-log-controller@5.0.0-preview-74da211
@metamask-previews/perps-controller@1.3.0-preview-74da211
@metamask-previews/phishing-controller@17.0.0-preview-74da211
@metamask-previews/polling-controller@16.0.3-preview-74da211
@metamask-previews/preferences-controller@23.0.0-preview-74da211
@metamask-previews/profile-metrics-controller@3.1.1-preview-74da211
@metamask-previews/profile-sync-controller@28.0.0-preview-74da211
@metamask-previews/ramps-controller@12.0.1-preview-74da211
@metamask-previews/rate-limit-controller@7.0.0-preview-74da211
@metamask-previews/react-data-query@0.0.0-preview-74da211
@metamask-previews/remote-feature-flag-controller@4.1.0-preview-74da211
@metamask-previews/sample-controllers@4.0.3-preview-74da211
@metamask-previews/seedless-onboarding-controller@9.0.0-preview-74da211
@metamask-previews/selected-network-controller@26.0.3-preview-74da211
@metamask-previews/shield-controller@5.0.2-preview-74da211
@metamask-previews/signature-controller@39.1.0-preview-74da211
@metamask-previews/storage-service@1.0.0-preview-74da211
@metamask-previews/subscription-controller@6.0.2-preview-74da211
@metamask-previews/transaction-controller@63.1.0-preview-74da211
@metamask-previews/transaction-pay-controller@18.0.0-preview-74da211
@metamask-previews/user-operation-controller@41.1.0-preview-74da211

Recursively search subdirectories for source files, matching the
snaps repo implementation. This allows packages with controllers
or services in nested directories to be discovered automatically.
@cryptodev-2s cryptodev-2s requested a review from Mrtenz March 23, 2026 21:52
@cryptodev-2s
Copy link
Contributor Author

@metamaskbot publish-preview

@github-actions
Copy link
Contributor

Preview builds have been published. Learn how to use preview builds in other projects.

Expand for full list of packages and versions.
@metamask-previews/account-tree-controller@5.0.1-preview-a462582
@metamask-previews/accounts-controller@37.0.0-preview-a462582
@metamask-previews/address-book-controller@7.1.0-preview-a462582
@metamask-previews/ai-controllers@0.5.0-preview-a462582
@metamask-previews/analytics-controller@1.0.0-preview-a462582
@metamask-previews/analytics-data-regulation-controller@0.0.0-preview-a462582
@metamask-previews/announcement-controller@8.0.0-preview-a462582
@metamask-previews/app-metadata-controller@2.0.0-preview-a462582
@metamask-previews/approval-controller@9.0.0-preview-a462582
@metamask-previews/assets-controller@3.0.0-preview-a462582
@metamask-previews/assets-controllers@101.0.1-preview-a462582
@metamask-previews/base-controller@9.0.0-preview-a462582
@metamask-previews/base-data-service@0.0.0-preview-a462582
@metamask-previews/bridge-controller@69.2.0-preview-a462582
@metamask-previews/bridge-status-controller@70.0.0-preview-a462582
@metamask-previews/build-utils@3.0.4-preview-a462582
@metamask-previews/chain-agnostic-permission@1.4.0-preview-a462582
@metamask-previews/claims-controller@0.4.3-preview-a462582
@metamask-previews/client-controller@1.0.0-preview-a462582
@metamask-previews/compliance-controller@1.0.1-preview-a462582
@metamask-previews/composable-controller@12.0.0-preview-a462582
@metamask-previews/config-registry-controller@0.1.1-preview-a462582
@metamask-previews/connectivity-controller@0.1.0-preview-a462582
@metamask-previews/controller-utils@11.19.0-preview-a462582
@metamask-previews/core-backend@6.2.0-preview-a462582
@metamask-previews/delegation-controller@2.0.2-preview-a462582
@metamask-previews/earn-controller@11.1.2-preview-a462582
@metamask-previews/eip-5792-middleware@3.0.1-preview-a462582
@metamask-previews/eip-7702-internal-rpc-middleware@0.1.0-preview-a462582
@metamask-previews/eip1193-permission-middleware@1.0.3-preview-a462582
@metamask-previews/ens-controller@19.1.0-preview-a462582
@metamask-previews/error-reporting-service@3.0.1-preview-a462582
@metamask-previews/eth-block-tracker@15.0.1-preview-a462582
@metamask-previews/eth-json-rpc-middleware@23.1.0-preview-a462582
@metamask-previews/eth-json-rpc-provider@6.0.0-preview-a462582
@metamask-previews/foundryup@1.0.1-preview-a462582
@metamask-previews/gas-fee-controller@26.1.0-preview-a462582
@metamask-previews/gator-permissions-controller@2.1.1-preview-a462582
@metamask-previews/geolocation-controller@0.1.1-preview-a462582
@metamask-previews/json-rpc-engine@10.2.3-preview-a462582
@metamask-previews/json-rpc-middleware-stream@8.0.8-preview-a462582
@metamask-previews/keyring-controller@25.1.0-preview-a462582
@metamask-previews/logging-controller@8.0.0-preview-a462582
@metamask-previews/message-manager@14.1.0-preview-a462582
@metamask-previews/messenger@0.3.0-preview-a462582
@metamask-previews/multichain-account-service@7.1.0-preview-a462582
@metamask-previews/multichain-api-middleware@1.2.7-preview-a462582
@metamask-previews/multichain-network-controller@3.0.5-preview-a462582
@metamask-previews/multichain-transactions-controller@7.0.2-preview-a462582
@metamask-previews/name-controller@9.1.0-preview-a462582
@metamask-previews/network-controller@30.0.0-preview-a462582
@metamask-previews/network-enablement-controller@5.0.0-preview-a462582
@metamask-previews/notification-services-controller@23.0.0-preview-a462582
@metamask-previews/permission-controller@12.2.1-preview-a462582
@metamask-previews/permission-log-controller@5.0.0-preview-a462582
@metamask-previews/perps-controller@1.3.0-preview-a462582
@metamask-previews/phishing-controller@17.0.0-preview-a462582
@metamask-previews/polling-controller@16.0.3-preview-a462582
@metamask-previews/preferences-controller@23.0.0-preview-a462582
@metamask-previews/profile-metrics-controller@3.1.1-preview-a462582
@metamask-previews/profile-sync-controller@28.0.0-preview-a462582
@metamask-previews/ramps-controller@12.0.1-preview-a462582
@metamask-previews/rate-limit-controller@7.0.0-preview-a462582
@metamask-previews/react-data-query@0.0.0-preview-a462582
@metamask-previews/remote-feature-flag-controller@4.1.0-preview-a462582
@metamask-previews/sample-controllers@4.0.3-preview-a462582
@metamask-previews/seedless-onboarding-controller@9.0.0-preview-a462582
@metamask-previews/selected-network-controller@26.0.3-preview-a462582
@metamask-previews/shield-controller@5.0.2-preview-a462582
@metamask-previews/signature-controller@39.1.0-preview-a462582
@metamask-previews/storage-service@1.0.0-preview-a462582
@metamask-previews/subscription-controller@6.0.2-preview-a462582
@metamask-previews/transaction-controller@63.1.0-preview-a462582
@metamask-previews/transaction-pay-controller@18.0.0-preview-a462582
@metamask-previews/user-operation-controller@41.1.0-preview-a462582

"typedoc-plugin-missing-exports": "^2.0.0",
"typescript": "~5.3.3"
"typescript": "~5.3.3",
"yargs": "^17.7.2"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should these be in dependencies, since they're being referred to in code that we are publishing?

@@ -0,0 +1,6 @@
export { checkActionTypesFiles } from './check';
Copy link
Contributor

@mcmire mcmire Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to expose an API? I know that we do this for auto-changelog so we can programmatically parse changelogs, but maybe we don't need one in this case?

// The display name when running multiple projects
displayName,

coveragePathIgnorePatterns: ['./src/generate-action-types/cli.ts'],
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of ignoring this file, what are your thoughts on writing functional tests that run the CLI for real on a set of example files?

const sourceImportPath = `./${baseFileName}`;

let content = `/**
* This file is auto generated by \`@metamask/messenger/generate-action-types\`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we shouldn't mention the tool that created this file so that if we change the tool later we don't need to update these files?

Suggested change
* This file is auto generated by \`@metamask/messenger/generate-action-types\`.
* This file is auto-generated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants