Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
d04c173
feat: create `@metamask/messenger-generate-action-types` package
cryptodev-2s Mar 20, 2026
b44475e
fix: use tsx to invoke CLI source directly instead of built binary
cryptodev-2s Mar 20, 2026
94c4321
refactor: merge generate-action-types into @metamask/messenger
cryptodev-2s Mar 20, 2026
0bac580
chore: add changelog entry for generate-action-types in @metamask/mes…
cryptodev-2s Mar 20, 2026
e9923c1
test: achieve 100% coverage for generate-action-types in @metamask/me…
cryptodev-2s Mar 20, 2026
fa8bb15
refactor: simplify generate-action-types code
cryptodev-2s Mar 20, 2026
5b34c6c
fix: update generated file header to `@metamask/messenger/generate-ac…
cryptodev-2s Mar 20, 2026
57d9d37
chore: revert unrelated README.md changes
cryptodev-2s Mar 20, 2026
0202e79
chore: fix prettier formatting in messenger package.json
cryptodev-2s Mar 20, 2026
4a9fabb
refactor: rename parse-controller to parse-source
cryptodev-2s Mar 23, 2026
b9ae764
fix: move @metamask/utils to optional peerDependencies
cryptodev-2s Mar 23, 2026
7858fe3
refactor: update CLI messaging to reference both controllers and serv…
cryptodev-2s Mar 23, 2026
212c712
refactor: rename controller references to source throughout generate-…
cryptodev-2s Mar 23, 2026
f6dc0f4
refactor: use eslint package types instead of hand-rolled ESLint type
cryptodev-2s Mar 23, 2026
3f2e0ea
chore: fix prettier formatting in messenger package.json
cryptodev-2s Mar 23, 2026
74da211
fix: bind ESLint static methods to avoid unbound-method lint error
cryptodev-2s Mar 23, 2026
a462582
feat: add recursive directory search for MESSENGER_EXPOSED_METHODS
cryptodev-2s Mar 23, 2026
96ca2da
fix: simplify generated file header to generic auto-generated message
cryptodev-2s Mar 24, 2026
3fa5e4b
chore: fix prettier formatting in generate-content test
cryptodev-2s Mar 24, 2026
bdc18ba
refactor: remove redundant subdirectory scripts
cryptodev-2s Mar 24, 2026
a510208
chore: remove accidentally committed tmp files
cryptodev-2s Mar 24, 2026
d777127
Merge remote-tracking branch 'origin/main' into feat/messenger-genera…
cryptodev-2s Mar 24, 2026
00cafdc
fix: lint issues
cryptodev-2s Mar 24, 2026
646a812
refactor: remove unused subpath export and index.ts
cryptodev-2s Mar 24, 2026
fe5f1f0
test: add functional tests for generate-action-types CLI
cryptodev-2s Mar 25, 2026
d4e6bec
test: add functional tests for generate-action-types CLI using execa
cryptodev-2s Mar 25, 2026
ff21843
fix: correct dependency classification for generate-action-types
cryptodev-2s Mar 25, 2026
3cba2e0
Merge branch 'main' into feat/messenger-generate-action-types-package
cryptodev-2s Mar 25, 2026
f24ab34
Merge remote-tracking branch 'origin/main' into feat/messenger-genera…
cryptodev-2s Mar 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,12 @@ const config = createConfig([
'n/no-deprecated-api': 'off',
},
},
{
files: ['packages/messenger/src/generate-action-types/**/*.{js,ts}'],
rules: {
'import-x/no-nodejs-modules': 'off',
},
},
{
files: [
'packages/notification-services-controller/src/NotificationServicesPushController/services/push/*-web.ts',
Expand Down
2 changes: 1 addition & 1 deletion packages/account-tree-controller/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": "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",
Expand Down
2 changes: 1 addition & 1 deletion packages/accounts-controller/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": "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",
Expand Down
2 changes: 1 addition & 1 deletion packages/address-book-controller/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": "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",
Expand Down
2 changes: 1 addition & 1 deletion packages/analytics-controller/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": "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",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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": "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",
Expand Down
2 changes: 1 addition & 1 deletion packages/announcement-controller/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": "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",
Expand Down
2 changes: 1 addition & 1 deletion packages/approval-controller/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": "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",
Expand Down
2 changes: 1 addition & 1 deletion packages/assets-controller/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": "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",
Expand Down
4 changes: 1 addition & 3 deletions packages/assets-controllers/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,7 @@
"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": "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",
Expand Down
2 changes: 1 addition & 1 deletion packages/claims-controller/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": "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",
Expand Down
2 changes: 1 addition & 1 deletion packages/client-controller/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": "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",
Expand Down
2 changes: 1 addition & 1 deletion packages/compliance-controller/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": "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",
Expand Down
2 changes: 1 addition & 1 deletion packages/config-registry-controller/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": "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",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
import type { ConfigRegistryApiService } from './config-registry-api-service';

/**
* Fetches the latest config from the config registry API.
*
* @param args - The arguments to the function.
* @param args.options - Optional fetch options (e.g. etag for cache validation).
* This file is auto generated.
* Do not edit manually.
*/

import type { ConfigRegistryApiService } from './config-registry-api-service';

export type ConfigRegistryApiServiceFetchConfigAction = {
type: 'ConfigRegistryApiService:fetchConfig';
type: `ConfigRegistryApiService:fetchConfig`;
handler: ConfigRegistryApiService['fetchConfig'];
};

Expand Down
2 changes: 1 addition & 1 deletion packages/connectivity-controller/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": "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",
Expand Down
2 changes: 1 addition & 1 deletion packages/core-backend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": "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",
Expand Down
2 changes: 1 addition & 1 deletion packages/delegation-controller/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": "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",
Expand Down
2 changes: 1 addition & 1 deletion packages/earn-controller/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": "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",
Expand Down
2 changes: 1 addition & 1 deletion packages/ens-controller/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": "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",
Expand Down
2 changes: 1 addition & 1 deletion packages/error-reporting-service/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": "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",
Expand Down
2 changes: 1 addition & 1 deletion packages/gas-fee-controller/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": "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",
Expand Down
2 changes: 1 addition & 1 deletion packages/gator-permissions-controller/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": "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",
Expand Down
2 changes: 1 addition & 1 deletion packages/geolocation-controller/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": "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",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,11 @@ import type { GeolocationApiService } from './geolocation-api-service';
* deduplicated to a single in-flight request.
*
* @param options - Optional fetch options.
* @param options.bypassCache - When true, invalidates the cache and forces a
* fresh network request.
* @param options.bypassCache - When true, invalidates the TTL cache. If a
* request is already in-flight it will be reused (deduplication always
* applies).
* @returns An ISO 3166-2 location code (e.g. `US`, `US-NY`, `CA-ON`), or
* `UNKNOWN_LOCATION` when the API returns an empty or invalid body.
* {@link UNKNOWN_LOCATION} when the API returns an empty or invalid body.
*/
export type GeolocationApiServiceFetchGeolocationAction = {
type: `GeolocationApiService:fetchGeolocation`;
Expand Down
2 changes: 1 addition & 1 deletion packages/logging-controller/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": "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",
Expand Down
7 changes: 7 additions & 0 deletions packages/messenger/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 ([#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`).
- `@metamask/utils`, `typescript`, `yargs`, and `eslint` are optional peer dependencies, only required when using the codegen tool.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Should this be updated to read:

Suggested change
- `@metamask/utils`, `typescript`, `yargs`, and `eslint` are optional peer dependencies, only required when using the codegen tool.
- `typescript` and `eslint` are peer dependencies.


## [1.0.0]

### Changed
Expand Down
3 changes: 3 additions & 0 deletions packages/messenger/jest.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ module.exports = merge(baseConfig, {
// The display name when running multiple projects
displayName,

// cli.ts is tested via execa subprocess in cli.test.ts; Jest can't instrument it
coveragePathIgnorePatterns: ['./src/generate-action-types/cli.ts'],

// An object that configures minimum threshold enforcement for coverage results
coverageThreshold: {
global: {
Expand Down
15 changes: 15 additions & 0 deletions packages/messenger/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@
},
"main": "./dist/index.cjs",
"types": "./dist/index.d.cts",
"bin": {
"messenger-generate-action-types": "./dist/generate-action-types/cli.mjs"
},
"files": [
"dist/"
],
Expand All @@ -46,18 +49,30 @@
"test:verbose": "NODE_OPTIONS=--experimental-vm-modules jest --verbose",
"test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch"
},
"dependencies": {
"yargs": "^17.7.2"
},
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Runtime yargs dependency shipped to all library consumers

Medium Severity

yargs is listed as a production dependency of @metamask/messenger, meaning every consumer of the package — including those only importing the core Messenger class — will install yargs and its transitive dependencies. This contradicts the PR goal that "the core Messenger library remains lightweight," since yargs is only needed by the CLI codegen tool.

Fix in Cursor Fix in Web

"devDependencies": {
"@metamask/auto-changelog": "^3.4.4",
"@metamask/utils": "^11.9.0",
"@ts-bridge/cli": "^0.6.4",
"@types/jest": "^29.5.14",
"@types/yargs": "^17.0.32",
"deepmerge": "^4.2.2",
"eslint": "^9.39.1",
"execa": "^5.0.0",
"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"
},
"peerDependencies": {
"@metamask/utils": "^11.9.0",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Should this be a regular dependency as well? I think we can allow this to be whatever version works for this use case, we don't need to require that the consuming project uses this exact version.

"eslint": ">=8",
"typescript": "~5.3.3"
},
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Peer dependencies not marked optional despite documentation claiming so

Medium Severity

The peerDependencies for @metamask/utils, eslint, and typescript are declared as required, but the CHANGELOG states they are "optional peer dependencies, only required when using the codegen tool." Without a peerDependenciesMeta section marking each as optional: true, npm/yarn will emit missing-peer-dependency warnings for every consumer of @metamask/messenger — even those that only use the core Messenger class and never invoke the CLI.

Additional Locations (1)
Fix in Cursor Fix in Web

"engines": {
"node": "^18.18 || >=20"
},
Expand Down
Loading
Loading