diff --git a/.github/workflows/lint-build-test.yml b/.github/workflows/lint-build-test.yml index 36039484255..4efb1a7200d 100644 --- a/.github/workflows/lint-build-test.yml +++ b/.github/workflows/lint-build-test.yml @@ -42,6 +42,7 @@ jobs: - lint:teams - messenger-action-types:check - readme-content:check + - lint:tsconfigs:all steps: - name: Checkout and setup environment uses: MetaMask/action-checkout-and-setup@v3 diff --git a/README.md b/README.md index 6e0cbc95cb7..df81fb4a81a 100644 --- a/README.md +++ b/README.md @@ -376,6 +376,7 @@ linkStyle default opacity:0.5 earn_controller --> network_controller; earn_controller --> transaction_controller; eip_5792_middleware --> messenger; + eip_5792_middleware --> preferences_controller; eip_5792_middleware --> transaction_controller; eip_5792_middleware --> keyring_controller; eip_7702_internal_rpc_middleware --> controller_utils; @@ -410,6 +411,7 @@ linkStyle default opacity:0.5 json_rpc_engine --> messenger; json_rpc_middleware_stream --> json_rpc_engine; keyring_controller --> base_controller; + keyring_controller --> controller_utils; keyring_controller --> messenger; logging_controller --> base_controller; logging_controller --> controller_utils; diff --git a/eslint.config.mjs b/eslint.config.mjs index 2c7f92cf28d..9aa11e168a2 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -116,10 +116,10 @@ const config = createConfig([ '**/docusaurus.config.ts', '**/test/**/*.{js,ts}', '**/tests/**/*.{js,ts}', - 'scripts/*.ts', - 'scripts/create-package/**/*.ts', + 'scripts/**/*.{ts,mts}', 'packages/platform-api-docs/**/*.ts', ], + ignores: ['scripts/create-package/package-template/**/*.ts'], extends: [nodejs], }, { @@ -130,7 +130,7 @@ const config = createConfig([ }, }, { - files: ['**/*.ts'], + files: ['**/*.ts', '**/*.mts'], extends: [typescript], languageOptions: { parserOptions: { diff --git a/package.json b/package.json index b677c60ac45..ee5cba510df 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "docs:platform-api:build": "yarn workspace @metamask/platform-api-docs cli ../.. --build --project-label Core", "docs:platform-api:dev": "yarn workspace @metamask/platform-api-docs cli ../.. --dev --project-label Core", "docs:platform-api:serve": "yarn workspace @metamask/platform-api-docs cli ../.. --serve --project-label Core", - "lint": "yarn lint:eslint && echo && yarn lint:misc --check && yarn constraints && yarn lint:dependencies && yarn lint:teams && yarn messenger-action-types:check && yarn readme-content:check", + "lint": "yarn lint:eslint && echo && yarn lint:misc --check && yarn constraints && yarn lint:dependencies && yarn lint:teams && yarn messenger-action-types:check && yarn readme-content:check && yarn lint:tsconfigs:all", "lint:dependencies": "knip --dependencies && yarn dedupe --check", "lint:dependencies:fix": "knip --dependencies && yarn dedupe", "lint:eslint": "yarn build:only-clean && NODE_OPTIONS='--max-old-space-size=8192' yarn eslint", @@ -33,6 +33,10 @@ "lint:misc": "oxfmt --ignore-path .gitignore", "lint:misc:check": "yarn lint:misc --check", "lint:teams": "tsx scripts/lint-teams-json.ts", + "lint:tsconfigs": "tsx scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:all": "yarn workspaces foreach --all --parallel --interlaced --verbose run lint:tsconfigs", + "lint:tsconfigs:fix": "tsx scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", + "lint:tsconfigs:fix:all": "yarn workspaces foreach --all --parallel --interlaced --verbose run lint:tsconfigs:fix", "messenger-action-types:check": "yarn workspaces foreach --all --no-private --parallel --interlaced --verbose run messenger-action-types:check", "messenger-action-types:generate": "yarn workspaces foreach --all --no-private --parallel --interlaced --verbose run messenger-action-types:generate", "postinstall": "yarn skills:postinstall", diff --git a/packages/account-tree-controller/package.json b/packages/account-tree-controller/package.json index 47c0ae16f92..9fcef49f913 100644 --- a/packages/account-tree-controller/package.json +++ b/packages/account-tree-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/account-tree-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/account-tree-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/accounts-controller/package.json b/packages/accounts-controller/package.json index a070b9a2880..77b3a3ca1bc 100644 --- a/packages/accounts-controller/package.json +++ b/packages/accounts-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/accounts-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/accounts-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/accounts-controller/tsconfig.build.json b/packages/accounts-controller/tsconfig.build.json index d95a2cae72e..84df510b17d 100644 --- a/packages/accounts-controller/tsconfig.build.json +++ b/packages/accounts-controller/tsconfig.build.json @@ -10,9 +10,18 @@ { "path": "../base-controller/tsconfig.build.json" }, - { "path": "../keyring-controller/tsconfig.build.json" }, - { "path": "../network-controller/tsconfig.build.json" }, - { "path": "../messenger/tsconfig.build.json" } + { + "path": "../keyring-controller/tsconfig.build.json" + }, + { + "path": "../network-controller/tsconfig.build.json" + }, + { + "path": "../messenger/tsconfig.build.json" + }, + { + "path": "../controller-utils/tsconfig.build.json" + } ], "include": ["../../types", "./src"] } diff --git a/packages/accounts-controller/tsconfig.json b/packages/accounts-controller/tsconfig.json index effdcc95453..a62df830a84 100644 --- a/packages/accounts-controller/tsconfig.json +++ b/packages/accounts-controller/tsconfig.json @@ -10,8 +10,15 @@ { "path": "../keyring-controller" }, - { "path": "../network-controller" }, - { "path": "../messenger" } + { + "path": "../network-controller" + }, + { + "path": "../messenger" + }, + { + "path": "../controller-utils" + } ], "include": ["../../types", "./src", "./tests"] } diff --git a/packages/address-book-controller/package.json b/packages/address-book-controller/package.json index ff927c61a6a..d945ea29609 100644 --- a/packages/address-book-controller/package.json +++ b/packages/address-book-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/address-book-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/address-book-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/ai-controllers/package.json b/packages/ai-controllers/package.json index 33fa8dc0caa..979628b8314 100644 --- a/packages/ai-controllers/package.json +++ b/packages/ai-controllers/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/ai-controllers", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/ai-controllers", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/analytics-controller/package.json b/packages/analytics-controller/package.json index 064f2a344b7..3e634a1e9f3 100644 --- a/packages/analytics-controller/package.json +++ b/packages/analytics-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/analytics-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/analytics-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/analytics-data-regulation-controller/package.json b/packages/analytics-data-regulation-controller/package.json index 98ed618586a..f22e30a7625 100644 --- a/packages/analytics-data-regulation-controller/package.json +++ b/packages/analytics-data-regulation-controller/package.json @@ -44,6 +44,8 @@ "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", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/announcement-controller/package.json b/packages/announcement-controller/package.json index f131ce13673..b4966a6752a 100644 --- a/packages/announcement-controller/package.json +++ b/packages/announcement-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/announcement-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/announcement-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/app-metadata-controller/package.json b/packages/app-metadata-controller/package.json index 73dc3359ea3..1ff9a1d071a 100644 --- a/packages/app-metadata-controller/package.json +++ b/packages/app-metadata-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/app-metadata-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/app-metadata-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "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 +63,7 @@ "deepmerge": "^4.2.2", "jest": "^29.7.0", "ts-jest": "^29.2.5", + "tsx": "^4.20.5", "typedoc": "^0.25.13", "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" diff --git a/packages/approval-controller/package.json b/packages/approval-controller/package.json index 5e1286d3ba0..6301b0d42ac 100644 --- a/packages/approval-controller/package.json +++ b/packages/approval-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/approval-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/approval-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/assets-controller/package.json b/packages/assets-controller/package.json index c6ccb9f1c7f..154bf657bc7 100644 --- a/packages/assets-controller/package.json +++ b/packages/assets-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/assets-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/assets-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/assets-controller/tsconfig.build.json b/packages/assets-controller/tsconfig.build.json index f7468098e50..439ae92b814 100644 --- a/packages/assets-controller/tsconfig.build.json +++ b/packages/assets-controller/tsconfig.build.json @@ -6,17 +6,54 @@ "rootDir": "./src" }, "references": [ - { "path": "../account-tree-controller/tsconfig.build.json" }, - { "path": "../assets-controllers/tsconfig.build.json" }, - { "path": "../base-controller/tsconfig.build.json" }, - { "path": "../client-controller/tsconfig.build.json" }, - { "path": "../core-backend/tsconfig.build.json" }, - { "path": "../keyring-controller/tsconfig.build.json" }, - { "path": "../messenger/tsconfig.build.json" }, - { "path": "../network-enablement-controller/tsconfig.build.json" }, - { "path": "../permission-controller/tsconfig.build.json" }, - { "path": "../phishing-controller/tsconfig.build.json" }, - { "path": "../preferences-controller/tsconfig.build.json" } + { + "path": "../account-tree-controller/tsconfig.build.json" + }, + { + "path": "../assets-controllers/tsconfig.build.json" + }, + { + "path": "../base-controller/tsconfig.build.json" + }, + { + "path": "../client-controller/tsconfig.build.json" + }, + { + "path": "../core-backend/tsconfig.build.json" + }, + { + "path": "../keyring-controller/tsconfig.build.json" + }, + { + "path": "../messenger/tsconfig.build.json" + }, + { + "path": "../network-enablement-controller/tsconfig.build.json" + }, + { + "path": "../permission-controller/tsconfig.build.json" + }, + { + "path": "../phishing-controller/tsconfig.build.json" + }, + { + "path": "../preferences-controller/tsconfig.build.json" + }, + { + "path": "../accounts-controller/tsconfig.build.json" + }, + { + "path": "../controller-utils/tsconfig.build.json" + }, + { + "path": "../network-controller/tsconfig.build.json" + }, + { + "path": "../polling-controller/tsconfig.build.json" + }, + { + "path": "../transaction-controller/tsconfig.build.json" + } ], "include": ["../../types", "./src"], "exclude": ["**/*.test.ts", "**/__fixtures__/"] diff --git a/packages/assets-controller/tsconfig.json b/packages/assets-controller/tsconfig.json index aa015e27290..fe3a161a1cd 100644 --- a/packages/assets-controller/tsconfig.json +++ b/packages/assets-controller/tsconfig.json @@ -4,16 +4,54 @@ "baseUrl": "./" }, "references": [ - { "path": "../account-tree-controller" }, - { "path": "../assets-controllers" }, - { "path": "../base-controller" }, - { "path": "../client-controller" }, - { "path": "../core-backend" }, - { "path": "../keyring-controller" }, - { "path": "../messenger" }, - { "path": "../network-enablement-controller" }, - { "path": "../phishing-controller" }, - { "path": "../preferences-controller" } + { + "path": "../account-tree-controller" + }, + { + "path": "../assets-controllers" + }, + { + "path": "../base-controller" + }, + { + "path": "../client-controller" + }, + { + "path": "../core-backend" + }, + { + "path": "../keyring-controller" + }, + { + "path": "../messenger" + }, + { + "path": "../network-enablement-controller" + }, + { + "path": "../phishing-controller" + }, + { + "path": "../preferences-controller" + }, + { + "path": "../accounts-controller" + }, + { + "path": "../controller-utils" + }, + { + "path": "../network-controller" + }, + { + "path": "../permission-controller" + }, + { + "path": "../polling-controller" + }, + { + "path": "../transaction-controller" + } ], "include": ["../../types", "./src"] } diff --git a/packages/assets-controllers/package.json b/packages/assets-controllers/package.json index 7a2c99c6eae..6955d0e6443 100644 --- a/packages/assets-controllers/package.json +++ b/packages/assets-controllers/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/assets-controllers", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/assets-controllers", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/assets-controllers/tsconfig.build.json b/packages/assets-controllers/tsconfig.build.json index 5e4141f1bd2..f440265759a 100644 --- a/packages/assets-controllers/tsconfig.build.json +++ b/packages/assets-controllers/tsconfig.build.json @@ -6,22 +6,60 @@ "rootDir": "./src" }, "references": [ - { "path": "../account-tree-controller/tsconfig.build.json" }, - { "path": "../accounts-controller/tsconfig.build.json" }, - { "path": "../approval-controller/tsconfig.build.json" }, - { "path": "../core-backend/tsconfig.build.json" }, - { "path": "../base-controller/tsconfig.build.json" }, - { "path": "../controller-utils/tsconfig.build.json" }, - { "path": "../keyring-controller/tsconfig.build.json" }, - { "path": "../network-controller/tsconfig.build.json" }, - { "path": "../network-enablement-controller/tsconfig.build.json" }, - { "path": "../messenger/tsconfig.build.json" }, - { "path": "../preferences-controller/tsconfig.build.json" }, - { "path": "../polling-controller/tsconfig.build.json" }, - { "path": "../permission-controller/tsconfig.build.json" }, - { "path": "../storage-service/tsconfig.build.json" }, - { "path": "../transaction-controller/tsconfig.build.json" }, - { "path": "../phishing-controller/tsconfig.build.json" } + { + "path": "../account-tree-controller/tsconfig.build.json" + }, + { + "path": "../accounts-controller/tsconfig.build.json" + }, + { + "path": "../approval-controller/tsconfig.build.json" + }, + { + "path": "../core-backend/tsconfig.build.json" + }, + { + "path": "../base-controller/tsconfig.build.json" + }, + { + "path": "../controller-utils/tsconfig.build.json" + }, + { + "path": "../keyring-controller/tsconfig.build.json" + }, + { + "path": "../network-controller/tsconfig.build.json" + }, + { + "path": "../network-enablement-controller/tsconfig.build.json" + }, + { + "path": "../messenger/tsconfig.build.json" + }, + { + "path": "../preferences-controller/tsconfig.build.json" + }, + { + "path": "../polling-controller/tsconfig.build.json" + }, + { + "path": "../permission-controller/tsconfig.build.json" + }, + { + "path": "../storage-service/tsconfig.build.json" + }, + { + "path": "../transaction-controller/tsconfig.build.json" + }, + { + "path": "../phishing-controller/tsconfig.build.json" + }, + { + "path": "../multichain-account-service/tsconfig.build.json" + }, + { + "path": "../profile-sync-controller/tsconfig.build.json" + } ], "include": ["../../types", "./src"], "exclude": ["**/*.test.ts", "**/__fixtures__/"] diff --git a/packages/assets-controllers/tsconfig.json b/packages/assets-controllers/tsconfig.json index 77cbe221742..695e5d7c051 100644 --- a/packages/assets-controllers/tsconfig.json +++ b/packages/assets-controllers/tsconfig.json @@ -5,22 +5,60 @@ "rootDir": "../.." }, "references": [ - { "path": "../account-tree-controller" }, - { "path": "../accounts-controller" }, - { "path": "../approval-controller" }, - { "path": "../core-backend" }, - { "path": "../base-controller" }, - { "path": "../controller-utils" }, - { "path": "../keyring-controller" }, - { "path": "../network-controller" }, - { "path": "../network-enablement-controller" }, - { "path": "../messenger" }, - { "path": "../preferences-controller" }, - { "path": "../phishing-controller" }, - { "path": "../polling-controller" }, - { "path": "../permission-controller" }, - { "path": "../storage-service" }, - { "path": "../transaction-controller" } + { + "path": "../account-tree-controller" + }, + { + "path": "../accounts-controller" + }, + { + "path": "../approval-controller" + }, + { + "path": "../core-backend" + }, + { + "path": "../base-controller" + }, + { + "path": "../controller-utils" + }, + { + "path": "../keyring-controller" + }, + { + "path": "../network-controller" + }, + { + "path": "../network-enablement-controller" + }, + { + "path": "../messenger" + }, + { + "path": "../preferences-controller" + }, + { + "path": "../phishing-controller" + }, + { + "path": "../polling-controller" + }, + { + "path": "../permission-controller" + }, + { + "path": "../storage-service" + }, + { + "path": "../transaction-controller" + }, + { + "path": "../multichain-account-service" + }, + { + "path": "../profile-sync-controller" + } ], "include": ["../../types", "./src", "../../tests"] } diff --git a/packages/authenticated-user-storage/package.json b/packages/authenticated-user-storage/package.json index 4f23c166502..fc9c807784f 100644 --- a/packages/authenticated-user-storage/package.json +++ b/packages/authenticated-user-storage/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/authenticated-user-storage", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/authenticated-user-storage", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/base-controller/package.json b/packages/base-controller/package.json index 97d143c7ab1..893d91876af 100644 --- a/packages/base-controller/package.json +++ b/packages/base-controller/package.json @@ -43,6 +43,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/base-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/base-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "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 +63,7 @@ "deepmerge": "^4.2.2", "jest": "^29.7.0", "ts-jest": "^29.2.5", + "tsx": "^4.20.5", "typedoc": "^0.25.13", "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" diff --git a/packages/base-controller/tsconfig.build.json b/packages/base-controller/tsconfig.build.json index b85456f63fc..6b68c1d0498 100644 --- a/packages/base-controller/tsconfig.build.json +++ b/packages/base-controller/tsconfig.build.json @@ -6,9 +6,6 @@ "rootDir": "./src" }, "references": [ - { - "path": "../controller-utils/tsconfig.build.json" - }, { "path": "../messenger/tsconfig.build.json" } diff --git a/packages/base-controller/tsconfig.json b/packages/base-controller/tsconfig.json index 2943ce27af0..fb6c16010d4 100644 --- a/packages/base-controller/tsconfig.json +++ b/packages/base-controller/tsconfig.json @@ -4,12 +4,6 @@ "baseUrl": "./" }, "references": [ - { - "path": "../controller-utils" - }, - { - "path": "../json-rpc-engine" - }, { "path": "../messenger" } diff --git a/packages/base-data-service/package.json b/packages/base-data-service/package.json index 4fb523fa973..7b267f88d5c 100644 --- a/packages/base-data-service/package.json +++ b/packages/base-data-service/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/base-data-service", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/base-data-service", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "publish:preview": "yarn npm publish --tag preview", diff --git a/packages/base-data-service/tsconfig.build.json b/packages/base-data-service/tsconfig.build.json index f83c71b4af8..6b68c1d0498 100644 --- a/packages/base-data-service/tsconfig.build.json +++ b/packages/base-data-service/tsconfig.build.json @@ -6,8 +6,9 @@ "rootDir": "./src" }, "references": [ - { "path": "../messenger/tsconfig.build.json" }, - { "path": "../controller-utils/tsconfig.build.json" } + { + "path": "../messenger/tsconfig.build.json" + } ], "include": ["../../types", "./src"] } diff --git a/packages/base-data-service/tsconfig.json b/packages/base-data-service/tsconfig.json index 3dbaffd259b..fb6c16010d4 100644 --- a/packages/base-data-service/tsconfig.json +++ b/packages/base-data-service/tsconfig.json @@ -3,6 +3,10 @@ "compilerOptions": { "baseUrl": "./" }, - "references": [{ "path": "../messenger" }, { "path": "../controller-utils" }], + "references": [ + { + "path": "../messenger" + } + ], "include": ["../../types", "./src", "./tests"] } diff --git a/packages/bitcoin-regtest-up/package.json b/packages/bitcoin-regtest-up/package.json index b6b855bc5af..c1eccf9edda 100644 --- a/packages/bitcoin-regtest-up/package.json +++ b/packages/bitcoin-regtest-up/package.json @@ -45,6 +45,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/bitcoin-regtest-up", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/bitcoin-regtest-up", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/bitcoin-regtest-up/tsconfig.json b/packages/bitcoin-regtest-up/tsconfig.json index fa42df6a10d..437bfaf93ab 100644 --- a/packages/bitcoin-regtest-up/tsconfig.json +++ b/packages/bitcoin-regtest-up/tsconfig.json @@ -3,6 +3,10 @@ "compilerOptions": { "baseUrl": "./" }, - "references": [{ "path": "../local-node-utils/tsconfig.json" }], + "references": [ + { + "path": "../local-node-utils" + } + ], "include": ["../../types", "./src"] } diff --git a/packages/bridge-controller/package.json b/packages/bridge-controller/package.json index 001297a1722..8fa03867dd1 100644 --- a/packages/bridge-controller/package.json +++ b/packages/bridge-controller/package.json @@ -45,6 +45,8 @@ "changelog:update": "../../scripts/update-changelog.sh @metamask/bridge-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/bridge-controller", "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "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/bridge-controller/tsconfig.build.json b/packages/bridge-controller/tsconfig.build.json index a8f7180477a..b235a6002c1 100644 --- a/packages/bridge-controller/tsconfig.build.json +++ b/packages/bridge-controller/tsconfig.build.json @@ -6,17 +6,48 @@ "rootDir": "./src" }, "references": [ - { "path": "../accounts-controller/tsconfig.build.json" }, - { "path": "../base-controller/tsconfig.build.json" }, - { "path": "../controller-utils/tsconfig.build.json" }, - { "path": "../network-controller/tsconfig.build.json" }, - { "path": "../polling-controller/tsconfig.build.json" }, - { "path": "../gas-fee-controller/tsconfig.build.json" }, - { "path": "../assets-controllers/tsconfig.build.json" }, - { "path": "../transaction-controller/tsconfig.build.json" }, - { "path": "../multichain-network-controller/tsconfig.build.json" }, - { "path": "../remote-feature-flag-controller/tsconfig.build.json" }, - { "path": "../assets-controller/tsconfig.build.json" } + { + "path": "../accounts-controller/tsconfig.build.json" + }, + { + "path": "../base-controller/tsconfig.build.json" + }, + { + "path": "../controller-utils/tsconfig.build.json" + }, + { + "path": "../network-controller/tsconfig.build.json" + }, + { + "path": "../polling-controller/tsconfig.build.json" + }, + { + "path": "../gas-fee-controller/tsconfig.build.json" + }, + { + "path": "../assets-controllers/tsconfig.build.json" + }, + { + "path": "../transaction-controller/tsconfig.build.json" + }, + { + "path": "../multichain-network-controller/tsconfig.build.json" + }, + { + "path": "../remote-feature-flag-controller/tsconfig.build.json" + }, + { + "path": "../assets-controller/tsconfig.build.json" + }, + { + "path": "../eth-json-rpc-provider/tsconfig.build.json" + }, + { + "path": "../messenger/tsconfig.build.json" + }, + { + "path": "../profile-sync-controller/tsconfig.build.json" + } ], "include": ["../../types", "./src"] } diff --git a/packages/bridge-controller/tsconfig.json b/packages/bridge-controller/tsconfig.json index fd36e969bd5..906b224a0d0 100644 --- a/packages/bridge-controller/tsconfig.json +++ b/packages/bridge-controller/tsconfig.json @@ -5,18 +5,48 @@ "resolveJsonModule": true }, "references": [ - { "path": "../accounts-controller" }, - { "path": "../base-controller" }, - { "path": "../controller-utils" }, - { "path": "../network-controller" }, - { "path": "../polling-controller" }, - { "path": "../transaction-controller" }, - { "path": "../gas-fee-controller" }, - { "path": "../assets-controllers" }, - { "path": "../multichain-network-controller" }, - { "path": "../profile-sync-controller" }, - { "path": "../remote-feature-flag-controller" }, - { "path": "../assets-controller" } + { + "path": "../accounts-controller" + }, + { + "path": "../base-controller" + }, + { + "path": "../controller-utils" + }, + { + "path": "../network-controller" + }, + { + "path": "../polling-controller" + }, + { + "path": "../transaction-controller" + }, + { + "path": "../gas-fee-controller" + }, + { + "path": "../assets-controllers" + }, + { + "path": "../multichain-network-controller" + }, + { + "path": "../profile-sync-controller" + }, + { + "path": "../remote-feature-flag-controller" + }, + { + "path": "../assets-controller" + }, + { + "path": "../eth-json-rpc-provider" + }, + { + "path": "../messenger" + } ], "include": ["../../types", "./src", "./tests"] } diff --git a/packages/bridge-status-controller/package.json b/packages/bridge-status-controller/package.json index e89b06d363e..a03a5fb3078 100644 --- a/packages/bridge-status-controller/package.json +++ b/packages/bridge-status-controller/package.json @@ -45,6 +45,8 @@ "changelog:update": "../../scripts/update-changelog.sh @metamask/bridge-status-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/bridge-status-controller", "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "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/bridge-status-controller/tsconfig.build.json b/packages/bridge-status-controller/tsconfig.build.json index 9de61597bcd..ab2a3480ee6 100644 --- a/packages/bridge-status-controller/tsconfig.build.json +++ b/packages/bridge-status-controller/tsconfig.build.json @@ -6,15 +6,39 @@ "rootDir": "./src" }, "references": [ - { "path": "../accounts-controller/tsconfig.build.json" }, - { "path": "../base-controller/tsconfig.build.json" }, - { "path": "../bridge-controller/tsconfig.build.json" }, - { "path": "../controller-utils/tsconfig.build.json" }, - { "path": "../messenger/tsconfig.build.json" }, - { "path": "../network-controller/tsconfig.build.json" }, - { "path": "../gas-fee-controller/tsconfig.build.json" }, - { "path": "../polling-controller/tsconfig.build.json" }, - { "path": "../transaction-controller/tsconfig.build.json" } + { + "path": "../accounts-controller/tsconfig.build.json" + }, + { + "path": "../base-controller/tsconfig.build.json" + }, + { + "path": "../bridge-controller/tsconfig.build.json" + }, + { + "path": "../controller-utils/tsconfig.build.json" + }, + { + "path": "../messenger/tsconfig.build.json" + }, + { + "path": "../network-controller/tsconfig.build.json" + }, + { + "path": "../gas-fee-controller/tsconfig.build.json" + }, + { + "path": "../polling-controller/tsconfig.build.json" + }, + { + "path": "../transaction-controller/tsconfig.build.json" + }, + { + "path": "../keyring-controller/tsconfig.build.json" + }, + { + "path": "../profile-sync-controller/tsconfig.build.json" + } ], "include": ["../../types", "./src"] } diff --git a/packages/bridge-status-controller/tsconfig.json b/packages/bridge-status-controller/tsconfig.json index a7273156acb..eb76ca03cd4 100644 --- a/packages/bridge-status-controller/tsconfig.json +++ b/packages/bridge-status-controller/tsconfig.json @@ -5,16 +5,39 @@ "resolveJsonModule": true }, "references": [ - { "path": "../accounts-controller" }, - { "path": "../base-controller" }, - { "path": "../bridge-controller" }, - { "path": "../controller-utils" }, - { "path": "../messenger" }, - { "path": "../network-controller" }, - { "path": "../polling-controller" }, - { "path": "../transaction-controller" }, - { "path": "../profile-sync-controller" }, - { "path": "../gas-fee-controller" } + { + "path": "../accounts-controller" + }, + { + "path": "../base-controller" + }, + { + "path": "../bridge-controller" + }, + { + "path": "../controller-utils" + }, + { + "path": "../messenger" + }, + { + "path": "../network-controller" + }, + { + "path": "../polling-controller" + }, + { + "path": "../transaction-controller" + }, + { + "path": "../profile-sync-controller" + }, + { + "path": "../gas-fee-controller" + }, + { + "path": "../keyring-controller" + } ], "include": ["../../types", "./src", "./test"] } diff --git a/packages/build-utils/package.json b/packages/build-utils/package.json index 6b04fb44c95..5605ea64ff9 100644 --- a/packages/build-utils/package.json +++ b/packages/build-utils/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/build-utils", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/build-utils", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "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 +63,7 @@ "deepmerge": "^4.2.2", "jest": "^29.7.0", "ts-jest": "^29.2.5", + "tsx": "^4.20.5", "typedoc": "^0.25.13", "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" diff --git a/packages/chain-agnostic-permission/package.json b/packages/chain-agnostic-permission/package.json index 1880a22d710..128fa289df5 100644 --- a/packages/chain-agnostic-permission/package.json +++ b/packages/chain-agnostic-permission/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/chain-agnostic-permission", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/chain-agnostic-permission", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "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 +68,7 @@ "deepmerge": "^4.2.2", "jest": "^29.7.0", "ts-jest": "^29.2.5", + "tsx": "^4.20.5", "typedoc": "^0.25.13", "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" diff --git a/packages/chain-agnostic-permission/tsconfig.build.json b/packages/chain-agnostic-permission/tsconfig.build.json index a84422eeeb0..1a85d24557d 100644 --- a/packages/chain-agnostic-permission/tsconfig.build.json +++ b/packages/chain-agnostic-permission/tsconfig.build.json @@ -7,9 +7,12 @@ "rootDir": "./src" }, "references": [ - { "path": "../controller-utils/tsconfig.build.json" }, - { "path": "../network-controller/tsconfig.build.json" }, - { "path": "../permission-controller/tsconfig.build.json" } + { + "path": "../controller-utils/tsconfig.build.json" + }, + { + "path": "../permission-controller/tsconfig.build.json" + } ], "include": ["../../types", "./src"] } diff --git a/packages/chain-agnostic-permission/tsconfig.json b/packages/chain-agnostic-permission/tsconfig.json index fff7aab9eab..9474a899b23 100644 --- a/packages/chain-agnostic-permission/tsconfig.json +++ b/packages/chain-agnostic-permission/tsconfig.json @@ -6,9 +6,12 @@ "rootDir": "../.." }, "references": [ - { "path": "../controller-utils" }, - { "path": "../network-controller" }, - { "path": "../permission-controller" } + { + "path": "../controller-utils" + }, + { + "path": "../permission-controller" + } ], "include": ["../../types", "./src"] } diff --git a/packages/chomp-api-service/package.json b/packages/chomp-api-service/package.json index 6d699de3069..4afedf4c3ec 100644 --- a/packages/chomp-api-service/package.json +++ b/packages/chomp-api-service/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/chomp-api-service", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/chomp-api-service", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "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 +68,7 @@ "jest": "^29.7.0", "nock": "^13.3.1", "ts-jest": "^29.2.5", + "tsx": "^4.20.5", "typedoc": "^0.25.13", "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" diff --git a/packages/claims-controller/package.json b/packages/claims-controller/package.json index c7c1ee696bb..da66b67581f 100644 --- a/packages/claims-controller/package.json +++ b/packages/claims-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/claims-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/claims-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/claims-controller/tsconfig.build.json b/packages/claims-controller/tsconfig.build.json index e144a55d21a..4a9745aeb55 100644 --- a/packages/claims-controller/tsconfig.build.json +++ b/packages/claims-controller/tsconfig.build.json @@ -17,6 +17,9 @@ }, { "path": "../keyring-controller/tsconfig.build.json" + }, + { + "path": "../controller-utils/tsconfig.build.json" } ], "include": ["../../types", "./src"] diff --git a/packages/claims-controller/tsconfig.json b/packages/claims-controller/tsconfig.json index cf63460ba63..ee69ba51f8c 100644 --- a/packages/claims-controller/tsconfig.json +++ b/packages/claims-controller/tsconfig.json @@ -5,16 +5,19 @@ }, "references": [ { - "path": "../base-controller/tsconfig.json" + "path": "../base-controller" }, { - "path": "../messenger/tsconfig.json" + "path": "../messenger" }, { - "path": "../profile-sync-controller/tsconfig.json" + "path": "../profile-sync-controller" }, { - "path": "../keyring-controller/tsconfig.json" + "path": "../keyring-controller" + }, + { + "path": "../controller-utils" } ], "include": ["../../types", "./src", "./tests"] diff --git a/packages/client-controller/package.json b/packages/client-controller/package.json index cf3ecc3534c..bcc3a17216e 100644 --- a/packages/client-controller/package.json +++ b/packages/client-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/client-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/client-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/client-controller/tsconfig.json b/packages/client-controller/tsconfig.json index 3184a4bfde9..95274927209 100644 --- a/packages/client-controller/tsconfig.json +++ b/packages/client-controller/tsconfig.json @@ -1,5 +1,15 @@ { "extends": "../../tsconfig.packages.json", - "compilerOptions": { "baseUrl": "." }, - "include": ["src"] + "compilerOptions": { + "baseUrl": "." + }, + "include": ["src"], + "references": [ + { + "path": "../base-controller" + }, + { + "path": "../messenger" + } + ] } diff --git a/packages/client-utils/package.json b/packages/client-utils/package.json index bc5885f652d..79fa0df8c01 100644 --- a/packages/client-utils/package.json +++ b/packages/client-utils/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/client-utils", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/client-utils", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/compliance-controller/package.json b/packages/compliance-controller/package.json index 40d1052cd9d..87c6b11b9d8 100644 --- a/packages/compliance-controller/package.json +++ b/packages/compliance-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/compliance-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/compliance-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/composable-controller/package.json b/packages/composable-controller/package.json index 10b6d0c2a1a..fa3905baa68 100644 --- a/packages/composable-controller/package.json +++ b/packages/composable-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/composable-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/composable-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "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 +65,7 @@ "immer": "^9.0.6", "jest": "^29.7.0", "ts-jest": "^29.2.5", + "tsx": "^4.20.5", "typedoc": "^0.25.13", "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" diff --git a/packages/composable-controller/tsconfig.build.json b/packages/composable-controller/tsconfig.build.json index 249f327913d..a736c8ceb17 100644 --- a/packages/composable-controller/tsconfig.build.json +++ b/packages/composable-controller/tsconfig.build.json @@ -11,6 +11,9 @@ }, { "path": "../messenger/tsconfig.build.json" + }, + { + "path": "../json-rpc-engine/tsconfig.build.json" } ], "include": ["../../types", "./src"] diff --git a/packages/config-registry-controller/package.json b/packages/config-registry-controller/package.json index 81188c8cfd3..89307ef1e7e 100644 --- a/packages/config-registry-controller/package.json +++ b/packages/config-registry-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/config-registry-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/config-registry-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "publish:preview": "yarn npm publish --tag preview", diff --git a/packages/connectivity-controller/package.json b/packages/connectivity-controller/package.json index 95c00fbfd60..5dfa11cccd4 100644 --- a/packages/connectivity-controller/package.json +++ b/packages/connectivity-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/connectivity-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/connectivity-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/controller-utils/package.json b/packages/controller-utils/package.json index a460f719271..d546b4d7f31 100644 --- a/packages/controller-utils/package.json +++ b/packages/controller-utils/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/controller-utils", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/controller-utils", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "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", @@ -75,6 +77,7 @@ "jest-environment-jsdom": "^29.7.0", "nock": "^13.3.1", "ts-jest": "^29.2.5", + "tsx": "^4.20.5", "typedoc": "^0.25.13", "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" diff --git a/packages/core-backend/package.json b/packages/core-backend/package.json index 5b460a79033..bf67ebe10be 100644 --- a/packages/core-backend/package.json +++ b/packages/core-backend/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/core-backend", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/core-backend", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/delegation-controller/package.json b/packages/delegation-controller/package.json index 6ee4714c2e5..0c3ae308cc1 100644 --- a/packages/delegation-controller/package.json +++ b/packages/delegation-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/delegation-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/delegation-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/earn-controller/package.json b/packages/earn-controller/package.json index d62758421bd..a3f3b05367f 100644 --- a/packages/earn-controller/package.json +++ b/packages/earn-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/earn-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/earn-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/earn-controller/tsconfig.build.json b/packages/earn-controller/tsconfig.build.json index fe81e33f321..58480d51681 100644 --- a/packages/earn-controller/tsconfig.build.json +++ b/packages/earn-controller/tsconfig.build.json @@ -20,6 +20,9 @@ }, { "path": "../messenger/tsconfig.build.json" + }, + { + "path": "../controller-utils/tsconfig.build.json" } ], "include": ["../../types", "./src"] diff --git a/packages/earn-controller/tsconfig.json b/packages/earn-controller/tsconfig.json index 8bcc4e52ff3..e4251e06f59 100644 --- a/packages/earn-controller/tsconfig.json +++ b/packages/earn-controller/tsconfig.json @@ -19,6 +19,9 @@ }, { "path": "../messenger" + }, + { + "path": "../controller-utils" } ] } diff --git a/packages/eip-5792-middleware/CHANGELOG.md b/packages/eip-5792-middleware/CHANGELOG.md index 65c40281a32..cda17d9a28d 100644 --- a/packages/eip-5792-middleware/CHANGELOG.md +++ b/packages/eip-5792-middleware/CHANGELOG.md @@ -14,6 +14,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Bump `@metamask/utils` from `^11.9.0` to `^11.11.0` ([#9074](https://github.com/MetaMask/core/pull/9074)) - Bump `@metamask/transaction-controller` from `^65.4.0` to `^69.0.0` ([#8848](https://github.com/MetaMask/core/pull/8848), [#8999](https://github.com/MetaMask/core/pull/8999), [#9021](https://github.com/MetaMask/core/pull/9021), [#9027](https://github.com/MetaMask/core/pull/9027), [#9066](https://github.com/MetaMask/core/pull/9066), [#9089](https://github.com/MetaMask/core/pull/9089), [#9177](https://github.com/MetaMask/core/pull/9177), [#9203](https://github.com/MetaMask/core/pull/9203), [#9218](https://github.com/MetaMask/core/pull/9218), [#9253](https://github.com/MetaMask/core/pull/9253), [#9337](https://github.com/MetaMask/core/pull/9337), [#9349](https://github.com/MetaMask/core/pull/9349), [#9421](https://github.com/MetaMask/core/pull/9421), [#9456](https://github.com/MetaMask/core/pull/9456), [#9470](https://github.com/MetaMask/core/pull/9470)) - Bump `@metamask/messenger` from `^1.2.0` to `^2.0.0` ([#9392](https://github.com/MetaMask/core/pull/9392)) +- Add missing dependency `@metamask/preferences-controller` (`^23.1.0`) ([#8384](https://github.com/MetaMask/core/pull/8384)) + - This is technically not needed, but it is still referenced in the `EIP5792Messenger` messenger type ## [3.0.4] diff --git a/packages/eip-5792-middleware/package.json b/packages/eip-5792-middleware/package.json index 1090370d2d7..432de33b25f 100644 --- a/packages/eip-5792-middleware/package.json +++ b/packages/eip-5792-middleware/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/eip-5792-middleware", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/eip-5792-middleware", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "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", @@ -52,6 +54,7 @@ }, "dependencies": { "@metamask/messenger": "^2.0.0", + "@metamask/preferences-controller": "^23.1.0", "@metamask/superstruct": "^3.1.0", "@metamask/transaction-controller": "^69.0.0", "@metamask/utils": "^11.11.0", @@ -68,6 +71,7 @@ "jest": "^29.7.0", "klona": "^2.0.6", "ts-jest": "^29.2.5", + "tsx": "^4.20.5", "typedoc": "^0.25.13", "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" diff --git a/packages/eip-5792-middleware/tsconfig.build.json b/packages/eip-5792-middleware/tsconfig.build.json index b78226eb4c0..ed2fd35e353 100644 --- a/packages/eip-5792-middleware/tsconfig.build.json +++ b/packages/eip-5792-middleware/tsconfig.build.json @@ -6,12 +6,18 @@ "rootDir": "./src" }, "references": [ - { "path": "../network-controller/tsconfig.build.json" }, - { "path": "../transaction-controller/tsconfig.build.json" }, - { "path": "../messenger/tsconfig.build.json" }, - { "path": "../accounts-controller/tsconfig.build.json" }, - { "path": "../preferences-controller/tsconfig.build.json" }, - { "path": "../keyring-controller/tsconfig.build.json" } + { + "path": "../transaction-controller/tsconfig.build.json" + }, + { + "path": "../messenger/tsconfig.build.json" + }, + { + "path": "../preferences-controller/tsconfig.build.json" + }, + { + "path": "../keyring-controller/tsconfig.build.json" + } ], "include": ["../../types", "./src"] } diff --git a/packages/eip-5792-middleware/tsconfig.json b/packages/eip-5792-middleware/tsconfig.json index e859aa4ae62..f1cf7d31477 100644 --- a/packages/eip-5792-middleware/tsconfig.json +++ b/packages/eip-5792-middleware/tsconfig.json @@ -5,12 +5,18 @@ "rootDir": "../.." }, "references": [ - { "path": "../network-controller" }, - { "path": "../transaction-controller" }, - { "path": "../messenger" }, - { "path": "../accounts-controller" }, - { "path": "../preferences-controller" }, - { "path": "../keyring-controller" } + { + "path": "../transaction-controller" + }, + { + "path": "../messenger" + }, + { + "path": "../preferences-controller" + }, + { + "path": "../keyring-controller" + } ], "include": ["../../types", "./src"] } diff --git a/packages/eip-7702-internal-rpc-middleware/package.json b/packages/eip-7702-internal-rpc-middleware/package.json index c1443f06a9c..c647733901c 100644 --- a/packages/eip-7702-internal-rpc-middleware/package.json +++ b/packages/eip-7702-internal-rpc-middleware/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/eip-7702-internal-rpc-middleware", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/eip-7702-internal-rpc-middleware", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "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 +65,7 @@ "deepmerge": "^4.2.2", "jest": "^29.7.0", "ts-jest": "^29.2.5", + "tsx": "^4.20.5", "typedoc": "^0.25.13", "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" diff --git a/packages/eip-7702-internal-rpc-middleware/tsconfig.build.json b/packages/eip-7702-internal-rpc-middleware/tsconfig.build.json index 2276f062a38..1d66e6732a3 100644 --- a/packages/eip-7702-internal-rpc-middleware/tsconfig.build.json +++ b/packages/eip-7702-internal-rpc-middleware/tsconfig.build.json @@ -6,12 +6,9 @@ "rootDir": "./src" }, "references": [ - { "path": "../network-controller/tsconfig.build.json" }, - { "path": "../transaction-controller/tsconfig.build.json" }, - { "path": "../base-controller/tsconfig.build.json" }, - { "path": "../accounts-controller/tsconfig.build.json" }, - { "path": "../preferences-controller/tsconfig.build.json" }, - { "path": "../keyring-controller/tsconfig.build.json" } + { + "path": "../controller-utils/tsconfig.build.json" + } ], "include": ["../../types", "./src"] } diff --git a/packages/eip-7702-internal-rpc-middleware/tsconfig.json b/packages/eip-7702-internal-rpc-middleware/tsconfig.json index bf46cb203e4..1479cde2c8f 100644 --- a/packages/eip-7702-internal-rpc-middleware/tsconfig.json +++ b/packages/eip-7702-internal-rpc-middleware/tsconfig.json @@ -4,6 +4,10 @@ "baseUrl": "./", "rootDir": "../.." }, - "references": [], + "references": [ + { + "path": "../controller-utils" + } + ], "include": ["../../types", "./src"] } diff --git a/packages/eip1193-permission-middleware/package.json b/packages/eip1193-permission-middleware/package.json index 9ce90b9cf6a..038ecd9d3ca 100644 --- a/packages/eip1193-permission-middleware/package.json +++ b/packages/eip1193-permission-middleware/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/eip1193-permission-middleware", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/eip1193-permission-middleware", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "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 +68,7 @@ "deepmerge": "^4.2.2", "jest": "^29.7.0", "ts-jest": "^29.2.5", + "tsx": "^4.20.5", "typedoc": "^0.25.13", "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" diff --git a/packages/ens-controller/package.json b/packages/ens-controller/package.json index a4d51a43bd1..01c4be8de6b 100644 --- a/packages/ens-controller/package.json +++ b/packages/ens-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/ens-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/ens-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/eth-block-tracker/package.json b/packages/eth-block-tracker/package.json index fbb28c95e51..dfbfdef4f11 100644 --- a/packages/eth-block-tracker/package.json +++ b/packages/eth-block-tracker/package.json @@ -46,6 +46,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/eth-block-tracker", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/eth-block-tracker", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "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", @@ -67,6 +69,7 @@ "deepmerge": "^4.2.2", "jest": "^29.7.0", "ts-jest": "^29.2.5", + "tsx": "^4.20.5", "typedoc": "^0.25.13", "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" diff --git a/packages/eth-json-rpc-middleware/package.json b/packages/eth-json-rpc-middleware/package.json index 1ecd7f4c0ed..5aa08a34e76 100644 --- a/packages/eth-json-rpc-middleware/package.json +++ b/packages/eth-json-rpc-middleware/package.json @@ -45,6 +45,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/eth-json-rpc-middleware --tag-prefix-before-package-rename eth-json-rpc-middleware@ --version-before-package-rename 6.1.0", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/eth-json-rpc-middleware --tag-prefix-before-package-rename eth-json-rpc-middleware@ --version-before-package-rename 6.1.0", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "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 +73,7 @@ "deep-freeze-strict": "^1.1.1", "deepmerge": "^4.2.2", "jest": "^29.7.0", + "tsx": "^4.20.5", "typedoc": "^0.25.13", "typescript": "~5.3.3" }, diff --git a/packages/eth-json-rpc-middleware/tsconfig.json b/packages/eth-json-rpc-middleware/tsconfig.json index 63dacbec477..b77e42e3a7c 100644 --- a/packages/eth-json-rpc-middleware/tsconfig.json +++ b/packages/eth-json-rpc-middleware/tsconfig.json @@ -13,9 +13,6 @@ { "path": "../json-rpc-engine" }, - { - "path": "../network-controller" - }, { "path": "../message-manager" } diff --git a/packages/eth-json-rpc-provider/package.json b/packages/eth-json-rpc-provider/package.json index 1475d3b473b..083e86c1c1b 100644 --- a/packages/eth-json-rpc-provider/package.json +++ b/packages/eth-json-rpc-provider/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/eth-json-rpc-provider", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/eth-json-rpc-provider", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "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", @@ -67,6 +69,7 @@ "ethers": "^6.12.0", "jest": "^29.7.0", "ts-jest": "^29.2.5", + "tsx": "^4.20.5", "typedoc": "^0.25.13", "typescript": "~5.3.3" }, diff --git a/packages/foundryup/package.json b/packages/foundryup/package.json index 19bbdf0f174..a98dd595608 100644 --- a/packages/foundryup/package.json +++ b/packages/foundryup/package.json @@ -38,6 +38,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/foundryup", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/foundryup", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "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 +64,7 @@ "jest": "^29.7.0", "nock": "^13.3.1", "ts-jest": "^29.2.5", + "tsx": "^4.20.5", "typedoc": "^0.25.13", "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3", diff --git a/packages/gas-fee-controller/package.json b/packages/gas-fee-controller/package.json index 03d53482e14..445001368fb 100644 --- a/packages/gas-fee-controller/package.json +++ b/packages/gas-fee-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/gas-fee-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/gas-fee-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/gator-permissions-controller/package.json b/packages/gator-permissions-controller/package.json index aea97161306..7e103f4a601 100644 --- a/packages/gator-permissions-controller/package.json +++ b/packages/gator-permissions-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/gator-permissions-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/gator-permissions-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/gator-permissions-controller/tsconfig.build.json b/packages/gator-permissions-controller/tsconfig.build.json index 3ed87eae95d..13c25a0c6d0 100644 --- a/packages/gator-permissions-controller/tsconfig.build.json +++ b/packages/gator-permissions-controller/tsconfig.build.json @@ -6,9 +6,18 @@ "rootDir": "./src" }, "references": [ - { "path": "../base-controller/tsconfig.build.json" }, - { "path": "../messenger/tsconfig.build.json" }, - { "path": "../transaction-controller/tsconfig.build.json" } + { + "path": "../base-controller/tsconfig.build.json" + }, + { + "path": "../messenger/tsconfig.build.json" + }, + { + "path": "../transaction-controller/tsconfig.build.json" + }, + { + "path": "../network-controller/tsconfig.build.json" + } ], "include": ["../../types", "./src"] } diff --git a/packages/gator-permissions-controller/tsconfig.json b/packages/gator-permissions-controller/tsconfig.json index bafe8342be9..4d99c06dd95 100644 --- a/packages/gator-permissions-controller/tsconfig.json +++ b/packages/gator-permissions-controller/tsconfig.json @@ -4,9 +4,18 @@ "baseUrl": "./" }, "references": [ - { "path": "../base-controller" }, - { "path": "../messenger" }, - { "path": "../transaction-controller" } + { + "path": "../base-controller" + }, + { + "path": "../messenger" + }, + { + "path": "../transaction-controller" + }, + { + "path": "../network-controller" + } ], "include": ["../../types", "./src", "./tests"] } diff --git a/packages/geolocation-controller/package.json b/packages/geolocation-controller/package.json index 762ee70ad27..1b72385c07c 100644 --- a/packages/geolocation-controller/package.json +++ b/packages/geolocation-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/geolocation-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/geolocation-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/java-tron-up/package.json b/packages/java-tron-up/package.json index 80a28b2d86b..b3a065594b8 100644 --- a/packages/java-tron-up/package.json +++ b/packages/java-tron-up/package.json @@ -45,6 +45,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/java-tron-up", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/java-tron-up", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/java-tron-up/tsconfig.json b/packages/java-tron-up/tsconfig.json index fa42df6a10d..437bfaf93ab 100644 --- a/packages/java-tron-up/tsconfig.json +++ b/packages/java-tron-up/tsconfig.json @@ -3,6 +3,10 @@ "compilerOptions": { "baseUrl": "./" }, - "references": [{ "path": "../local-node-utils/tsconfig.json" }], + "references": [ + { + "path": "../local-node-utils" + } + ], "include": ["../../types", "./src"] } diff --git a/packages/json-rpc-engine/package.json b/packages/json-rpc-engine/package.json index 178c551a595..197afaafde6 100644 --- a/packages/json-rpc-engine/package.json +++ b/packages/json-rpc-engine/package.json @@ -58,6 +58,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/json-rpc-engine --tag-prefix-before-package-rename json-rpc-engine@ --version-before-package-rename 6.1.0", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/json-rpc-engine --tag-prefix-before-package-rename json-rpc-engine@ --version-before-package-rename 6.1.0", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "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", @@ -82,6 +84,7 @@ "deepmerge": "^4.2.2", "jest": "^29.7.0", "ts-jest": "^29.2.5", + "tsx": "^4.20.5", "typedoc": "^0.25.13", "typescript": "~5.3.3" }, diff --git a/packages/json-rpc-engine/tsconfig.json b/packages/json-rpc-engine/tsconfig.json index b6e79d715bd..7980c8c630a 100644 --- a/packages/json-rpc-engine/tsconfig.json +++ b/packages/json-rpc-engine/tsconfig.json @@ -11,7 +11,7 @@ }, "references": [ { - "path": "../messenger/tsconfig.json" + "path": "../messenger" } ], "include": ["../../types", "../../tests", "./src", "./tests"] diff --git a/packages/json-rpc-middleware-stream/package.json b/packages/json-rpc-middleware-stream/package.json index 18d4bc8c12a..aaf725ad7ac 100644 --- a/packages/json-rpc-middleware-stream/package.json +++ b/packages/json-rpc-middleware-stream/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/json-rpc-middleware-stream --tag-prefix-before-package-rename json-rpc-middleware-stream@ --version-before-package-rename 5.0.1", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/json-rpc-middleware-stream --tag-prefix-before-package-rename json-rpc-middleware-stream@ --version-before-package-rename 5.0.1", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "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 +67,7 @@ "extension-port-stream": "^3.0.0", "jest": "^29.7.0", "ts-jest": "^29.2.5", + "tsx": "^4.20.5", "typedoc": "^0.25.13", "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3", diff --git a/packages/keyring-controller/CHANGELOG.md b/packages/keyring-controller/CHANGELOG.md index 58bd9075d93..9b5335e43e6 100644 --- a/packages/keyring-controller/CHANGELOG.md +++ b/packages/keyring-controller/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Bump `@metamask/keyring-api` from `^23.1.0` to `^23.5.0` ([#9249](https://github.com/MetaMask/core/pull/9249), [#9390](https://github.com/MetaMask/core/pull/9390)) - Bump `@metamask/messenger` from `^1.2.0` to `^2.0.0` ([#9392](https://github.com/MetaMask/core/pull/9392)) +- Add missing dependency `@metamask/controller-utils` (`^12.3.0`) ([#8384](https://github.com/MetaMask/core/pull/8384)) ## [27.1.0] diff --git a/packages/keyring-controller/package.json b/packages/keyring-controller/package.json index 0242aa6735b..a3cb2361892 100644 --- a/packages/keyring-controller/package.json +++ b/packages/keyring-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/keyring-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/keyring-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", @@ -56,6 +58,7 @@ "@ethereumjs/util": "^9.1.0", "@metamask/base-controller": "^9.1.0", "@metamask/browser-passworder": "^6.0.0", + "@metamask/controller-utils": "^12.3.0", "@metamask/eth-hd-keyring": "^14.1.1", "@metamask/eth-sig-util": "^8.2.0", "@metamask/eth-simple-keyring": "^12.0.2", diff --git a/packages/keyring-controller/tsconfig.build.json b/packages/keyring-controller/tsconfig.build.json index 0e0e00fc987..df01f3c175b 100644 --- a/packages/keyring-controller/tsconfig.build.json +++ b/packages/keyring-controller/tsconfig.build.json @@ -10,7 +10,7 @@ "path": "../base-controller/tsconfig.build.json" }, { - "path": "../message-manager/tsconfig.build.json" + "path": "../controller-utils/tsconfig.build.json" }, { "path": "../messenger/tsconfig.build.json" diff --git a/packages/keyring-controller/tsconfig.json b/packages/keyring-controller/tsconfig.json index aae4c04c485..7d7c67c579c 100644 --- a/packages/keyring-controller/tsconfig.json +++ b/packages/keyring-controller/tsconfig.json @@ -8,7 +8,7 @@ "path": "../base-controller" }, { - "path": "../message-manager" + "path": "../controller-utils" }, { "path": "../messenger" diff --git a/packages/local-node-utils/package.json b/packages/local-node-utils/package.json index b9e00d24e49..241d782c36a 100644 --- a/packages/local-node-utils/package.json +++ b/packages/local-node-utils/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/local-node-utils", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/local-node-utils", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/logging-controller/package.json b/packages/logging-controller/package.json index 6f6a2b77f7b..1deb5bacf66 100644 --- a/packages/logging-controller/package.json +++ b/packages/logging-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/logging-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/logging-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/message-manager/package.json b/packages/message-manager/package.json index 470a55fef87..5dd7f636aa6 100644 --- a/packages/message-manager/package.json +++ b/packages/message-manager/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/message-manager", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/message-manager", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "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", @@ -67,6 +69,7 @@ "deepmerge": "^4.2.2", "jest": "^29.7.0", "ts-jest": "^29.2.5", + "tsx": "^4.20.5", "typedoc": "^0.25.13", "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" diff --git a/packages/messenger-cli/package.json b/packages/messenger-cli/package.json index a83ce998f47..88c5f6577fc 100644 --- a/packages/messenger-cli/package.json +++ b/packages/messenger-cli/package.json @@ -31,6 +31,8 @@ "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", "changelog:update": "../../scripts/update-changelog.sh @metamask/messenger-cli", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/messenger-cli", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "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", @@ -52,6 +54,7 @@ "oxfmt": "^0.44.0", "prettier": "^3.3.3", "ts-jest": "^29.2.5", + "tsx": "^4.20.5", "typescript": "~5.3.3" }, "peerDependencies": { diff --git a/packages/messenger/package.json b/packages/messenger/package.json index 62c382e65eb..e655bbb2a89 100644 --- a/packages/messenger/package.json +++ b/packages/messenger/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/messenger", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/messenger", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "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 +63,7 @@ "immer": "^9.0.6", "jest": "^29.7.0", "ts-jest": "^29.2.5", + "tsx": "^4.20.5", "typedoc": "^0.25.13", "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" diff --git a/packages/money-account-api-data-service/package.json b/packages/money-account-api-data-service/package.json index 10594d803b3..a5231593e2e 100644 --- a/packages/money-account-api-data-service/package.json +++ b/packages/money-account-api-data-service/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/money-account-api-data-service", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/money-account-api-data-service", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/money-account-balance-service/package.json b/packages/money-account-balance-service/package.json index c97fe7c37b5..37143d80c0a 100644 --- a/packages/money-account-balance-service/package.json +++ b/packages/money-account-balance-service/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/money-account-balance-service", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/money-account-balance-service", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/money-account-controller/package.json b/packages/money-account-controller/package.json index 5b2523c5f21..7fc26aa6185 100644 --- a/packages/money-account-controller/package.json +++ b/packages/money-account-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/money-account-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/money-account-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/money-account-upgrade-controller/package.json b/packages/money-account-upgrade-controller/package.json index 73679f36d24..8a3fce1dade 100644 --- a/packages/money-account-upgrade-controller/package.json +++ b/packages/money-account-upgrade-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/money-account-upgrade-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/money-account-upgrade-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/money-account-upgrade-controller/tsconfig.build.json b/packages/money-account-upgrade-controller/tsconfig.build.json index 033cb7d8b0b..66f113f221d 100644 --- a/packages/money-account-upgrade-controller/tsconfig.build.json +++ b/packages/money-account-upgrade-controller/tsconfig.build.json @@ -6,14 +6,27 @@ "rootDir": "./src" }, "references": [ - { "path": "../authenticated-user-storage/tsconfig.build.json" }, - { "path": "../base-controller/tsconfig.build.json" }, - { "path": "../chomp-api-service/tsconfig.build.json" }, - { "path": "../delegation-controller/tsconfig.build.json" }, - { "path": "../keyring-controller/tsconfig.build.json" }, - { "path": "../messenger/tsconfig.build.json" }, - { "path": "../network-controller/tsconfig.build.json" }, - { "path": "../transaction-controller/tsconfig.build.json" } + { + "path": "../authenticated-user-storage/tsconfig.build.json" + }, + { + "path": "../base-controller/tsconfig.build.json" + }, + { + "path": "../chomp-api-service/tsconfig.build.json" + }, + { + "path": "../delegation-controller/tsconfig.build.json" + }, + { + "path": "../keyring-controller/tsconfig.build.json" + }, + { + "path": "../messenger/tsconfig.build.json" + }, + { + "path": "../network-controller/tsconfig.build.json" + } ], "include": ["../../types", "./src"] } diff --git a/packages/money-account-upgrade-controller/tsconfig.json b/packages/money-account-upgrade-controller/tsconfig.json index 7993854f44a..1273483ee1d 100644 --- a/packages/money-account-upgrade-controller/tsconfig.json +++ b/packages/money-account-upgrade-controller/tsconfig.json @@ -4,14 +4,27 @@ "baseUrl": "./" }, "references": [ - { "path": "../authenticated-user-storage" }, - { "path": "../base-controller" }, - { "path": "../chomp-api-service" }, - { "path": "../delegation-controller" }, - { "path": "../keyring-controller" }, - { "path": "../messenger" }, - { "path": "../network-controller" }, - { "path": "../transaction-controller" } + { + "path": "../authenticated-user-storage" + }, + { + "path": "../base-controller" + }, + { + "path": "../chomp-api-service" + }, + { + "path": "../delegation-controller" + }, + { + "path": "../keyring-controller" + }, + { + "path": "../messenger" + }, + { + "path": "../network-controller" + } ], "include": ["../../types", "./src"] } diff --git a/packages/multichain-account-service/package.json b/packages/multichain-account-service/package.json index 4263bd98b8e..b76abce0321 100644 --- a/packages/multichain-account-service/package.json +++ b/packages/multichain-account-service/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/multichain-account-service", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/multichain-account-service", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/multichain-account-service/tsconfig.build.json b/packages/multichain-account-service/tsconfig.build.json index c4b43ffa5a2..c20f387b447 100644 --- a/packages/multichain-account-service/tsconfig.build.json +++ b/packages/multichain-account-service/tsconfig.build.json @@ -6,11 +6,24 @@ "rootDir": "./src" }, "references": [ - { "path": "../base-controller/tsconfig.build.json" }, - { "path": "../accounts-controller/tsconfig.build.json" }, - { "path": "../keyring-controller/tsconfig.build.json" }, - { "path": "../snap-account-service/tsconfig.build.json" }, - { "path": "../messenger/tsconfig.build.json" } + { + "path": "../base-controller/tsconfig.build.json" + }, + { + "path": "../accounts-controller/tsconfig.build.json" + }, + { + "path": "../keyring-controller/tsconfig.build.json" + }, + { + "path": "../snap-account-service/tsconfig.build.json" + }, + { + "path": "../messenger/tsconfig.build.json" + }, + { + "path": "../controller-utils/tsconfig.build.json" + } ], "include": ["../../types", "./src"] } diff --git a/packages/multichain-account-service/tsconfig.json b/packages/multichain-account-service/tsconfig.json index a55587a8a94..3942487f06e 100644 --- a/packages/multichain-account-service/tsconfig.json +++ b/packages/multichain-account-service/tsconfig.json @@ -4,11 +4,24 @@ "baseUrl": "./" }, "references": [ - { "path": "../base-controller" }, - { "path": "../accounts-controller" }, - { "path": "../keyring-controller" }, - { "path": "../snap-account-service" }, - { "path": "../messenger" } + { + "path": "../base-controller" + }, + { + "path": "../accounts-controller" + }, + { + "path": "../keyring-controller" + }, + { + "path": "../snap-account-service" + }, + { + "path": "../messenger" + }, + { + "path": "../controller-utils" + } ], "include": ["../../types", "./src"] } diff --git a/packages/multichain-api-middleware/package.json b/packages/multichain-api-middleware/package.json index dc5034465c7..501bd7a5c03 100644 --- a/packages/multichain-api-middleware/package.json +++ b/packages/multichain-api-middleware/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/multichain-api-middleware", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/multichain-api-middleware", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "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", @@ -75,6 +77,7 @@ "deepmerge": "^4.2.2", "jest": "^29.7.0", "ts-jest": "^29.2.5", + "tsx": "^4.20.5", "typedoc": "^0.25.13", "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" diff --git a/packages/multichain-api-middleware/tsconfig.build.json b/packages/multichain-api-middleware/tsconfig.build.json index 6674054205c..5166896b04a 100644 --- a/packages/multichain-api-middleware/tsconfig.build.json +++ b/packages/multichain-api-middleware/tsconfig.build.json @@ -7,11 +7,27 @@ "rootDir": "./src" }, "references": [ - { "path": "../accounts-controller/tsconfig.build.json" }, - { "path": "../chain-agnostic-permission/tsconfig.build.json" }, - { "path": "../json-rpc-engine/tsconfig.build.json" }, - { "path": "../network-controller/tsconfig.build.json" }, - { "path": "../permission-controller/tsconfig.build.json" } + { + "path": "../accounts-controller/tsconfig.build.json" + }, + { + "path": "../chain-agnostic-permission/tsconfig.build.json" + }, + { + "path": "../json-rpc-engine/tsconfig.build.json" + }, + { + "path": "../network-controller/tsconfig.build.json" + }, + { + "path": "../permission-controller/tsconfig.build.json" + }, + { + "path": "../controller-utils/tsconfig.build.json" + }, + { + "path": "../multichain-transactions-controller/tsconfig.build.json" + } ], "include": ["../../types", "./src"] } diff --git a/packages/multichain-api-middleware/tsconfig.json b/packages/multichain-api-middleware/tsconfig.json index 65fc1ac134f..ec6333ee516 100644 --- a/packages/multichain-api-middleware/tsconfig.json +++ b/packages/multichain-api-middleware/tsconfig.json @@ -6,12 +6,27 @@ "rootDir": "../.." }, "references": [ - { "path": "../accounts-controller" }, - { "path": "../chain-agnostic-permission" }, - { "path": "../json-rpc-engine" }, - { "path": "../network-controller" }, - { "path": "../permission-controller" }, - { "path": "../multichain-transactions-controller" } + { + "path": "../accounts-controller" + }, + { + "path": "../chain-agnostic-permission" + }, + { + "path": "../json-rpc-engine" + }, + { + "path": "../network-controller" + }, + { + "path": "../permission-controller" + }, + { + "path": "../multichain-transactions-controller" + }, + { + "path": "../controller-utils" + } ], "include": ["../../types", "./src"] } diff --git a/packages/multichain-network-controller/package.json b/packages/multichain-network-controller/package.json index 1e856f24508..c1ac794d8c9 100644 --- a/packages/multichain-network-controller/package.json +++ b/packages/multichain-network-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/multichain-network-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/multichain-network-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/multichain-network-controller/tsconfig.build.json b/packages/multichain-network-controller/tsconfig.build.json index e45f8c90f04..84af6a8c13b 100644 --- a/packages/multichain-network-controller/tsconfig.build.json +++ b/packages/multichain-network-controller/tsconfig.build.json @@ -6,11 +6,24 @@ "rootDir": "./src" }, "references": [ - { "path": "../accounts-controller/tsconfig.build.json" }, - { "path": "../base-controller/tsconfig.build.json" }, - { "path": "../controller-utils/tsconfig.build.json" }, - { "path": "../network-controller/tsconfig.build.json" }, - { "path": "../keyring-controller/tsconfig.build.json" } + { + "path": "../accounts-controller/tsconfig.build.json" + }, + { + "path": "../base-controller/tsconfig.build.json" + }, + { + "path": "../controller-utils/tsconfig.build.json" + }, + { + "path": "../network-controller/tsconfig.build.json" + }, + { + "path": "../keyring-controller/tsconfig.build.json" + }, + { + "path": "../messenger/tsconfig.build.json" + } ], "include": ["../../types", "./src"] } diff --git a/packages/multichain-network-controller/tsconfig.json b/packages/multichain-network-controller/tsconfig.json index 8726c490cc6..93cff5181e6 100644 --- a/packages/multichain-network-controller/tsconfig.json +++ b/packages/multichain-network-controller/tsconfig.json @@ -4,11 +4,24 @@ "baseUrl": "./" }, "references": [ - { "path": "../accounts-controller" }, - { "path": "../base-controller" }, - { "path": "../controller-utils" }, - { "path": "../network-controller" }, - { "path": "../keyring-controller" } + { + "path": "../accounts-controller" + }, + { + "path": "../base-controller" + }, + { + "path": "../controller-utils" + }, + { + "path": "../network-controller" + }, + { + "path": "../keyring-controller" + }, + { + "path": "../messenger" + } ], "include": ["../../types", "./src", "./tests"] } diff --git a/packages/multichain-transactions-controller/package.json b/packages/multichain-transactions-controller/package.json index 29a129dfcae..196db6f9afd 100644 --- a/packages/multichain-transactions-controller/package.json +++ b/packages/multichain-transactions-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/multichain-transactions-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/multichain-transactions-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/name-controller/package.json b/packages/name-controller/package.json index b41c104bf7a..8f1b905867e 100644 --- a/packages/name-controller/package.json +++ b/packages/name-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/name-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/name-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "prepare-manifest:preview": "../../scripts/prepare-preview-manifest.sh", diff --git a/packages/name-controller/tsconfig.build.json b/packages/name-controller/tsconfig.build.json index 249f327913d..fbd362d7997 100644 --- a/packages/name-controller/tsconfig.build.json +++ b/packages/name-controller/tsconfig.build.json @@ -11,6 +11,9 @@ }, { "path": "../messenger/tsconfig.build.json" + }, + { + "path": "../controller-utils/tsconfig.build.json" } ], "include": ["../../types", "./src"] diff --git a/packages/name-controller/tsconfig.json b/packages/name-controller/tsconfig.json index cb296895b28..d43f80859c1 100644 --- a/packages/name-controller/tsconfig.json +++ b/packages/name-controller/tsconfig.json @@ -9,6 +9,9 @@ }, { "path": "../messenger" + }, + { + "path": "../controller-utils" } ], "include": ["../../types", "./src"] diff --git a/packages/network-connection-banner-controller/package.json b/packages/network-connection-banner-controller/package.json index eb9ea9bdb1b..2a768db7e08 100644 --- a/packages/network-connection-banner-controller/package.json +++ b/packages/network-connection-banner-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/network-connection-banner-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/network-connection-banner-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/network-controller/package.json b/packages/network-controller/package.json index 11885cf01e9..706c0e17b3e 100644 --- a/packages/network-controller/package.json +++ b/packages/network-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/network-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/network-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/network-enablement-controller/package.json b/packages/network-enablement-controller/package.json index 60409b066c6..1a1c51440d9 100644 --- a/packages/network-enablement-controller/package.json +++ b/packages/network-enablement-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/network-enablement-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/network-enablement-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/notification-services-controller/package.json b/packages/notification-services-controller/package.json index 85a2f5ab07f..21f8ae960f9 100644 --- a/packages/notification-services-controller/package.json +++ b/packages/notification-services-controller/package.json @@ -96,6 +96,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/notification-services-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/notification-services-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/notification-services-controller/tsconfig.build.json b/packages/notification-services-controller/tsconfig.build.json index b3b440974e1..ad51c6570e1 100644 --- a/packages/notification-services-controller/tsconfig.build.json +++ b/packages/notification-services-controller/tsconfig.build.json @@ -21,6 +21,9 @@ }, { "path": "../messenger/tsconfig.build.json" + }, + { + "path": "../controller-utils/tsconfig.build.json" } ], "include": ["../../types", "./src"], diff --git a/packages/notification-services-controller/tsconfig.json b/packages/notification-services-controller/tsconfig.json index 3b73a515be7..1872d403aef 100644 --- a/packages/notification-services-controller/tsconfig.json +++ b/packages/notification-services-controller/tsconfig.json @@ -18,6 +18,9 @@ }, { "path": "../messenger" + }, + { + "path": "../controller-utils" } ], "include": ["../../types", "./src"] diff --git a/packages/passkey-controller/package.json b/packages/passkey-controller/package.json index 82f54b52f27..a06d8b2cc21 100644 --- a/packages/passkey-controller/package.json +++ b/packages/passkey-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/passkey-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/passkey-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "publish:preview": "yarn npm publish --tag preview", diff --git a/packages/permission-controller/package.json b/packages/permission-controller/package.json index f1e34929f3e..e309b00f061 100644 --- a/packages/permission-controller/package.json +++ b/packages/permission-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/permission-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/permission-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/permission-controller/src/permission-middleware.ts b/packages/permission-controller/src/permission-middleware.ts index 4ae29c519f8..6fbb954465a 100644 --- a/packages/permission-controller/src/permission-middleware.ts +++ b/packages/permission-controller/src/permission-middleware.ts @@ -1,15 +1,11 @@ import { createAsyncMiddleware } from '@metamask/json-rpc-engine'; import type { - AsyncJsonRpcEngineNextCallback, + AsyncJsonrpcMiddleware, JsonRpcMiddleware, } from '@metamask/json-rpc-engine'; import type { JsonRpcMiddleware as JsonRpcMiddlewareV2 } from '@metamask/json-rpc-engine/v2'; import type { Messenger } from '@metamask/messenger'; -import type { - Json, - JsonRpcRequest, - PendingJsonRpcResponse, -} from '@metamask/utils'; +import type { Json } from '@metamask/utils'; import type { RestrictedMethodParameters } from './Permission'; import type { @@ -52,11 +48,10 @@ export function createPermissionMiddleware({ RestrictedMethodParameters, Json > { - const permissionsMiddleware = async ( - request: JsonRpcRequest, - response: PendingJsonRpcResponse, - next: AsyncJsonRpcEngineNextCallback, - ): Promise => { + const permissionsMiddleware: AsyncJsonrpcMiddleware< + RestrictedMethodParameters, + Json + > = async (request, response, next) => { const { method, params } = request; if (messenger.call('PermissionController:hasUnrestrictedMethod', method)) { @@ -72,7 +67,9 @@ export function createPermissionMiddleware({ return undefined; }; - return createAsyncMiddleware(permissionsMiddleware); + return createAsyncMiddleware( + permissionsMiddleware, + ); } /** diff --git a/packages/permission-log-controller/package.json b/packages/permission-log-controller/package.json index 2e5319fe8eb..adf59bbeef7 100644 --- a/packages/permission-log-controller/package.json +++ b/packages/permission-log-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/permission-log-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/permission-log-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/perps-controller/package.json b/packages/perps-controller/package.json index 19239b5750f..f082ef0dd1d 100644 --- a/packages/perps-controller/package.json +++ b/packages/perps-controller/package.json @@ -87,6 +87,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/perps-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/perps-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/perps-controller/src/PerpsController.ts b/packages/perps-controller/src/PerpsController.ts index 694184eeb99..a7689aed4d0 100644 --- a/packages/perps-controller/src/PerpsController.ts +++ b/packages/perps-controller/src/PerpsController.ts @@ -2074,7 +2074,6 @@ export class PerpsController extends BaseController< }, stateManager: { update: (updater: (state: PerpsControllerState) => void) => - // @ts-expect-error TS2589 - excessively deep instantiation from BaseController generic this.update(updater), getState: (): PerpsControllerState => this.#getControllerState(), }, diff --git a/packages/perps-controller/tsconfig.build.json b/packages/perps-controller/tsconfig.build.json index f64498c6738..26372414a07 100644 --- a/packages/perps-controller/tsconfig.build.json +++ b/packages/perps-controller/tsconfig.build.json @@ -8,18 +8,39 @@ "rootDir": "./src" }, "references": [ - { "path": "../account-tree-controller/tsconfig.build.json" }, - { "path": "../authenticated-user-storage/tsconfig.build.json" }, - { "path": "../base-controller/tsconfig.build.json" }, - { "path": "../bridge-controller/tsconfig.build.json" }, - { "path": "../controller-utils/tsconfig.build.json" }, - { "path": "../geolocation-controller/tsconfig.build.json" }, - { "path": "../keyring-controller/tsconfig.build.json" }, - { "path": "../messenger/tsconfig.build.json" }, - { "path": "../network-controller/tsconfig.build.json" }, - { "path": "../profile-sync-controller/tsconfig.build.json" }, - { "path": "../remote-feature-flag-controller/tsconfig.build.json" }, - { "path": "../transaction-controller/tsconfig.build.json" } + { + "path": "../account-tree-controller/tsconfig.build.json" + }, + { + "path": "../authenticated-user-storage/tsconfig.build.json" + }, + { + "path": "../base-controller/tsconfig.build.json" + }, + { + "path": "../controller-utils/tsconfig.build.json" + }, + { + "path": "../geolocation-controller/tsconfig.build.json" + }, + { + "path": "../keyring-controller/tsconfig.build.json" + }, + { + "path": "../messenger/tsconfig.build.json" + }, + { + "path": "../network-controller/tsconfig.build.json" + }, + { + "path": "../profile-sync-controller/tsconfig.build.json" + }, + { + "path": "../remote-feature-flag-controller/tsconfig.build.json" + }, + { + "path": "../transaction-controller/tsconfig.build.json" + } ], "include": ["../../types", "./src"] } diff --git a/packages/perps-controller/tsconfig.json b/packages/perps-controller/tsconfig.json index 7a7a7ef901f..085e52868a2 100644 --- a/packages/perps-controller/tsconfig.json +++ b/packages/perps-controller/tsconfig.json @@ -15,9 +15,6 @@ { "path": "../base-controller" }, - { - "path": "../bridge-controller" - }, { "path": "../controller-utils" }, diff --git a/packages/phishing-controller/package.json b/packages/phishing-controller/package.json index f45ec05e60f..96e89342f0a 100644 --- a/packages/phishing-controller/package.json +++ b/packages/phishing-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/phishing-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/phishing-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/phishing-controller/tsconfig.build.json b/packages/phishing-controller/tsconfig.build.json index 25a4d3c697a..3f312d587cd 100644 --- a/packages/phishing-controller/tsconfig.build.json +++ b/packages/phishing-controller/tsconfig.build.json @@ -6,10 +6,21 @@ "rootDir": "./src" }, "references": [ - { "path": "../base-controller/tsconfig.build.json" }, - { "path": "../controller-utils/tsconfig.build.json" }, - { "path": "../transaction-controller/tsconfig.build.json" }, - { "path": "../messenger/tsconfig.build.json" } + { + "path": "../base-controller/tsconfig.build.json" + }, + { + "path": "../controller-utils/tsconfig.build.json" + }, + { + "path": "../transaction-controller/tsconfig.build.json" + }, + { + "path": "../messenger/tsconfig.build.json" + }, + { + "path": "../address-book-controller/tsconfig.build.json" + } ], "include": ["../../types", "./src"] } diff --git a/packages/phishing-controller/tsconfig.json b/packages/phishing-controller/tsconfig.json index 5f32f34e8aa..63ae98b5725 100644 --- a/packages/phishing-controller/tsconfig.json +++ b/packages/phishing-controller/tsconfig.json @@ -4,10 +4,21 @@ "baseUrl": "./" }, "references": [ - { "path": "../base-controller" }, - { "path": "../controller-utils" }, - { "path": "../transaction-controller" }, - { "path": "../messenger" } + { + "path": "../base-controller" + }, + { + "path": "../controller-utils" + }, + { + "path": "../transaction-controller" + }, + { + "path": "../messenger" + }, + { + "path": "../address-book-controller" + } ], "include": ["../../types", "./src", "./tests"] } diff --git a/packages/platform-api-docs/package.json b/packages/platform-api-docs/package.json index 5da3b60393f..5cf2d9e9b13 100644 --- a/packages/platform-api-docs/package.json +++ b/packages/platform-api-docs/package.json @@ -31,6 +31,8 @@ "changelog:update": "../../scripts/update-changelog.sh @metamask/platform-api-docs", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/platform-api-docs", "cli": "tsx src/cli.ts", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "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/polling-controller/package.json b/packages/polling-controller/package.json index af84835ba4d..3b842b277e5 100644 --- a/packages/polling-controller/package.json +++ b/packages/polling-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/polling-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/polling-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "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 +68,7 @@ "deepmerge": "^4.2.2", "jest": "^29.7.0", "ts-jest": "^29.2.5", + "tsx": "^4.20.5", "typedoc": "^0.25.13", "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" diff --git a/packages/polling-controller/tsconfig.build.json b/packages/polling-controller/tsconfig.build.json index c55f67af5af..d3505147134 100644 --- a/packages/polling-controller/tsconfig.build.json +++ b/packages/polling-controller/tsconfig.build.json @@ -6,10 +6,15 @@ "rootDir": "./src" }, "references": [ - { "path": "../base-controller/tsconfig.build.json" }, - { "path": "../controller-utils/tsconfig.build.json" }, - { "path": "../network-controller/tsconfig.build.json" }, - { "path": "../messenger/tsconfig.build.json" } + { + "path": "../base-controller/tsconfig.build.json" + }, + { + "path": "../network-controller/tsconfig.build.json" + }, + { + "path": "../messenger/tsconfig.build.json" + } ], "include": ["../../types", "./src"] } diff --git a/packages/polling-controller/tsconfig.json b/packages/polling-controller/tsconfig.json index ca0d50a83f4..65796e0001b 100644 --- a/packages/polling-controller/tsconfig.json +++ b/packages/polling-controller/tsconfig.json @@ -5,10 +5,15 @@ "rootDir": "../.." }, "references": [ - { "path": "../base-controller" }, - { "path": "../controller-utils" }, - { "path": "../network-controller" }, - { "path": "../messenger" } + { + "path": "../base-controller" + }, + { + "path": "../network-controller" + }, + { + "path": "../messenger" + } ], "include": ["../../types", "./src", "../../tests"] } diff --git a/packages/preferences-controller/package.json b/packages/preferences-controller/package.json index e6adaba7b83..4168aecf85c 100644 --- a/packages/preferences-controller/package.json +++ b/packages/preferences-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/preferences-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/preferences-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/preferences-controller/tsconfig.build.json b/packages/preferences-controller/tsconfig.build.json index a467f840c9b..249f327913d 100644 --- a/packages/preferences-controller/tsconfig.build.json +++ b/packages/preferences-controller/tsconfig.build.json @@ -6,10 +6,12 @@ "rootDir": "./src" }, "references": [ - { "path": "../base-controller/tsconfig.build.json" }, - { "path": "../controller-utils/tsconfig.build.json" }, - { "path": "../keyring-controller/tsconfig.build.json" }, - { "path": "../messenger/tsconfig.build.json" } + { + "path": "../base-controller/tsconfig.build.json" + }, + { + "path": "../messenger/tsconfig.build.json" + } ], "include": ["../../types", "./src"] } diff --git a/packages/preferences-controller/tsconfig.json b/packages/preferences-controller/tsconfig.json index 0d78738b3cc..cb296895b28 100644 --- a/packages/preferences-controller/tsconfig.json +++ b/packages/preferences-controller/tsconfig.json @@ -4,10 +4,12 @@ "baseUrl": "./" }, "references": [ - { "path": "../base-controller" }, - { "path": "../controller-utils" }, - { "path": "../keyring-controller" }, - { "path": "../messenger" } + { + "path": "../base-controller" + }, + { + "path": "../messenger" + } ], "include": ["../../types", "./src"] } diff --git a/packages/profile-metrics-controller/package.json b/packages/profile-metrics-controller/package.json index db6e8dbfe7b..703f3f87871 100644 --- a/packages/profile-metrics-controller/package.json +++ b/packages/profile-metrics-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/profile-metrics-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/profile-metrics-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/profile-metrics-controller/tsconfig.build.json b/packages/profile-metrics-controller/tsconfig.build.json index c8d6956fe1e..6b9a0be7e42 100644 --- a/packages/profile-metrics-controller/tsconfig.build.json +++ b/packages/profile-metrics-controller/tsconfig.build.json @@ -6,14 +6,30 @@ "rootDir": "./src" }, "references": [ - { "path": "../../packages/accounts-controller/tsconfig.build.json" }, - { "path": "../../packages/base-controller/tsconfig.build.json" }, - { "path": "../../packages/controller-utils/tsconfig.build.json" }, - { "path": "../../packages/keyring-controller/tsconfig.build.json" }, - { "path": "../../packages/messenger/tsconfig.build.json" }, - { "path": "../../packages/polling-controller/tsconfig.build.json" }, - { "path": "../../packages/profile-sync-controller/tsconfig.build.json" }, - { "path": "../../packages/transaction-controller/tsconfig.build.json" } + { + "path": "../accounts-controller/tsconfig.build.json" + }, + { + "path": "../base-controller/tsconfig.build.json" + }, + { + "path": "../controller-utils/tsconfig.build.json" + }, + { + "path": "../keyring-controller/tsconfig.build.json" + }, + { + "path": "../messenger/tsconfig.build.json" + }, + { + "path": "../polling-controller/tsconfig.build.json" + }, + { + "path": "../profile-sync-controller/tsconfig.build.json" + }, + { + "path": "../transaction-controller/tsconfig.build.json" + } ], "include": ["../../types", "./src"] } diff --git a/packages/profile-metrics-controller/tsconfig.json b/packages/profile-metrics-controller/tsconfig.json index 56a9c79ec6c..0bcad567710 100644 --- a/packages/profile-metrics-controller/tsconfig.json +++ b/packages/profile-metrics-controller/tsconfig.json @@ -4,14 +4,30 @@ "baseUrl": "./" }, "references": [ - { "path": "../../packages/accounts-controller" }, - { "path": "../../packages/base-controller" }, - { "path": "../../packages/controller-utils" }, - { "path": "../../packages/keyring-controller" }, - { "path": "../../packages/messenger" }, - { "path": "../../packages/polling-controller" }, - { "path": "../../packages/profile-sync-controller" }, - { "path": "../../packages/transaction-controller" } + { + "path": "../accounts-controller" + }, + { + "path": "../base-controller" + }, + { + "path": "../controller-utils" + }, + { + "path": "../keyring-controller" + }, + { + "path": "../messenger" + }, + { + "path": "../polling-controller" + }, + { + "path": "../profile-sync-controller" + }, + { + "path": "../transaction-controller" + } ], "include": ["../../types", "./src"], /** diff --git a/packages/profile-sync-controller/package.json b/packages/profile-sync-controller/package.json index db4892b282a..0dfd9cf195b 100644 --- a/packages/profile-sync-controller/package.json +++ b/packages/profile-sync-controller/package.json @@ -97,6 +97,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/profile-sync-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/profile-sync-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/ramps-controller/package.json b/packages/ramps-controller/package.json index 064e4efef86..2b24eadd235 100644 --- a/packages/ramps-controller/package.json +++ b/packages/ramps-controller/package.json @@ -45,6 +45,8 @@ "changelog:update": "../../scripts/update-changelog.sh @metamask/ramps-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/ramps-controller", "dev": "node dev-watch.js", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/ramps-controller/tsconfig.json b/packages/ramps-controller/tsconfig.json index 4ac0eb9e7db..f85e8ef6394 100644 --- a/packages/ramps-controller/tsconfig.json +++ b/packages/ramps-controller/tsconfig.json @@ -5,10 +5,21 @@ "resolveJsonModule": true }, "references": [ - { "path": "../base-controller" }, - { "path": "../messenger" }, - { "path": "../profile-sync-controller" }, - { "path": "../remote-feature-flag-controller" } + { + "path": "../base-controller" + }, + { + "path": "../messenger" + }, + { + "path": "../profile-sync-controller" + }, + { + "path": "../remote-feature-flag-controller" + }, + { + "path": "../controller-utils" + } ], "include": ["../../types", "./src"] } diff --git a/packages/rate-limit-controller/package.json b/packages/rate-limit-controller/package.json index 5ed126410bb..d2ae4d9277d 100644 --- a/packages/rate-limit-controller/package.json +++ b/packages/rate-limit-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/rate-limit-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/rate-limit-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "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 +65,7 @@ "deepmerge": "^4.2.2", "jest": "^29.7.0", "ts-jest": "^29.2.5", + "tsx": "^4.20.5", "typedoc": "^0.25.13", "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" diff --git a/packages/react-data-query/package.json b/packages/react-data-query/package.json index fb563df7782..3d751726bd8 100644 --- a/packages/react-data-query/package.json +++ b/packages/react-data-query/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/react-data-query", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/react-data-query", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "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 +66,7 @@ "deepmerge": "^4.2.2", "jest": "^29.7.0", "ts-jest": "^29.2.5", + "tsx": "^4.20.5", "typedoc": "^0.25.13", "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "~5.3.3" diff --git a/packages/react-data-query/tsconfig.build.json b/packages/react-data-query/tsconfig.build.json index 3c1d8d64e87..bfa9a0f2417 100644 --- a/packages/react-data-query/tsconfig.build.json +++ b/packages/react-data-query/tsconfig.build.json @@ -5,6 +5,13 @@ "outDir": "./dist", "rootDir": "./src" }, - "references": [{ "path": "../base-data-service/tsconfig.build.json" }], + "references": [ + { + "path": "../base-data-service/tsconfig.build.json" + }, + { + "path": "../messenger/tsconfig.build.json" + } + ], "include": ["../../types", "./src"] } diff --git a/packages/react-data-query/tsconfig.json b/packages/react-data-query/tsconfig.json index 181f238ab73..dd73fcabc2d 100644 --- a/packages/react-data-query/tsconfig.json +++ b/packages/react-data-query/tsconfig.json @@ -3,6 +3,13 @@ "compilerOptions": { "baseUrl": "./" }, - "references": [{ "path": "../base-data-service" }], + "references": [ + { + "path": "../base-data-service" + }, + { + "path": "../messenger" + } + ], "include": ["../../types", "./src"] } diff --git a/packages/remote-feature-flag-controller/package.json b/packages/remote-feature-flag-controller/package.json index aaffec8e61d..ff220bc310f 100644 --- a/packages/remote-feature-flag-controller/package.json +++ b/packages/remote-feature-flag-controller/package.json @@ -44,6 +44,8 @@ "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", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/remote-feature-flag-controller/tsconfig.build.json b/packages/remote-feature-flag-controller/tsconfig.build.json index 931c4d6594b..fbd362d7997 100644 --- a/packages/remote-feature-flag-controller/tsconfig.build.json +++ b/packages/remote-feature-flag-controller/tsconfig.build.json @@ -6,8 +6,15 @@ "rootDir": "./src" }, "references": [ - { "path": "../base-controller/tsconfig.build.json" }, - { "path": "../messenger/tsconfig.build.json" } + { + "path": "../base-controller/tsconfig.build.json" + }, + { + "path": "../messenger/tsconfig.build.json" + }, + { + "path": "../controller-utils/tsconfig.build.json" + } ], "include": ["../../types", "./src"] } diff --git a/packages/remote-feature-flag-controller/tsconfig.json b/packages/remote-feature-flag-controller/tsconfig.json index 68c3ddfc2cd..d43f80859c1 100644 --- a/packages/remote-feature-flag-controller/tsconfig.json +++ b/packages/remote-feature-flag-controller/tsconfig.json @@ -3,6 +3,16 @@ "compilerOptions": { "baseUrl": "./" }, - "references": [{ "path": "../base-controller" }, { "path": "../messenger" }], + "references": [ + { + "path": "../base-controller" + }, + { + "path": "../messenger" + }, + { + "path": "../controller-utils" + } + ], "include": ["../../types", "./src"] } diff --git a/packages/sample-controllers/package.json b/packages/sample-controllers/package.json index 926afbd5a32..7b99e97eeb3 100644 --- a/packages/sample-controllers/package.json +++ b/packages/sample-controllers/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/sample-controllers", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/sample-controllers", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/sample-controllers/tsconfig.build.json b/packages/sample-controllers/tsconfig.build.json index cb781ec80f0..672cafa8fe8 100644 --- a/packages/sample-controllers/tsconfig.build.json +++ b/packages/sample-controllers/tsconfig.build.json @@ -6,10 +6,21 @@ "rootDir": "./src" }, "references": [ - { "path": "../../packages/base-controller/tsconfig.build.json" }, - { "path": "../../packages/base-data-service/tsconfig.build.json" }, - { "path": "../../packages/messenger/tsconfig.build.json" }, - { "path": "../../packages/network-controller/tsconfig.build.json" } + { + "path": "../base-controller/tsconfig.build.json" + }, + { + "path": "../base-data-service/tsconfig.build.json" + }, + { + "path": "../controller-utils/tsconfig.build.json" + }, + { + "path": "../messenger/tsconfig.build.json" + }, + { + "path": "../network-controller/tsconfig.build.json" + } ], "include": ["../../types", "./src"] } diff --git a/packages/sample-controllers/tsconfig.json b/packages/sample-controllers/tsconfig.json index d7990c4116b..c291290d7db 100644 --- a/packages/sample-controllers/tsconfig.json +++ b/packages/sample-controllers/tsconfig.json @@ -4,11 +4,21 @@ "baseUrl": "./" }, "references": [ - { "path": "../../packages/base-controller" }, - { "path": "../../packages/base-data-service" }, - { "path": "../../packages/controller-utils" }, - { "path": "../../packages/messenger" }, - { "path": "../../packages/network-controller" } + { + "path": "../base-controller" + }, + { + "path": "../base-data-service" + }, + { + "path": "../controller-utils" + }, + { + "path": "../messenger" + }, + { + "path": "../network-controller" + } ], "include": ["../../types", "./src"], /** diff --git a/packages/seedless-onboarding-controller/package.json b/packages/seedless-onboarding-controller/package.json index 719b95a18b7..775a878f066 100644 --- a/packages/seedless-onboarding-controller/package.json +++ b/packages/seedless-onboarding-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/seedless-onboarding-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/seedless-onboarding-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/seedless-onboarding-controller/tsconfig.build.json b/packages/seedless-onboarding-controller/tsconfig.build.json index 363d67c8df8..fb01dfc7b16 100644 --- a/packages/seedless-onboarding-controller/tsconfig.build.json +++ b/packages/seedless-onboarding-controller/tsconfig.build.json @@ -10,10 +10,10 @@ "path": "../base-controller/tsconfig.build.json" }, { - "path": "../message-manager/tsconfig.build.json" + "path": "../keyring-controller/tsconfig.build.json" }, { - "path": "../keyring-controller/tsconfig.build.json" + "path": "../messenger/tsconfig.build.json" } ], "include": ["../../types", "./src"] diff --git a/packages/seedless-onboarding-controller/tsconfig.json b/packages/seedless-onboarding-controller/tsconfig.json index 9167ff78a2a..83569574c51 100644 --- a/packages/seedless-onboarding-controller/tsconfig.json +++ b/packages/seedless-onboarding-controller/tsconfig.json @@ -8,10 +8,10 @@ "path": "../base-controller" }, { - "path": "../message-manager" + "path": "../keyring-controller" }, { - "path": "../keyring-controller" + "path": "../messenger" } ], "include": ["../../types", "./src", "./tests"] diff --git a/packages/selected-network-controller/package.json b/packages/selected-network-controller/package.json index c4a6866a0b4..e0157f31d36 100644 --- a/packages/selected-network-controller/package.json +++ b/packages/selected-network-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/selected-network-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/selected-network-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/shield-controller/package.json b/packages/shield-controller/package.json index f23a261487a..a218f6d2ba4 100644 --- a/packages/shield-controller/package.json +++ b/packages/shield-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/shield-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/shield-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/shield-controller/tsconfig.build.json b/packages/shield-controller/tsconfig.build.json index edfd16e6b74..48bc2d08f63 100644 --- a/packages/shield-controller/tsconfig.build.json +++ b/packages/shield-controller/tsconfig.build.json @@ -6,10 +6,21 @@ "rootDir": "./src" }, "references": [ - { "path": "../base-controller/tsconfig.build.json" }, - { "path": "../signature-controller/tsconfig.build.json" }, - { "path": "../transaction-controller/tsconfig.build.json" }, - { "path": "../messenger/tsconfig.build.json" } + { + "path": "../base-controller/tsconfig.build.json" + }, + { + "path": "../signature-controller/tsconfig.build.json" + }, + { + "path": "../transaction-controller/tsconfig.build.json" + }, + { + "path": "../messenger/tsconfig.build.json" + }, + { + "path": "../controller-utils/tsconfig.build.json" + } ], "include": ["../../types", "./src"] } diff --git a/packages/shield-controller/tsconfig.json b/packages/shield-controller/tsconfig.json index 792a6fa5f7d..1a61e3eb433 100644 --- a/packages/shield-controller/tsconfig.json +++ b/packages/shield-controller/tsconfig.json @@ -4,10 +4,21 @@ "baseUrl": "./" }, "references": [ - { "path": "../base-controller" }, - { "path": "../signature-controller" }, - { "path": "../transaction-controller" }, - { "path": "../messenger" } + { + "path": "../base-controller" + }, + { + "path": "../signature-controller" + }, + { + "path": "../transaction-controller" + }, + { + "path": "../messenger" + }, + { + "path": "../controller-utils" + } ], "include": ["../../types", "./src", "./tests"] } diff --git a/packages/signature-controller/package.json b/packages/signature-controller/package.json index e499fe67336..f4a3c3110dc 100644 --- a/packages/signature-controller/package.json +++ b/packages/signature-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/signature-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/signature-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/signature-controller/tsconfig.build.json b/packages/signature-controller/tsconfig.build.json index a89237f1d75..0b77c25b500 100644 --- a/packages/signature-controller/tsconfig.build.json +++ b/packages/signature-controller/tsconfig.build.json @@ -21,9 +21,6 @@ { "path": "../gator-permissions-controller/tsconfig.build.json" }, - { - "path": "../message-manager/tsconfig.build.json" - }, { "path": "../keyring-controller/tsconfig.build.json" }, diff --git a/packages/signature-controller/tsconfig.json b/packages/signature-controller/tsconfig.json index 0e27711c20a..b47e2e54793 100644 --- a/packages/signature-controller/tsconfig.json +++ b/packages/signature-controller/tsconfig.json @@ -19,9 +19,6 @@ { "path": "../gator-permissions-controller" }, - { - "path": "../message-manager" - }, { "path": "../keyring-controller" }, diff --git a/packages/smart-transactions-controller/package.json b/packages/smart-transactions-controller/package.json index 4d843fe5511..e6a4ab6ad25 100644 --- a/packages/smart-transactions-controller/package.json +++ b/packages/smart-transactions-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/smart-transactions-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/smart-transactions-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/smart-transactions-controller/tsconfig.build.json b/packages/smart-transactions-controller/tsconfig.build.json index 012a51fbb0a..6d240741c40 100644 --- a/packages/smart-transactions-controller/tsconfig.build.json +++ b/packages/smart-transactions-controller/tsconfig.build.json @@ -6,20 +6,36 @@ "rootDir": "./src" }, "references": [ - { "path": "../accounts-controller/tsconfig.build.json" }, - { "path": "../approval-controller/tsconfig.build.json" }, - { "path": "../base-controller/tsconfig.build.json" }, - { "path": "../controller-utils/tsconfig.build.json" }, - { "path": "../eth-block-tracker/tsconfig.build.json" }, - { "path": "../eth-json-rpc-provider/tsconfig.build.json" }, - { "path": "../gas-fee-controller/tsconfig.build.json" }, - { "path": "../json-rpc-engine/tsconfig.build.json" }, - { "path": "../messenger/tsconfig.build.json" }, - { "path": "../network-controller/tsconfig.build.json" }, - { "path": "../polling-controller/tsconfig.build.json" }, - { "path": "../profile-sync-controller/tsconfig.build.json" }, - { "path": "../remote-feature-flag-controller/tsconfig.build.json" }, - { "path": "../transaction-controller/tsconfig.build.json" } + { + "path": "../base-controller/tsconfig.build.json" + }, + { + "path": "../controller-utils/tsconfig.build.json" + }, + { + "path": "../eth-json-rpc-provider/tsconfig.build.json" + }, + { + "path": "../json-rpc-engine/tsconfig.build.json" + }, + { + "path": "../messenger/tsconfig.build.json" + }, + { + "path": "../network-controller/tsconfig.build.json" + }, + { + "path": "../polling-controller/tsconfig.build.json" + }, + { + "path": "../profile-sync-controller/tsconfig.build.json" + }, + { + "path": "../remote-feature-flag-controller/tsconfig.build.json" + }, + { + "path": "../transaction-controller/tsconfig.build.json" + } ], "include": ["../../types", "./src"] } diff --git a/packages/smart-transactions-controller/tsconfig.json b/packages/smart-transactions-controller/tsconfig.json index 3ef1be61e6f..c4e733f05dc 100644 --- a/packages/smart-transactions-controller/tsconfig.json +++ b/packages/smart-transactions-controller/tsconfig.json @@ -6,20 +6,36 @@ "resolveJsonModule": true }, "references": [ - { "path": "../accounts-controller" }, - { "path": "../approval-controller" }, - { "path": "../base-controller" }, - { "path": "../controller-utils" }, - { "path": "../eth-block-tracker" }, - { "path": "../eth-json-rpc-provider" }, - { "path": "../gas-fee-controller" }, - { "path": "../json-rpc-engine" }, - { "path": "../messenger" }, - { "path": "../network-controller" }, - { "path": "../polling-controller" }, - { "path": "../profile-sync-controller" }, - { "path": "../remote-feature-flag-controller" }, - { "path": "../transaction-controller" } + { + "path": "../base-controller" + }, + { + "path": "../controller-utils" + }, + { + "path": "../eth-json-rpc-provider" + }, + { + "path": "../json-rpc-engine" + }, + { + "path": "../messenger" + }, + { + "path": "../network-controller" + }, + { + "path": "../polling-controller" + }, + { + "path": "../profile-sync-controller" + }, + { + "path": "../remote-feature-flag-controller" + }, + { + "path": "../transaction-controller" + } ], "include": ["../../types", "./src", "./tests"] } diff --git a/packages/snap-account-service/package.json b/packages/snap-account-service/package.json index 47f3bf17e27..b752b8db84e 100644 --- a/packages/snap-account-service/package.json +++ b/packages/snap-account-service/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/snap-account-service", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/snap-account-service", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/social-controllers/package.json b/packages/social-controllers/package.json index 1bbfae00871..2e33c34c3ac 100644 --- a/packages/social-controllers/package.json +++ b/packages/social-controllers/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/social-controllers", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/social-controllers", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/solana-test-validator-up/package.json b/packages/solana-test-validator-up/package.json index 04a4329abf7..9460541d9cf 100644 --- a/packages/solana-test-validator-up/package.json +++ b/packages/solana-test-validator-up/package.json @@ -45,6 +45,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/solana-test-validator-up", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/solana-test-validator-up", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/solana-test-validator-up/tsconfig.json b/packages/solana-test-validator-up/tsconfig.json index fa42df6a10d..437bfaf93ab 100644 --- a/packages/solana-test-validator-up/tsconfig.json +++ b/packages/solana-test-validator-up/tsconfig.json @@ -3,6 +3,10 @@ "compilerOptions": { "baseUrl": "./" }, - "references": [{ "path": "../local-node-utils/tsconfig.json" }], + "references": [ + { + "path": "../local-node-utils" + } + ], "include": ["../../types", "./src"] } diff --git a/packages/stellar-quickstart-up/package.json b/packages/stellar-quickstart-up/package.json index 83aaaffe4ab..dfb17084266 100644 --- a/packages/stellar-quickstart-up/package.json +++ b/packages/stellar-quickstart-up/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/stellar-quickstart-up", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/stellar-quickstart-up", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/storage-service/package.json b/packages/storage-service/package.json index fe72e209bc4..0f4056fec36 100644 --- a/packages/storage-service/package.json +++ b/packages/storage-service/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/storage-service", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/storage-service", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/subscription-controller/package.json b/packages/subscription-controller/package.json index 0a4ed875995..883ed5b7a3b 100644 --- a/packages/subscription-controller/package.json +++ b/packages/subscription-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/subscription-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/subscription-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/subscription-controller/tsconfig.build.json b/packages/subscription-controller/tsconfig.build.json index 5a0cb45d39d..3fad7c969bd 100644 --- a/packages/subscription-controller/tsconfig.build.json +++ b/packages/subscription-controller/tsconfig.build.json @@ -20,6 +20,9 @@ }, { "path": "../transaction-controller/tsconfig.build.json" + }, + { + "path": "../controller-utils/tsconfig.build.json" } ], "include": ["../../types", "./src"] diff --git a/packages/subscription-controller/tsconfig.json b/packages/subscription-controller/tsconfig.json index d31fdfc881c..507e3232137 100644 --- a/packages/subscription-controller/tsconfig.json +++ b/packages/subscription-controller/tsconfig.json @@ -18,6 +18,9 @@ }, { "path": "../transaction-controller" + }, + { + "path": "../controller-utils" } ], "include": ["../../types", "./src", "./tests"] diff --git a/packages/transaction-controller/package.json b/packages/transaction-controller/package.json index 0a4cb157ac7..53569d7f0e4 100644 --- a/packages/transaction-controller/package.json +++ b/packages/transaction-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/transaction-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/transaction-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/transaction-controller/tsconfig.build.json b/packages/transaction-controller/tsconfig.build.json index 4237bad0410..598ddf7d483 100644 --- a/packages/transaction-controller/tsconfig.build.json +++ b/packages/transaction-controller/tsconfig.build.json @@ -6,15 +6,42 @@ "rootDir": "./src" }, "references": [ - { "path": "../accounts-controller/tsconfig.build.json" }, - { "path": "../approval-controller/tsconfig.build.json" }, - { "path": "../base-controller/tsconfig.build.json" }, - { "path": "../controller-utils/tsconfig.build.json" }, - { "path": "../core-backend/tsconfig.build.json" }, - { "path": "../gas-fee-controller/tsconfig.build.json" }, - { "path": "../network-controller/tsconfig.build.json" }, - { "path": "../messenger/tsconfig.build.json" }, - { "path": "../remote-feature-flag-controller/tsconfig.build.json" } + { + "path": "../accounts-controller/tsconfig.build.json" + }, + { + "path": "../approval-controller/tsconfig.build.json" + }, + { + "path": "../base-controller/tsconfig.build.json" + }, + { + "path": "../controller-utils/tsconfig.build.json" + }, + { + "path": "../core-backend/tsconfig.build.json" + }, + { + "path": "../gas-fee-controller/tsconfig.build.json" + }, + { + "path": "../network-controller/tsconfig.build.json" + }, + { + "path": "../messenger/tsconfig.build.json" + }, + { + "path": "../remote-feature-flag-controller/tsconfig.build.json" + }, + { + "path": "../connectivity-controller/tsconfig.build.json" + }, + { + "path": "../eth-block-tracker/tsconfig.build.json" + }, + { + "path": "../eth-json-rpc-provider/tsconfig.build.json" + } ], "include": ["../../types", "./src"] } diff --git a/packages/transaction-controller/tsconfig.json b/packages/transaction-controller/tsconfig.json index 99b7f1f98e0..fd2cf57a53d 100644 --- a/packages/transaction-controller/tsconfig.json +++ b/packages/transaction-controller/tsconfig.json @@ -5,15 +5,42 @@ "target": "ES2022" }, "references": [ - { "path": "../accounts-controller" }, - { "path": "../approval-controller" }, - { "path": "../base-controller" }, - { "path": "../controller-utils" }, - { "path": "../core-backend" }, - { "path": "../gas-fee-controller" }, - { "path": "../network-controller" }, - { "path": "../messenger" }, - { "path": "../remote-feature-flag-controller" } + { + "path": "../accounts-controller" + }, + { + "path": "../approval-controller" + }, + { + "path": "../base-controller" + }, + { + "path": "../controller-utils" + }, + { + "path": "../core-backend" + }, + { + "path": "../gas-fee-controller" + }, + { + "path": "../network-controller" + }, + { + "path": "../messenger" + }, + { + "path": "../remote-feature-flag-controller" + }, + { + "path": "../connectivity-controller" + }, + { + "path": "../eth-block-tracker" + }, + { + "path": "../eth-json-rpc-provider" + } ], "include": ["../../types", "./src", "./tests"] } diff --git a/packages/transaction-pay-controller/package.json b/packages/transaction-pay-controller/package.json index 617bf7e7d3f..6315651885b 100644 --- a/packages/transaction-pay-controller/package.json +++ b/packages/transaction-pay-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/transaction-pay-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/transaction-pay-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "prepare-manifest:preview": "../../scripts/prepare-preview-manifest.sh", diff --git a/packages/transaction-pay-controller/tsconfig.build.json b/packages/transaction-pay-controller/tsconfig.build.json index a84e19992e4..eaf49a92586 100644 --- a/packages/transaction-pay-controller/tsconfig.build.json +++ b/packages/transaction-pay-controller/tsconfig.build.json @@ -15,12 +15,6 @@ { "path": "../base-controller/tsconfig.build.json" }, - { - "path": "../bridge-controller/tsconfig.build.json" - }, - { - "path": "../bridge-status-controller/tsconfig.build.json" - }, { "path": "../controller-utils/tsconfig.build.json" }, @@ -38,6 +32,12 @@ }, { "path": "../transaction-controller/tsconfig.build.json" + }, + { + "path": "../keyring-controller/tsconfig.build.json" + }, + { + "path": "../messenger/tsconfig.build.json" } ], "include": ["../../types", "./src"] diff --git a/packages/transaction-pay-controller/tsconfig.json b/packages/transaction-pay-controller/tsconfig.json index b366981c214..3bbce28fdd3 100644 --- a/packages/transaction-pay-controller/tsconfig.json +++ b/packages/transaction-pay-controller/tsconfig.json @@ -13,12 +13,6 @@ { "path": "../base-controller" }, - { - "path": "../bridge-controller" - }, - { - "path": "../bridge-status-controller" - }, { "path": "../controller-utils" }, @@ -36,6 +30,12 @@ }, { "path": "../transaction-controller" + }, + { + "path": "../keyring-controller" + }, + { + "path": "../messenger" } ], "include": ["../../types", "./src"] diff --git a/packages/user-operation-controller/package.json b/packages/user-operation-controller/package.json index d589935b395..ad7f0dbe8d6 100644 --- a/packages/user-operation-controller/package.json +++ b/packages/user-operation-controller/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/user-operation-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/user-operation-controller", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "prepare-manifest:preview": "../../scripts/prepare-preview-manifest.sh", diff --git a/packages/user-operation-controller/tsconfig.build.json b/packages/user-operation-controller/tsconfig.build.json index 51437a5055f..611b09adb4b 100644 --- a/packages/user-operation-controller/tsconfig.build.json +++ b/packages/user-operation-controller/tsconfig.build.json @@ -29,6 +29,12 @@ }, { "path": "../messenger/tsconfig.build.json" + }, + { + "path": "../approval-controller/tsconfig.build.json" + }, + { + "path": "../eth-block-tracker/tsconfig.build.json" } ], "include": ["../../types", "./src"] diff --git a/packages/user-operation-controller/tsconfig.json b/packages/user-operation-controller/tsconfig.json index f597f35bf69..0f686647267 100644 --- a/packages/user-operation-controller/tsconfig.json +++ b/packages/user-operation-controller/tsconfig.json @@ -27,6 +27,12 @@ }, { "path": "../messenger" + }, + { + "path": "../approval-controller" + }, + { + "path": "../eth-block-tracker" } ], "include": ["../../types", "./src"] diff --git a/packages/wallet-cli/package.json b/packages/wallet-cli/package.json index 48d576cb8c1..2023edb1647 100644 --- a/packages/wallet-cli/package.json +++ b/packages/wallet-cli/package.json @@ -35,6 +35,8 @@ "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", "changelog:update": "../../scripts/update-changelog.sh @metamask/wallet-cli", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/wallet-cli", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "since-latest-release": "../../scripts/since-latest-release.sh", "test": "yarn test:prepare && NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/wallet-cli/tsconfig.json b/packages/wallet-cli/tsconfig.json index 5f3efa9c6fe..d0fd77d3457 100644 --- a/packages/wallet-cli/tsconfig.json +++ b/packages/wallet-cli/tsconfig.json @@ -4,10 +4,18 @@ "baseUrl": "./" }, "references": [ - { "path": "../base-controller/tsconfig.json" }, - { "path": "../remote-feature-flag-controller/tsconfig.json" }, - { "path": "../storage-service/tsconfig.json" }, - { "path": "../wallet/tsconfig.json" } + { + "path": "../base-controller" + }, + { + "path": "../remote-feature-flag-controller" + }, + { + "path": "../storage-service" + }, + { + "path": "../wallet" + } ], "include": ["../../types", "./bin", "./src", "./tests"] } diff --git a/packages/wallet-framework-docs/package.json b/packages/wallet-framework-docs/package.json index 7e92d97dfb9..feef669264b 100644 --- a/packages/wallet-framework-docs/package.json +++ b/packages/wallet-framework-docs/package.json @@ -25,6 +25,8 @@ "changelog:update": "../../scripts/update-changelog.sh @metamask/wallet-framework-docs", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/wallet-framework-docs", "dev": "docusaurus start site", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts content --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts content --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/wallet/package.json b/packages/wallet/package.json index b6ec203257c..a31271b98a0 100644 --- a/packages/wallet/package.json +++ b/packages/wallet/package.json @@ -44,6 +44,8 @@ "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/wallet", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/wallet", + "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", + "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check", "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate", "since-latest-release": "../../scripts/since-latest-release.sh", diff --git a/packages/wallet/tsconfig.json b/packages/wallet/tsconfig.json index 24995af5a41..ce310304ecc 100644 --- a/packages/wallet/tsconfig.json +++ b/packages/wallet/tsconfig.json @@ -4,18 +4,42 @@ "baseUrl": "./" }, "references": [ - { "path": "../accounts-controller/tsconfig.json" }, - { "path": "../address-book-controller/tsconfig.json" }, - { "path": "../approval-controller/tsconfig.json" }, - { "path": "../base-controller/tsconfig.json" }, - { "path": "../connectivity-controller/tsconfig.json" }, - { "path": "../controller-utils/tsconfig.json" }, - { "path": "../keyring-controller/tsconfig.json" }, - { "path": "../messenger/tsconfig.json" }, - { "path": "../network-controller/tsconfig.json" }, - { "path": "../remote-feature-flag-controller/tsconfig.json" }, - { "path": "../storage-service/tsconfig.json" }, - { "path": "../transaction-controller/tsconfig.json" } + { + "path": "../accounts-controller" + }, + { + "path": "../address-book-controller" + }, + { + "path": "../approval-controller" + }, + { + "path": "../base-controller" + }, + { + "path": "../connectivity-controller" + }, + { + "path": "../controller-utils" + }, + { + "path": "../keyring-controller" + }, + { + "path": "../messenger" + }, + { + "path": "../network-controller" + }, + { + "path": "../remote-feature-flag-controller" + }, + { + "path": "../storage-service" + }, + { + "path": "../transaction-controller" + } ], "include": ["../../types", "./src"] } diff --git a/scripts/lint-tsconfigs/lint-package-tsconfigs.mts b/scripts/lint-tsconfigs/lint-package-tsconfigs.mts new file mode 100644 index 00000000000..e3d77708c4d --- /dev/null +++ b/scripts/lint-tsconfigs/lint-package-tsconfigs.mts @@ -0,0 +1,103 @@ +import type { + PackageManifest, + TsconfigLintMetaReport, + Workspaces, +} from './utils.mjs'; +import { + ensureTsconfigsUpdated, + getAllNonRootWorkspaces, + lintTsconfigs, + printReport, + readPackageManifest, + readTsconfig, +} from './utils.mjs'; + +/** + * Lints a package's tsconfig.json and tsconfig.build.json files to ensure they + * reference all workspace dependencies. Optionally fixes any issues found. + * + * @param options - The options object. + * @param options.packageRoot - The root directory of the package. + * @param options.repoRoot - The root directory of the repository. + * @param options.shouldFix - Whether to automatically fix issues. + * @returns `true` if no issues were found, `false` otherwise. + */ +export async function lintPackageTsconfigs({ + packageRoot, + repoRoot, + shouldFix, +}: { + packageRoot: string; + repoRoot: string; + shouldFix: boolean; +}): Promise { + const manifest = await readPackageManifest(packageRoot); + const workspaces = await getAllNonRootWorkspaces(repoRoot); + const tsconfigs = await Promise.all([ + readTsconfig(packageRoot, 'tsconfig.json'), + readTsconfig(packageRoot, 'tsconfig.build.json'), + ]); + const expectedPackageNames = getExpectedWorkspaceDependencies({ + manifest, + workspaces, + }); + const sortedExpectedWorkspaces = [...expectedPackageNames] + .sort((a, b) => a.localeCompare(b)) + .map((name) => { + const workspace = workspaces.byName.get(name); + if (!workspace) { + throw new Error(`Expected workspace not found for package: ${name}`); + } + return workspace; + }); + + let report: TsconfigLintMetaReport; + if (shouldFix) { + report = await ensureTsconfigsUpdated({ + workspaces: sortedExpectedWorkspaces, + tsconfigs, + repoRoot, + currentWorkspaceRoot: packageRoot, + }); + } else { + report = await lintTsconfigs({ + tsconfigs, + expectedPackageNames, + workspaces, + repoRoot, + currentWorkspaceRoot: packageRoot, + }); + } + + printReport(report); + + return report.didPass; +} + +/** + * Determines which workspace packages should be referenced in the tsconfig + * based on the package's dependencies and devDependencies. + * + * @param options - The options object. + * @param options.manifest - Contents of the package's `package.json` file. + * @param options.workspaces - The workspaces to iterate through. + * @returns A set of package names that should be referenced. + */ +function getExpectedWorkspaceDependencies({ + manifest, + workspaces, +}: { + manifest: PackageManifest; + workspaces: Workspaces; +}): Set { + const allDependencies = { + ...manifest.dependencies, + ...manifest.devDependencies, + }; + + return new Set( + Object.keys(allDependencies).filter((dependencyName) => + workspaces.names.has(dependencyName), + ), + ); +} diff --git a/scripts/lint-tsconfigs/lint-root-tsconfigs.mts b/scripts/lint-tsconfigs/lint-root-tsconfigs.mts new file mode 100644 index 00000000000..b0ba2016190 --- /dev/null +++ b/scripts/lint-tsconfigs/lint-root-tsconfigs.mts @@ -0,0 +1,53 @@ +import type { TsconfigLintMetaReport } from './utils.mjs'; +import { + ensureTsconfigsUpdated, + getAllNonRootWorkspaces, + lintTsconfigs, + printReport, + readTsconfig, +} from './utils.mjs'; + +/** + * Lints the root tsconfig.json and tsconfig.build.json files to ensure they + * reference all workspace packages. Optionally fixes any issues found. + * + * @param options - The options object. + * @param options.repoRoot - The root directory of the repository. + * @param options.shouldFix - Whether to automatically fix issues. + * @returns `true` if no issues were found, `false` otherwise. + */ +export async function lintRootTsconfigs({ + repoRoot, + shouldFix, +}: { + repoRoot: string; + shouldFix: boolean; +}): Promise { + const workspaces = await getAllNonRootWorkspaces(repoRoot); + const tsconfigs = await Promise.all([ + readTsconfig(repoRoot, 'tsconfig.json'), + readTsconfig(repoRoot, 'tsconfig.build.json'), + ]); + + let report: TsconfigLintMetaReport; + if (shouldFix) { + report = await ensureTsconfigsUpdated({ + workspaces: workspaces.list, + tsconfigs, + repoRoot, + currentWorkspaceRoot: repoRoot, + }); + } else { + report = await lintTsconfigs({ + tsconfigs, + expectedPackageNames: workspaces.names, + workspaces, + repoRoot, + currentWorkspaceRoot: repoRoot, + }); + } + + printReport(report); + + return report.didPass; +} diff --git a/scripts/lint-tsconfigs/lint-tsconfigs.mts b/scripts/lint-tsconfigs/lint-tsconfigs.mts new file mode 100644 index 00000000000..2c9d017ba0e --- /dev/null +++ b/scripts/lint-tsconfigs/lint-tsconfigs.mts @@ -0,0 +1,64 @@ +import { hasProperty } from '@metamask/utils'; +import fs from 'fs'; +import path from 'path'; + +import { lintPackageTsconfigs } from './lint-package-tsconfigs.mjs'; +import { lintRootTsconfigs } from './lint-root-tsconfigs.mjs'; +import { readPackageManifest } from './utils.mjs'; + +// Run this script! +await main(); + +/** + * Detects whether the script is being run from the repository root or from + * within a package, then lints the appropriate tsconfig files. + * + * When run from the root, lints only the root tsconfig pair. + * When run from a package, lints only that package's tsconfig pair. + */ +async function main(): Promise { + const cwd = process.cwd(); + const shouldFix = process.argv.includes('--fix'); + const manifest = await readPackageManifest(cwd); + + let didLintPass; + if (hasProperty(manifest, 'workspaces')) { + // We are in the root. + didLintPass = await lintRootTsconfigs({ repoRoot: cwd, shouldFix }); + } else { + // We are in a package. + const repoRoot = await getRepoRoot(cwd); + didLintPass = await lintPackageTsconfigs({ + packageRoot: cwd, + repoRoot, + shouldFix, + }); + } + + if (!didLintPass) { + // eslint-disable-next-line require-atomic-updates + process.exitCode = 1; + } +} + +/** + * Resolves the repository root by walking up from a package directory. + * + * @param packageRoot - The root directory of the package. + * @returns The nearest ancestor directory containing a package.json file. + */ +async function getRepoRoot(packageRoot: string): Promise { + let currentDirectory = path.dirname(packageRoot); + // The dirname of / is /. + while (currentDirectory !== path.dirname(currentDirectory)) { + const packageJsonPath = path.join(currentDirectory, 'package.json'); + try { + await fs.promises.access(packageJsonPath); + return currentDirectory; + } catch { + // Continue traversing up. + } + currentDirectory = path.dirname(currentDirectory); + } + return packageRoot; +} diff --git a/scripts/lint-tsconfigs/utils.mts b/scripts/lint-tsconfigs/utils.mts new file mode 100644 index 00000000000..731c3da3e8c --- /dev/null +++ b/scripts/lint-tsconfigs/utils.mts @@ -0,0 +1,598 @@ +import { readJsonFile, readFile } from '@metamask/utils/node'; +import * as commentJson from 'comment-json'; +import execa from 'execa'; +import fs from 'fs'; +import type { FormatConfig } from 'oxfmt'; +import { format as oxfmtFormat } from 'oxfmt'; +import path from 'path'; + +const REPO_ROOT = path.join(import.meta.dirname, '..', '..'); + +/** + * A Yarn workspace as returned by `yarn workspaces list`. + */ +export type Workspace = { + location: string; + name: string; +}; + +/** + * The collection of all workspaces in this repo, and various ways to access + * them. + */ +export type Workspaces = { + names: Set; + list: Workspace[]; + byName: Map; + byAbsolutePath: Map; +}; + +/** + * The content of a `package.json`, whether at the root level or package level. + */ +export type PackageManifest = { + name: string; + dependencies?: Record; + devDependencies?: Record; + private?: boolean; + workspaces?: string[]; +}; + +/** + * An object in the `references` field in a TypeScript config file. + */ +export type TsconfigReference = { path: string }; + +/** + * The content of a TypeScript config file. + */ +export type TsconfigContent = { + references?: readonly TsconfigReference[]; +}; + +/** + * Information about a TypeScript config file, including its content. + */ +export type Tsconfig = { + filePath: string; + fileName: string; + content: TsconfigContent; +}; + +/** + * The result after linting a TypeScript config file. + */ +export type TsconfigLintReport = { + missingReferencePaths: readonly string[]; + extraReferencePaths: readonly string[]; + didChange: boolean; +}; + +/** + * The result after linting all TypeScript config files across the repo. + */ +export type TsconfigLintMetaReport = { + didPass: boolean; + didApplyFixes: boolean; + byTsconfig: Map; +}; + +/** + * Returns all non-root Yarn workspaces keyed by package name. + * + * @param repoRoot - The root directory of the repository. + * @returns Three ways to work with the workspaces: as an array, as a map keyed + * by name, as a map keyed by absolute path. + */ +export async function getAllNonRootWorkspaces( + repoRoot: string, +): Promise { + const { stdout } = await execa('yarn', ['workspaces', 'list', '--json']); + + const lines = stdout.split('\n').filter((line) => line.trim() !== ''); + const allWorkspaces = lines.map((line) => JSON.parse(line) as Workspace); + const nonRootSortedWorkspaces = allWorkspaces + .filter((workspace) => workspace.location !== '.') + .sort((a, b) => a.name.localeCompare(b.name)); + + const workspacesByName = new Map( + nonRootSortedWorkspaces.map( + (workspace) => [workspace.name, workspace] as const, + ), + ); + const names = new Set(workspacesByName.keys()); + + const workspacesByAbsolutePath = new Map(); + for (const workspace of nonRootSortedWorkspaces) { + const workspaceAbsolutePath = path.resolve(repoRoot, workspace.location); + workspacesByAbsolutePath.set(workspaceAbsolutePath, workspace); + } + + return { + names, + list: nonRootSortedWorkspaces, + byName: workspacesByName, + byAbsolutePath: workspacesByAbsolutePath, + }; +} + +/** + * Reads and parses a package manifest from a package root directory. + * + * @param packageRoot - Absolute path to the package directory. + * @returns The parsed `package.json` contents. + */ +export async function readPackageManifest( + packageRoot: string, +): Promise { + const packageJsonPath = path.join(packageRoot, 'package.json'); + return await readJsonFile(packageJsonPath); +} + +/** + * Reads and parses a TypeScript config file and returns path metadata. + * + * @param directory - Where to find the tsconfig file. + * @param fileName - The path to the tsconfig file in the directory. + * @returns Parsed tsconfig content with absolute and relative paths. + */ +export async function readTsconfig( + directory: string, + fileName: string, +): Promise { + const filePath = path.join(directory, fileName); + const rawContent = await readFile(filePath); + return { + filePath, + fileName, + content: commentJson.parse(rawContent) as TsconfigContent, + }; +} + +/** + * Resolves a reference path inside of a tsconfig file to its TypeScript + * "project" directory (i.e., the same directory that the tsconfig file lives + * in). + * + * Handles both direct directory references (e.g. `../../accounts-controller/`) + * and references to specific tsconfig files + * (`../../accounts-controller/tsconfig.json`). + * + * @param referencePath - The reference path from the tsconfig. + * @param tsconfigPath - Path to the tsconfig file containing the reference. + * @returns The absolute path to the workspace directory. + */ +async function resolveTsconfigReferenceToTsProjectDirectory( + referencePath: string, + tsconfigPath: string, +): Promise { + const absoluteReferencePath = path.resolve( + path.dirname(tsconfigPath), + referencePath, + ); + + const stats = await fs.promises.stat(absoluteReferencePath); + if (stats.isFile()) { + return path.dirname(absoluteReferencePath); + } + return absoluteReferencePath; +} + +/** + * Extracts the workspace package names from the references in a tsconfig file. + * + * @param args - The arguments to this function. + * @param args.tsconfig - Parsed contents of the tsconfig file. + * @param args.workspaces - The workspaces to use as references. + * @returns A set of package names that are referenced in the tsconfig. + */ +async function getReferencedPackageNamesFromTsconfigFile({ + tsconfig, + workspaces, +}: { + tsconfig: Tsconfig; + workspaces: Workspaces; +}): Promise> { + const packageNames = new Set(); + + for (const reference of tsconfig.content.references ?? []) { + const tsProjectAbsolutePath = + await resolveTsconfigReferenceToTsProjectDirectory( + reference.path, + tsconfig.filePath, + ); + const workspace = workspaces.byAbsolutePath.get(tsProjectAbsolutePath); + if (workspace) { + packageNames.add(workspace.name); + } else { + throw new Error( + `Error parsing tsconfig ${tsconfig.fileName}: Could not resolve reference to workspace: ${reference.path}`, + ); + } + } + + return packageNames; +} + +/** + * Computes the expected reference path for a workspace within a tsconfig file. + * + * Note if the file is `tsconfig.json`, we drop the trailing `/tsconfig.json` + * from the reference path. + * + * @param args - The arguments to this function. + * @param args.workspace - The workspace to compute the path for. + * @param args.tsconfig - The tsconfig file to compute the path relative to. + * @param args.repoRoot - The root directory of the repository. + * @param args.currentWorkspaceRoot - The directory containing the tsconfig file. + * @returns The expected reference path string. + */ +function getExpectedReferencePath({ + workspace, + tsconfig, + repoRoot, + currentWorkspaceRoot, +}: { + workspace: Workspace; + tsconfig: Tsconfig; + repoRoot: string; + currentWorkspaceRoot: string; +}): string { + const absoluteWorkspacePath = path.resolve(repoRoot, workspace.location); + const relativeWorkspacePath = path.relative( + currentWorkspaceRoot, + absoluteWorkspacePath, + ); + const prefixedRelativePath = relativeWorkspacePath.startsWith('..') + ? relativeWorkspacePath + : `./${relativeWorkspacePath}`; + if (tsconfig.fileName === 'tsconfig.json') { + return prefixedRelativePath; + } + return `${prefixedRelativePath}/${tsconfig.fileName}`; +} + +/** + * Compares the references in a tsconfig file against expected package names. + * + * @param args - The arguments to this function. + * @param args.tsconfig - Parsed contents of the tsconfig file. + * @param args.expectedPackageNames - Package names that should be referenced. + * @param args.workspaces - The workspaces to use as reference. + * @param args.repoRoot - The root directory of the repository. + * @param args.currentWorkspaceRoot - The directory containing the tsconfig file. + * @returns Missing and extra reference paths for the tsconfig. + */ +export async function lintTsconfig({ + tsconfig, + expectedPackageNames, + workspaces, + repoRoot, + currentWorkspaceRoot, +}: { + tsconfig: Tsconfig; + expectedPackageNames: Set; + workspaces: Workspaces; + repoRoot: string; + currentWorkspaceRoot: string; +}): Promise { + const actualPackageNames = await getReferencedPackageNamesFromTsconfigFile({ + tsconfig, + workspaces, + }); + + const missingReferencePaths = [...expectedPackageNames] + .filter((name) => !actualPackageNames.has(name)) + .sort() + .map((name) => { + const workspace = workspaces.byName.get(name); + if (!workspace) { + throw new Error(`Expected workspace not found for package: ${name}`); + } + return getExpectedReferencePath({ + workspace, + tsconfig, + repoRoot, + currentWorkspaceRoot, + }); + }); + + const extraReferencePaths = [...actualPackageNames] + .filter((name) => !expectedPackageNames.has(name)) + .sort() + .map((name) => { + const workspace = workspaces.byName.get(name); + if (!workspace) { + throw new Error(`Expected workspace not found for package: ${name}`); + } + return getExpectedReferencePath({ + workspace, + tsconfig, + repoRoot, + currentWorkspaceRoot, + }); + }); + + return { missingReferencePaths, extraReferencePaths, didChange: false }; +} + +/** + * Checks for issues in the given tsconfig files. + * + * @param args - The arguments to this function. + * @param args.tsconfigs - The parsed tsconfigs to check. + * @param args.expectedPackageNames - Package names that should be referenced. + * @param args.workspaces - The workspaces to use as references. + * @param args.repoRoot - The root directory of the repository. + * @param args.currentWorkspaceRoot - The directory containing the tsconfig files. + * @returns A report for each tsconfig file (i.e., an object keyed by the + * tsconfig filename which contains issues). + */ +export async function lintTsconfigs({ + tsconfigs, + expectedPackageNames, + workspaces, + repoRoot, + currentWorkspaceRoot, +}: { + tsconfigs: Tsconfig[]; + expectedPackageNames: Set; + workspaces: Workspaces; + repoRoot: string; + currentWorkspaceRoot: string; +}): Promise { + const results = await Promise.all( + tsconfigs.map(async (tsconfig) => { + const report = await lintTsconfig({ + tsconfig, + expectedPackageNames, + workspaces, + repoRoot, + currentWorkspaceRoot, + }); + return [tsconfig, report] as const; + }), + ); + const byTsconfig = new Map(results); + const didPass = results.every( + ([, report]) => + report.missingReferencePaths.length === 0 && + report.extraReferencePaths.length === 0, + ); + return { didPass, didApplyFixes: false, byTsconfig }; +} + +/** + * Normalizes a tsconfig reference path to a bare directory path for + * comparison purposes, by stripping a trailing `/tsconfig.json` suffix if + * present. This allows existing references that use explicit file paths (e.g. + * `../foo/tsconfig.json`) to be matched against canonical bare-directory paths + * (e.g. `../foo`). + * + * @param refPath - The reference path to normalize. + * @returns The normalized path. + */ +function normalizeReferencePath(refPath: string): string { + return refPath.replace(/\/tsconfig\.json$/u, ''); +} + +/** + * Produces an updated `references` list within a tsconfig file that preserves + * the order of existing references, removes extras, and adds missing ones in + * the order they appear in `newReferences`. + * + * @param currentReferences - The references currently in the tsconfig file. + * @param newReferences - The complete desired set of references. + * @returns The merged references list. + */ +function mergeReferences( + currentReferences: readonly TsconfigReference[], + newReferences: readonly TsconfigReference[], +): TsconfigReference[] { + const currentNormalizedPaths = new Set( + currentReferences.map((ref) => normalizeReferencePath(ref.path)), + ); + const newReferencesByNormalizedPath = new Map( + newReferences.map((ref) => [normalizeReferencePath(ref.path), ref]), + ); + + // Keep existing references that are still valid, replacing them with the + // canonical form from newReferences. + const keptReferences = currentReferences + .map((ref) => + newReferencesByNormalizedPath.get(normalizeReferencePath(ref.path)), + ) + .filter((ref): ref is TsconfigReference => ref !== undefined); + + // Append new references that aren't already present. + const addedReferences = newReferences.filter( + (ref) => !currentNormalizedPaths.has(normalizeReferencePath(ref.path)), + ); + + return [...keptReferences, ...addedReferences]; +} + +/** + * Determines whether two reference lists are equivalent, i.e. they contain + * the same paths in the same order. + * + * @param referencesA - The first list of references. + * @param referencesB - The second list of references. + * @returns `true` if the two lists contain the same paths in the same order. + */ +function areReferencesEqual( + referencesA: readonly TsconfigReference[], + referencesB: readonly TsconfigReference[], +): boolean { + return ( + referencesA.length === referencesB.length && + referencesA.every((reference, index) => { + return reference.path === referencesB[index]?.path; + }) + ); +} + +/** + * Updates the given tsconfig file to reference all of the given workspace + * packages, preserving the existing order of references and appending any + * missing ones in alphabetical order. Updates the formatting of the file to + * appease Oxfmt if necessary. + * + * @param args - The arguments to this function. + * @param args.tsconfig - Parsed tsconfig file to update. + * @param args.workspaces - Workspaces to update the file with. + * @param args.repoRoot - The path to the whole repository + * @param args.currentWorkspaceRoot - The path to the current workspace (the + * root of the repository or the path to a package within it). + * @returns `true` if the tsconfig file's contents were changed, `false` + * otherwise. + */ +async function ensureTsconfigUpdated({ + tsconfig, + workspaces, + repoRoot, + currentWorkspaceRoot, +}: { + tsconfig: Tsconfig; + workspaces: Workspace[]; + repoRoot: string; + currentWorkspaceRoot: string; +}): Promise { + const currentReferences = tsconfig.content.references ?? []; + const expectedReferences = workspaces.map((workspace) => ({ + path: getExpectedReferencePath({ + workspace, + tsconfig, + repoRoot, + currentWorkspaceRoot, + }), + })); + const newReferences = mergeReferences(currentReferences, expectedReferences); + + // If the references haven't changed, then there's no need to reformat and + // rewrite the file, even if its current formatting doesn't match Oxfmt. + if (areReferencesEqual(currentReferences, newReferences)) { + return false; + } + + const oxfmtRc = (await import( + path.join(REPO_ROOT, '.oxfmtrc.json') + )) as FormatConfig; + const updatedContent = commentJson.stringify( + commentJson.assign(tsconfig.content, { references: [...newReferences] }), + null, + 2, + ); + const { code: updatedFormattedContent, errors } = await oxfmtFormat( + tsconfig.fileName, + updatedContent, + oxfmtRc, + ); + if (errors.length > 0) { + throw new Error( + `Failed to format ${tsconfig.fileName} with Oxfmt: ${errors.map((error) => error.message).join('; ')}`, + ); + } + + await fs.promises.writeFile(tsconfig.filePath, updatedFormattedContent); + return true; +} + +/** + * Updates the given tsconfig files to reference the given workspace packages, + * preserving the existing order of references and appending any missing ones + * in alphabetical order. + * + * @param args - The arguments to this function. + * @param args.tsconfigs - Parsed tsconfig files. + * @param args.workspaces - The workspaces to use. + * @param args.repoRoot - The path to the whole repository + * @param args.currentWorkspaceRoot - The path to the current workspace (the + * root of the repository or the path to a package within it). + * @returns A report for each tsconfig file (i.e., an object keyed by the + * tsconfig filename which indicates whether its contents were changed). + */ +export async function ensureTsconfigsUpdated({ + tsconfigs, + workspaces, + repoRoot, + currentWorkspaceRoot, +}: { + tsconfigs: Tsconfig[]; + workspaces: Workspace[]; + repoRoot: string; + currentWorkspaceRoot: string; +}): Promise { + const byTsconfig = new Map( + await Promise.all( + tsconfigs.map(async (tsconfig) => { + const didChange = await ensureTsconfigUpdated({ + tsconfig, + workspaces, + repoRoot, + currentWorkspaceRoot, + }); + const report: TsconfigLintReport = { + missingReferencePaths: [], + extraReferencePaths: [], + didChange, + }; + return [tsconfig, report] as const; + }), + ), + ); + + return { + didPass: true, + didApplyFixes: true, + byTsconfig, + }; +} + +/** + * Prints the results from linting tsconfig files (i.e., whether issues were + * found or not, and if so, what they were). + * + * @param metaReport - The report to print (includes all tsconfigs linted). + */ +export function printReport(metaReport: TsconfigLintMetaReport): void { + if (metaReport.didApplyFixes) { + for (const [tsconfig, report] of metaReport.byTsconfig.entries()) { + if (report.didChange) { + console.log( + `✅ Updated ${tsconfig.fileName} so all references now match dependencies.`, + ); + } else { + console.log(`ℹ️ ${tsconfig.fileName} already up to date.`); + } + } + return; + } + + for (const [tsconfig, report] of metaReport.byTsconfig.entries()) { + if ( + report.missingReferencePaths.length === 0 && + report.extraReferencePaths.length === 0 + ) { + console.log( + `✅ No issues detected within ${tsconfig.fileName}. Good job!`, + ); + } else { + console.log( + `❌ Detected the following issues within ${tsconfig.fileName}:`, + ); + for (const referencePath of report.missingReferencePaths) { + console.log(` - Missing reference: \`${referencePath}\``); + } + for (const referencePath of report.extraReferencePaths) { + console.log(` - Unnecessary reference: \`${referencePath}\``); + } + } + } + + if (!metaReport.didPass) { + console.log( + '\nYou can run `yarn workspace run lint:tsconfigs:fix` or `yarn run lint:tsconfigs:fix:all` to quickly fix these issues.', + ); + } +} diff --git a/tsconfig.json b/tsconfig.json index 0dba10ed9a5..19556f59840 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -278,6 +278,18 @@ { "path": "./packages/user-operation-controller" }, + { + "path": "./packages/eip-5792-middleware" + }, + { + "path": "./packages/eip-7702-internal-rpc-middleware" + }, + { + "path": "./packages/logging-controller" + }, + { + "path": "./packages/storage-service" + }, { "path": "./packages/wallet" }, diff --git a/yarn.config.cjs b/yarn.config.cjs index 9c8b14ac4f1..c3bf8a25688 100644 --- a/yarn.config.cjs +++ b/yarn.config.cjs @@ -208,6 +208,19 @@ module.exports = defineConfig({ 'scripts.test:watch', 'NODE_OPTIONS=--experimental-vm-modules jest --watch', ); + + // All non-root packages must have scripts that lint-check tsconfig + // project references for this package. + expectWorkspaceField( + workspace, + 'scripts.lint:tsconfigs', + 'tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts', + ); + expectWorkspaceField( + workspace, + 'scripts.lint:tsconfigs:fix', + 'tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix', + ); } if (isChildWorkspace) { @@ -222,6 +235,10 @@ module.exports = defineConfig({ expectWorkspaceField(workspace, 'files', []); } + // All packages must have tsx as a dev dependency. (This is required to + // run various TypeScript scripts.) + expectWorkspaceField(workspace, 'devDependencies["tsx"]'); + // If one workspace package lists another workspace package within // `dependencies` or `devDependencies`, the version used within the // dependency range must match the current version of the dependency. diff --git a/yarn.lock b/yarn.lock index b605058245e..278483301aa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5632,6 +5632,7 @@ __metadata: deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" ts-jest: "npm:^29.2.5" + tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" @@ -5877,6 +5878,7 @@ __metadata: immer: "npm:^9.0.6" jest: "npm:^29.7.0" ts-jest: "npm:^29.2.5" + tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" @@ -6030,6 +6032,7 @@ __metadata: deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" ts-jest: "npm:^29.2.5" + tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" @@ -6053,6 +6056,7 @@ __metadata: jest: "npm:^29.7.0" lodash: "npm:^4.17.21" ts-jest: "npm:^29.2.5" + tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" @@ -6076,6 +6080,7 @@ __metadata: jest: "npm:^29.7.0" nock: "npm:^13.3.1" ts-jest: "npm:^29.2.5" + tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" @@ -6187,6 +6192,7 @@ __metadata: immer: "npm:^9.0.6" jest: "npm:^29.7.0" ts-jest: "npm:^29.2.5" + tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" @@ -6296,6 +6302,7 @@ __metadata: lodash: "npm:^4.17.21" nock: "npm:^13.3.1" ts-jest: "npm:^29.2.5" + tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" @@ -6492,6 +6499,7 @@ __metadata: "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/keyring-controller": "npm:^27.1.0" "@metamask/messenger": "npm:^2.0.0" + "@metamask/preferences-controller": "npm:^23.1.0" "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/superstruct": "npm:^3.1.0" "@metamask/transaction-controller": "npm:^69.0.0" @@ -6503,6 +6511,7 @@ __metadata: klona: "npm:^2.0.6" lodash: "npm:^4.17.21" ts-jest: "npm:^29.2.5" + tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" @@ -6524,6 +6533,7 @@ __metadata: deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" ts-jest: "npm:^29.2.5" + tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" @@ -6547,6 +6557,7 @@ __metadata: jest: "npm:^29.7.0" lodash: "npm:^4.17.21" ts-jest: "npm:^29.2.5" + tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" @@ -6656,6 +6667,7 @@ __metadata: jest: "npm:^29.7.0" json-rpc-random-id: "npm:^1.0.1" ts-jest: "npm:^29.2.5" + tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" @@ -6727,6 +6739,7 @@ __metadata: jest: "npm:^29.7.0" klona: "npm:^2.0.6" safe-stable-stringify: "npm:^2.4.3" + tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" typescript: "npm:~5.3.3" languageName: unknown @@ -6763,6 +6776,7 @@ __metadata: jest: "npm:^29.7.0" nanoid: "npm:^3.3.8" ts-jest: "npm:^29.2.5" + tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" typescript: "npm:~5.3.3" languageName: unknown @@ -7007,6 +7021,7 @@ __metadata: nock: "npm:^13.3.1" tar: "npm:^7.4.3" ts-jest: "npm:^29.2.5" + tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" @@ -7144,6 +7159,7 @@ __metadata: jest: "npm:^29.7.0" klona: "npm:^2.0.6" ts-jest: "npm:^29.2.5" + tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" typescript: "npm:~5.3.3" languageName: unknown @@ -7165,6 +7181,7 @@ __metadata: jest: "npm:^29.7.0" readable-stream: "npm:^3.6.2" ts-jest: "npm:^29.2.5" + tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" @@ -7209,6 +7226,7 @@ __metadata: "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/base-controller": "npm:^9.1.0" "@metamask/browser-passworder": "npm:^6.0.0" + "@metamask/controller-utils": "npm:^12.3.0" "@metamask/eth-hd-keyring": "npm:^14.1.1" "@metamask/eth-sig-util": "npm:^8.2.0" "@metamask/eth-simple-keyring": "npm:^12.0.2" @@ -7380,6 +7398,7 @@ __metadata: jest: "npm:^29.7.0" jsonschema: "npm:^1.4.1" ts-jest: "npm:^29.2.5" + tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" @@ -7402,6 +7421,7 @@ __metadata: oxfmt: "npm:^0.44.0" prettier: "npm:^3.3.3" ts-jest: "npm:^29.2.5" + tsx: "npm:^4.20.5" typescript: "npm:~5.3.3" yargs: "npm:^17.7.2" peerDependencies: @@ -7444,6 +7464,7 @@ __metadata: immer: "npm:^9.0.6" jest: "npm:^29.7.0" ts-jest: "npm:^29.2.5" + tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" @@ -7638,6 +7659,7 @@ __metadata: jest: "npm:^29.7.0" jsonschema: "npm:^1.4.1" ts-jest: "npm:^29.2.5" + tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" @@ -8122,6 +8144,7 @@ __metadata: fast-json-stable-stringify: "npm:^2.1.0" jest: "npm:^29.7.0" ts-jest: "npm:^29.2.5" + tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" @@ -8293,6 +8316,7 @@ __metadata: deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" ts-jest: "npm:^29.2.5" + tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" @@ -8314,6 +8338,7 @@ __metadata: deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" ts-jest: "npm:^29.2.5" + tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3"