From bb41a72ce484e3500c9ac0c88274cb582093bb71 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 12:43:48 +0200 Subject: [PATCH 001/136] Replace `ts-bridge` with `tsc` for building packages Switch from `@ts-bridge/cli` to standard `tsc` with TypeScript project references for building all packages. --- .yarnrc.yml | 1 - docs/processes/building.md | 2 - package.json | 3 +- packages/account-tree-controller/package.json | 5 +- packages/accounts-controller/package.json | 5 +- packages/address-book-controller/package.json | 5 +- packages/ai-controllers/package.json | 5 +- packages/analytics-controller/package.json | 5 +- .../package.json | 5 +- packages/announcement-controller/package.json | 5 +- packages/app-metadata-controller/package.json | 5 +- packages/approval-controller/package.json | 5 +- packages/assets-controller/package.json | 5 +- packages/assets-controllers/package.json | 5 +- .../authenticated-user-storage/package.json | 5 +- packages/base-controller/package.json | 5 +- packages/base-data-service/package.json | 5 +- packages/bitcoin-regtest-up/package.json | 5 +- packages/bridge-controller/package.json | 5 +- .../bridge-status-controller/package.json | 5 +- packages/build-utils/package.json | 5 +- .../chain-agnostic-permission/package.json | 5 +- packages/chomp-api-service/package.json | 5 +- packages/claims-controller/package.json | 5 +- packages/client-controller/package.json | 5 +- packages/client-utils/package.json | 5 +- packages/compliance-controller/package.json | 5 +- packages/composable-controller/package.json | 5 +- .../config-registry-controller/package.json | 5 +- packages/connectivity-controller/package.json | 5 +- packages/controller-utils/package.json | 5 +- packages/core-backend/package.json | 5 +- packages/delegation-controller/package.json | 5 +- packages/earn-controller/package.json | 5 +- packages/eip-5792-middleware/package.json | 5 +- .../package.json | 5 +- .../package.json | 5 +- packages/ens-controller/package.json | 5 +- packages/eth-block-tracker/package.json | 5 +- packages/eth-json-rpc-middleware/package.json | 5 +- packages/eth-json-rpc-provider/package.json | 5 +- packages/foundryup/package.json | 5 +- packages/gas-fee-controller/package.json | 5 +- .../gator-permissions-controller/package.json | 5 +- packages/geolocation-controller/package.json | 5 +- packages/java-tron-up/package.json | 5 +- packages/json-rpc-engine/package.json | 5 +- .../json-rpc-middleware-stream/package.json | 5 +- packages/keyring-controller/package.json | 5 +- packages/local-node-utils/package.json | 5 +- packages/logging-controller/package.json | 5 +- packages/message-manager/package.json | 5 +- packages/messenger-cli/package.json | 5 +- packages/messenger/package.json | 5 +- .../package.json | 5 +- .../package.json | 5 +- .../money-account-controller/package.json | 5 +- .../package.json | 5 +- .../multichain-account-service/package.json | 5 +- .../multichain-api-middleware/package.json | 5 +- .../package.json | 5 +- .../package.json | 5 +- packages/name-controller/package.json | 5 +- .../package.json | 5 +- packages/network-controller/package.json | 5 +- .../package.json | 5 +- .../package.json | 5 +- packages/passkey-controller/package.json | 5 +- packages/permission-controller/package.json | 5 +- .../permission-log-controller/package.json | 5 +- packages/perps-controller/package.json | 5 +- packages/phishing-controller/package.json | 5 +- packages/platform-api-docs/package.json | 5 +- packages/polling-controller/package.json | 5 +- packages/preferences-controller/package.json | 5 +- .../profile-metrics-controller/package.json | 5 +- packages/profile-sync-controller/package.json | 5 +- packages/ramps-controller/package.json | 5 +- packages/rate-limit-controller/package.json | 5 +- packages/react-data-query/package.json | 5 +- .../package.json | 5 +- packages/sample-controllers/package.json | 5 +- .../package.json | 5 +- .../selected-network-controller/package.json | 5 +- packages/sentinel-api-service/package.json | 5 +- packages/shield-controller/package.json | 5 +- packages/signature-controller/package.json | 5 +- .../package.json | 5 +- packages/snap-account-service/package.json | 5 +- packages/social-controllers/package.json | 5 +- .../solana-test-validator-up/package.json | 5 +- packages/stellar-quickstart-up/package.json | 5 +- packages/storage-service/package.json | 5 +- packages/subscription-controller/package.json | 5 +- packages/transaction-controller/package.json | 5 +- .../transaction-pay-controller/package.json | 5 +- .../user-operation-controller/package.json | 5 +- packages/wallet-cli/package.json | 5 +- packages/wallet/package.json | 5 +- .../package-template/package.json | 5 +- tsconfig.packages.build.json | 1 - yarn.config.cjs | 6 +- yarn.lock | 123 +----------------- 103 files changed, 199 insertions(+), 422 deletions(-) diff --git a/.yarnrc.yml b/.yarnrc.yml index 03ae3081348..4c0e4f39a5a 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -27,7 +27,6 @@ npmPreapprovedPackages: - "@metamask/*" - "@metamask-previews/*" - "@lavamoat/*" - - "@ts-bridge/*" plugins: - path: .yarn/plugins/@yarnpkg/plugin-allow-scripts.cjs diff --git a/docs/processes/building.md b/docs/processes/building.md index a4f1629331d..6618b6fe18f 100644 --- a/docs/processes/building.md +++ b/docs/processes/building.md @@ -1,7 +1,5 @@ # Building packages -[`ts-bridge`](https://github.com/ts-bridge/ts-bridge) is used to build packages in both CommonJS- and ESM-compatible formats. - Built files show up in the `dist/` directory in each package. These are the files which will ultimately be published to NPM. - Run `yarn build` to build all packages in the monorepo. diff --git a/package.json b/package.json index c10e77ec718..4c7aea38cc4 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ ], "files": [], "scripts": { - "build": "yarn ts-bridge --project tsconfig.build.json --verbose", + "build": "yarn tsc --build tsconfig.build.json --verbose", "build:clean": "yarn build:only-clean && yarn build", "build:docs": "yarn workspaces foreach --all --no-private --parallel --interlaced --verbose run build:docs", "build:only-clean": "rimraf -g 'packages/*/dist'", @@ -68,7 +68,6 @@ "@metamask/network-controller": "^34.0.0", "@metamask/skills": "^0.1.0", "@metamask/utils": "^11.11.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "@types/lodash": "^4.14.191", "@types/node": "^16.18.54", diff --git a/packages/account-tree-controller/package.json b/packages/account-tree-controller/package.json index 1bbaadd0af9..ee7247d53ba 100644 --- a/packages/account-tree-controller/package.json +++ b/packages/account-tree-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/account-tree-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/account-tree-controller", @@ -74,7 +74,6 @@ "@metamask/account-api": "^1.0.4", "@metamask/auto-changelog": "^6.1.0", "@metamask/providers": "^22.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/accounts-controller/package.json b/packages/accounts-controller/package.json index 07642c438f2..b9f2c670524 100644 --- a/packages/accounts-controller/package.json +++ b/packages/accounts-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/accounts-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/accounts-controller", @@ -77,7 +77,6 @@ "@metamask/auto-changelog": "^6.1.0", "@metamask/controller-utils": "^12.3.0", "@metamask/providers": "^22.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "@types/readable-stream": "^2.3.0", "jest": "^29.7.0", diff --git a/packages/address-book-controller/package.json b/packages/address-book-controller/package.json index 1e60d53476f..57e58ff08ad 100644 --- a/packages/address-book-controller/package.json +++ b/packages/address-book-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/address-book-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/address-book-controller", @@ -62,7 +62,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/ai-controllers/package.json b/packages/ai-controllers/package.json index cb55d5708fa..ef2fa0b9b35 100644 --- a/packages/ai-controllers/package.json +++ b/packages/ai-controllers/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/ai-controllers", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/ai-controllers", @@ -62,7 +62,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/analytics-controller/package.json b/packages/analytics-controller/package.json index 0c8a5790f23..f73901c0926 100644 --- a/packages/analytics-controller/package.json +++ b/packages/analytics-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/analytics-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/analytics-controller", @@ -63,7 +63,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "@types/uuid": "^8.3.0", "deepmerge": "^4.2.2", diff --git a/packages/analytics-data-regulation-controller/package.json b/packages/analytics-data-regulation-controller/package.json index c76d5751f40..2953b85a5d5 100644 --- a/packages/analytics-data-regulation-controller/package.json +++ b/packages/analytics-data-regulation-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "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", @@ -62,7 +62,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/announcement-controller/package.json b/packages/announcement-controller/package.json index 624f180e164..8bd69d09302 100644 --- a/packages/announcement-controller/package.json +++ b/packages/announcement-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/announcement-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/announcement-controller", @@ -60,7 +60,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/app-metadata-controller/package.json b/packages/app-metadata-controller/package.json index 95e6f122334..7f5d24f151c 100644 --- a/packages/app-metadata-controller/package.json +++ b/packages/app-metadata-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/app-metadata-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/app-metadata-controller", @@ -58,7 +58,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/approval-controller/package.json b/packages/approval-controller/package.json index ad90795c789..764009b16ce 100644 --- a/packages/approval-controller/package.json +++ b/packages/approval-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/approval-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/approval-controller", @@ -63,7 +63,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/assets-controller/package.json b/packages/assets-controller/package.json index 5bedcd3d328..7395776b120 100644 --- a/packages/assets-controller/package.json +++ b/packages/assets-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/assets-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/assets-controller", @@ -88,7 +88,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "@types/lodash": "^4.14.191", "deepmerge": "^4.2.2", diff --git a/packages/assets-controllers/package.json b/packages/assets-controllers/package.json index d8f1f9478af..11b710ce30f 100644 --- a/packages/assets-controllers/package.json +++ b/packages/assets-controllers/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/assets-controllers", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/assets-controllers", @@ -110,7 +110,6 @@ "@metamask/keyring-internal-api": "^11.0.1", "@metamask/keyring-snap-client": "^9.2.0", "@metamask/providers": "^22.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "@types/lodash": "^4.14.191", "@types/node": "^16.18.54", diff --git a/packages/authenticated-user-storage/package.json b/packages/authenticated-user-storage/package.json index 14073a68c11..13f2cda2a30 100644 --- a/packages/authenticated-user-storage/package.json +++ b/packages/authenticated-user-storage/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/authenticated-user-storage", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/authenticated-user-storage", @@ -63,7 +63,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/base-controller/package.json b/packages/base-controller/package.json index 232fb6da728..784e3763e1b 100644 --- a/packages/base-controller/package.json +++ b/packages/base-controller/package.json @@ -38,8 +38,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/base-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/base-controller", @@ -58,7 +58,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/base-data-service/package.json b/packages/base-data-service/package.json index 408c32fd90c..2c98d49302d 100644 --- a/packages/base-data-service/package.json +++ b/packages/base-data-service/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/base-data-service", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/base-data-service", @@ -66,7 +66,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "@types/lodash": "^4.14.191", "deepmerge": "^4.2.2", diff --git a/packages/bitcoin-regtest-up/package.json b/packages/bitcoin-regtest-up/package.json index 2f9827693a5..0119bacd238 100644 --- a/packages/bitcoin-regtest-up/package.json +++ b/packages/bitcoin-regtest-up/package.json @@ -40,8 +40,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/bitcoin-regtest-up", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/bitcoin-regtest-up", @@ -60,7 +60,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/bridge-controller/package.json b/packages/bridge-controller/package.json index 329871eb235..73632c206cb 100644 --- a/packages/bridge-controller/package.json +++ b/packages/bridge-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/bridge-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/bridge-controller", @@ -84,7 +84,6 @@ "@metamask/auto-changelog": "^6.1.0", "@metamask/eth-json-rpc-provider": "^6.0.1", "@metamask/superstruct": "^3.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/bridge-status-controller/package.json b/packages/bridge-status-controller/package.json index a8188afd042..2d9303f82ee 100644 --- a/packages/bridge-status-controller/package.json +++ b/packages/bridge-status-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/bridge-status-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/bridge-status-controller", @@ -73,7 +73,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/build-utils/package.json b/packages/build-utils/package.json index 66c69139339..07983162711 100644 --- a/packages/build-utils/package.json +++ b/packages/build-utils/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/build-utils", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/build-utils", @@ -58,7 +58,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/chain-agnostic-permission/package.json b/packages/chain-agnostic-permission/package.json index 5e34d38a07a..8c5f4081b24 100644 --- a/packages/chain-agnostic-permission/package.json +++ b/packages/chain-agnostic-permission/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/chain-agnostic-permission", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/chain-agnostic-permission", @@ -63,7 +63,6 @@ "devDependencies": { "@metamask/auto-changelog": "^6.1.0", "@metamask/keyring-internal-api": "^11.0.1", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/chomp-api-service/package.json b/packages/chomp-api-service/package.json index 8b2de092168..0fddbb3b7ab 100644 --- a/packages/chomp-api-service/package.json +++ b/packages/chomp-api-service/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/chomp-api-service", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/chomp-api-service", @@ -62,7 +62,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/claims-controller/package.json b/packages/claims-controller/package.json index aa74f3a0eb8..1bc62081ecf 100644 --- a/packages/claims-controller/package.json +++ b/packages/claims-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/claims-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/claims-controller", @@ -64,7 +64,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/client-controller/package.json b/packages/client-controller/package.json index 04a30f94d35..1291dd31351 100644 --- a/packages/client-controller/package.json +++ b/packages/client-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/client-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/client-controller", @@ -60,7 +60,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/client-utils/package.json b/packages/client-utils/package.json index 6da53027071..4cb897aab4c 100644 --- a/packages/client-utils/package.json +++ b/packages/client-utils/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/client-utils", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/client-utils", @@ -65,7 +65,6 @@ "devDependencies": { "@ethersproject/abi": "^5.7.0", "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/compliance-controller/package.json b/packages/compliance-controller/package.json index 00b600c426e..6ebabb5e548 100644 --- a/packages/compliance-controller/package.json +++ b/packages/compliance-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/compliance-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/compliance-controller", @@ -64,7 +64,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/composable-controller/package.json b/packages/composable-controller/package.json index 1d934351e4b..1516232f332 100644 --- a/packages/composable-controller/package.json +++ b/packages/composable-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/composable-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/composable-controller", @@ -59,7 +59,6 @@ "devDependencies": { "@metamask/auto-changelog": "^6.1.0", "@metamask/json-rpc-engine": "^10.5.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "immer": "^9.0.6", diff --git a/packages/config-registry-controller/package.json b/packages/config-registry-controller/package.json index d1f41b7c66d..41591f5dba5 100644 --- a/packages/config-registry-controller/package.json +++ b/packages/config-registry-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/config-registry-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/config-registry-controller", @@ -70,7 +70,6 @@ "devDependencies": { "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/connectivity-controller/package.json b/packages/connectivity-controller/package.json index 572ed638b63..8f77f6d2fa2 100644 --- a/packages/connectivity-controller/package.json +++ b/packages/connectivity-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/connectivity-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/connectivity-controller", @@ -61,7 +61,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/controller-utils/package.json b/packages/controller-utils/package.json index e76dfc53bd6..55f9d86aa80 100644 --- a/packages/controller-utils/package.json +++ b/packages/controller-utils/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/controller-utils", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/controller-utils", @@ -69,7 +69,6 @@ "devDependencies": { "@babel/runtime": "^7.23.9", "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "@types/lodash": "^4.14.191", "deepmerge": "^4.2.2", diff --git a/packages/core-backend/package.json b/packages/core-backend/package.json index 55cb72ab7e2..79085a647c3 100644 --- a/packages/core-backend/package.json +++ b/packages/core-backend/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/core-backend", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/core-backend", @@ -68,7 +68,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/delegation-controller/package.json b/packages/delegation-controller/package.json index 83a7c3eb014..2dfa3ac2f5b 100644 --- a/packages/delegation-controller/package.json +++ b/packages/delegation-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/delegation-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/delegation-controller", @@ -62,7 +62,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/earn-controller/package.json b/packages/earn-controller/package.json index d15c7b66aa3..4ee63721a6d 100644 --- a/packages/earn-controller/package.json +++ b/packages/earn-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/earn-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/earn-controller", @@ -69,7 +69,6 @@ "devDependencies": { "@metamask/auto-changelog": "^6.1.0", "@metamask/transaction-controller": "^69.0.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/eip-5792-middleware/package.json b/packages/eip-5792-middleware/package.json index 81a3f4c1ec9..b7b93bc7aa4 100644 --- a/packages/eip-5792-middleware/package.json +++ b/packages/eip-5792-middleware/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/eip-5792-middleware", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/eip-5792-middleware", @@ -65,7 +65,6 @@ "@metamask/auto-changelog": "^6.1.0", "@metamask/keyring-controller": "^27.1.0", "@metamask/rpc-errors": "^7.0.2", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/eip-7702-internal-rpc-middleware/package.json b/packages/eip-7702-internal-rpc-middleware/package.json index ba2539da905..79b6148ce76 100644 --- a/packages/eip-7702-internal-rpc-middleware/package.json +++ b/packages/eip-7702-internal-rpc-middleware/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "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", @@ -60,7 +60,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/eip1193-permission-middleware/package.json b/packages/eip1193-permission-middleware/package.json index 0789020042b..b5b9f936bb7 100644 --- a/packages/eip1193-permission-middleware/package.json +++ b/packages/eip1193-permission-middleware/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/eip1193-permission-middleware", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/eip1193-permission-middleware", @@ -63,7 +63,6 @@ "devDependencies": { "@metamask/auto-changelog": "^6.1.0", "@metamask/rpc-errors": "^7.0.2", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/ens-controller/package.json b/packages/ens-controller/package.json index 299e3d364af..af64d7cc0bc 100644 --- a/packages/ens-controller/package.json +++ b/packages/ens-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/ens-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/ens-controller", @@ -65,7 +65,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/eth-block-tracker/package.json b/packages/eth-block-tracker/package.json index 63291723a68..e9a05162371 100644 --- a/packages/eth-block-tracker/package.json +++ b/packages/eth-block-tracker/package.json @@ -41,8 +41,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/eth-block-tracker", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/eth-block-tracker", @@ -63,7 +63,6 @@ "devDependencies": { "@metamask/auto-changelog": "^6.1.0", "@metamask/json-rpc-engine": "^10.5.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "@types/json-rpc-random-id": "^1.0.1", "deepmerge": "^4.2.2", diff --git a/packages/eth-json-rpc-middleware/package.json b/packages/eth-json-rpc-middleware/package.json index 63e4913087e..c3975ca62ab 100644 --- a/packages/eth-json-rpc-middleware/package.json +++ b/packages/eth-json-rpc-middleware/package.json @@ -40,8 +40,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "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", @@ -67,7 +67,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/deep-freeze-strict": "^1.1.0", "@types/jest": "^29.5.14", "deep-freeze-strict": "^1.1.1", diff --git a/packages/eth-json-rpc-provider/package.json b/packages/eth-json-rpc-provider/package.json index a5d9bf73028..8937583fcb6 100644 --- a/packages/eth-json-rpc-provider/package.json +++ b/packages/eth-json-rpc-provider/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "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", @@ -63,7 +63,6 @@ "@metamask/auto-changelog": "^6.1.0", "@metamask/eth-query": "^4.0.0", "@metamask/ethjs-query": "^0.5.3", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "ethers": "^6.12.0", diff --git a/packages/foundryup/package.json b/packages/foundryup/package.json index a1e280c244d..586ce24c23a 100644 --- a/packages/foundryup/package.json +++ b/packages/foundryup/package.json @@ -33,8 +33,8 @@ }, "scripts": { "anvil": "node_modules/.bin/anvil", - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/foundryup", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/foundryup", @@ -55,7 +55,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "@types/unzipper": "^0.10.10", "@types/yargs": "^17.0.32", diff --git a/packages/gas-fee-controller/package.json b/packages/gas-fee-controller/package.json index 0ed2f242854..4289a17ea36 100644 --- a/packages/gas-fee-controller/package.json +++ b/packages/gas-fee-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/gas-fee-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/gas-fee-controller", @@ -71,7 +71,6 @@ "devDependencies": { "@babel/runtime": "^7.23.9", "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "@types/jest-when": "^2.7.3", "deepmerge": "^4.2.2", diff --git a/packages/gator-permissions-controller/package.json b/packages/gator-permissions-controller/package.json index 2f683a13d07..a884e22727a 100644 --- a/packages/gator-permissions-controller/package.json +++ b/packages/gator-permissions-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/gator-permissions-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/gator-permissions-controller", @@ -72,7 +72,6 @@ "@lavamoat/allow-scripts": "^3.0.4", "@lavamoat/preinstall-always-fail": "^2.1.0", "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/geolocation-controller/package.json b/packages/geolocation-controller/package.json index 80fbb426a28..2497627e4a5 100644 --- a/packages/geolocation-controller/package.json +++ b/packages/geolocation-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/geolocation-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/geolocation-controller", @@ -61,7 +61,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/java-tron-up/package.json b/packages/java-tron-up/package.json index 75aa4d3d436..ab5ec59e4f0 100644 --- a/packages/java-tron-up/package.json +++ b/packages/java-tron-up/package.json @@ -40,8 +40,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/java-tron-up", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/java-tron-up", @@ -60,7 +60,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/json-rpc-engine/package.json b/packages/json-rpc-engine/package.json index 5afee23ac6e..aad35bcc0bb 100644 --- a/packages/json-rpc-engine/package.json +++ b/packages/json-rpc-engine/package.json @@ -53,8 +53,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "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", @@ -79,7 +79,6 @@ "@lavamoat/allow-scripts": "^3.0.4", "@lavamoat/preinstall-always-fail": "^2.1.0", "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/json-rpc-middleware-stream/package.json b/packages/json-rpc-middleware-stream/package.json index b7eb1cf3950..d2b530c030c 100644 --- a/packages/json-rpc-middleware-stream/package.json +++ b/packages/json-rpc-middleware-stream/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "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", @@ -60,7 +60,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "@types/readable-stream": "^2.3.0", "deepmerge": "^4.2.2", diff --git a/packages/keyring-controller/package.json b/packages/keyring-controller/package.json index 6397b7f2ddf..83fce7757fe 100644 --- a/packages/keyring-controller/package.json +++ b/packages/keyring-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/keyring-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/keyring-controller", @@ -80,7 +80,6 @@ "@metamask/auto-changelog": "^6.1.0", "@metamask/keyring-utils": "^3.3.1", "@metamask/scure-bip39": "^2.1.1", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/local-node-utils/package.json b/packages/local-node-utils/package.json index 058f66dc708..42e6d1d300d 100644 --- a/packages/local-node-utils/package.json +++ b/packages/local-node-utils/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/local-node-utils", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/local-node-utils", @@ -59,7 +59,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/logging-controller/package.json b/packages/logging-controller/package.json index aa6510dac9c..eda0d1cd045 100644 --- a/packages/logging-controller/package.json +++ b/packages/logging-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/logging-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/logging-controller", @@ -62,7 +62,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/message-manager/package.json b/packages/message-manager/package.json index 2c1c6f1c0a2..cb5491c9a42 100644 --- a/packages/message-manager/package.json +++ b/packages/message-manager/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/message-manager", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/message-manager", @@ -64,7 +64,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/messenger-cli/package.json b/packages/messenger-cli/package.json index 1bb3a659376..d84398a3178 100644 --- a/packages/messenger-cli/package.json +++ b/packages/messenger-cli/package.json @@ -27,8 +27,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "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", @@ -45,7 +45,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "@types/yargs": "^17.0.32", "deepmerge": "^4.2.2", diff --git a/packages/messenger/package.json b/packages/messenger/package.json index 7aa3291ebaf..1b83b6c2eff 100644 --- a/packages/messenger/package.json +++ b/packages/messenger/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/messenger", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/messenger", @@ -57,7 +57,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "immer": "^9.0.6", diff --git a/packages/money-account-api-data-service/package.json b/packages/money-account-api-data-service/package.json index d4d9703dd03..9938cd9bd7a 100644 --- a/packages/money-account-api-data-service/package.json +++ b/packages/money-account-api-data-service/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "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", @@ -64,7 +64,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/money-account-balance-service/package.json b/packages/money-account-balance-service/package.json index edd0ebc6184..a272c2d1aa4 100644 --- a/packages/money-account-balance-service/package.json +++ b/packages/money-account-balance-service/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "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", @@ -68,7 +68,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/money-account-controller/package.json b/packages/money-account-controller/package.json index b2615c4481d..8c79ed31e58 100644 --- a/packages/money-account-controller/package.json +++ b/packages/money-account-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/money-account-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/money-account-controller", @@ -67,7 +67,6 @@ "@metamask/auto-changelog": "^6.1.0", "@metamask/keyring-utils": "^3.3.1", "@metamask/utils": "^11.11.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/money-account-upgrade-controller/package.json b/packages/money-account-upgrade-controller/package.json index 7d6dd2b981f..203afbc7b39 100644 --- a/packages/money-account-upgrade-controller/package.json +++ b/packages/money-account-upgrade-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "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", @@ -68,7 +68,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/multichain-account-service/package.json b/packages/multichain-account-service/package.json index 237e8cb721d..7e85fe5b864 100644 --- a/packages/multichain-account-service/package.json +++ b/packages/multichain-account-service/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/multichain-account-service", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/multichain-account-service", @@ -81,7 +81,6 @@ "@metamask/controller-utils": "^12.3.0", "@metamask/eth-hd-keyring": "^14.1.1", "@metamask/providers": "^22.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "@types/uuid": "^8.3.0", "deepmerge": "^4.2.2", diff --git a/packages/multichain-api-middleware/package.json b/packages/multichain-api-middleware/package.json index 61bcaf97d6f..f9ea8e25b9c 100644 --- a/packages/multichain-api-middleware/package.json +++ b/packages/multichain-api-middleware/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/multichain-api-middleware", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/multichain-api-middleware", @@ -72,7 +72,6 @@ "@metamask/eth-json-rpc-filters": "^9.0.0", "@metamask/multichain-transactions-controller": "^7.1.1", "@metamask/safe-event-emitter": "^3.0.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/multichain-network-controller/package.json b/packages/multichain-network-controller/package.json index c170fdc706e..b3732dfd434 100644 --- a/packages/multichain-network-controller/package.json +++ b/packages/multichain-network-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/multichain-network-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/multichain-network-controller", @@ -70,7 +70,6 @@ "devDependencies": { "@metamask/auto-changelog": "^6.1.0", "@metamask/keyring-controller": "^27.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "@types/lodash": "^4.14.191", "@types/uuid": "^8.3.0", diff --git a/packages/multichain-transactions-controller/package.json b/packages/multichain-transactions-controller/package.json index 18eec58c531..7502b02fca2 100644 --- a/packages/multichain-transactions-controller/package.json +++ b/packages/multichain-transactions-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/multichain-transactions-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/multichain-transactions-controller", @@ -73,7 +73,6 @@ "devDependencies": { "@metamask/auto-changelog": "^6.1.0", "@metamask/keyring-controller": "^27.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/name-controller/package.json b/packages/name-controller/package.json index 741eb1c7ffe..49d9af898e6 100644 --- a/packages/name-controller/package.json +++ b/packages/name-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/name-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/name-controller", @@ -64,7 +64,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/network-connection-banner-controller/package.json b/packages/network-connection-banner-controller/package.json index 01590bede2d..727e6a7ced1 100644 --- a/packages/network-connection-banner-controller/package.json +++ b/packages/network-connection-banner-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "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", @@ -67,7 +67,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/network-controller/package.json b/packages/network-controller/package.json index adc52a427f5..10ed37649d9 100644 --- a/packages/network-controller/package.json +++ b/packages/network-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/network-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/network-controller", @@ -79,7 +79,6 @@ "devDependencies": { "@json-rpc-specification/meta-schema": "^1.0.6", "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/deep-freeze-strict": "^1.1.0", "@types/jest": "^29.5.14", "@types/jest-when": "^2.7.3", diff --git a/packages/network-enablement-controller/package.json b/packages/network-enablement-controller/package.json index 77d0869cd33..993b838a8b0 100644 --- a/packages/network-enablement-controller/package.json +++ b/packages/network-enablement-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/network-enablement-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/network-enablement-controller", @@ -68,7 +68,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/notification-services-controller/package.json b/packages/notification-services-controller/package.json index 8447fc1d8b6..1e6bacf9dcc 100644 --- a/packages/notification-services-controller/package.json +++ b/packages/notification-services-controller/package.json @@ -91,8 +91,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/notification-services-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/notification-services-controller", @@ -126,7 +126,6 @@ "@lavamoat/allow-scripts": "^3.0.4", "@lavamoat/preinstall-always-fail": "^2.1.0", "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "@types/lodash": "^4.14.191", "@types/readable-stream": "^2.3.0", diff --git a/packages/passkey-controller/package.json b/packages/passkey-controller/package.json index 1c6fcd24d1f..2052cfe7b4d 100644 --- a/packages/passkey-controller/package.json +++ b/packages/passkey-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/passkey-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/passkey-controller", @@ -66,7 +66,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/permission-controller/package.json b/packages/permission-controller/package.json index 6beb9a9d7b0..944f3271b13 100644 --- a/packages/permission-controller/package.json +++ b/packages/permission-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/permission-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/permission-controller", @@ -69,7 +69,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/permission-log-controller/package.json b/packages/permission-log-controller/package.json index 4855571b3c6..df66069aef4 100644 --- a/packages/permission-log-controller/package.json +++ b/packages/permission-log-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/permission-log-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/permission-log-controller", @@ -62,7 +62,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/deep-freeze-strict": "^1.1.0", "@types/jest": "^29.5.14", "deep-freeze-strict": "^1.1.1", diff --git a/packages/perps-controller/package.json b/packages/perps-controller/package.json index 21fc9a52fea..242956235a5 100644 --- a/packages/perps-controller/package.json +++ b/packages/perps-controller/package.json @@ -82,8 +82,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/perps-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/perps-controller", @@ -120,7 +120,6 @@ "@metamask/profile-sync-controller": "^28.3.0", "@metamask/remote-feature-flag-controller": "^4.2.2", "@metamask/transaction-controller": "^69.0.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "@types/uuid": "^8.3.0", "deepmerge": "^4.2.2", diff --git a/packages/phishing-controller/package.json b/packages/phishing-controller/package.json index 01bcb2c4ad2..96d05da2929 100644 --- a/packages/phishing-controller/package.json +++ b/packages/phishing-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/phishing-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/phishing-controller", @@ -68,7 +68,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/platform-api-docs/package.json b/packages/platform-api-docs/package.json index 8900a19da50..55fb059906d 100644 --- a/packages/platform-api-docs/package.json +++ b/packages/platform-api-docs/package.json @@ -26,8 +26,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "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", @@ -59,7 +59,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "@types/node": "^16.18.54", "@types/npm-which": "^3", diff --git a/packages/polling-controller/package.json b/packages/polling-controller/package.json index dd60ef12e2e..e8875b12aad 100644 --- a/packages/polling-controller/package.json +++ b/packages/polling-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/polling-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/polling-controller", @@ -63,7 +63,6 @@ "devDependencies": { "@metamask/auto-changelog": "^6.1.0", "@metamask/messenger": "^2.0.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/preferences-controller/package.json b/packages/preferences-controller/package.json index cff68a246d7..50dc729f5ae 100644 --- a/packages/preferences-controller/package.json +++ b/packages/preferences-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/preferences-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/preferences-controller", @@ -61,7 +61,6 @@ "devDependencies": { "@metamask/auto-changelog": "^6.1.0", "@metamask/utils": "^11.11.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/profile-metrics-controller/package.json b/packages/profile-metrics-controller/package.json index c9e3d8430d7..44f066816b7 100644 --- a/packages/profile-metrics-controller/package.json +++ b/packages/profile-metrics-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/profile-metrics-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/profile-metrics-controller", @@ -74,7 +74,6 @@ "devDependencies": { "@metamask/auto-changelog": "^6.1.0", "@metamask/keyring-internal-api": "^11.0.1", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/profile-sync-controller/package.json b/packages/profile-sync-controller/package.json index 66b1c25f0a0..628fcfddcab 100644 --- a/packages/profile-sync-controller/package.json +++ b/packages/profile-sync-controller/package.json @@ -92,8 +92,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/profile-sync-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/profile-sync-controller", @@ -129,7 +129,6 @@ "@metamask/keyring-api": "^23.5.0", "@metamask/keyring-internal-api": "^11.0.1", "@metamask/providers": "^22.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "ethers": "^6.12.0", diff --git a/packages/ramps-controller/package.json b/packages/ramps-controller/package.json index 1b4d8b1b888..b8a700023a9 100644 --- a/packages/ramps-controller/package.json +++ b/packages/ramps-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/ramps-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/ramps-controller", @@ -64,7 +64,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/rate-limit-controller/package.json b/packages/rate-limit-controller/package.json index 2651ce4a417..0bb9a351786 100644 --- a/packages/rate-limit-controller/package.json +++ b/packages/rate-limit-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/rate-limit-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/rate-limit-controller", @@ -60,7 +60,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/react-data-query/package.json b/packages/react-data-query/package.json index 78ca08d9edb..9bc1b0602ea 100644 --- a/packages/react-data-query/package.json +++ b/packages/react-data-query/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/react-data-query", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/react-data-query", @@ -61,7 +61,6 @@ "devDependencies": { "@metamask/auto-changelog": "^6.1.0", "@metamask/messenger": "^2.0.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/remote-feature-flag-controller/package.json b/packages/remote-feature-flag-controller/package.json index e24e82558a2..02b844b70d4 100644 --- a/packages/remote-feature-flag-controller/package.json +++ b/packages/remote-feature-flag-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "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", @@ -64,7 +64,6 @@ "devDependencies": { "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/sample-controllers/package.json b/packages/sample-controllers/package.json index c5782001fc1..e50a3a2bc69 100644 --- a/packages/sample-controllers/package.json +++ b/packages/sample-controllers/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/sample-controllers", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/sample-controllers", @@ -66,7 +66,6 @@ "devDependencies": { "@metamask/auto-changelog": "^6.1.0", "@metamask/controller-utils": "^12.3.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/seedless-onboarding-controller/package.json b/packages/seedless-onboarding-controller/package.json index d27208fd90e..947475bb698 100644 --- a/packages/seedless-onboarding-controller/package.json +++ b/packages/seedless-onboarding-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/seedless-onboarding-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/seedless-onboarding-controller", @@ -71,7 +71,6 @@ "@lavamoat/allow-scripts": "^3.0.4", "@lavamoat/preinstall-always-fail": "^2.1.0", "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/elliptic": "^6", "@types/jest": "^29.5.14", "@types/json-stable-stringify-without-jsonify": "^1.0.2", diff --git a/packages/selected-network-controller/package.json b/packages/selected-network-controller/package.json index 7b5782fc842..163d42db67f 100644 --- a/packages/selected-network-controller/package.json +++ b/packages/selected-network-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/selected-network-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/selected-network-controller", @@ -65,7 +65,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "immer": "^9.0.6", diff --git a/packages/sentinel-api-service/package.json b/packages/sentinel-api-service/package.json index 973e2638674..411ef53f3ea 100644 --- a/packages/sentinel-api-service/package.json +++ b/packages/sentinel-api-service/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/sentinel-api-service", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/sentinel-api-service", @@ -64,7 +64,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/shield-controller/package.json b/packages/shield-controller/package.json index 2d16f664424..bb8aede9be0 100644 --- a/packages/shield-controller/package.json +++ b/packages/shield-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/shield-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/shield-controller", @@ -68,7 +68,6 @@ "@lavamoat/allow-scripts": "^3.0.4", "@lavamoat/preinstall-always-fail": "^2.1.0", "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/signature-controller/package.json b/packages/signature-controller/package.json index d6264e7049d..220211989fc 100644 --- a/packages/signature-controller/package.json +++ b/packages/signature-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/signature-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/signature-controller", @@ -72,7 +72,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/smart-transactions-controller/package.json b/packages/smart-transactions-controller/package.json index eeba4d2f25d..3e4a85b7b95 100644 --- a/packages/smart-transactions-controller/package.json +++ b/packages/smart-transactions-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/smart-transactions-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/smart-transactions-controller", @@ -78,7 +78,6 @@ "devDependencies": { "@metamask/auto-changelog": "^6.1.0", "@metamask/json-rpc-engine": "^10.5.0", - "@ts-bridge/cli": "^0.6.4", "deepmerge": "^4.2.2", "jest": "^29.7.0", "nock": "^13.3.1", diff --git a/packages/snap-account-service/package.json b/packages/snap-account-service/package.json index f97a22d8eba..bfb856f57d4 100644 --- a/packages/snap-account-service/package.json +++ b/packages/snap-account-service/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/snap-account-service", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/snap-account-service", @@ -70,7 +70,6 @@ "devDependencies": { "@metamask/auto-changelog": "^6.1.0", "@metamask/keyring-utils": "^3.3.1", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/social-controllers/package.json b/packages/social-controllers/package.json index 2888083f77b..595ff43bdc8 100644 --- a/packages/social-controllers/package.json +++ b/packages/social-controllers/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/social-controllers", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/social-controllers", @@ -64,7 +64,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/solana-test-validator-up/package.json b/packages/solana-test-validator-up/package.json index 3ec66fb7c49..8056b749bb3 100644 --- a/packages/solana-test-validator-up/package.json +++ b/packages/solana-test-validator-up/package.json @@ -40,8 +40,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "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", @@ -60,7 +60,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/stellar-quickstart-up/package.json b/packages/stellar-quickstart-up/package.json index 9265f105aa6..95148d5d1f8 100644 --- a/packages/stellar-quickstart-up/package.json +++ b/packages/stellar-quickstart-up/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/stellar-quickstart-up", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/stellar-quickstart-up", @@ -56,7 +56,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/storage-service/package.json b/packages/storage-service/package.json index fe64d8e28dd..fea52f591c1 100644 --- a/packages/storage-service/package.json +++ b/packages/storage-service/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/storage-service", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/storage-service", @@ -60,7 +60,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/subscription-controller/package.json b/packages/subscription-controller/package.json index cef211064d2..2d343ba89e8 100644 --- a/packages/subscription-controller/package.json +++ b/packages/subscription-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/subscription-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/subscription-controller", @@ -66,7 +66,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/transaction-controller/package.json b/packages/transaction-controller/package.json index ca3422fecfb..4fefe3b02fd 100644 --- a/packages/transaction-controller/package.json +++ b/packages/transaction-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/transaction-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/transaction-controller", @@ -90,7 +90,6 @@ "@metamask/eth-block-tracker": "^15.0.0", "@metamask/eth-json-rpc-provider": "^6.0.1", "@metamask/ethjs-provider-http": "^0.3.0", - "@ts-bridge/cli": "^0.6.4", "@types/bn.js": "^5.1.5", "@types/jest": "^29.5.14", "@types/node": "^16.18.54", diff --git a/packages/transaction-pay-controller/package.json b/packages/transaction-pay-controller/package.json index 08ffbff1276..852c84fb0d6 100644 --- a/packages/transaction-pay-controller/package.json +++ b/packages/transaction-pay-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/transaction-pay-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/transaction-pay-controller", @@ -79,7 +79,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/user-operation-controller/package.json b/packages/user-operation-controller/package.json index d2c071491aa..ffdc2ce986c 100644 --- a/packages/user-operation-controller/package.json +++ b/packages/user-operation-controller/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/user-operation-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/user-operation-controller", @@ -77,7 +77,6 @@ "devDependencies": { "@metamask/auto-changelog": "^6.1.0", "@metamask/eth-block-tracker": "^15.0.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/packages/wallet-cli/package.json b/packages/wallet-cli/package.json index f782c7f6c3a..2789786d96f 100644 --- a/packages/wallet-cli/package.json +++ b/packages/wallet-cli/package.json @@ -31,8 +31,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "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", @@ -62,7 +62,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/better-sqlite3": "^7.6.13", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/wallet/package.json b/packages/wallet/package.json index 6cb5d82c89c..21d44501160 100644 --- a/packages/wallet/package.json +++ b/packages/wallet/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh @metamask/wallet", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/wallet", @@ -73,7 +73,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/scripts/create-package/package-template/package.json b/scripts/create-package/package-template/package.json index 6093ba3b9e8..1ba6a6746ba 100644 --- a/scripts/create-package/package-template/package.json +++ b/scripts/create-package/package-template/package.json @@ -39,8 +39,8 @@ "registry": "https://registry.npmjs.org/" }, "scripts": { - "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references", - "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean", + "build": "tsc --project tsconfig.build.json", + "build:all": "tsc --build tsconfig.build.json --verbose", "build:docs": "typedoc", "changelog:update": "../../scripts/update-changelog.sh PACKAGE_NAME", "changelog:validate": "../../scripts/validate-changelog.sh PACKAGE_NAME", @@ -54,7 +54,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/tsconfig.packages.build.json b/tsconfig.packages.build.json index e971538b76e..8bdb779bcef 100644 --- a/tsconfig.packages.build.json +++ b/tsconfig.packages.build.json @@ -6,7 +6,6 @@ "compilerOptions": { "declaration": true, "declarationMap": true, - "emitDeclarationOnly": true, "inlineSources": true, "sourceMap": true, "skipLibCheck": true diff --git a/yarn.config.cjs b/yarn.config.cjs index 453d202265f..7715deb1ce4 100644 --- a/yarn.config.cjs +++ b/yarn.config.cjs @@ -138,21 +138,21 @@ module.exports = defineConfig({ } // All non-root packages must have a "build" script. All packages that - // do not exclusively deploy documentation sites must use `ts-bridge`. + // do not exclusively deploy documentation sites must use `tsc`. if (DOCSITE_PACKAGES.includes(workspace.ident)) { expectWorkspaceField(workspace, 'scripts.build'); } else { expectWorkspaceField( workspace, 'scripts.build', - 'ts-bridge --project tsconfig.build.json --verbose --clean --no-references', + 'tsc --project tsconfig.build.json', ); // All non-root packages must have the same "build:all" script. expectWorkspaceField( workspace, 'scripts.build:all', - 'ts-bridge --project tsconfig.build.json --verbose --clean', + 'tsc --build tsconfig.build.json --verbose', ); } diff --git a/yarn.lock b/yarn.lock index d8fca6b2606..8894e8e694f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5438,7 +5438,6 @@ __metadata: "@metamask/snaps-utils": "npm:^12.1.2" "@metamask/superstruct": "npm:^3.1.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" fast-deep-equal: "npm:^3.1.3" @@ -5475,7 +5474,6 @@ __metadata: "@metamask/providers": "npm:^22.1.0" "@metamask/superstruct": "npm:^3.1.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" "@types/readable-stream": "npm:^2.3.0" deepmerge: "npm:^4.2.2" @@ -5516,7 +5514,6 @@ __metadata: "@metamask/controller-utils": "npm:^12.3.0" "@metamask/messenger": "npm:^2.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -5537,7 +5534,6 @@ __metadata: "@metamask/messenger": "npm:^2.0.0" "@metamask/superstruct": "npm:^3.1.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -5557,7 +5553,6 @@ __metadata: "@metamask/base-controller": "npm:^9.1.0" "@metamask/messenger": "npm:^2.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" "@types/uuid": "npm:^8.3.0" deepmerge: "npm:^4.2.2" @@ -5581,7 +5576,6 @@ __metadata: "@metamask/controller-utils": "npm:^12.3.0" "@metamask/messenger": "npm:^2.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -5601,7 +5595,6 @@ __metadata: "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/base-controller": "npm:^9.1.0" "@metamask/messenger": "npm:^2.0.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -5627,7 +5620,6 @@ __metadata: "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/base-controller": "npm:^9.1.0" "@metamask/messenger": "npm:^2.0.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -5648,7 +5640,6 @@ __metadata: "@metamask/messenger": "npm:^2.0.0" "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -5692,7 +5683,6 @@ __metadata: "@metamask/snaps-utils": "npm:^12.1.2" "@metamask/transaction-controller": "npm:^69.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" "@types/lodash": "npm:^4.14.191" async-mutex: "npm:^0.5.0" @@ -5755,7 +5745,6 @@ __metadata: "@metamask/transaction-controller": "npm:^69.0.0" "@metamask/utils": "npm:^11.11.0" "@tanstack/query-core": "npm:^5.62.16" - "@ts-bridge/cli": "npm:^0.6.4" "@types/bn.js": "npm:^5.1.5" "@types/jest": "npm:^29.5.14" "@types/lodash": "npm:^4.14.191" @@ -5830,7 +5819,6 @@ __metadata: "@metamask/messenger": "npm:^2.0.0" "@metamask/superstruct": "npm:^3.1.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -5873,7 +5861,6 @@ __metadata: "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/messenger": "npm:^2.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" immer: "npm:^9.0.6" @@ -5895,7 +5882,6 @@ __metadata: "@metamask/storage-service": "npm:^1.0.2" "@metamask/utils": "npm:^11.11.0" "@tanstack/query-core": "npm:^4.43.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" "@types/lodash": "npm:^4.14.191" cockatiel: "npm:^3.1.2" @@ -5918,7 +5904,6 @@ __metadata: dependencies: "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/local-node-utils": "npm:^1.0.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -5961,7 +5946,6 @@ __metadata: "@metamask/superstruct": "npm:^3.1.0" "@metamask/transaction-controller": "npm:^69.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" bignumber.js: "npm:^9.1.2" deepmerge: "npm:^4.2.2" @@ -5998,7 +5982,6 @@ __metadata: "@metamask/superstruct": "npm:^3.1.0" "@metamask/transaction-controller": "npm:^69.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" bignumber.js: "npm:^9.1.2" deepmerge: "npm:^4.2.2" @@ -6030,7 +6013,6 @@ __metadata: dependencies: "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/eslint": "npm:^8.44.7" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" @@ -6054,7 +6036,6 @@ __metadata: "@metamask/permission-controller": "npm:^13.1.1" "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -6078,7 +6059,6 @@ __metadata: "@metamask/superstruct": "npm:^3.1.0" "@metamask/utils": "npm:^11.11.0" "@tanstack/query-core": "npm:^4.43.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -6102,7 +6082,6 @@ __metadata: "@metamask/messenger": "npm:^2.0.0" "@metamask/profile-sync-controller": "npm:^28.3.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -6121,7 +6100,6 @@ __metadata: "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/base-controller": "npm:^9.1.0" "@metamask/messenger": "npm:^2.0.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -6146,7 +6124,6 @@ __metadata: "@metamask/keyring-api": "npm:^23.5.0" "@metamask/transaction-controller": "npm:^69.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -6168,7 +6145,6 @@ __metadata: "@metamask/messenger": "npm:^2.0.0" "@metamask/superstruct": "npm:^3.1.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -6190,7 +6166,6 @@ __metadata: "@metamask/base-controller": "npm:^9.1.0" "@metamask/json-rpc-engine": "npm:^10.5.0" "@metamask/messenger": "npm:^2.0.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" immer: "npm:^9.0.6" @@ -6218,7 +6193,6 @@ __metadata: "@metamask/remote-feature-flag-controller": "npm:^4.2.2" "@metamask/superstruct": "npm:^3.1.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -6239,7 +6213,6 @@ __metadata: "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/base-controller": "npm:^9.1.0" "@metamask/messenger": "npm:^2.0.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -6291,7 +6264,6 @@ __metadata: "@metamask/ethjs-unit": "npm:^0.3.0" "@metamask/utils": "npm:^11.11.0" "@spruceid/siwe-parser": "npm:2.1.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/bn.js": "npm:^5.1.5" "@types/jest": "npm:^29.5.14" "@types/lodash": "npm:^4.14.191" @@ -6328,7 +6300,6 @@ __metadata: "@metamask/remote-feature-flag-controller": "npm:^4.2.2" "@metamask/utils": "npm:^11.11.0" "@tanstack/query-core": "npm:^5.62.16" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" async-mutex: "npm:^0.5.0" deepmerge: "npm:^4.2.2" @@ -6360,7 +6331,6 @@ __metadata: "@metamask/network-controller": "npm:^34.0.0" "@metamask/skills": "npm:^0.1.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" "@types/lodash": "npm:^4.14.191" "@types/node": "npm:^16.18.54" @@ -6439,7 +6409,6 @@ __metadata: "@metamask/keyring-controller": "npm:^27.1.0" "@metamask/messenger": "npm:^2.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -6484,7 +6453,6 @@ __metadata: "@metamask/network-controller": "npm:^34.0.0" "@metamask/stake-sdk": "npm:^3.2.1" "@metamask/transaction-controller": "npm:^69.0.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -6509,7 +6477,6 @@ __metadata: "@metamask/superstruct": "npm:^3.1.0" "@metamask/transaction-controller": "npm:^69.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -6533,7 +6500,6 @@ __metadata: "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/superstruct": "npm:^3.1.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -6556,7 +6522,6 @@ __metadata: "@metamask/permission-controller": "npm:^13.1.1" "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -6580,7 +6545,6 @@ __metadata: "@metamask/messenger": "npm:^2.0.0" "@metamask/network-controller": "npm:^34.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -6665,7 +6629,6 @@ __metadata: "@metamask/json-rpc-engine": "npm:^10.5.0" "@metamask/safe-event-emitter": "npm:^3.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" "@types/json-rpc-random-id": "npm:^1.0.1" deepmerge: "npm:^4.2.2" @@ -6736,7 +6699,6 @@ __metadata: "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/superstruct": "npm:^3.1.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/deep-freeze-strict": "npm:^1.1.0" "@types/jest": "npm:^29.5.14" deep-freeze-strict: "npm:^1.1.1" @@ -6774,7 +6736,6 @@ __metadata: "@metamask/json-rpc-engine": "npm:^10.5.0" "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" ethers: "npm:^6.12.0" @@ -7015,7 +6976,6 @@ __metadata: resolution: "@metamask/foundryup@workspace:packages/foundryup" dependencies: "@metamask/auto-changelog": "npm:^6.1.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" "@types/unzipper": "npm:^0.10.10" "@types/yargs": "npm:^17.0.32" @@ -7053,7 +7013,6 @@ __metadata: "@metamask/network-controller": "npm:^34.0.0" "@metamask/polling-controller": "npm:^16.0.8" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/bn.js": "npm:^5.1.5" "@types/jest": "npm:^29.5.14" "@types/jest-when": "npm:^2.7.3" @@ -7093,7 +7052,6 @@ __metadata: "@metamask/snaps-utils": "npm:^12.1.2" "@metamask/transaction-controller": "npm:^69.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -7113,7 +7071,6 @@ __metadata: "@metamask/base-controller": "npm:^9.1.0" "@metamask/controller-utils": "npm:^12.3.0" "@metamask/messenger": "npm:^2.0.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -7131,7 +7088,6 @@ __metadata: dependencies: "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/local-node-utils": "npm:^1.0.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -7156,7 +7112,6 @@ __metadata: "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/safe-event-emitter": "npm:^3.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/deep-freeze-strict": "npm:^1.1.0" "@types/jest": "npm:^29.5.14" deep-freeze-strict: "npm:^1.1.1" @@ -7178,7 +7133,6 @@ __metadata: "@metamask/json-rpc-engine": "npm:^10.5.0" "@metamask/safe-event-emitter": "npm:^3.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" "@types/readable-stream": "npm:^2.3.0" deepmerge: "npm:^4.2.2" @@ -7241,7 +7195,6 @@ __metadata: "@metamask/messenger": "npm:^2.0.0" "@metamask/scure-bip39": "npm:^2.1.1" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" async-mutex: "npm:^0.5.0" deepmerge: "npm:^4.2.2" @@ -7350,7 +7303,6 @@ __metadata: resolution: "@metamask/local-node-utils@workspace:packages/local-node-utils" dependencies: "@metamask/auto-changelog": "npm:^6.1.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -7372,7 +7324,6 @@ __metadata: "@metamask/base-controller": "npm:^9.1.0" "@metamask/controller-utils": "npm:^12.3.0" "@metamask/messenger": "npm:^2.0.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -7395,7 +7346,6 @@ __metadata: "@metamask/eth-sig-util": "npm:^8.2.0" "@metamask/messenger": "npm:^2.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" "@types/uuid": "npm:^8.3.0" deepmerge: "npm:^4.2.2" @@ -7416,7 +7366,6 @@ __metadata: dependencies: "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" "@types/yargs": "npm:^17.0.32" deepmerge: "npm:^4.2.2" @@ -7462,7 +7411,6 @@ __metadata: dependencies: "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" immer: "npm:^9.0.6" @@ -7495,7 +7443,6 @@ __metadata: "@metamask/superstruct": "npm:^3.1.0" "@metamask/utils": "npm:^11.11.0" "@tanstack/query-core": "npm:^4.43.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -7523,7 +7470,6 @@ __metadata: "@metamask/remote-feature-flag-controller": "npm:^4.2.2" "@metamask/superstruct": "npm:^3.1.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -7549,7 +7495,6 @@ __metadata: "@metamask/keyring-utils": "npm:^3.3.1" "@metamask/messenger": "npm:^2.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" async-mutex: "npm:^0.5.0" deepmerge: "npm:^4.2.2" @@ -7577,7 +7522,6 @@ __metadata: "@metamask/messenger": "npm:^2.0.0" "@metamask/network-controller": "npm:^34.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -7615,7 +7559,6 @@ __metadata: "@metamask/snaps-utils": "npm:^12.1.2" "@metamask/superstruct": "npm:^3.1.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" "@types/uuid": "npm:^8.3.0" async-mutex: "npm:^0.5.0" @@ -7656,7 +7599,6 @@ __metadata: "@metamask/utils": "npm:^11.11.0" "@open-rpc/meta-schema": "npm:^1.14.6" "@open-rpc/schema-utils-js": "npm:^2.0.5" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -7685,7 +7627,6 @@ __metadata: "@metamask/superstruct": "npm:^3.1.0" "@metamask/utils": "npm:^11.11.0" "@solana/addresses": "npm:^2.0.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" "@types/lodash": "npm:^4.14.191" "@types/uuid": "npm:^8.3.0" @@ -7719,7 +7660,6 @@ __metadata: "@metamask/snaps-sdk": "npm:^11.0.0" "@metamask/snaps-utils": "npm:^12.1.2" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" "@types/uuid": "npm:^8.3.0" deepmerge: "npm:^4.2.2" @@ -7743,7 +7683,6 @@ __metadata: "@metamask/controller-utils": "npm:^12.3.0" "@metamask/messenger": "npm:^2.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" async-mutex: "npm:^0.5.0" deepmerge: "npm:^4.2.2" @@ -7769,7 +7708,6 @@ __metadata: "@metamask/network-controller": "npm:^34.0.0" "@metamask/network-enablement-controller": "npm:^5.6.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -7802,7 +7740,6 @@ __metadata: "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/swappable-obj-proxy": "npm:^2.3.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/deep-freeze-strict": "npm:^1.1.0" "@types/jest": "npm:^29.5.14" "@types/jest-when": "npm:^2.7.3" @@ -7845,7 +7782,6 @@ __metadata: "@metamask/slip44": "npm:^4.3.0" "@metamask/transaction-controller": "npm:^69.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -7885,7 +7821,6 @@ __metadata: "@metamask/messenger": "npm:^2.0.0" "@metamask/profile-sync-controller": "npm:^28.3.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" "@types/lodash": "npm:^4.14.191" "@types/readable-stream": "npm:^2.3.0" @@ -7941,7 +7876,6 @@ __metadata: "@noble/ciphers": "npm:^1.3.0" "@noble/curves": "npm:^1.9.2" "@noble/hashes": "npm:^1.8.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -7984,7 +7918,6 @@ __metadata: "@metamask/messenger": "npm:^2.0.0" "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/deep-freeze-strict": "npm:^1.1.0" "@types/jest": "npm:^29.5.14" deep-freeze-strict: "npm:^1.1.1" @@ -8009,7 +7942,6 @@ __metadata: "@metamask/json-rpc-engine": "npm:^10.5.0" "@metamask/messenger": "npm:^2.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/deep-freeze-strict": "npm:^1.1.0" "@types/jest": "npm:^29.5.14" deep-freeze-strict: "npm:^1.1.1" @@ -8046,7 +7978,6 @@ __metadata: "@metamask/utils": "npm:^11.11.0" "@myx-trade/sdk": "npm:^0.1.265" "@nktkas/hyperliquid": "npm:^0.33.1" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" "@types/uuid": "npm:^8.3.0" bignumber.js: "npm:^9.1.2" @@ -8076,7 +8007,6 @@ __metadata: "@metamask/messenger": "npm:^2.0.0" "@metamask/transaction-controller": "npm:^69.0.0" "@noble/hashes": "npm:^1.8.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" "@types/punycode": "npm:^2.1.0" deepmerge: "npm:^4.2.2" @@ -8106,7 +8036,6 @@ __metadata: "@mdx-js/react": "npm:^3.1.1" "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" "@types/node": "npm:^16.18.54" "@types/npm-which": "npm:^3" @@ -8139,7 +8068,6 @@ __metadata: "@metamask/messenger": "npm:^2.0.0" "@metamask/network-controller": "npm:^34.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" "@types/uuid": "npm:^8.3.0" deepmerge: "npm:^4.2.2" @@ -8172,7 +8100,6 @@ __metadata: "@metamask/base-controller": "npm:^9.1.0" "@metamask/messenger": "npm:^2.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -8203,7 +8130,6 @@ __metadata: "@metamask/superstruct": "npm:^3.1.0" "@metamask/transaction-controller": "npm:^69.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" async-mutex: "npm:^0.5.0" deepmerge: "npm:^4.2.2" @@ -8238,7 +8164,6 @@ __metadata: "@metamask/utils": "npm:^11.11.0" "@noble/ciphers": "npm:^1.3.0" "@noble/hashes": "npm:^1.8.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" ethers: "npm:^6.12.0" @@ -8291,7 +8216,6 @@ __metadata: "@metamask/messenger": "npm:^2.0.0" "@metamask/profile-sync-controller": "npm:^28.3.0" "@metamask/remote-feature-flag-controller": "npm:^4.2.2" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -8313,7 +8237,6 @@ __metadata: "@metamask/messenger": "npm:^2.0.0" "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -8335,7 +8258,6 @@ __metadata: "@metamask/utils": "npm:^11.11.0" "@tanstack/query-core": "npm:^4.43.0" "@tanstack/react-query": "npm:^4.43.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -8366,7 +8288,6 @@ __metadata: "@metamask/controller-utils": "npm:^12.3.0" "@metamask/messenger": "npm:^2.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -8410,7 +8331,6 @@ __metadata: "@metamask/superstruct": "npm:^3.1.0" "@metamask/utils": "npm:^11.11.0" "@tanstack/query-core": "npm:^4.43.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -8450,7 +8370,6 @@ __metadata: "@noble/ciphers": "npm:^1.3.0" "@noble/curves": "npm:^1.9.2" "@noble/hashes": "npm:^1.8.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/elliptic": "npm:^6" "@types/jest": "npm:^29.5.14" "@types/json-stable-stringify-without-jsonify": "npm:^1.0.2" @@ -8478,7 +8397,6 @@ __metadata: "@metamask/permission-controller": "npm:^13.1.1" "@metamask/swappable-obj-proxy": "npm:^2.3.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" immer: "npm:^9.0.6" @@ -8505,7 +8423,6 @@ __metadata: "@metamask/superstruct": "npm:^3.1.0" "@metamask/utils": "npm:^11.11.0" "@tanstack/query-core": "npm:^4.43.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -8532,7 +8449,6 @@ __metadata: "@metamask/signature-controller": "npm:^39.2.7" "@metamask/transaction-controller": "npm:^69.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" cockatiel: "npm:^3.1.2" deepmerge: "npm:^4.2.2" @@ -8563,7 +8479,6 @@ __metadata: "@metamask/messenger": "npm:^2.0.0" "@metamask/network-controller": "npm:^34.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -8616,7 +8531,6 @@ __metadata: "@metamask/superstruct": "npm:^3.1.0" "@metamask/transaction-controller": "npm:^69.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" bignumber.js: "npm:^9.1.2" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -8647,7 +8561,6 @@ __metadata: "@metamask/snaps-controllers": "npm:^19.0.0" "@metamask/snaps-sdk": "npm:^11.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -8788,7 +8701,6 @@ __metadata: "@metamask/messenger": "npm:^2.0.0" "@metamask/profile-sync-controller": "npm:^28.3.0" "@metamask/superstruct": "npm:^3.1.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -8806,7 +8718,6 @@ __metadata: dependencies: "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/local-node-utils": "npm:^1.0.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -8832,7 +8743,6 @@ __metadata: resolution: "@metamask/stellar-quickstart-up@workspace:packages/stellar-quickstart-up" dependencies: "@metamask/auto-changelog": "npm:^6.1.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -8851,7 +8761,6 @@ __metadata: "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/messenger": "npm:^2.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -8875,7 +8784,6 @@ __metadata: "@metamask/profile-sync-controller": "npm:^28.3.0" "@metamask/transaction-controller": "npm:^69.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" bignumber.js: "npm:^9.1.2" deepmerge: "npm:^4.2.2" @@ -8950,7 +8858,6 @@ __metadata: "@metamask/remote-feature-flag-controller": "npm:^4.2.2" "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/bn.js": "npm:^5.1.5" "@types/jest": "npm:^29.5.14" "@types/node": "npm:^16.18.54" @@ -8998,7 +8905,6 @@ __metadata: "@metamask/remote-feature-flag-controller": "npm:^4.2.2" "@metamask/transaction-controller": "npm:^69.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" bignumber.js: "npm:^9.1.2" bn.js: "npm:^5.2.1" @@ -9033,7 +8939,6 @@ __metadata: "@metamask/superstruct": "npm:^3.1.0" "@metamask/transaction-controller": "npm:^69.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" bn.js: "npm:^5.2.1" deepmerge: "npm:^4.2.2" @@ -9103,7 +9008,6 @@ __metadata: "@metamask/utils": "npm:^11.11.0" "@metamask/wallet": "npm:^7.0.1" "@oclif/core": "npm:^4.10.5" - "@ts-bridge/cli": "npm:^0.6.4" "@types/better-sqlite3": "npm:^7.6.13" "@types/jest": "npm:^29.5.14" better-sqlite3: "npm:^12.9.0" @@ -9165,7 +9069,6 @@ __metadata: "@metamask/storage-service": "npm:^1.0.2" "@metamask/transaction-controller": "npm:^69.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" @@ -11014,30 +10917,6 @@ __metadata: languageName: node linkType: hard -"@ts-bridge/cli@npm:^0.6.4": - version: 0.6.4 - resolution: "@ts-bridge/cli@npm:0.6.4" - dependencies: - "@ts-bridge/resolver": "npm:^0.2.0" - chalk: "npm:^5.3.0" - cjs-module-lexer: "npm:^1.3.1" - yargs: "npm:^17.7.2" - peerDependencies: - typescript: ">=4.8.0" - bin: - ts-bridge: ./dist/index.js - tsbridge: ./dist/index.js - checksum: 10/257ee0cacec71c1b3cc018825088e06b4bd554ba5fe95bdb98c4c82edd6cd4bcff1054d351e6c7cdfdd3bd2145a055b5d14fa453a6ece761645e42b48b88e9a0 - languageName: node - linkType: hard - -"@ts-bridge/resolver@npm:^0.2.0": - version: 0.2.0 - resolution: "@ts-bridge/resolver@npm:0.2.0" - checksum: 10/d4cfd1f47e9648a5f9c893b1b076adabde3a57cbe81ef823bcbbcc77a122fb6f06d99f40ff48198f8dc766bfc4b3b351d4e87cfcf2db64f7e6db924eb82a5db1 - languageName: node - linkType: hard - "@ts-morph/common@npm:~0.29.0": version: 0.29.0 resolution: "@ts-morph/common@npm:0.29.0" @@ -13497,7 +13376,7 @@ __metadata: languageName: node linkType: hard -"cjs-module-lexer@npm:^1.0.0, cjs-module-lexer@npm:^1.3.1": +"cjs-module-lexer@npm:^1.0.0": version: 1.4.0 resolution: "cjs-module-lexer@npm:1.4.0" checksum: 10/b041096749792526120d8b8756929f8ef5dd4596502a0e1013f857e3027acd6091915fea77037921d70ee1a99988a100d994d3d3c2e323b04dd4c5ffd516cf13 From 8eee73b1bf695859a292b0ea592bae320bb397fc Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 13:35:31 +0200 Subject: [PATCH 002/136] Update package exports to ESM-only Remove CJS entry points (`main`, `types`, `require`) from all package manifests and simplify `exports` to a single `import` condition. This drops the dual CJS/ESM output in favour of ESM-only distribution. --- packages/account-tree-controller/package.json | 12 +--- packages/accounts-controller/package.json | 12 +--- packages/address-book-controller/package.json | 12 +--- packages/ai-controllers/package.json | 12 +--- packages/analytics-controller/package.json | 12 +--- .../package.json | 12 +--- packages/announcement-controller/package.json | 12 +--- packages/app-metadata-controller/package.json | 12 +--- packages/approval-controller/package.json | 12 +--- packages/assets-controller/package.json | 12 +--- packages/assets-controllers/package.json | 12 +--- .../authenticated-user-storage/package.json | 12 +--- packages/base-controller/package.json | 12 +--- packages/base-data-service/package.json | 12 +--- packages/bitcoin-regtest-up/package.json | 12 +--- packages/bridge-controller/package.json | 12 +--- .../bridge-status-controller/package.json | 12 +--- packages/build-utils/package.json | 12 +--- .../chain-agnostic-permission/package.json | 12 +--- packages/chomp-api-service/package.json | 12 +--- packages/claims-controller/package.json | 12 +--- packages/client-controller/package.json | 12 +--- packages/client-utils/package.json | 12 +--- packages/compliance-controller/package.json | 12 +--- packages/composable-controller/package.json | 12 +--- .../config-registry-controller/package.json | 12 +--- packages/connectivity-controller/package.json | 12 +--- packages/controller-utils/package.json | 12 +--- packages/core-backend/package.json | 12 +--- packages/delegation-controller/package.json | 12 +--- packages/earn-controller/package.json | 12 +--- packages/eip-5792-middleware/package.json | 12 +--- .../package.json | 12 +--- .../package.json | 12 +--- packages/ens-controller/package.json | 12 +--- packages/eth-block-tracker/package.json | 12 +--- packages/eth-json-rpc-middleware/package.json | 12 +--- packages/eth-json-rpc-provider/package.json | 12 +--- packages/gas-fee-controller/package.json | 12 +--- .../gator-permissions-controller/package.json | 12 +--- packages/geolocation-controller/package.json | 12 +--- packages/java-tron-up/package.json | 12 +--- packages/json-rpc-engine/package.json | 22 ++----- .../json-rpc-middleware-stream/package.json | 12 +--- packages/keyring-controller/package.json | 12 +--- packages/local-node-utils/package.json | 12 +--- packages/logging-controller/package.json | 12 +--- packages/message-manager/package.json | 12 +--- packages/messenger/package.json | 12 +--- .../package.json | 12 +--- .../package.json | 12 +--- .../money-account-controller/package.json | 12 +--- .../package.json | 12 +--- .../multichain-account-service/package.json | 12 +--- .../multichain-api-middleware/package.json | 12 +--- .../package.json | 12 +--- .../package.json | 12 +--- packages/name-controller/package.json | 12 +--- .../package.json | 12 +--- packages/network-controller/package.json | 12 +--- .../package.json | 12 +--- .../package.json | 62 ++++-------------- packages/passkey-controller/package.json | 12 +--- packages/permission-controller/package.json | 12 +--- .../permission-log-controller/package.json | 12 +--- packages/perps-controller/package.json | 52 +++------------ packages/phishing-controller/package.json | 12 +--- packages/polling-controller/package.json | 12 +--- packages/preferences-controller/package.json | 12 +--- .../profile-metrics-controller/package.json | 12 +--- packages/profile-sync-controller/package.json | 62 ++++-------------- packages/ramps-controller/package.json | 12 +--- packages/rate-limit-controller/package.json | 12 +--- packages/react-data-query/package.json | 12 +--- .../package.json | 12 +--- packages/sample-controllers/package.json | 12 +--- .../package.json | 12 +--- .../selected-network-controller/package.json | 12 +--- packages/sentinel-api-service/package.json | 12 +--- packages/shield-controller/package.json | 12 +--- packages/signature-controller/package.json | 12 +--- .../package.json | 12 +--- packages/snap-account-service/package.json | 12 +--- packages/social-controllers/package.json | 12 +--- .../solana-test-validator-up/package.json | 12 +--- packages/stellar-quickstart-up/package.json | 12 +--- packages/storage-service/package.json | 12 +--- packages/subscription-controller/package.json | 12 +--- packages/transaction-controller/package.json | 12 +--- .../transaction-pay-controller/package.json | 12 +--- .../user-operation-controller/package.json | 12 +--- packages/wallet/package.json | 12 +--- yarn.config.cjs | 65 +++++++++++-------- 93 files changed, 252 insertions(+), 1067 deletions(-) diff --git a/packages/account-tree-controller/package.json b/packages/account-tree-controller/package.json index ee7247d53ba..eebeca18113 100644 --- a/packages/account-tree-controller/package.json +++ b/packages/account-tree-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/accounts-controller/package.json b/packages/accounts-controller/package.json index b9f2c670524..8e5330e6020 100644 --- a/packages/accounts-controller/package.json +++ b/packages/accounts-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/address-book-controller/package.json b/packages/address-book-controller/package.json index 57e58ff08ad..60508f6c015 100644 --- a/packages/address-book-controller/package.json +++ b/packages/address-book-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/ai-controllers/package.json b/packages/ai-controllers/package.json index ef2fa0b9b35..78ea38328bd 100644 --- a/packages/ai-controllers/package.json +++ b/packages/ai-controllers/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/analytics-controller/package.json b/packages/analytics-controller/package.json index f73901c0926..d8f27ce4e62 100644 --- a/packages/analytics-controller/package.json +++ b/packages/analytics-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/analytics-data-regulation-controller/package.json b/packages/analytics-data-regulation-controller/package.json index 2953b85a5d5..f247301595a 100644 --- a/packages/analytics-data-regulation-controller/package.json +++ b/packages/analytics-data-regulation-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/announcement-controller/package.json b/packages/announcement-controller/package.json index 8bd69d09302..5cceccd8ccc 100644 --- a/packages/announcement-controller/package.json +++ b/packages/announcement-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/app-metadata-controller/package.json b/packages/app-metadata-controller/package.json index 7f5d24f151c..e5f5fcca1d1 100644 --- a/packages/app-metadata-controller/package.json +++ b/packages/app-metadata-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/approval-controller/package.json b/packages/approval-controller/package.json index 764009b16ce..1ceea787956 100644 --- a/packages/approval-controller/package.json +++ b/packages/approval-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/assets-controller/package.json b/packages/assets-controller/package.json index 7395776b120..6d76a9d091e 100644 --- a/packages/assets-controller/package.json +++ b/packages/assets-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/assets-controllers/package.json b/packages/assets-controllers/package.json index 11b710ce30f..2d4d2d57418 100644 --- a/packages/assets-controllers/package.json +++ b/packages/assets-controllers/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/authenticated-user-storage/package.json b/packages/authenticated-user-storage/package.json index 13f2cda2a30..0fff917faa9 100644 --- a/packages/authenticated-user-storage/package.json +++ b/packages/authenticated-user-storage/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/base-controller/package.json b/packages/base-controller/package.json index 784e3763e1b..2a164c4ffb0 100644 --- a/packages/base-controller/package.json +++ b/packages/base-controller/package.json @@ -18,18 +18,10 @@ "files": [ "dist/" ], - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/base-data-service/package.json b/packages/base-data-service/package.json index 2c98d49302d..2c36c541ee2 100644 --- a/packages/base-data-service/package.json +++ b/packages/base-data-service/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/bitcoin-regtest-up/package.json b/packages/bitcoin-regtest-up/package.json index 0119bacd238..11e715ce83f 100644 --- a/packages/bitcoin-regtest-up/package.json +++ b/packages/bitcoin-regtest-up/package.json @@ -20,18 +20,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/bridge-controller/package.json b/packages/bridge-controller/package.json index 73632c206cb..ff61e6e9604 100644 --- a/packages/bridge-controller/package.json +++ b/packages/bridge-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/bridge-status-controller/package.json b/packages/bridge-status-controller/package.json index 2d9303f82ee..ab07c3aa55c 100644 --- a/packages/bridge-status-controller/package.json +++ b/packages/bridge-status-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/build-utils/package.json b/packages/build-utils/package.json index 07983162711..177eb070a8d 100644 --- a/packages/build-utils/package.json +++ b/packages/build-utils/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/chain-agnostic-permission/package.json b/packages/chain-agnostic-permission/package.json index 8c5f4081b24..8efdec277f3 100644 --- a/packages/chain-agnostic-permission/package.json +++ b/packages/chain-agnostic-permission/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/chomp-api-service/package.json b/packages/chomp-api-service/package.json index 0fddbb3b7ab..1f0ba9fa312 100644 --- a/packages/chomp-api-service/package.json +++ b/packages/chomp-api-service/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/claims-controller/package.json b/packages/claims-controller/package.json index 1bc62081ecf..e50a36d1afd 100644 --- a/packages/claims-controller/package.json +++ b/packages/claims-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/client-controller/package.json b/packages/client-controller/package.json index 1291dd31351..8e8119553c5 100644 --- a/packages/client-controller/package.json +++ b/packages/client-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/client-utils/package.json b/packages/client-utils/package.json index 4cb897aab4c..012ce6af1cd 100644 --- a/packages/client-utils/package.json +++ b/packages/client-utils/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/compliance-controller/package.json b/packages/compliance-controller/package.json index 6ebabb5e548..4455e1e159c 100644 --- a/packages/compliance-controller/package.json +++ b/packages/compliance-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/composable-controller/package.json b/packages/composable-controller/package.json index 1516232f332..c93d2fff7e0 100644 --- a/packages/composable-controller/package.json +++ b/packages/composable-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/config-registry-controller/package.json b/packages/config-registry-controller/package.json index 41591f5dba5..c0427262123 100644 --- a/packages/config-registry-controller/package.json +++ b/packages/config-registry-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/connectivity-controller/package.json b/packages/connectivity-controller/package.json index 8f77f6d2fa2..7cff830415e 100644 --- a/packages/connectivity-controller/package.json +++ b/packages/connectivity-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/controller-utils/package.json b/packages/controller-utils/package.json index 55f9d86aa80..0bff666215a 100644 --- a/packages/controller-utils/package.json +++ b/packages/controller-utils/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/core-backend/package.json b/packages/core-backend/package.json index 79085a647c3..918b725c476 100644 --- a/packages/core-backend/package.json +++ b/packages/core-backend/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/delegation-controller/package.json b/packages/delegation-controller/package.json index 2dfa3ac2f5b..de975560964 100644 --- a/packages/delegation-controller/package.json +++ b/packages/delegation-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/earn-controller/package.json b/packages/earn-controller/package.json index 4ee63721a6d..13ad6ce5bbb 100644 --- a/packages/earn-controller/package.json +++ b/packages/earn-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/eip-5792-middleware/package.json b/packages/eip-5792-middleware/package.json index b7b93bc7aa4..7fe2fc3f04c 100644 --- a/packages/eip-5792-middleware/package.json +++ b/packages/eip-5792-middleware/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/eip-7702-internal-rpc-middleware/package.json b/packages/eip-7702-internal-rpc-middleware/package.json index 79b6148ce76..40d5358cdf8 100644 --- a/packages/eip-7702-internal-rpc-middleware/package.json +++ b/packages/eip-7702-internal-rpc-middleware/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/eip1193-permission-middleware/package.json b/packages/eip1193-permission-middleware/package.json index b5b9f936bb7..33cc15d6ed6 100644 --- a/packages/eip1193-permission-middleware/package.json +++ b/packages/eip1193-permission-middleware/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/ens-controller/package.json b/packages/ens-controller/package.json index af64d7cc0bc..6140a5283dc 100644 --- a/packages/ens-controller/package.json +++ b/packages/ens-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/eth-block-tracker/package.json b/packages/eth-block-tracker/package.json index e9a05162371..b538e6dd64c 100644 --- a/packages/eth-block-tracker/package.json +++ b/packages/eth-block-tracker/package.json @@ -20,19 +20,11 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", "module": "./dist/index.mjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/eth-json-rpc-middleware/package.json b/packages/eth-json-rpc-middleware/package.json index c3975ca62ab..c0be9b57bc8 100644 --- a/packages/eth-json-rpc-middleware/package.json +++ b/packages/eth-json-rpc-middleware/package.json @@ -19,19 +19,11 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", "module": "./dist/index.mjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/eth-json-rpc-provider/package.json b/packages/eth-json-rpc-provider/package.json index 8937583fcb6..a5f5a9b7460 100644 --- a/packages/eth-json-rpc-provider/package.json +++ b/packages/eth-json-rpc-provider/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/gas-fee-controller/package.json b/packages/gas-fee-controller/package.json index 4289a17ea36..48b77ca9d49 100644 --- a/packages/gas-fee-controller/package.json +++ b/packages/gas-fee-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/gator-permissions-controller/package.json b/packages/gator-permissions-controller/package.json index a884e22727a..536fe3e6d76 100644 --- a/packages/gator-permissions-controller/package.json +++ b/packages/gator-permissions-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/geolocation-controller/package.json b/packages/geolocation-controller/package.json index 2497627e4a5..3545e138bec 100644 --- a/packages/geolocation-controller/package.json +++ b/packages/geolocation-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/java-tron-up/package.json b/packages/java-tron-up/package.json index ab5ec59e4f0..5ea88e75200 100644 --- a/packages/java-tron-up/package.json +++ b/packages/java-tron-up/package.json @@ -20,18 +20,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/json-rpc-engine/package.json b/packages/json-rpc-engine/package.json index aad35bcc0bb..3ec3b911ecc 100644 --- a/packages/json-rpc-engine/package.json +++ b/packages/json-rpc-engine/package.json @@ -23,28 +23,14 @@ "v2.js" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./v2": { - "import": { - "types": "./dist/v2/index.d.mts", - "default": "./dist/v2/index.mjs" - }, - "require": { - "types": "./dist/v2/index.d.cts", - "default": "./dist/v2/index.cjs" - } + "types": "./dist/v2/index.d.ts", + "import": "./dist/v2/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/json-rpc-middleware-stream/package.json b/packages/json-rpc-middleware-stream/package.json index d2b530c030c..ea9f9ffc629 100644 --- a/packages/json-rpc-middleware-stream/package.json +++ b/packages/json-rpc-middleware-stream/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/keyring-controller/package.json b/packages/keyring-controller/package.json index 83fce7757fe..e6317a090b2 100644 --- a/packages/keyring-controller/package.json +++ b/packages/keyring-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/local-node-utils/package.json b/packages/local-node-utils/package.json index 42e6d1d300d..45b556570ac 100644 --- a/packages/local-node-utils/package.json +++ b/packages/local-node-utils/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/logging-controller/package.json b/packages/logging-controller/package.json index eda0d1cd045..afd661fd3f4 100644 --- a/packages/logging-controller/package.json +++ b/packages/logging-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/message-manager/package.json b/packages/message-manager/package.json index cb5491c9a42..7760573383a 100644 --- a/packages/message-manager/package.json +++ b/packages/message-manager/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/messenger/package.json b/packages/messenger/package.json index 1b83b6c2eff..64ffcb1a9f7 100644 --- a/packages/messenger/package.json +++ b/packages/messenger/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/money-account-api-data-service/package.json b/packages/money-account-api-data-service/package.json index 9938cd9bd7a..ec780e9cdb6 100644 --- a/packages/money-account-api-data-service/package.json +++ b/packages/money-account-api-data-service/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/money-account-balance-service/package.json b/packages/money-account-balance-service/package.json index a272c2d1aa4..127e67f51e7 100644 --- a/packages/money-account-balance-service/package.json +++ b/packages/money-account-balance-service/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/money-account-controller/package.json b/packages/money-account-controller/package.json index 8c79ed31e58..287a3788d54 100644 --- a/packages/money-account-controller/package.json +++ b/packages/money-account-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/money-account-upgrade-controller/package.json b/packages/money-account-upgrade-controller/package.json index 203afbc7b39..b9e06fd1fb9 100644 --- a/packages/money-account-upgrade-controller/package.json +++ b/packages/money-account-upgrade-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/multichain-account-service/package.json b/packages/multichain-account-service/package.json index 7e85fe5b864..a815c592292 100644 --- a/packages/multichain-account-service/package.json +++ b/packages/multichain-account-service/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/multichain-api-middleware/package.json b/packages/multichain-api-middleware/package.json index f9ea8e25b9c..0bb0bc1e7c9 100644 --- a/packages/multichain-api-middleware/package.json +++ b/packages/multichain-api-middleware/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/multichain-network-controller/package.json b/packages/multichain-network-controller/package.json index b3732dfd434..cc3b942c937 100644 --- a/packages/multichain-network-controller/package.json +++ b/packages/multichain-network-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/multichain-transactions-controller/package.json b/packages/multichain-transactions-controller/package.json index 7502b02fca2..3e557281dcf 100644 --- a/packages/multichain-transactions-controller/package.json +++ b/packages/multichain-transactions-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/name-controller/package.json b/packages/name-controller/package.json index 49d9af898e6..cceff31efaa 100644 --- a/packages/name-controller/package.json +++ b/packages/name-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/network-connection-banner-controller/package.json b/packages/network-connection-banner-controller/package.json index 727e6a7ced1..3b63d58e4e1 100644 --- a/packages/network-connection-banner-controller/package.json +++ b/packages/network-connection-banner-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/network-controller/package.json b/packages/network-controller/package.json index 10ed37649d9..81ec226e563 100644 --- a/packages/network-controller/package.json +++ b/packages/network-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/network-enablement-controller/package.json b/packages/network-enablement-controller/package.json index 993b838a8b0..c9321b77d4d 100644 --- a/packages/network-enablement-controller/package.json +++ b/packages/network-enablement-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/notification-services-controller/package.json b/packages/notification-services-controller/package.json index 1e6bacf9dcc..90068c278ea 100644 --- a/packages/notification-services-controller/package.json +++ b/packages/notification-services-controller/package.json @@ -21,68 +21,30 @@ "push-services/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./notification-services": { - "import": { - "types": "./dist/NotificationServicesController/index.d.mts", - "default": "./dist/NotificationServicesController/index.mjs" - }, - "require": { - "types": "./dist/NotificationServicesController/index.d.cts", - "default": "./dist/NotificationServicesController/index.cjs" - } + "types": "./dist/NotificationServicesController/index.d.ts", + "import": "./dist/NotificationServicesController/index.js" }, "./notification-services/mocks": { - "import": { - "types": "./dist/NotificationServicesController/mocks/index.d.mts", - "default": "./dist/NotificationServicesController/mocks/index.mjs" - }, - "require": { - "types": "./dist/NotificationServicesController/mocks/index.d.cts", - "default": "./dist/NotificationServicesController/mocks/index.cjs" - } + "types": "./dist/NotificationServicesController/mocks/index.d.ts", + "import": "./dist/NotificationServicesController/mocks/index.js" }, "./push-services": { - "import": { - "types": "./dist/NotificationServicesPushController/index.d.mts", - "default": "./dist/NotificationServicesPushController/index.mjs" - }, - "require": { - "types": "./dist/NotificationServicesPushController/index.d.cts", - "default": "./dist/NotificationServicesPushController/index.cjs" - } + "types": "./dist/NotificationServicesPushController/index.d.ts", + "import": "./dist/NotificationServicesPushController/index.js" }, "./push-services/web": { - "import": { - "types": "./dist/NotificationServicesPushController/web/index.d.mts", - "default": "./dist/NotificationServicesPushController/web/index.mjs" - }, - "require": { - "types": "./dist/NotificationServicesPushController/web/index.d.cts", - "default": "./dist/NotificationServicesPushController/web/index.cjs" - } + "types": "./dist/NotificationServicesPushController/web/index.d.ts", + "import": "./dist/NotificationServicesPushController/web/index.js" }, "./push-services/mocks": { - "import": { - "types": "./dist/NotificationServicesPushController/mocks/index.d.mts", - "default": "./dist/NotificationServicesPushController/mocks/index.mjs" - }, - "require": { - "types": "./dist/NotificationServicesPushController/mocks/index.d.cts", - "default": "./dist/NotificationServicesPushController/mocks/index.cjs" - } + "types": "./dist/NotificationServicesPushController/mocks/index.d.ts", + "import": "./dist/NotificationServicesPushController/mocks/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/passkey-controller/package.json b/packages/passkey-controller/package.json index 2052cfe7b4d..9f69b83c8e6 100644 --- a/packages/passkey-controller/package.json +++ b/packages/passkey-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/permission-controller/package.json b/packages/permission-controller/package.json index 944f3271b13..fa59d79d351 100644 --- a/packages/permission-controller/package.json +++ b/packages/permission-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/permission-log-controller/package.json b/packages/permission-log-controller/package.json index df66069aef4..e3d423ac0a4 100644 --- a/packages/permission-log-controller/package.json +++ b/packages/permission-log-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/perps-controller/package.json b/packages/perps-controller/package.json index 242956235a5..58cf0058131 100644 --- a/packages/perps-controller/package.json +++ b/packages/perps-controller/package.json @@ -22,58 +22,26 @@ "!dist/services/MYXWalletService*" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./constants": { - "import": { - "types": "./dist/constants/index.d.mts", - "default": "./dist/constants/index.mjs" - }, - "require": { - "types": "./dist/constants/index.d.cts", - "default": "./dist/constants/index.cjs" - } + "types": "./dist/constants/index.d.ts", + "import": "./dist/constants/index.js" }, "./constants/*": { - "import": { - "types": "./dist/constants/*.d.mts", - "default": "./dist/constants/*.mjs" - }, - "require": { - "types": "./dist/constants/*.d.cts", - "default": "./dist/constants/*.cjs" - } + "types": "./dist/constants/*.d.ts", + "import": "./dist/constants/*.js" }, "./types": { - "import": { - "types": "./dist/types/index.d.mts", - "default": "./dist/types/index.mjs" - }, - "require": { - "types": "./dist/types/index.d.cts", - "default": "./dist/types/index.cjs" - } + "types": "./dist/types/index.d.ts", + "import": "./dist/types/index.js" }, "./utils/*": { - "import": { - "types": "./dist/utils/*.d.mts", - "default": "./dist/utils/*.mjs" - }, - "require": { - "types": "./dist/utils/*.d.cts", - "default": "./dist/utils/*.cjs" - } + "types": "./dist/utils/*.d.ts", + "import": "./dist/utils/*.js" }, "./package.json": "./package.json" }, diff --git a/packages/phishing-controller/package.json b/packages/phishing-controller/package.json index 96d05da2929..3a096ce28e2 100644 --- a/packages/phishing-controller/package.json +++ b/packages/phishing-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/polling-controller/package.json b/packages/polling-controller/package.json index e8875b12aad..aa57dc7bfac 100644 --- a/packages/polling-controller/package.json +++ b/packages/polling-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/preferences-controller/package.json b/packages/preferences-controller/package.json index 50dc729f5ae..9553f26fca4 100644 --- a/packages/preferences-controller/package.json +++ b/packages/preferences-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/profile-metrics-controller/package.json b/packages/profile-metrics-controller/package.json index 44f066816b7..f0d6826c83a 100644 --- a/packages/profile-metrics-controller/package.json +++ b/packages/profile-metrics-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/profile-sync-controller/package.json b/packages/profile-sync-controller/package.json index 628fcfddcab..e63fe4f29d7 100644 --- a/packages/profile-sync-controller/package.json +++ b/packages/profile-sync-controller/package.json @@ -22,68 +22,30 @@ "sdk/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./sdk": { - "import": { - "types": "./dist/sdk/index.d.mts", - "default": "./dist/sdk/index.mjs" - }, - "require": { - "types": "./dist/sdk/index.d.cts", - "default": "./dist/sdk/index.cjs" - } + "types": "./dist/sdk/index.d.ts", + "import": "./dist/sdk/index.js" }, "./auth": { - "import": { - "types": "./dist/controllers/authentication/index.d.mts", - "default": "./dist/controllers/authentication/index.mjs" - }, - "require": { - "types": "./dist/controllers/authentication/index.d.cts", - "default": "./dist/controllers/authentication/index.cjs" - } + "types": "./dist/controllers/authentication/index.d.ts", + "import": "./dist/controllers/authentication/index.js" }, "./auth/mocks": { - "import": { - "types": "./dist/controllers/authentication/mocks/index.d.mts", - "default": "./dist/controllers/authentication/mocks/index.mjs" - }, - "require": { - "types": "./dist/controllers/authentication/mocks/index.d.cts", - "default": "./dist/controllers/authentication/mocks/index.cjs" - } + "types": "./dist/controllers/authentication/mocks/index.d.ts", + "import": "./dist/controllers/authentication/mocks/index.js" }, "./user-storage": { - "import": { - "types": "./dist/controllers/user-storage/index.d.mts", - "default": "./dist/controllers/user-storage/index.mjs" - }, - "require": { - "types": "./dist/controllers/user-storage/index.d.cts", - "default": "./dist/controllers/user-storage/index.cjs" - } + "types": "./dist/controllers/user-storage/index.d.ts", + "import": "./dist/controllers/user-storage/index.js" }, "./user-storage/mocks": { - "import": { - "types": "./dist/controllers/user-storage/mocks/index.d.mts", - "default": "./dist/controllers/user-storage/mocks/index.mjs" - }, - "require": { - "types": "./dist/controllers/user-storage/mocks/index.d.cts", - "default": "./dist/controllers/user-storage/mocks/index.cjs" - } + "types": "./dist/controllers/user-storage/mocks/index.d.ts", + "import": "./dist/controllers/user-storage/mocks/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/ramps-controller/package.json b/packages/ramps-controller/package.json index b8a700023a9..85860ba6ace 100644 --- a/packages/ramps-controller/package.json +++ b/packages/ramps-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/rate-limit-controller/package.json b/packages/rate-limit-controller/package.json index 0bb9a351786..fb8c1a90162 100644 --- a/packages/rate-limit-controller/package.json +++ b/packages/rate-limit-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/react-data-query/package.json b/packages/react-data-query/package.json index 9bc1b0602ea..0af73a6f4c2 100644 --- a/packages/react-data-query/package.json +++ b/packages/react-data-query/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/remote-feature-flag-controller/package.json b/packages/remote-feature-flag-controller/package.json index 02b844b70d4..1889872fcd7 100644 --- a/packages/remote-feature-flag-controller/package.json +++ b/packages/remote-feature-flag-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/sample-controllers/package.json b/packages/sample-controllers/package.json index e50a3a2bc69..56b7eb7e44b 100644 --- a/packages/sample-controllers/package.json +++ b/packages/sample-controllers/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/seedless-onboarding-controller/package.json b/packages/seedless-onboarding-controller/package.json index 947475bb698..bb5bc55fb82 100644 --- a/packages/seedless-onboarding-controller/package.json +++ b/packages/seedless-onboarding-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/selected-network-controller/package.json b/packages/selected-network-controller/package.json index 163d42db67f..26784cbf335 100644 --- a/packages/selected-network-controller/package.json +++ b/packages/selected-network-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/sentinel-api-service/package.json b/packages/sentinel-api-service/package.json index 411ef53f3ea..b5286ba12fc 100644 --- a/packages/sentinel-api-service/package.json +++ b/packages/sentinel-api-service/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/shield-controller/package.json b/packages/shield-controller/package.json index bb8aede9be0..97ebc21aa62 100644 --- a/packages/shield-controller/package.json +++ b/packages/shield-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/signature-controller/package.json b/packages/signature-controller/package.json index 220211989fc..fa6e2a5c3c7 100644 --- a/packages/signature-controller/package.json +++ b/packages/signature-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/smart-transactions-controller/package.json b/packages/smart-transactions-controller/package.json index 3e4a85b7b95..64b2e5ca9b4 100644 --- a/packages/smart-transactions-controller/package.json +++ b/packages/smart-transactions-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/snap-account-service/package.json b/packages/snap-account-service/package.json index bfb856f57d4..87327ed15c8 100644 --- a/packages/snap-account-service/package.json +++ b/packages/snap-account-service/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/social-controllers/package.json b/packages/social-controllers/package.json index 595ff43bdc8..8557f244d3f 100644 --- a/packages/social-controllers/package.json +++ b/packages/social-controllers/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/solana-test-validator-up/package.json b/packages/solana-test-validator-up/package.json index 8056b749bb3..af0003a8a2c 100644 --- a/packages/solana-test-validator-up/package.json +++ b/packages/solana-test-validator-up/package.json @@ -20,18 +20,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/stellar-quickstart-up/package.json b/packages/stellar-quickstart-up/package.json index 95148d5d1f8..15c9e5604ce 100644 --- a/packages/stellar-quickstart-up/package.json +++ b/packages/stellar-quickstart-up/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/storage-service/package.json b/packages/storage-service/package.json index fea52f591c1..2457a88bcbb 100644 --- a/packages/storage-service/package.json +++ b/packages/storage-service/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/subscription-controller/package.json b/packages/subscription-controller/package.json index 2d343ba89e8..89fb49fa210 100644 --- a/packages/subscription-controller/package.json +++ b/packages/subscription-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/transaction-controller/package.json b/packages/transaction-controller/package.json index 4fefe3b02fd..6af8b6cfb56 100644 --- a/packages/transaction-controller/package.json +++ b/packages/transaction-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/transaction-pay-controller/package.json b/packages/transaction-pay-controller/package.json index 852c84fb0d6..b3dca3e8ce6 100644 --- a/packages/transaction-pay-controller/package.json +++ b/packages/transaction-pay-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/user-operation-controller/package.json b/packages/user-operation-controller/package.json index ffdc2ce986c..d9316f0d8ff 100644 --- a/packages/user-operation-controller/package.json +++ b/packages/user-operation-controller/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/packages/wallet/package.json b/packages/wallet/package.json index 21d44501160..5778e81d986 100644 --- a/packages/wallet/package.json +++ b/packages/wallet/package.json @@ -19,18 +19,10 @@ "dist/" ], "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/yarn.config.cjs b/yarn.config.cjs index 7715deb1ce4..71c8a71e254 100644 --- a/yarn.config.cjs +++ b/yarn.config.cjs @@ -572,35 +572,16 @@ async function expectWorkspaceLicense(workspace) { function expectCorrectWorkspaceExports(workspace) { // All non-root packages must provide the location of the ESM-compatible // JavaScript entrypoint and its matching type declaration file. - expectWorkspaceField( - workspace, - 'exports["."].import.types', - './dist/index.d.mts', - ); - expectWorkspaceField( - workspace, - 'exports["."].import.default', - './dist/index.mjs', - ); + expectWorkspaceField(workspace, 'exports["."].types', './dist/index.d.ts'); + expectWorkspaceField(workspace, 'exports["."].import', './dist/index.js'); - // All non-root package must provide the location of the CommonJS-compatible - // entrypoint and its matching type declaration file. - expectWorkspaceField( - workspace, - 'exports["."].require.types', - './dist/index.d.cts', - ); - expectWorkspaceField( - workspace, - 'exports["."].require.default', - './dist/index.cjs', - ); - expectWorkspaceField(workspace, 'main', './dist/index.cjs'); - expectWorkspaceField(workspace, 'types', './dist/index.d.cts'); + // Packages should not provide separate CommonJS/ESM exports. + expectWorkspaceField(workspace, 'exports["."].require', null); + expectWorkspaceField(workspace, 'exports["."].default', null); - // Types should not be set in the export object directly, but rather in the - // `import` and `require` subfields. - expectWorkspaceField(workspace, 'exports["."].types', null); + // Packages should not provide a "main" or "types" field. + expectWorkspaceField(workspace, 'main', null); + expectWorkspaceField(workspace, 'types', null); // All non-root packages must export a `package.json` file. expectWorkspaceField( @@ -608,6 +589,36 @@ function expectCorrectWorkspaceExports(workspace) { 'exports["./package.json"]', './package.json', ); + + const nonRootExports = Object.keys(workspace.manifest.exports).filter( + (key) => key !== '.' && key !== './package.json', + ); + + for (const key of nonRootExports) { + const prefix = `exports["${key}"]`; + expectWorkspaceField(workspace, `${prefix}.types`); + expectWorkspaceField(workspace, `${prefix}.import`); + + const typesValue = get(workspace.manifest, `${prefix}.types`); + if ( + typesValue && + (typeof typesValue !== 'string' || !typesValue.endsWith('.d.ts')) + ) { + workspace.error( + `Expected package's "${prefix}.types" field to end with ".d.ts", but it was "${typesValue}".`, + ); + } + + const importValue = get(workspace.manifest, `${prefix}.import`); + if ( + importValue && + (typeof importValue !== 'string' || !importValue.endsWith('.js')) + ) { + workspace.error( + `Expected package's "${prefix}.import" field to end with ".js", but it was "${importValue}".`, + ); + } + } } /** From f9e2997864d97d09afb7301746dfa17db326eac1 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 13:43:03 +0200 Subject: [PATCH 003/136] Add `"type": "module"` to all packages Mark all packages (and the root) as native ESM by adding `"type": "module"` to their manifests. Also adds a Yarn constraint to enforce this field going forward. --- package.json | 1 + packages/account-tree-controller/package.json | 1 + packages/accounts-controller/package.json | 1 + packages/address-book-controller/package.json | 1 + packages/ai-controllers/package.json | 1 + packages/analytics-controller/package.json | 1 + packages/analytics-data-regulation-controller/package.json | 1 + packages/announcement-controller/package.json | 1 + packages/app-metadata-controller/package.json | 1 + packages/approval-controller/package.json | 1 + packages/assets-controller/package.json | 1 + packages/assets-controllers/package.json | 1 + packages/authenticated-user-storage/package.json | 1 + packages/base-controller/package.json | 1 + packages/base-data-service/package.json | 1 + packages/bitcoin-regtest-up/package.json | 1 + packages/bridge-controller/package.json | 1 + packages/bridge-status-controller/package.json | 1 + packages/build-utils/package.json | 1 + packages/chain-agnostic-permission/package.json | 1 + packages/chomp-api-service/package.json | 1 + packages/claims-controller/package.json | 1 + packages/client-controller/package.json | 1 + packages/client-utils/package.json | 1 + packages/compliance-controller/package.json | 1 + packages/composable-controller/package.json | 1 + packages/config-registry-controller/package.json | 1 + packages/connectivity-controller/package.json | 1 + packages/controller-utils/package.json | 1 + packages/core-backend/package.json | 1 + packages/delegation-controller/package.json | 1 + packages/earn-controller/package.json | 1 + packages/eip-5792-middleware/package.json | 1 + packages/eip-7702-internal-rpc-middleware/package.json | 1 + packages/eip1193-permission-middleware/package.json | 1 + packages/ens-controller/package.json | 1 + packages/eth-block-tracker/package.json | 1 + packages/eth-json-rpc-middleware/package.json | 1 + packages/eth-json-rpc-provider/package.json | 1 + packages/foundryup/package.json | 1 + packages/gas-fee-controller/package.json | 1 + packages/gator-permissions-controller/package.json | 1 + packages/geolocation-controller/package.json | 1 + packages/java-tron-up/package.json | 1 + packages/json-rpc-engine/package.json | 1 + packages/json-rpc-middleware-stream/package.json | 1 + packages/keyring-controller/package.json | 1 + packages/local-node-utils/package.json | 1 + packages/logging-controller/package.json | 1 + packages/message-manager/package.json | 1 + packages/messenger-cli/package.json | 1 + packages/messenger/package.json | 1 + packages/money-account-api-data-service/package.json | 1 + packages/money-account-balance-service/package.json | 1 + packages/money-account-controller/package.json | 1 + packages/money-account-upgrade-controller/package.json | 1 + packages/multichain-account-service/package.json | 1 + packages/multichain-api-middleware/package.json | 1 + packages/multichain-network-controller/package.json | 1 + packages/multichain-transactions-controller/package.json | 1 + packages/name-controller/package.json | 1 + packages/network-connection-banner-controller/package.json | 1 + packages/network-controller/package.json | 1 + packages/network-enablement-controller/package.json | 1 + packages/notification-services-controller/package.json | 1 + packages/passkey-controller/package.json | 1 + packages/permission-controller/package.json | 1 + packages/permission-log-controller/package.json | 1 + packages/perps-controller/package.json | 1 + packages/phishing-controller/package.json | 1 + packages/platform-api-docs/package.json | 1 + packages/polling-controller/package.json | 1 + packages/preferences-controller/package.json | 1 + packages/profile-metrics-controller/package.json | 1 + packages/profile-sync-controller/package.json | 1 + packages/ramps-controller/package.json | 1 + packages/rate-limit-controller/package.json | 1 + packages/react-data-query/package.json | 1 + packages/remote-feature-flag-controller/package.json | 1 + packages/sample-controllers/package.json | 1 + packages/seedless-onboarding-controller/package.json | 1 + packages/selected-network-controller/package.json | 1 + packages/sentinel-api-service/package.json | 1 + packages/shield-controller/package.json | 1 + packages/signature-controller/package.json | 1 + packages/smart-transactions-controller/package.json | 1 + packages/snap-account-service/package.json | 1 + packages/social-controllers/package.json | 1 + packages/solana-test-validator-up/package.json | 1 + packages/stellar-quickstart-up/package.json | 1 + packages/storage-service/package.json | 1 + packages/subscription-controller/package.json | 1 + packages/transaction-controller/package.json | 1 + packages/transaction-pay-controller/package.json | 1 + packages/user-operation-controller/package.json | 1 + packages/wallet-cli/package.json | 1 + packages/wallet-framework-docs/package.json | 1 + packages/wallet/package.json | 1 + yarn.config.cjs | 3 +++ 99 files changed, 101 insertions(+) diff --git a/package.json b/package.json index 4c7aea38cc4..41dfe81a870 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "packages/*" ], "files": [], + "type": "module", "scripts": { "build": "yarn tsc --build tsconfig.build.json --verbose", "build:clean": "yarn build:only-clean && yarn build", diff --git a/packages/account-tree-controller/package.json b/packages/account-tree-controller/package.json index eebeca18113..192663843cd 100644 --- a/packages/account-tree-controller/package.json +++ b/packages/account-tree-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/accounts-controller/package.json b/packages/accounts-controller/package.json index 8e5330e6020..120179239f5 100644 --- a/packages/accounts-controller/package.json +++ b/packages/accounts-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/address-book-controller/package.json b/packages/address-book-controller/package.json index 60508f6c015..d46f8a1d374 100644 --- a/packages/address-book-controller/package.json +++ b/packages/address-book-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/ai-controllers/package.json b/packages/ai-controllers/package.json index 78ea38328bd..e6c49798752 100644 --- a/packages/ai-controllers/package.json +++ b/packages/ai-controllers/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/analytics-controller/package.json b/packages/analytics-controller/package.json index d8f27ce4e62..0aa34dff2f0 100644 --- a/packages/analytics-controller/package.json +++ b/packages/analytics-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/analytics-data-regulation-controller/package.json b/packages/analytics-data-regulation-controller/package.json index f247301595a..3bca6017180 100644 --- a/packages/analytics-data-regulation-controller/package.json +++ b/packages/analytics-data-regulation-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/announcement-controller/package.json b/packages/announcement-controller/package.json index 5cceccd8ccc..2f85814fcb4 100644 --- a/packages/announcement-controller/package.json +++ b/packages/announcement-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/app-metadata-controller/package.json b/packages/app-metadata-controller/package.json index e5f5fcca1d1..3729fb01568 100644 --- a/packages/app-metadata-controller/package.json +++ b/packages/app-metadata-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/approval-controller/package.json b/packages/approval-controller/package.json index 1ceea787956..6faba5477b5 100644 --- a/packages/approval-controller/package.json +++ b/packages/approval-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/assets-controller/package.json b/packages/assets-controller/package.json index 6d76a9d091e..b8fd45d0122 100644 --- a/packages/assets-controller/package.json +++ b/packages/assets-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/assets-controllers/package.json b/packages/assets-controllers/package.json index 2d4d2d57418..e252beaefd5 100644 --- a/packages/assets-controllers/package.json +++ b/packages/assets-controllers/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/authenticated-user-storage/package.json b/packages/authenticated-user-storage/package.json index 0fff917faa9..97be8f3fdf9 100644 --- a/packages/authenticated-user-storage/package.json +++ b/packages/authenticated-user-storage/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/base-controller/package.json b/packages/base-controller/package.json index 2a164c4ffb0..467265157a0 100644 --- a/packages/base-controller/package.json +++ b/packages/base-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "exports": { ".": { "types": "./dist/index.d.ts", diff --git a/packages/base-data-service/package.json b/packages/base-data-service/package.json index 2c36c541ee2..a352f054557 100644 --- a/packages/base-data-service/package.json +++ b/packages/base-data-service/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/bitcoin-regtest-up/package.json b/packages/bitcoin-regtest-up/package.json index 11e715ce83f..327aa636981 100644 --- a/packages/bitcoin-regtest-up/package.json +++ b/packages/bitcoin-regtest-up/package.json @@ -19,6 +19,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/bridge-controller/package.json b/packages/bridge-controller/package.json index ff61e6e9604..38fd3e58797 100644 --- a/packages/bridge-controller/package.json +++ b/packages/bridge-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/bridge-status-controller/package.json b/packages/bridge-status-controller/package.json index ab07c3aa55c..41bbedc1226 100644 --- a/packages/bridge-status-controller/package.json +++ b/packages/bridge-status-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/build-utils/package.json b/packages/build-utils/package.json index 177eb070a8d..62a5600b38d 100644 --- a/packages/build-utils/package.json +++ b/packages/build-utils/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/chain-agnostic-permission/package.json b/packages/chain-agnostic-permission/package.json index 8efdec277f3..e0e550035d2 100644 --- a/packages/chain-agnostic-permission/package.json +++ b/packages/chain-agnostic-permission/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/chomp-api-service/package.json b/packages/chomp-api-service/package.json index 1f0ba9fa312..d6ee3807ebe 100644 --- a/packages/chomp-api-service/package.json +++ b/packages/chomp-api-service/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/claims-controller/package.json b/packages/claims-controller/package.json index e50a36d1afd..14137e19e6c 100644 --- a/packages/claims-controller/package.json +++ b/packages/claims-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/client-controller/package.json b/packages/client-controller/package.json index 8e8119553c5..935386a50b6 100644 --- a/packages/client-controller/package.json +++ b/packages/client-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/client-utils/package.json b/packages/client-utils/package.json index 012ce6af1cd..bd4ff1efecb 100644 --- a/packages/client-utils/package.json +++ b/packages/client-utils/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/compliance-controller/package.json b/packages/compliance-controller/package.json index 4455e1e159c..bf962fa9ef9 100644 --- a/packages/compliance-controller/package.json +++ b/packages/compliance-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/composable-controller/package.json b/packages/composable-controller/package.json index c93d2fff7e0..baf3337fd38 100644 --- a/packages/composable-controller/package.json +++ b/packages/composable-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/config-registry-controller/package.json b/packages/config-registry-controller/package.json index c0427262123..0051211b89d 100644 --- a/packages/config-registry-controller/package.json +++ b/packages/config-registry-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/connectivity-controller/package.json b/packages/connectivity-controller/package.json index 7cff830415e..1be74607c5b 100644 --- a/packages/connectivity-controller/package.json +++ b/packages/connectivity-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/controller-utils/package.json b/packages/controller-utils/package.json index 0bff666215a..503ececef6e 100644 --- a/packages/controller-utils/package.json +++ b/packages/controller-utils/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/core-backend/package.json b/packages/core-backend/package.json index 918b725c476..39d75b23bb3 100644 --- a/packages/core-backend/package.json +++ b/packages/core-backend/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/delegation-controller/package.json b/packages/delegation-controller/package.json index de975560964..d0e1b02ece2 100644 --- a/packages/delegation-controller/package.json +++ b/packages/delegation-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/earn-controller/package.json b/packages/earn-controller/package.json index 13ad6ce5bbb..3108dfafbb1 100644 --- a/packages/earn-controller/package.json +++ b/packages/earn-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/eip-5792-middleware/package.json b/packages/eip-5792-middleware/package.json index 7fe2fc3f04c..09c360e1dc8 100644 --- a/packages/eip-5792-middleware/package.json +++ b/packages/eip-5792-middleware/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/eip-7702-internal-rpc-middleware/package.json b/packages/eip-7702-internal-rpc-middleware/package.json index 40d5358cdf8..4bdb8434d53 100644 --- a/packages/eip-7702-internal-rpc-middleware/package.json +++ b/packages/eip-7702-internal-rpc-middleware/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/eip1193-permission-middleware/package.json b/packages/eip1193-permission-middleware/package.json index 33cc15d6ed6..ac8fdde3054 100644 --- a/packages/eip1193-permission-middleware/package.json +++ b/packages/eip1193-permission-middleware/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/ens-controller/package.json b/packages/ens-controller/package.json index 6140a5283dc..d2921d72224 100644 --- a/packages/ens-controller/package.json +++ b/packages/ens-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/eth-block-tracker/package.json b/packages/eth-block-tracker/package.json index b538e6dd64c..d08b4d86f4b 100644 --- a/packages/eth-block-tracker/package.json +++ b/packages/eth-block-tracker/package.json @@ -19,6 +19,7 @@ "dist", "dist/" ], + "type": "module", "sideEffects": false, "module": "./dist/index.mjs", "exports": { diff --git a/packages/eth-json-rpc-middleware/package.json b/packages/eth-json-rpc-middleware/package.json index c0be9b57bc8..f896b9c4974 100644 --- a/packages/eth-json-rpc-middleware/package.json +++ b/packages/eth-json-rpc-middleware/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "module": "./dist/index.mjs", "exports": { diff --git a/packages/eth-json-rpc-provider/package.json b/packages/eth-json-rpc-provider/package.json index a5f5a9b7460..72ede1154e4 100644 --- a/packages/eth-json-rpc-provider/package.json +++ b/packages/eth-json-rpc-provider/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/foundryup/package.json b/packages/foundryup/package.json index 586ce24c23a..476471fd0ba 100644 --- a/packages/foundryup/package.json +++ b/packages/foundryup/package.json @@ -21,6 +21,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "main": "./dist/index.cjs", "types": "./dist/index.d.cts", diff --git a/packages/gas-fee-controller/package.json b/packages/gas-fee-controller/package.json index 48b77ca9d49..79341d7396e 100644 --- a/packages/gas-fee-controller/package.json +++ b/packages/gas-fee-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/gator-permissions-controller/package.json b/packages/gator-permissions-controller/package.json index 536fe3e6d76..2c8e92bf2bf 100644 --- a/packages/gator-permissions-controller/package.json +++ b/packages/gator-permissions-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/geolocation-controller/package.json b/packages/geolocation-controller/package.json index 3545e138bec..4ea3a7bb77b 100644 --- a/packages/geolocation-controller/package.json +++ b/packages/geolocation-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/java-tron-up/package.json b/packages/java-tron-up/package.json index 5ea88e75200..a61e2377dbb 100644 --- a/packages/java-tron-up/package.json +++ b/packages/java-tron-up/package.json @@ -19,6 +19,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/json-rpc-engine/package.json b/packages/json-rpc-engine/package.json index 3ec3b911ecc..474f0de11af 100644 --- a/packages/json-rpc-engine/package.json +++ b/packages/json-rpc-engine/package.json @@ -22,6 +22,7 @@ "dist/", "v2.js" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/json-rpc-middleware-stream/package.json b/packages/json-rpc-middleware-stream/package.json index ea9f9ffc629..17935e1e6f9 100644 --- a/packages/json-rpc-middleware-stream/package.json +++ b/packages/json-rpc-middleware-stream/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/keyring-controller/package.json b/packages/keyring-controller/package.json index e6317a090b2..70c013f0f05 100644 --- a/packages/keyring-controller/package.json +++ b/packages/keyring-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/local-node-utils/package.json b/packages/local-node-utils/package.json index 45b556570ac..15b420f2353 100644 --- a/packages/local-node-utils/package.json +++ b/packages/local-node-utils/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/logging-controller/package.json b/packages/logging-controller/package.json index afd661fd3f4..f0135bf5053 100644 --- a/packages/logging-controller/package.json +++ b/packages/logging-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/message-manager/package.json b/packages/message-manager/package.json index 7760573383a..1fa9379423c 100644 --- a/packages/message-manager/package.json +++ b/packages/message-manager/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/messenger-cli/package.json b/packages/messenger-cli/package.json index d84398a3178..061f636a511 100644 --- a/packages/messenger-cli/package.json +++ b/packages/messenger-cli/package.json @@ -21,6 +21,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "publishConfig": { "access": "public", diff --git a/packages/messenger/package.json b/packages/messenger/package.json index 64ffcb1a9f7..f8d2932673c 100644 --- a/packages/messenger/package.json +++ b/packages/messenger/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/money-account-api-data-service/package.json b/packages/money-account-api-data-service/package.json index ec780e9cdb6..cd8d99fe89e 100644 --- a/packages/money-account-api-data-service/package.json +++ b/packages/money-account-api-data-service/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/money-account-balance-service/package.json b/packages/money-account-balance-service/package.json index 127e67f51e7..bb93aa8679d 100644 --- a/packages/money-account-balance-service/package.json +++ b/packages/money-account-balance-service/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/money-account-controller/package.json b/packages/money-account-controller/package.json index 287a3788d54..1d141a7755e 100644 --- a/packages/money-account-controller/package.json +++ b/packages/money-account-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/money-account-upgrade-controller/package.json b/packages/money-account-upgrade-controller/package.json index b9e06fd1fb9..d6e4266e56e 100644 --- a/packages/money-account-upgrade-controller/package.json +++ b/packages/money-account-upgrade-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/multichain-account-service/package.json b/packages/multichain-account-service/package.json index a815c592292..e09444930ec 100644 --- a/packages/multichain-account-service/package.json +++ b/packages/multichain-account-service/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/multichain-api-middleware/package.json b/packages/multichain-api-middleware/package.json index 0bb0bc1e7c9..d5f916dc9e9 100644 --- a/packages/multichain-api-middleware/package.json +++ b/packages/multichain-api-middleware/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/multichain-network-controller/package.json b/packages/multichain-network-controller/package.json index cc3b942c937..a9242b5bc56 100644 --- a/packages/multichain-network-controller/package.json +++ b/packages/multichain-network-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/multichain-transactions-controller/package.json b/packages/multichain-transactions-controller/package.json index 3e557281dcf..57d9c1b242c 100644 --- a/packages/multichain-transactions-controller/package.json +++ b/packages/multichain-transactions-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/name-controller/package.json b/packages/name-controller/package.json index cceff31efaa..18cb5d4ab1f 100644 --- a/packages/name-controller/package.json +++ b/packages/name-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/network-connection-banner-controller/package.json b/packages/network-connection-banner-controller/package.json index 3b63d58e4e1..c3a0d7fa886 100644 --- a/packages/network-connection-banner-controller/package.json +++ b/packages/network-connection-banner-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/network-controller/package.json b/packages/network-controller/package.json index 81ec226e563..6c12e2e5308 100644 --- a/packages/network-controller/package.json +++ b/packages/network-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/network-enablement-controller/package.json b/packages/network-enablement-controller/package.json index c9321b77d4d..2a178da0e4b 100644 --- a/packages/network-enablement-controller/package.json +++ b/packages/network-enablement-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/notification-services-controller/package.json b/packages/notification-services-controller/package.json index 90068c278ea..e1570dafed8 100644 --- a/packages/notification-services-controller/package.json +++ b/packages/notification-services-controller/package.json @@ -20,6 +20,7 @@ "notification-services/", "push-services/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/passkey-controller/package.json b/packages/passkey-controller/package.json index 9f69b83c8e6..92c30ed4e28 100644 --- a/packages/passkey-controller/package.json +++ b/packages/passkey-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/permission-controller/package.json b/packages/permission-controller/package.json index fa59d79d351..2eadcbd8631 100644 --- a/packages/permission-controller/package.json +++ b/packages/permission-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/permission-log-controller/package.json b/packages/permission-log-controller/package.json index e3d423ac0a4..b27f983960f 100644 --- a/packages/permission-log-controller/package.json +++ b/packages/permission-log-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/perps-controller/package.json b/packages/perps-controller/package.json index 58cf0058131..863ee519fd9 100644 --- a/packages/perps-controller/package.json +++ b/packages/perps-controller/package.json @@ -21,6 +21,7 @@ "!dist/services/MYXClientService*", "!dist/services/MYXWalletService*" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/phishing-controller/package.json b/packages/phishing-controller/package.json index 3a096ce28e2..9fd2ab623ec 100644 --- a/packages/phishing-controller/package.json +++ b/packages/phishing-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/platform-api-docs/package.json b/packages/platform-api-docs/package.json index 55fb059906d..b33d47cd4fb 100644 --- a/packages/platform-api-docs/package.json +++ b/packages/platform-api-docs/package.json @@ -20,6 +20,7 @@ "dist/", "site/" ], + "type": "module", "sideEffects": false, "publishConfig": { "access": "public", diff --git a/packages/polling-controller/package.json b/packages/polling-controller/package.json index aa57dc7bfac..2288ae3a811 100644 --- a/packages/polling-controller/package.json +++ b/packages/polling-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/preferences-controller/package.json b/packages/preferences-controller/package.json index 9553f26fca4..e822f6f2f45 100644 --- a/packages/preferences-controller/package.json +++ b/packages/preferences-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/profile-metrics-controller/package.json b/packages/profile-metrics-controller/package.json index f0d6826c83a..bdad8505b86 100644 --- a/packages/profile-metrics-controller/package.json +++ b/packages/profile-metrics-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/profile-sync-controller/package.json b/packages/profile-sync-controller/package.json index e63fe4f29d7..cc71e087724 100644 --- a/packages/profile-sync-controller/package.json +++ b/packages/profile-sync-controller/package.json @@ -21,6 +21,7 @@ "user-storage/", "sdk/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/ramps-controller/package.json b/packages/ramps-controller/package.json index 85860ba6ace..690f406551f 100644 --- a/packages/ramps-controller/package.json +++ b/packages/ramps-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/rate-limit-controller/package.json b/packages/rate-limit-controller/package.json index fb8c1a90162..ec590a68a1f 100644 --- a/packages/rate-limit-controller/package.json +++ b/packages/rate-limit-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/react-data-query/package.json b/packages/react-data-query/package.json index 0af73a6f4c2..202e202a324 100644 --- a/packages/react-data-query/package.json +++ b/packages/react-data-query/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/remote-feature-flag-controller/package.json b/packages/remote-feature-flag-controller/package.json index 1889872fcd7..689d19614d4 100644 --- a/packages/remote-feature-flag-controller/package.json +++ b/packages/remote-feature-flag-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/sample-controllers/package.json b/packages/sample-controllers/package.json index 56b7eb7e44b..314a0cce97e 100644 --- a/packages/sample-controllers/package.json +++ b/packages/sample-controllers/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/seedless-onboarding-controller/package.json b/packages/seedless-onboarding-controller/package.json index bb5bc55fb82..d13c45eb5e8 100644 --- a/packages/seedless-onboarding-controller/package.json +++ b/packages/seedless-onboarding-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/selected-network-controller/package.json b/packages/selected-network-controller/package.json index 26784cbf335..3718724288b 100644 --- a/packages/selected-network-controller/package.json +++ b/packages/selected-network-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/sentinel-api-service/package.json b/packages/sentinel-api-service/package.json index b5286ba12fc..32370a0ddd9 100644 --- a/packages/sentinel-api-service/package.json +++ b/packages/sentinel-api-service/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/shield-controller/package.json b/packages/shield-controller/package.json index 97ebc21aa62..9336dbf2598 100644 --- a/packages/shield-controller/package.json +++ b/packages/shield-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/signature-controller/package.json b/packages/signature-controller/package.json index fa6e2a5c3c7..454487509de 100644 --- a/packages/signature-controller/package.json +++ b/packages/signature-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/smart-transactions-controller/package.json b/packages/smart-transactions-controller/package.json index 64b2e5ca9b4..d0e40bf425c 100644 --- a/packages/smart-transactions-controller/package.json +++ b/packages/smart-transactions-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/snap-account-service/package.json b/packages/snap-account-service/package.json index 87327ed15c8..0216f69a516 100644 --- a/packages/snap-account-service/package.json +++ b/packages/snap-account-service/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/social-controllers/package.json b/packages/social-controllers/package.json index 8557f244d3f..917318000f5 100644 --- a/packages/social-controllers/package.json +++ b/packages/social-controllers/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/solana-test-validator-up/package.json b/packages/solana-test-validator-up/package.json index af0003a8a2c..6c4cb73ad16 100644 --- a/packages/solana-test-validator-up/package.json +++ b/packages/solana-test-validator-up/package.json @@ -19,6 +19,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/stellar-quickstart-up/package.json b/packages/stellar-quickstart-up/package.json index 15c9e5604ce..db60c217e22 100644 --- a/packages/stellar-quickstart-up/package.json +++ b/packages/stellar-quickstart-up/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/storage-service/package.json b/packages/storage-service/package.json index 2457a88bcbb..2d78bb0d46d 100644 --- a/packages/storage-service/package.json +++ b/packages/storage-service/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/subscription-controller/package.json b/packages/subscription-controller/package.json index 89fb49fa210..c5b7692d56f 100644 --- a/packages/subscription-controller/package.json +++ b/packages/subscription-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/transaction-controller/package.json b/packages/transaction-controller/package.json index 6af8b6cfb56..da41ee3e2f1 100644 --- a/packages/transaction-controller/package.json +++ b/packages/transaction-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/transaction-pay-controller/package.json b/packages/transaction-pay-controller/package.json index b3dca3e8ce6..205ff0f1f09 100644 --- a/packages/transaction-pay-controller/package.json +++ b/packages/transaction-pay-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/user-operation-controller/package.json b/packages/user-operation-controller/package.json index d9316f0d8ff..de2d5af271a 100644 --- a/packages/user-operation-controller/package.json +++ b/packages/user-operation-controller/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/packages/wallet-cli/package.json b/packages/wallet-cli/package.json index 2789786d96f..6928a98dba3 100644 --- a/packages/wallet-cli/package.json +++ b/packages/wallet-cli/package.json @@ -22,6 +22,7 @@ "bin/", "dist/" ], + "type": "module", "sideEffects": false, "exports": { "./package.json": "./package.json" diff --git a/packages/wallet-framework-docs/package.json b/packages/wallet-framework-docs/package.json index 6e0908d4296..7444d92a287 100644 --- a/packages/wallet-framework-docs/package.json +++ b/packages/wallet-framework-docs/package.json @@ -19,6 +19,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "scripts": { "build": "docusaurus build site", diff --git a/packages/wallet/package.json b/packages/wallet/package.json index 5778e81d986..155a575a8e8 100644 --- a/packages/wallet/package.json +++ b/packages/wallet/package.json @@ -18,6 +18,7 @@ "files": [ "dist/" ], + "type": "module", "sideEffects": false, "exports": { ".": { diff --git a/yarn.config.cjs b/yarn.config.cjs index 71c8a71e254..ce4afd397ac 100644 --- a/yarn.config.cjs +++ b/yarn.config.cjs @@ -83,6 +83,9 @@ module.exports = defineConfig({ // All packages must have a name. expectWorkspaceField(workspace, 'name'); + // All workspaces must specify "type: module". + expectWorkspaceField(workspace, 'type', 'module'); + if (isChildWorkspace) { // All non-root packages must have a name that matches its directory // (e.g., a package in a workspace directory called `foo` must be called From a841bc0aa7c664301c6a97ae3d5632feeb68ca1a Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 14:19:12 +0200 Subject: [PATCH 004/136] Add ESLint rules to enforce .js extensions in ESM imports Use `n/file-extension-in-import` to require `.js` extensions on relative imports (since `import-x/extensions` can't enforce this for TypeScript files). --- eslint.config.mjs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/eslint.config.mjs b/eslint.config.mjs index 9aa11e168a2..d8a4ab79746 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -2,6 +2,7 @@ import base, { createConfig } from '@metamask/eslint-config'; import jest from '@metamask/eslint-config-jest'; import nodejs from '@metamask/eslint-config-nodejs'; import typescript from '@metamask/eslint-config-typescript'; +import node from 'eslint-plugin-n'; const NODE_LTS_VERSION = 22; @@ -373,6 +374,32 @@ const config = createConfig([ 'n/no-process-env': 'off', }, }, + + // ESM-specific configuration. We should port this to + // `@metamask/eslint-config` at some point. + { + plugins: { n: node }, + rules: { + // `import-x/extensions` doesn't support using ".js" for TypeScript + // files(?), so we load the `n` plugin and use + // `n/file-extension-in-import` instead. + 'n/file-extension-in-import': ['error', 'always'], + 'import-x/extensions': [ + 'error', + { + js: 'ignorePackages', + ts: 'never', + tsx: 'never', + }, + ], + 'import-x/no-useless-path-segments': [ + 'error', + { + noUselessIndex: false, + }, + ], + }, + }, ]); export default config; From f40ea887f91238cbf89bec022d691213f34dfdc1 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 14:35:26 +0200 Subject: [PATCH 005/136] Replace `__dirname` with `import.meta.dirname` in all packages `__dirname` is not available in ESM. Replace all usages with `import.meta.dirname`, which is equivalent and available since Node.js 21.2. --- packages/account-tree-controller/jest.config.js | 2 +- packages/accounts-controller/jest.config.js | 2 +- packages/address-book-controller/jest.config.js | 2 +- packages/ai-controllers/jest.config.js | 2 +- packages/analytics-controller/jest.config.js | 2 +- .../jest.config.js | 2 +- packages/announcement-controller/jest.config.js | 2 +- packages/app-metadata-controller/jest.config.js | 2 +- packages/approval-controller/jest.config.js | 2 +- packages/assets-controller/jest.config.js | 2 +- packages/assets-controllers/jest.config.js | 2 +- packages/authenticated-user-storage/jest.config.js | 2 +- packages/base-controller/jest.config.js | 2 +- packages/base-data-service/jest.config.js | 2 +- packages/bitcoin-regtest-up/jest.config.js | 2 +- packages/bridge-controller/jest.config.js | 2 +- packages/bridge-status-controller/jest.config.js | 2 +- packages/build-utils/jest.config.js | 2 +- packages/chain-agnostic-permission/jest.config.js | 2 +- packages/chomp-api-service/jest.config.js | 2 +- packages/claims-controller/jest.config.js | 2 +- packages/client-controller/jest.config.js | 2 +- packages/client-utils/jest.config.js | 2 +- packages/compliance-controller/jest.config.js | 2 +- packages/composable-controller/jest.config.js | 2 +- packages/config-registry-controller/jest.config.js | 2 +- packages/connectivity-controller/jest.config.js | 2 +- packages/controller-utils/jest.config.js | 2 +- packages/core-backend/jest.config.js | 2 +- packages/delegation-controller/jest.config.js | 2 +- packages/earn-controller/jest.config.js | 2 +- packages/eip-5792-middleware/jest.config.js | 2 +- .../eip-7702-internal-rpc-middleware/jest.config.js | 2 +- .../eip1193-permission-middleware/jest.config.js | 2 +- packages/ens-controller/jest.config.js | 2 +- packages/eth-block-tracker/jest.config.js | 2 +- packages/eth-json-rpc-middleware/jest.config.js | 2 +- packages/eth-json-rpc-provider/jest.config.js | 2 +- packages/foundryup/jest.config.js | 2 +- packages/gas-fee-controller/jest.config.js | 2 +- packages/gator-permissions-controller/jest.config.js | 2 +- packages/geolocation-controller/jest.config.js | 2 +- packages/java-tron-up/jest.config.js | 2 +- packages/json-rpc-engine/jest.config.js | 2 +- packages/json-rpc-middleware-stream/jest.config.js | 2 +- packages/keyring-controller/jest.config.js | 2 +- packages/local-node-utils/jest.config.js | 2 +- packages/logging-controller/jest.config.js | 2 +- packages/message-manager/jest.config.js | 2 +- packages/messenger-cli/jest.config.js | 2 +- packages/messenger/jest.config.js | 2 +- .../money-account-api-data-service/jest.config.js | 2 +- .../money-account-balance-service/jest.config.js | 2 +- packages/money-account-controller/jest.config.js | 2 +- .../money-account-upgrade-controller/jest.config.js | 2 +- packages/multichain-account-service/jest.config.js | 2 +- packages/multichain-api-middleware/jest.config.js | 2 +- .../multichain-network-controller/jest.config.js | 2 +- .../jest.config.js | 2 +- packages/name-controller/jest.config.js | 2 +- .../jest.config.js | 2 +- packages/network-controller/jest.config.js | 2 +- .../network-enablement-controller/jest.config.js | 2 +- .../notification-services-controller/jest.config.js | 2 +- packages/passkey-controller/jest.config.js | 2 +- packages/permission-controller/jest.config.js | 2 +- packages/permission-log-controller/jest.config.js | 2 +- packages/perps-controller/jest.config.js | 2 +- packages/phishing-controller/jest.config.js | 2 +- packages/platform-api-docs/jest.config.js | 2 +- packages/polling-controller/jest.config.js | 2 +- packages/preferences-controller/jest.config.js | 2 +- packages/profile-metrics-controller/jest.config.js | 2 +- packages/profile-sync-controller/jest.config.js | 2 +- packages/ramps-controller/dev-watch.js | 6 +++--- packages/ramps-controller/jest.config.js | 2 +- packages/ramps-controller/link-ramp-controller.js | 12 +++++++++--- packages/rate-limit-controller/jest.config.js | 2 +- packages/react-data-query/jest.config.js | 2 +- .../remote-feature-flag-controller/jest.config.js | 2 +- packages/sample-controllers/jest.config.js | 2 +- .../seedless-onboarding-controller/jest.config.js | 2 +- packages/selected-network-controller/jest.config.js | 2 +- packages/sentinel-api-service/jest.config.js | 2 +- packages/shield-controller/jest.config.js | 2 +- packages/signature-controller/jest.config.js | 2 +- .../smart-transactions-controller/jest.config.js | 2 +- packages/snap-account-service/jest.config.js | 2 +- packages/social-controllers/jest.config.js | 2 +- packages/solana-test-validator-up/jest.config.js | 2 +- packages/stellar-quickstart-up/jest.config.js | 2 +- packages/storage-service/jest.config.js | 2 +- packages/subscription-controller/jest.config.js | 2 +- packages/transaction-controller/jest.config.js | 2 +- packages/transaction-pay-controller/jest.config.js | 2 +- packages/user-operation-controller/jest.config.js | 2 +- packages/wallet-cli/jest.config.js | 2 +- packages/wallet-framework-docs/jest.config.js | 2 +- packages/wallet/jest.config.js | 2 +- .../create-package/package-template/jest.config.js | 2 +- scripts/create-package/utils.ts | 4 ++-- scripts/lint-teams-json.ts | 2 +- scripts/update-readme-content.ts | 2 +- 103 files changed, 114 insertions(+), 108 deletions(-) diff --git a/packages/account-tree-controller/jest.config.js b/packages/account-tree-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/account-tree-controller/jest.config.js +++ b/packages/account-tree-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/accounts-controller/jest.config.js b/packages/accounts-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/accounts-controller/jest.config.js +++ b/packages/accounts-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/address-book-controller/jest.config.js b/packages/address-book-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/address-book-controller/jest.config.js +++ b/packages/address-book-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/ai-controllers/jest.config.js b/packages/ai-controllers/jest.config.js index 55df7971f9f..3e6cab4dd05 100644 --- a/packages/ai-controllers/jest.config.js +++ b/packages/ai-controllers/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/analytics-controller/jest.config.js b/packages/analytics-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/analytics-controller/jest.config.js +++ b/packages/analytics-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/analytics-data-regulation-controller/jest.config.js b/packages/analytics-data-regulation-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/analytics-data-regulation-controller/jest.config.js +++ b/packages/analytics-data-regulation-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/announcement-controller/jest.config.js b/packages/announcement-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/announcement-controller/jest.config.js +++ b/packages/announcement-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/app-metadata-controller/jest.config.js b/packages/app-metadata-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/app-metadata-controller/jest.config.js +++ b/packages/app-metadata-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/approval-controller/jest.config.js b/packages/approval-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/approval-controller/jest.config.js +++ b/packages/approval-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/assets-controller/jest.config.js b/packages/assets-controller/jest.config.js index 2f47d1dcaa3..cd5d81e25c7 100644 --- a/packages/assets-controller/jest.config.js +++ b/packages/assets-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/assets-controllers/jest.config.js b/packages/assets-controllers/jest.config.js index add4e35680f..da6e860251d 100644 --- a/packages/assets-controllers/jest.config.js +++ b/packages/assets-controllers/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/authenticated-user-storage/jest.config.js b/packages/authenticated-user-storage/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/authenticated-user-storage/jest.config.js +++ b/packages/authenticated-user-storage/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/base-controller/jest.config.js b/packages/base-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/base-controller/jest.config.js +++ b/packages/base-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/base-data-service/jest.config.js b/packages/base-data-service/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/base-data-service/jest.config.js +++ b/packages/base-data-service/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/bitcoin-regtest-up/jest.config.js b/packages/bitcoin-regtest-up/jest.config.js index fc9274eb1ef..bd575b25e28 100644 --- a/packages/bitcoin-regtest-up/jest.config.js +++ b/packages/bitcoin-regtest-up/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/bridge-controller/jest.config.js b/packages/bridge-controller/jest.config.js index 632d1db1f00..e182a513001 100644 --- a/packages/bridge-controller/jest.config.js +++ b/packages/bridge-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/bridge-status-controller/jest.config.js b/packages/bridge-status-controller/jest.config.js index 86e3fc3cfeb..67266cdaa0e 100644 --- a/packages/bridge-status-controller/jest.config.js +++ b/packages/bridge-status-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/build-utils/jest.config.js b/packages/build-utils/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/build-utils/jest.config.js +++ b/packages/build-utils/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/chain-agnostic-permission/jest.config.js b/packages/chain-agnostic-permission/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/chain-agnostic-permission/jest.config.js +++ b/packages/chain-agnostic-permission/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/chomp-api-service/jest.config.js b/packages/chomp-api-service/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/chomp-api-service/jest.config.js +++ b/packages/chomp-api-service/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/claims-controller/jest.config.js b/packages/claims-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/claims-controller/jest.config.js +++ b/packages/claims-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/client-controller/jest.config.js b/packages/client-controller/jest.config.js index 9efbc1e7d1f..9d1196b8160 100644 --- a/packages/client-controller/jest.config.js +++ b/packages/client-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { displayName, diff --git a/packages/client-utils/jest.config.js b/packages/client-utils/jest.config.js index cf3a75978f1..7873ea482cb 100644 --- a/packages/client-utils/jest.config.js +++ b/packages/client-utils/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/compliance-controller/jest.config.js b/packages/compliance-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/compliance-controller/jest.config.js +++ b/packages/compliance-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/composable-controller/jest.config.js b/packages/composable-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/composable-controller/jest.config.js +++ b/packages/composable-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/config-registry-controller/jest.config.js b/packages/config-registry-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/config-registry-controller/jest.config.js +++ b/packages/config-registry-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/connectivity-controller/jest.config.js b/packages/connectivity-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/connectivity-controller/jest.config.js +++ b/packages/connectivity-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/controller-utils/jest.config.js b/packages/controller-utils/jest.config.js index 8e0bb5320db..eac83868094 100644 --- a/packages/controller-utils/jest.config.js +++ b/packages/controller-utils/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/core-backend/jest.config.js b/packages/core-backend/jest.config.js index 9af4c974897..8118bc7d056 100644 --- a/packages/core-backend/jest.config.js +++ b/packages/core-backend/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/delegation-controller/jest.config.js b/packages/delegation-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/delegation-controller/jest.config.js +++ b/packages/delegation-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/earn-controller/jest.config.js b/packages/earn-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/earn-controller/jest.config.js +++ b/packages/earn-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/eip-5792-middleware/jest.config.js b/packages/eip-5792-middleware/jest.config.js index 70d67779fbe..36655c9b266 100644 --- a/packages/eip-5792-middleware/jest.config.js +++ b/packages/eip-5792-middleware/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/eip-7702-internal-rpc-middleware/jest.config.js b/packages/eip-7702-internal-rpc-middleware/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/eip-7702-internal-rpc-middleware/jest.config.js +++ b/packages/eip-7702-internal-rpc-middleware/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/eip1193-permission-middleware/jest.config.js b/packages/eip1193-permission-middleware/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/eip1193-permission-middleware/jest.config.js +++ b/packages/eip1193-permission-middleware/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/ens-controller/jest.config.js b/packages/ens-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/ens-controller/jest.config.js +++ b/packages/ens-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/eth-block-tracker/jest.config.js b/packages/eth-block-tracker/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/eth-block-tracker/jest.config.js +++ b/packages/eth-block-tracker/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/eth-json-rpc-middleware/jest.config.js b/packages/eth-json-rpc-middleware/jest.config.js index 4c500d749cb..38bdce227ce 100644 --- a/packages/eth-json-rpc-middleware/jest.config.js +++ b/packages/eth-json-rpc-middleware/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/eth-json-rpc-provider/jest.config.js b/packages/eth-json-rpc-provider/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/eth-json-rpc-provider/jest.config.js +++ b/packages/eth-json-rpc-provider/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/foundryup/jest.config.js b/packages/foundryup/jest.config.js index df8d173e85f..5ee81045da0 100644 --- a/packages/foundryup/jest.config.js +++ b/packages/foundryup/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/gas-fee-controller/jest.config.js b/packages/gas-fee-controller/jest.config.js index 14cf684c6a7..9dcb32d6325 100644 --- a/packages/gas-fee-controller/jest.config.js +++ b/packages/gas-fee-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/gator-permissions-controller/jest.config.js b/packages/gator-permissions-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/gator-permissions-controller/jest.config.js +++ b/packages/gator-permissions-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/geolocation-controller/jest.config.js b/packages/geolocation-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/geolocation-controller/jest.config.js +++ b/packages/geolocation-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/java-tron-up/jest.config.js b/packages/java-tron-up/jest.config.js index e29b7194b97..dd101347e37 100644 --- a/packages/java-tron-up/jest.config.js +++ b/packages/java-tron-up/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/json-rpc-engine/jest.config.js b/packages/json-rpc-engine/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/json-rpc-engine/jest.config.js +++ b/packages/json-rpc-engine/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/json-rpc-middleware-stream/jest.config.js b/packages/json-rpc-middleware-stream/jest.config.js index 3544112ae56..a2ee7b406b2 100644 --- a/packages/json-rpc-middleware-stream/jest.config.js +++ b/packages/json-rpc-middleware-stream/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/keyring-controller/jest.config.js b/packages/keyring-controller/jest.config.js index b1b83b31073..ef4e25a8b54 100644 --- a/packages/keyring-controller/jest.config.js +++ b/packages/keyring-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/local-node-utils/jest.config.js b/packages/local-node-utils/jest.config.js index 29b89ed0923..b47e4121538 100644 --- a/packages/local-node-utils/jest.config.js +++ b/packages/local-node-utils/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/logging-controller/jest.config.js b/packages/logging-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/logging-controller/jest.config.js +++ b/packages/logging-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/message-manager/jest.config.js b/packages/message-manager/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/message-manager/jest.config.js +++ b/packages/message-manager/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/messenger-cli/jest.config.js b/packages/messenger-cli/jest.config.js index 2056ce9cc2d..f4926fb9873 100644 --- a/packages/messenger-cli/jest.config.js +++ b/packages/messenger-cli/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/messenger/jest.config.js b/packages/messenger/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/messenger/jest.config.js +++ b/packages/messenger/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/money-account-api-data-service/jest.config.js b/packages/money-account-api-data-service/jest.config.js index c17efa251af..3c59dbe56c1 100644 --- a/packages/money-account-api-data-service/jest.config.js +++ b/packages/money-account-api-data-service/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { displayName, diff --git a/packages/money-account-balance-service/jest.config.js b/packages/money-account-balance-service/jest.config.js index c17efa251af..3c59dbe56c1 100644 --- a/packages/money-account-balance-service/jest.config.js +++ b/packages/money-account-balance-service/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { displayName, diff --git a/packages/money-account-controller/jest.config.js b/packages/money-account-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/money-account-controller/jest.config.js +++ b/packages/money-account-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/money-account-upgrade-controller/jest.config.js b/packages/money-account-upgrade-controller/jest.config.js index 1c5314007e1..69d5d9b4273 100644 --- a/packages/money-account-upgrade-controller/jest.config.js +++ b/packages/money-account-upgrade-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { displayName, diff --git a/packages/multichain-account-service/jest.config.js b/packages/multichain-account-service/jest.config.js index 760546caa63..10ee5bfeb27 100644 --- a/packages/multichain-account-service/jest.config.js +++ b/packages/multichain-account-service/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/multichain-api-middleware/jest.config.js b/packages/multichain-api-middleware/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/multichain-api-middleware/jest.config.js +++ b/packages/multichain-api-middleware/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/multichain-network-controller/jest.config.js b/packages/multichain-network-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/multichain-network-controller/jest.config.js +++ b/packages/multichain-network-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/multichain-transactions-controller/jest.config.js b/packages/multichain-transactions-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/multichain-transactions-controller/jest.config.js +++ b/packages/multichain-transactions-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/name-controller/jest.config.js b/packages/name-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/name-controller/jest.config.js +++ b/packages/name-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/network-connection-banner-controller/jest.config.js b/packages/network-connection-banner-controller/jest.config.js index f6a03b68807..9e9e5413583 100644 --- a/packages/network-connection-banner-controller/jest.config.js +++ b/packages/network-connection-banner-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/network-controller/jest.config.js b/packages/network-controller/jest.config.js index 621e01529f5..c2af8240db6 100644 --- a/packages/network-controller/jest.config.js +++ b/packages/network-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/network-enablement-controller/jest.config.js b/packages/network-enablement-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/network-enablement-controller/jest.config.js +++ b/packages/network-enablement-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/notification-services-controller/jest.config.js b/packages/notification-services-controller/jest.config.js index 91dccc79ab3..264c6cfa402 100644 --- a/packages/notification-services-controller/jest.config.js +++ b/packages/notification-services-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/passkey-controller/jest.config.js b/packages/passkey-controller/jest.config.js index cc62e89c35e..47325836f4c 100644 --- a/packages/passkey-controller/jest.config.js +++ b/packages/passkey-controller/jest.config.js @@ -3,7 +3,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { displayName, diff --git a/packages/permission-controller/jest.config.js b/packages/permission-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/permission-controller/jest.config.js +++ b/packages/permission-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/permission-log-controller/jest.config.js b/packages/permission-log-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/permission-log-controller/jest.config.js +++ b/packages/permission-log-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/perps-controller/jest.config.js b/packages/perps-controller/jest.config.js index 1f804fe6868..35334a32ebb 100644 --- a/packages/perps-controller/jest.config.js +++ b/packages/perps-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = { ...merge(baseConfig, { diff --git a/packages/phishing-controller/jest.config.js b/packages/phishing-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/phishing-controller/jest.config.js +++ b/packages/phishing-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/platform-api-docs/jest.config.js b/packages/platform-api-docs/jest.config.js index d29f3f6c0db..a3deb766c92 100644 --- a/packages/platform-api-docs/jest.config.js +++ b/packages/platform-api-docs/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/polling-controller/jest.config.js b/packages/polling-controller/jest.config.js index 17db4cd31b6..3458eb4c32a 100644 --- a/packages/polling-controller/jest.config.js +++ b/packages/polling-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/preferences-controller/jest.config.js b/packages/preferences-controller/jest.config.js index bbde231ebcf..a3ac4399eed 100644 --- a/packages/preferences-controller/jest.config.js +++ b/packages/preferences-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/profile-metrics-controller/jest.config.js b/packages/profile-metrics-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/profile-metrics-controller/jest.config.js +++ b/packages/profile-metrics-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/profile-sync-controller/jest.config.js b/packages/profile-sync-controller/jest.config.js index 91dccc79ab3..264c6cfa402 100644 --- a/packages/profile-sync-controller/jest.config.js +++ b/packages/profile-sync-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/ramps-controller/dev-watch.js b/packages/ramps-controller/dev-watch.js index 3d44c720b57..4959ba0f8b9 100644 --- a/packages/ramps-controller/dev-watch.js +++ b/packages/ramps-controller/dev-watch.js @@ -8,8 +8,8 @@ const path = require('path'); * Watches src/ directory and runs link script on changes */ -const srcDir = path.join(__dirname, 'src'); -const linkScript = path.join(__dirname, 'link-ramp-controller.js'); +const srcDir = path.join(import.meta.dirname, 'src'); +const linkScript = path.join(import.meta.dirname, 'link-ramp-controller.js'); console.log('👀 Watching ramps-controller src/ directory...'); console.log('📁 Press Ctrl+C to stop watching\n'); @@ -24,7 +24,7 @@ function runLinkScript() { console.log('🔄 Changes detected, rebuilding and linking...'); const child = spawn('node', [linkScript], { stdio: 'inherit', - cwd: __dirname, + cwd: import.meta.dirname, }); child.on('close', (code) => { diff --git a/packages/ramps-controller/jest.config.js b/packages/ramps-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/ramps-controller/jest.config.js +++ b/packages/ramps-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/ramps-controller/link-ramp-controller.js b/packages/ramps-controller/link-ramp-controller.js index 0646d418043..a9b14cb4465 100644 --- a/packages/ramps-controller/link-ramp-controller.js +++ b/packages/ramps-controller/link-ramp-controller.js @@ -18,9 +18,9 @@ function pathExistsSync(filePath) { * This builds and copies the ramps-controller files to the mobile app's node_modules */ -const rampsControllerPath = __dirname; +const rampsControllerPath = import.meta.dirname; const mobileNodeModulesPath = path.join( - __dirname, + import.meta.dirname, '..', '..', '..', @@ -56,7 +56,13 @@ try { } // Check if mobile app exists -const mobilePath = path.join(__dirname, '..', '..', '..', 'metamask-mobile'); +const mobilePath = path.join( + import.meta.dirname, + '..', + '..', + '..', + 'metamask-mobile', +); if (!pathExistsSync(mobilePath)) { console.error('❌ MetaMask mobile app not found at expected location.'); process.exit(1); diff --git a/packages/rate-limit-controller/jest.config.js b/packages/rate-limit-controller/jest.config.js index 9c2baf15aed..391e6d479cf 100644 --- a/packages/rate-limit-controller/jest.config.js +++ b/packages/rate-limit-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/react-data-query/jest.config.js b/packages/react-data-query/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/react-data-query/jest.config.js +++ b/packages/react-data-query/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/remote-feature-flag-controller/jest.config.js b/packages/remote-feature-flag-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/remote-feature-flag-controller/jest.config.js +++ b/packages/remote-feature-flag-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/sample-controllers/jest.config.js b/packages/sample-controllers/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/sample-controllers/jest.config.js +++ b/packages/sample-controllers/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/seedless-onboarding-controller/jest.config.js b/packages/seedless-onboarding-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/seedless-onboarding-controller/jest.config.js +++ b/packages/seedless-onboarding-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/selected-network-controller/jest.config.js b/packages/selected-network-controller/jest.config.js index 5806b6db61b..d8481af7e94 100644 --- a/packages/selected-network-controller/jest.config.js +++ b/packages/selected-network-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/sentinel-api-service/jest.config.js b/packages/sentinel-api-service/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/sentinel-api-service/jest.config.js +++ b/packages/sentinel-api-service/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/shield-controller/jest.config.js b/packages/shield-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/shield-controller/jest.config.js +++ b/packages/shield-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/signature-controller/jest.config.js b/packages/signature-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/signature-controller/jest.config.js +++ b/packages/signature-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/smart-transactions-controller/jest.config.js b/packages/smart-transactions-controller/jest.config.js index f4ec849294c..fc533b958fe 100644 --- a/packages/smart-transactions-controller/jest.config.js +++ b/packages/smart-transactions-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/snap-account-service/jest.config.js b/packages/snap-account-service/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/snap-account-service/jest.config.js +++ b/packages/snap-account-service/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/social-controllers/jest.config.js b/packages/social-controllers/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/social-controllers/jest.config.js +++ b/packages/social-controllers/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/solana-test-validator-up/jest.config.js b/packages/solana-test-validator-up/jest.config.js index 8a2791c96d9..759bb8bb5a9 100644 --- a/packages/solana-test-validator-up/jest.config.js +++ b/packages/solana-test-validator-up/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/stellar-quickstart-up/jest.config.js b/packages/stellar-quickstart-up/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/stellar-quickstart-up/jest.config.js +++ b/packages/stellar-quickstart-up/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/storage-service/jest.config.js b/packages/storage-service/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/storage-service/jest.config.js +++ b/packages/storage-service/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/subscription-controller/jest.config.js b/packages/subscription-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/subscription-controller/jest.config.js +++ b/packages/subscription-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/transaction-controller/jest.config.js b/packages/transaction-controller/jest.config.js index 5fc74a1ac09..75c5fbf3b28 100644 --- a/packages/transaction-controller/jest.config.js +++ b/packages/transaction-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/transaction-pay-controller/jest.config.js b/packages/transaction-pay-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/transaction-pay-controller/jest.config.js +++ b/packages/transaction-pay-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/user-operation-controller/jest.config.js b/packages/user-operation-controller/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/user-operation-controller/jest.config.js +++ b/packages/user-operation-controller/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/wallet-cli/jest.config.js b/packages/wallet-cli/jest.config.js index 568fedaec47..205cf848e37 100644 --- a/packages/wallet-cli/jest.config.js +++ b/packages/wallet-cli/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/wallet-framework-docs/jest.config.js b/packages/wallet-framework-docs/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/wallet-framework-docs/jest.config.js +++ b/packages/wallet-framework-docs/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/packages/wallet/jest.config.js b/packages/wallet/jest.config.js index ca084133399..52fe484da39 100644 --- a/packages/wallet/jest.config.js +++ b/packages/wallet/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/scripts/create-package/package-template/jest.config.js b/scripts/create-package/package-template/jest.config.js index ca084133399..52fe484da39 100644 --- a/scripts/create-package/package-template/jest.config.js +++ b/scripts/create-package/package-template/jest.config.js @@ -8,7 +8,7 @@ const path = require('path'); const baseConfig = require('../../jest.config.packages'); -const displayName = path.basename(__dirname); +const displayName = path.basename(import.meta.dirname); module.exports = merge(baseConfig, { // The display name when running multiple projects diff --git a/scripts/create-package/utils.ts b/scripts/create-package/utils.ts index eea75955a54..e98e770fc5a 100644 --- a/scripts/create-package/utils.ts +++ b/scripts/create-package/utils.ts @@ -9,8 +9,8 @@ import { MonorepoFiles, Placeholders } from './constants'; import type { FileMap } from './fs-utils'; import { readAllFiles, writeFiles } from './fs-utils'; -const PACKAGE_TEMPLATE_DIR = path.join(__dirname, 'package-template'); -const REPO_ROOT = path.join(__dirname, '..', '..'); +const PACKAGE_TEMPLATE_DIR = path.join(import.meta.dirname, 'package-template'); +const REPO_ROOT = path.join(import.meta.dirname, '..', '..'); const REPO_TS_CONFIG = path.join(REPO_ROOT, MonorepoFiles.TsConfig); const REPO_TS_CONFIG_BUILD = path.join(REPO_ROOT, MonorepoFiles.TsConfigBuild); const REPO_PACKAGE_JSON = path.join(REPO_ROOT, MonorepoFiles.PackageJson); diff --git a/scripts/lint-teams-json.ts b/scripts/lint-teams-json.ts index 3a066ca5f2f..0611c3d7d92 100644 --- a/scripts/lint-teams-json.ts +++ b/scripts/lint-teams-json.ts @@ -29,7 +29,7 @@ async function main(): Promise { }); const teams = await readJsonFile>( - path.resolve(__dirname, '../teams.json'), + path.resolve(import.meta.dirname, '../teams.json'), ); const assignedPackageNames = Object.keys(teams); diff --git a/scripts/update-readme-content.ts b/scripts/update-readme-content.ts index 69f9945ab9d..13f1e109737 100755 --- a/scripts/update-readme-content.ts +++ b/scripts/update-readme-content.ts @@ -15,7 +15,7 @@ const DEPENDENCY_GRAPH_START_MARKER = ''; const DEPENDENCY_GRAPH_END_MARKER = ''; const PACKAGE_LIST_START_MARKER = ''; const PACKAGE_LIST_END_MARKER = ''; -const README_PATH = path.resolve(__dirname, '../README.md'); +const README_PATH = path.resolve(import.meta.dirname, '../README.md'); main().catch((error) => { console.error(error); From 775a62dd7165d7d98893c68f8ef71426fa5e0796 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 15:08:45 +0200 Subject: [PATCH 006/136] Convert Jest configuration to ESM Switch the shared and all per-package Jest configs from CJS (`require`/`module.exports`) to ESM (`import`/`export default`). --- eslint.config.mjs | 2 +- jest.config.packages.js | 24 +++++++++++++++---- .../account-tree-controller/jest.config.js | 8 +++---- packages/accounts-controller/jest.config.js | 8 +++---- .../address-book-controller/jest.config.js | 8 +++---- packages/ai-controllers/jest.config.js | 8 +++---- packages/analytics-controller/jest.config.js | 8 +++---- .../jest.config.js | 8 +++---- .../announcement-controller/jest.config.js | 8 +++---- .../app-metadata-controller/jest.config.js | 8 +++---- packages/approval-controller/jest.config.js | 8 +++---- packages/assets-controller/jest.config.js | 8 +++---- packages/assets-controllers/jest.config.js | 8 +++---- .../authenticated-user-storage/jest.config.js | 8 +++---- packages/base-controller/jest.config.js | 8 +++---- packages/base-data-service/jest.config.js | 8 +++---- packages/bitcoin-regtest-up/jest.config.js | 8 +++---- packages/bridge-controller/jest.config.js | 8 +++---- .../bridge-status-controller/jest.config.js | 8 +++---- packages/build-utils/jest.config.js | 8 +++---- .../chain-agnostic-permission/jest.config.js | 8 +++---- packages/chomp-api-service/jest.config.js | 8 +++---- packages/claims-controller/jest.config.js | 8 +++---- packages/client-controller/jest.config.js | 8 +++---- packages/client-utils/jest.config.js | 8 +++---- packages/compliance-controller/jest.config.js | 8 +++---- packages/composable-controller/jest.config.js | 8 +++---- .../config-registry-controller/jest.config.js | 8 +++---- .../connectivity-controller/jest.config.js | 8 +++---- packages/controller-utils/jest.config.js | 8 +++---- packages/core-backend/jest.config.js | 8 +++---- packages/delegation-controller/jest.config.js | 8 +++---- packages/earn-controller/jest.config.js | 8 +++---- packages/eip-5792-middleware/jest.config.js | 8 +++---- .../jest.config.js | 8 +++---- .../jest.config.js | 8 +++---- packages/ens-controller/jest.config.js | 8 +++---- packages/eth-block-tracker/jest.config.js | 8 +++---- .../eth-json-rpc-middleware/jest.config.js | 8 +++---- packages/eth-json-rpc-provider/jest.config.js | 8 +++---- packages/foundryup/jest.config.js | 8 +++---- packages/gas-fee-controller/jest.config.js | 8 +++---- .../jest.config.js | 8 +++---- .../geolocation-controller/jest.config.js | 8 +++---- packages/java-tron-up/jest.config.js | 8 +++---- packages/json-rpc-engine/jest.config.js | 8 +++---- .../json-rpc-middleware-stream/jest.config.js | 8 +++---- packages/keyring-controller/jest.config.js | 8 +++---- packages/local-node-utils/jest.config.js | 8 +++---- packages/logging-controller/jest.config.js | 8 +++---- packages/message-manager/jest.config.js | 8 +++---- packages/messenger-cli/jest.config.js | 8 +++---- packages/messenger/jest.config.js | 8 +++---- .../jest.config.js | 8 +++---- .../jest.config.js | 8 +++---- .../money-account-controller/jest.config.js | 8 +++---- .../jest.config.js | 8 +++---- .../multichain-account-service/jest.config.js | 8 +++---- .../multichain-api-middleware/jest.config.js | 8 +++---- .../jest.config.js | 8 +++---- .../jest.config.js | 8 +++---- packages/name-controller/jest.config.js | 8 +++---- .../jest.config.js | 8 +++---- packages/network-controller/jest.config.js | 8 +++---- .../jest.config.js | 8 +++---- .../jest.config.js | 8 +++---- packages/passkey-controller/jest.config.js | 8 +++---- packages/permission-controller/jest.config.js | 8 +++---- .../permission-log-controller/jest.config.js | 8 +++---- packages/perps-controller/jest.config.js | 6 ++--- packages/phishing-controller/jest.config.js | 8 +++---- packages/platform-api-docs/jest.config.js | 8 +++---- packages/polling-controller/jest.config.js | 8 +++---- .../preferences-controller/jest.config.js | 8 +++---- .../profile-metrics-controller/jest.config.js | 8 +++---- .../profile-sync-controller/jest.config.js | 8 +++---- packages/ramps-controller/jest.config.js | 8 +++---- packages/rate-limit-controller/jest.config.js | 8 +++---- packages/react-data-query/jest.config.js | 8 +++---- .../jest.config.js | 8 +++---- packages/sample-controllers/jest.config.js | 8 +++---- .../jest.config.js | 8 +++---- .../jest.config.js | 8 +++---- packages/sentinel-api-service/jest.config.js | 8 +++---- packages/shield-controller/jest.config.js | 8 +++---- packages/signature-controller/jest.config.js | 8 +++---- .../jest.config.js | 8 +++---- packages/snap-account-service/jest.config.js | 8 +++---- packages/social-controllers/jest.config.js | 8 +++---- .../solana-test-validator-up/jest.config.js | 8 +++---- packages/stellar-quickstart-up/jest.config.js | 8 +++---- packages/storage-service/jest.config.js | 8 +++---- .../subscription-controller/jest.config.js | 8 +++---- .../transaction-controller/jest.config.js | 8 +++---- .../transaction-pay-controller/jest.config.js | 8 +++---- .../user-operation-controller/jest.config.js | 8 +++---- packages/wallet-cli/jest.config.js | 8 +++---- packages/wallet-framework-docs/jest.config.js | 8 +++---- packages/wallet/jest.config.js | 8 +++---- .../package-template/jest.config.js | 8 +++---- tests/setupAfterEnv/nock.ts | 11 +++++---- 101 files changed, 418 insertions(+), 401 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index d8a4ab79746..767171c9acb 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -126,7 +126,7 @@ const config = createConfig([ { files: ['**/*.{js,cjs}'], languageOptions: { - sourceType: 'script', + sourceType: 'module', ecmaVersion: 2020, }, }, diff --git a/jest.config.packages.js b/jest.config.packages.js index 07d249241ce..fbc9032aa56 100644 --- a/jest.config.packages.js +++ b/jest.config.packages.js @@ -3,7 +3,16 @@ * https://jestjs.io/docs/configuration */ -module.exports = { +import { fileURLToPath } from 'node:url'; +import { createDefaultEsmPreset } from 'ts-jest'; + +const presetConfig = createDefaultEsmPreset({ + tsconfig: '/tsconfig.json', +}); + +const config = { + ...presetConfig, + // All imported modules in your tests should be mocked automatically // automock: false, @@ -80,17 +89,20 @@ module.exports = { // Here we ensure that Jest resolves `@metamask/*` imports to the uncompiled source code for packages that live in this repo. // NOTE: This must be synchronized with the `paths` option in `tsconfig.base.json`. moduleNameMapper: { + '^(\\..+)\\.js$': '$1', '^@metamask/json-rpc-engine/v2$': [ '/../json-rpc-engine/src/v2/index.ts', ], - '^@metamask/utils/node$': require.resolve('@metamask/utils/node'), + '^@metamask/utils/node$': fileURLToPath( + import.meta.resolve('@metamask/utils/node'), + ), '^@metamask/(.+)$': [ '/../$1/src', // Some @metamask/* packages we are referencing aren't in this monorepo, // so in that case use their published versions '/../../node_modules/@metamask/$1', ], - '^uuid$': require.resolve('uuid'), + '^uuid$': fileURLToPath(import.meta.resolve('uuid')), }, // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader @@ -103,11 +115,11 @@ module.exports = { // notifyMode: "failure-change", // A preset that is used as a base for Jest's configuration - preset: 'ts-jest', + // preset: 'ts-jest', // The path to the Prettier executable used to format snapshots // Jest doesn't support Prettier 3 yet, so we use Prettier 2 - prettierPath: require.resolve('prettier-2'), + prettierPath: fileURLToPath(import.meta.resolve('prettier-2')), // Run tests from one or more projects // projects: undefined @@ -208,3 +220,5 @@ module.exports = { // Whether to use watchman for file crawling // watchman: true, }; + +export default config; diff --git a/packages/account-tree-controller/jest.config.js b/packages/account-tree-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/account-tree-controller/jest.config.js +++ b/packages/account-tree-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/accounts-controller/jest.config.js b/packages/accounts-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/accounts-controller/jest.config.js +++ b/packages/accounts-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/address-book-controller/jest.config.js b/packages/address-book-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/address-book-controller/jest.config.js +++ b/packages/address-book-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/ai-controllers/jest.config.js b/packages/ai-controllers/jest.config.js index 3e6cab4dd05..39fb20f6bb1 100644 --- a/packages/ai-controllers/jest.config.js +++ b/packages/ai-controllers/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/analytics-controller/jest.config.js b/packages/analytics-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/analytics-controller/jest.config.js +++ b/packages/analytics-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/analytics-data-regulation-controller/jest.config.js b/packages/analytics-data-regulation-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/analytics-data-regulation-controller/jest.config.js +++ b/packages/analytics-data-regulation-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/announcement-controller/jest.config.js b/packages/announcement-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/announcement-controller/jest.config.js +++ b/packages/announcement-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/app-metadata-controller/jest.config.js b/packages/app-metadata-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/app-metadata-controller/jest.config.js +++ b/packages/app-metadata-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/approval-controller/jest.config.js b/packages/approval-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/approval-controller/jest.config.js +++ b/packages/approval-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/assets-controller/jest.config.js b/packages/assets-controller/jest.config.js index cd5d81e25c7..cac4c4e687a 100644 --- a/packages/assets-controller/jest.config.js +++ b/packages/assets-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/assets-controllers/jest.config.js b/packages/assets-controllers/jest.config.js index da6e860251d..c3d205b2c53 100644 --- a/packages/assets-controllers/jest.config.js +++ b/packages/assets-controllers/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/authenticated-user-storage/jest.config.js b/packages/authenticated-user-storage/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/authenticated-user-storage/jest.config.js +++ b/packages/authenticated-user-storage/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/base-controller/jest.config.js b/packages/base-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/base-controller/jest.config.js +++ b/packages/base-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/base-data-service/jest.config.js b/packages/base-data-service/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/base-data-service/jest.config.js +++ b/packages/base-data-service/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/bitcoin-regtest-up/jest.config.js b/packages/bitcoin-regtest-up/jest.config.js index bd575b25e28..8f151c5e8b6 100644 --- a/packages/bitcoin-regtest-up/jest.config.js +++ b/packages/bitcoin-regtest-up/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/bridge-controller/jest.config.js b/packages/bridge-controller/jest.config.js index e182a513001..881aa3b0c2e 100644 --- a/packages/bridge-controller/jest.config.js +++ b/packages/bridge-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/bridge-status-controller/jest.config.js b/packages/bridge-status-controller/jest.config.js index 67266cdaa0e..3de417c7bfb 100644 --- a/packages/bridge-status-controller/jest.config.js +++ b/packages/bridge-status-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/build-utils/jest.config.js b/packages/build-utils/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/build-utils/jest.config.js +++ b/packages/build-utils/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/chain-agnostic-permission/jest.config.js b/packages/chain-agnostic-permission/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/chain-agnostic-permission/jest.config.js +++ b/packages/chain-agnostic-permission/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/chomp-api-service/jest.config.js b/packages/chomp-api-service/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/chomp-api-service/jest.config.js +++ b/packages/chomp-api-service/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/claims-controller/jest.config.js b/packages/claims-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/claims-controller/jest.config.js +++ b/packages/claims-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/client-controller/jest.config.js b/packages/client-controller/jest.config.js index 9d1196b8160..3fcf3b128cb 100644 --- a/packages/client-controller/jest.config.js +++ b/packages/client-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { displayName, coveragePathIgnorePatterns: [], coverageThreshold: { diff --git a/packages/client-utils/jest.config.js b/packages/client-utils/jest.config.js index 7873ea482cb..613be281c62 100644 --- a/packages/client-utils/jest.config.js +++ b/packages/client-utils/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/compliance-controller/jest.config.js b/packages/compliance-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/compliance-controller/jest.config.js +++ b/packages/compliance-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/composable-controller/jest.config.js b/packages/composable-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/composable-controller/jest.config.js +++ b/packages/composable-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/config-registry-controller/jest.config.js b/packages/config-registry-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/config-registry-controller/jest.config.js +++ b/packages/config-registry-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/connectivity-controller/jest.config.js b/packages/connectivity-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/connectivity-controller/jest.config.js +++ b/packages/connectivity-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/controller-utils/jest.config.js b/packages/controller-utils/jest.config.js index eac83868094..d28f5ee76a2 100644 --- a/packages/controller-utils/jest.config.js +++ b/packages/controller-utils/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/core-backend/jest.config.js b/packages/core-backend/jest.config.js index 8118bc7d056..0fd79da270d 100644 --- a/packages/core-backend/jest.config.js +++ b/packages/core-backend/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/delegation-controller/jest.config.js b/packages/delegation-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/delegation-controller/jest.config.js +++ b/packages/delegation-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/earn-controller/jest.config.js b/packages/earn-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/earn-controller/jest.config.js +++ b/packages/earn-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/eip-5792-middleware/jest.config.js b/packages/eip-5792-middleware/jest.config.js index 36655c9b266..8a6b1e06416 100644 --- a/packages/eip-5792-middleware/jest.config.js +++ b/packages/eip-5792-middleware/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/eip-7702-internal-rpc-middleware/jest.config.js b/packages/eip-7702-internal-rpc-middleware/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/eip-7702-internal-rpc-middleware/jest.config.js +++ b/packages/eip-7702-internal-rpc-middleware/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/eip1193-permission-middleware/jest.config.js b/packages/eip1193-permission-middleware/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/eip1193-permission-middleware/jest.config.js +++ b/packages/eip1193-permission-middleware/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/ens-controller/jest.config.js b/packages/ens-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/ens-controller/jest.config.js +++ b/packages/ens-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/eth-block-tracker/jest.config.js b/packages/eth-block-tracker/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/eth-block-tracker/jest.config.js +++ b/packages/eth-block-tracker/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/eth-json-rpc-middleware/jest.config.js b/packages/eth-json-rpc-middleware/jest.config.js index 38bdce227ce..41da4681c37 100644 --- a/packages/eth-json-rpc-middleware/jest.config.js +++ b/packages/eth-json-rpc-middleware/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/eth-json-rpc-provider/jest.config.js b/packages/eth-json-rpc-provider/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/eth-json-rpc-provider/jest.config.js +++ b/packages/eth-json-rpc-provider/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/foundryup/jest.config.js b/packages/foundryup/jest.config.js index 5ee81045da0..a8a60cec9ac 100644 --- a/packages/foundryup/jest.config.js +++ b/packages/foundryup/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/gas-fee-controller/jest.config.js b/packages/gas-fee-controller/jest.config.js index 9dcb32d6325..3cd993c4462 100644 --- a/packages/gas-fee-controller/jest.config.js +++ b/packages/gas-fee-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/gator-permissions-controller/jest.config.js b/packages/gator-permissions-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/gator-permissions-controller/jest.config.js +++ b/packages/gator-permissions-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/geolocation-controller/jest.config.js b/packages/geolocation-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/geolocation-controller/jest.config.js +++ b/packages/geolocation-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/java-tron-up/jest.config.js b/packages/java-tron-up/jest.config.js index dd101347e37..930b58aee5c 100644 --- a/packages/java-tron-up/jest.config.js +++ b/packages/java-tron-up/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/json-rpc-engine/jest.config.js b/packages/json-rpc-engine/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/json-rpc-engine/jest.config.js +++ b/packages/json-rpc-engine/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/json-rpc-middleware-stream/jest.config.js b/packages/json-rpc-middleware-stream/jest.config.js index a2ee7b406b2..a51cabfa761 100644 --- a/packages/json-rpc-middleware-stream/jest.config.js +++ b/packages/json-rpc-middleware-stream/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/keyring-controller/jest.config.js b/packages/keyring-controller/jest.config.js index ef4e25a8b54..12c2923914a 100644 --- a/packages/keyring-controller/jest.config.js +++ b/packages/keyring-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/local-node-utils/jest.config.js b/packages/local-node-utils/jest.config.js index b47e4121538..b1e9e60fd79 100644 --- a/packages/local-node-utils/jest.config.js +++ b/packages/local-node-utils/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/logging-controller/jest.config.js b/packages/logging-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/logging-controller/jest.config.js +++ b/packages/logging-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/message-manager/jest.config.js b/packages/message-manager/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/message-manager/jest.config.js +++ b/packages/message-manager/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/messenger-cli/jest.config.js b/packages/messenger-cli/jest.config.js index f4926fb9873..9731a6dd540 100644 --- a/packages/messenger-cli/jest.config.js +++ b/packages/messenger-cli/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/messenger/jest.config.js b/packages/messenger/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/messenger/jest.config.js +++ b/packages/messenger/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/money-account-api-data-service/jest.config.js b/packages/money-account-api-data-service/jest.config.js index 3c59dbe56c1..e062d82dd98 100644 --- a/packages/money-account-api-data-service/jest.config.js +++ b/packages/money-account-api-data-service/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { displayName, coverageThreshold: { diff --git a/packages/money-account-balance-service/jest.config.js b/packages/money-account-balance-service/jest.config.js index 3c59dbe56c1..e062d82dd98 100644 --- a/packages/money-account-balance-service/jest.config.js +++ b/packages/money-account-balance-service/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { displayName, coverageThreshold: { diff --git a/packages/money-account-controller/jest.config.js b/packages/money-account-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/money-account-controller/jest.config.js +++ b/packages/money-account-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/money-account-upgrade-controller/jest.config.js b/packages/money-account-upgrade-controller/jest.config.js index 69d5d9b4273..a111ce68439 100644 --- a/packages/money-account-upgrade-controller/jest.config.js +++ b/packages/money-account-upgrade-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { displayName, coverageThreshold: { global: { diff --git a/packages/multichain-account-service/jest.config.js b/packages/multichain-account-service/jest.config.js index 10ee5bfeb27..b218e56edef 100644 --- a/packages/multichain-account-service/jest.config.js +++ b/packages/multichain-account-service/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/multichain-api-middleware/jest.config.js b/packages/multichain-api-middleware/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/multichain-api-middleware/jest.config.js +++ b/packages/multichain-api-middleware/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/multichain-network-controller/jest.config.js b/packages/multichain-network-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/multichain-network-controller/jest.config.js +++ b/packages/multichain-network-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/multichain-transactions-controller/jest.config.js b/packages/multichain-transactions-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/multichain-transactions-controller/jest.config.js +++ b/packages/multichain-transactions-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/name-controller/jest.config.js b/packages/name-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/name-controller/jest.config.js +++ b/packages/name-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/network-connection-banner-controller/jest.config.js b/packages/network-connection-banner-controller/jest.config.js index 9e9e5413583..8ee4e1bde6e 100644 --- a/packages/network-connection-banner-controller/jest.config.js +++ b/packages/network-connection-banner-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/network-controller/jest.config.js b/packages/network-controller/jest.config.js index c2af8240db6..d88606f7828 100644 --- a/packages/network-controller/jest.config.js +++ b/packages/network-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/network-enablement-controller/jest.config.js b/packages/network-enablement-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/network-enablement-controller/jest.config.js +++ b/packages/network-enablement-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/notification-services-controller/jest.config.js b/packages/notification-services-controller/jest.config.js index 264c6cfa402..7036fa5bb41 100644 --- a/packages/notification-services-controller/jest.config.js +++ b/packages/notification-services-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/passkey-controller/jest.config.js b/packages/passkey-controller/jest.config.js index 47325836f4c..ee598d66a3e 100644 --- a/packages/passkey-controller/jest.config.js +++ b/packages/passkey-controller/jest.config.js @@ -1,11 +1,11 @@ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { displayName, coverageThreshold: { global: { branches: 100, functions: 100, lines: 100, statements: 100 }, diff --git a/packages/permission-controller/jest.config.js b/packages/permission-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/permission-controller/jest.config.js +++ b/packages/permission-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/permission-log-controller/jest.config.js b/packages/permission-log-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/permission-log-controller/jest.config.js +++ b/packages/permission-log-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/perps-controller/jest.config.js b/packages/perps-controller/jest.config.js index 35334a32ebb..6a9872c0c5a 100644 --- a/packages/perps-controller/jest.config.js +++ b/packages/perps-controller/jest.config.js @@ -3,10 +3,10 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); diff --git a/packages/phishing-controller/jest.config.js b/packages/phishing-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/phishing-controller/jest.config.js +++ b/packages/phishing-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/platform-api-docs/jest.config.js b/packages/platform-api-docs/jest.config.js index a3deb766c92..b452a5f4011 100644 --- a/packages/platform-api-docs/jest.config.js +++ b/packages/platform-api-docs/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/polling-controller/jest.config.js b/packages/polling-controller/jest.config.js index 3458eb4c32a..29c9ecb62b9 100644 --- a/packages/polling-controller/jest.config.js +++ b/packages/polling-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/preferences-controller/jest.config.js b/packages/preferences-controller/jest.config.js index a3ac4399eed..cd3b6cf9b18 100644 --- a/packages/preferences-controller/jest.config.js +++ b/packages/preferences-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/profile-metrics-controller/jest.config.js b/packages/profile-metrics-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/profile-metrics-controller/jest.config.js +++ b/packages/profile-metrics-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/profile-sync-controller/jest.config.js b/packages/profile-sync-controller/jest.config.js index 264c6cfa402..7036fa5bb41 100644 --- a/packages/profile-sync-controller/jest.config.js +++ b/packages/profile-sync-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/ramps-controller/jest.config.js b/packages/ramps-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/ramps-controller/jest.config.js +++ b/packages/ramps-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/rate-limit-controller/jest.config.js b/packages/rate-limit-controller/jest.config.js index 391e6d479cf..bbb74586034 100644 --- a/packages/rate-limit-controller/jest.config.js +++ b/packages/rate-limit-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/react-data-query/jest.config.js b/packages/react-data-query/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/react-data-query/jest.config.js +++ b/packages/react-data-query/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/remote-feature-flag-controller/jest.config.js b/packages/remote-feature-flag-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/remote-feature-flag-controller/jest.config.js +++ b/packages/remote-feature-flag-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/sample-controllers/jest.config.js b/packages/sample-controllers/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/sample-controllers/jest.config.js +++ b/packages/sample-controllers/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/seedless-onboarding-controller/jest.config.js b/packages/seedless-onboarding-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/seedless-onboarding-controller/jest.config.js +++ b/packages/seedless-onboarding-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/selected-network-controller/jest.config.js b/packages/selected-network-controller/jest.config.js index d8481af7e94..52a3957ee23 100644 --- a/packages/selected-network-controller/jest.config.js +++ b/packages/selected-network-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/sentinel-api-service/jest.config.js b/packages/sentinel-api-service/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/sentinel-api-service/jest.config.js +++ b/packages/sentinel-api-service/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/shield-controller/jest.config.js b/packages/shield-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/shield-controller/jest.config.js +++ b/packages/shield-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/signature-controller/jest.config.js b/packages/signature-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/signature-controller/jest.config.js +++ b/packages/signature-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/smart-transactions-controller/jest.config.js b/packages/smart-transactions-controller/jest.config.js index fc533b958fe..8697d417dcc 100644 --- a/packages/smart-transactions-controller/jest.config.js +++ b/packages/smart-transactions-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/snap-account-service/jest.config.js b/packages/snap-account-service/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/snap-account-service/jest.config.js +++ b/packages/snap-account-service/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/social-controllers/jest.config.js b/packages/social-controllers/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/social-controllers/jest.config.js +++ b/packages/social-controllers/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/solana-test-validator-up/jest.config.js b/packages/solana-test-validator-up/jest.config.js index 759bb8bb5a9..35ceea000ec 100644 --- a/packages/solana-test-validator-up/jest.config.js +++ b/packages/solana-test-validator-up/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/stellar-quickstart-up/jest.config.js b/packages/stellar-quickstart-up/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/stellar-quickstart-up/jest.config.js +++ b/packages/stellar-quickstart-up/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/storage-service/jest.config.js b/packages/storage-service/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/storage-service/jest.config.js +++ b/packages/storage-service/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/subscription-controller/jest.config.js b/packages/subscription-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/subscription-controller/jest.config.js +++ b/packages/subscription-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/transaction-controller/jest.config.js b/packages/transaction-controller/jest.config.js index 75c5fbf3b28..13de5744d35 100644 --- a/packages/transaction-controller/jest.config.js +++ b/packages/transaction-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/transaction-pay-controller/jest.config.js b/packages/transaction-pay-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/transaction-pay-controller/jest.config.js +++ b/packages/transaction-pay-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/user-operation-controller/jest.config.js b/packages/user-operation-controller/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/user-operation-controller/jest.config.js +++ b/packages/user-operation-controller/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/wallet-cli/jest.config.js b/packages/wallet-cli/jest.config.js index 205cf848e37..5ff4231948c 100644 --- a/packages/wallet-cli/jest.config.js +++ b/packages/wallet-cli/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/wallet-framework-docs/jest.config.js b/packages/wallet-framework-docs/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/wallet-framework-docs/jest.config.js +++ b/packages/wallet-framework-docs/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/packages/wallet/jest.config.js b/packages/wallet/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/packages/wallet/jest.config.js +++ b/packages/wallet/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/scripts/create-package/package-template/jest.config.js b/scripts/create-package/package-template/jest.config.js index 52fe484da39..6c85ca6e1fb 100644 --- a/scripts/create-package/package-template/jest.config.js +++ b/scripts/create-package/package-template/jest.config.js @@ -3,14 +3,14 @@ * https://jestjs.io/docs/configuration */ -const merge = require('deepmerge'); -const path = require('path'); +import merge from 'deepmerge'; +import path from 'path'; -const baseConfig = require('../../jest.config.packages'); +import baseConfig from '../../jest.config.packages.js'; const displayName = path.basename(import.meta.dirname); -module.exports = merge(baseConfig, { +export default merge(baseConfig, { // The display name when running multiple projects displayName, diff --git a/tests/setupAfterEnv/nock.ts b/tests/setupAfterEnv/nock.ts index 1e6d0377367..c70258b29c4 100644 --- a/tests/setupAfterEnv/nock.ts +++ b/tests/setupAfterEnv/nock.ts @@ -1,10 +1,13 @@ -import { disableNetConnect, cleanAll, enableNetConnect } from 'nock'; +// Types for `nock` are wrong. +/* eslint-disable import-x/no-named-as-default-member */ + +import nock from 'nock'; beforeEach(() => { - disableNetConnect(); + nock.disableNetConnect(); }); afterEach(() => { - cleanAll(); - enableNetConnect(); + nock.cleanAll(); + nock.enableNetConnect(); }); From b80f80501848b9153ea612c8013d52e136f6280e Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 15:13:22 +0200 Subject: [PATCH 007/136] Add `ts-jest` to root devDependencies --- package.json | 1 + yarn.lock | 1 + 2 files changed, 2 insertions(+) diff --git a/package.json b/package.json index 41dfe81a870..921d2cbabe1 100644 --- a/package.json +++ b/package.json @@ -99,6 +99,7 @@ "rimraf": "^5.0.5", "semver": "^7.6.3", "simple-git-hooks": "^2.8.0", + "ts-jest": "^29.2.5", "tsx": "^4.20.5", "typescript": "~5.3.3", "typescript-eslint": "^8.48.0", diff --git a/yarn.lock b/yarn.lock index 8894e8e694f..6fa4a8d1539 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6361,6 +6361,7 @@ __metadata: rimraf: "npm:^5.0.5" semver: "npm:^7.6.3" simple-git-hooks: "npm:^2.8.0" + ts-jest: "npm:^29.2.5" tsx: "npm:^4.20.5" typescript: "npm:~5.3.3" typescript-eslint: "npm:^8.48.0" From e8bad71ae1e394f9ce209e568106d83fc9dd0ed3 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 16:50:07 +0200 Subject: [PATCH 008/136] Work around TypeScript ESM named-import issue in messenger-cli Older versions of TypeScript break when using named imports in ESM. Import the default export and destructure instead as a temporary workaround. Also passes `--formatter oxfmt` to the `messenger-action-types` scripts in packages missing it. --- packages/authenticated-user-storage/package.json | 4 ++-- packages/messenger-cli/src/parse-source.ts | 10 ++++++++-- packages/money-account-upgrade-controller/package.json | 4 ++-- packages/snap-account-service/package.json | 4 ++-- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/packages/authenticated-user-storage/package.json b/packages/authenticated-user-storage/package.json index 97be8f3fdf9..7f6ee112b5f 100644 --- a/packages/authenticated-user-storage/package.json +++ b/packages/authenticated-user-storage/package.json @@ -39,8 +39,8 @@ "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", + "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", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/messenger-cli/src/parse-source.ts b/packages/messenger-cli/src/parse-source.ts index 133ad6ce361..afda5b13c4a 100644 --- a/packages/messenger-cli/src/parse-source.ts +++ b/packages/messenger-cli/src/parse-source.ts @@ -10,7 +10,12 @@ import type { SourceFile, Type, } from 'typescript'; -import { +import typescript from 'typescript'; + +// Older versions of TypeScript break when importing directly in ESM. This is a +// temporary workaround +/* eslint-disable import-x/no-named-as-default-member */ +const { ScriptTarget, createProgram, createSourceFile, @@ -28,7 +33,8 @@ import { parseJsonConfigFileContent, readConfigFile, sys, -} from 'typescript'; +} = typescript; +/* eslint-enable import-x/no-named-as-default-member */ export type MethodInfo = { name: string; diff --git a/packages/money-account-upgrade-controller/package.json b/packages/money-account-upgrade-controller/package.json index d6e4266e56e..3c673c394de 100644 --- a/packages/money-account-upgrade-controller/package.json +++ b/packages/money-account-upgrade-controller/package.json @@ -39,8 +39,8 @@ "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", + "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", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", diff --git a/packages/snap-account-service/package.json b/packages/snap-account-service/package.json index 0216f69a516..02b24b2d807 100644 --- a/packages/snap-account-service/package.json +++ b/packages/snap-account-service/package.json @@ -39,8 +39,8 @@ "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", + "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", "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", From 5e3bccb720935d80ac18d7cbc61d0f7af2f59793 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 19:13:59 +0200 Subject: [PATCH 009/136] Fix remaining `__dirname` Replace leftover `__dirname` with `import.meta.dirname`. --- packages/messenger-cli/src/cli.test.ts | 2 +- packages/platform-api-docs/src/cli.test.ts | 2 +- packages/platform-api-docs/src/cli.ts | 6 +++--- packages/wallet-cli/tests/lifecycle.e2e.test.ts | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/messenger-cli/src/cli.test.ts b/packages/messenger-cli/src/cli.test.ts index dc5216dbfa4..4b189086d1d 100644 --- a/packages/messenger-cli/src/cli.test.ts +++ b/packages/messenger-cli/src/cli.test.ts @@ -3,7 +3,7 @@ import execa from 'execa'; import * as fs from 'node:fs'; import * as path from 'node:path'; -const ROOT_DIR = path.resolve(__dirname, '..', '..', '..'); +const ROOT_DIR = path.resolve(import.meta.dirname, '..', '..', '..'); const TSX_PATH = path.join(ROOT_DIR, 'node_modules', '.bin', 'tsx'); const CLI_PATH = path.join( ROOT_DIR, diff --git a/packages/platform-api-docs/src/cli.test.ts b/packages/platform-api-docs/src/cli.test.ts index bc084e33afe..4d45bd4d5d1 100644 --- a/packages/platform-api-docs/src/cli.test.ts +++ b/packages/platform-api-docs/src/cli.test.ts @@ -3,7 +3,7 @@ import execa from 'execa'; import * as fs from 'node:fs'; import * as path from 'node:path'; -const ROOT_DIR = path.resolve(__dirname, '..', '..', '..'); +const ROOT_DIR = path.resolve(import.meta.dirname, '..', '..', '..'); const TSX_PATH = path.join(ROOT_DIR, 'node_modules', '.bin', 'tsx'); const CLI_PATH = path.join( ROOT_DIR, diff --git a/packages/platform-api-docs/src/cli.ts b/packages/platform-api-docs/src/cli.ts index fdc4f9bb37d..cbf609b8e52 100644 --- a/packages/platform-api-docs/src/cli.ts +++ b/packages/platform-api-docs/src/cli.ts @@ -6,7 +6,7 @@ import * as path from 'node:path'; import npmWhich from 'npm-which'; import yargs from 'yargs'; -import { generate, resolveRepoUrl } from './generate'; +import { generate, resolveRepoUrl } from './generate.js'; /** * Locate the Docusaurus binary in this package's `node_modules/.bin`. Using @@ -16,7 +16,7 @@ import { generate, resolveRepoUrl } from './generate'; * @returns Absolute path to the `docusaurus` executable. */ function resolveDocusaurus(): string { - return npmWhich(__dirname).sync('docusaurus'); + return npmWhich(import.meta.dirname).sync('docusaurus'); } /** @@ -51,7 +51,7 @@ async function runDocusaurus( * @param outDir - The output directory to set up. */ async function setupSite(outDir: string): Promise { - const packageDir = path.resolve(__dirname, '..'); + const packageDir = path.resolve(import.meta.dirname, '..'); const siteDir = path.join(packageDir, 'site'); const packageNodeModules = path.join(packageDir, 'node_modules'); const skip = new Set(['node_modules', 'docs', 'tsconfig.json']); diff --git a/packages/wallet-cli/tests/lifecycle.e2e.test.ts b/packages/wallet-cli/tests/lifecycle.e2e.test.ts index 14fea688fed..940a43565c4 100644 --- a/packages/wallet-cli/tests/lifecycle.e2e.test.ts +++ b/packages/wallet-cli/tests/lifecycle.e2e.test.ts @@ -3,8 +3,8 @@ import { mkdtemp, readFile, rm, stat } from 'node:fs/promises'; import { tmpdir } from 'node:os'; import { join } from 'node:path'; -import { getDaemonPaths } from '../src/daemon/paths'; -import { isProcessAlive, readPidFile } from '../src/daemon/utils'; +import { getDaemonPaths } from '../src/daemon/paths.js'; +import { isProcessAlive, readPidFile } from '../src/daemon/utils.js'; // Subprocess-level lifecycle test for the `mm daemon` command suite. Unlike the // in-process suites (`socket-integration.test.ts` exercises the transport in @@ -30,7 +30,7 @@ const TEST_INFURA_PROJECT_ID = '00000000000000000000000000000000'; const ADDRESS_REGEX = /^0x[0-9a-fA-F]{40}$/u; -const BIN_PATH = join(__dirname, '..', 'bin', 'run.mjs'); +const BIN_PATH = join(import.meta.dirname, '..', 'bin', 'run.mjs'); // Each step (spawn the CLI, construct a real Wallet, run PBKDF2 key derivation // for the first-run SRP import) is slow; give the whole lifecycle room. From db128a52116995b4a98befb341de74d8745047b1 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 19:55:14 +0200 Subject: [PATCH 010/136] Remove erroneous `uuid` entry from Jest `moduleNameMapper` The mapping sent all `uuid` imports to the ESM wrapper (`wrapper.mjs`), which broke CJS `require('uuid')` calls made by external packages loaded via Jest's CJS runtime. With `customExportConditions: ['node']` already set, Jest resolves the correct `require`/`import` export for uuid automatically without a manual mapping. --- jest.config.packages.js | 1 - 1 file changed, 1 deletion(-) diff --git a/jest.config.packages.js b/jest.config.packages.js index fbc9032aa56..44cfedf92c0 100644 --- a/jest.config.packages.js +++ b/jest.config.packages.js @@ -102,7 +102,6 @@ const config = { // so in that case use their published versions '/../../node_modules/@metamask/$1', ], - '^uuid$': fileURLToPath(import.meta.resolve('uuid')), }, // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader From cf7ca0f3af6d58eec27007c828390da89fde1e13 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 19:59:16 +0200 Subject: [PATCH 011/136] Fix ESLint errors for `build-utils` Add `.js` extensions to relative imports. --- packages/build-utils/src/index.ts | 6 +++--- .../build-utils/src/transforms/remove-fenced-code.test.ts | 6 +++--- packages/build-utils/src/transforms/utils.test.ts | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/build-utils/src/index.ts b/packages/build-utils/src/index.ts index 0e5dc2315ed..294d4375e69 100644 --- a/packages/build-utils/src/index.ts +++ b/packages/build-utils/src/index.ts @@ -1,3 +1,3 @@ -export type { FeatureLabels } from './transforms/remove-fenced-code'; -export { removeFencedCode } from './transforms/remove-fenced-code'; -export { lintTransformedFile } from './transforms/utils'; +export type { FeatureLabels } from './transforms/remove-fenced-code.js'; +export { removeFencedCode } from './transforms/remove-fenced-code.js'; +export { lintTransformedFile } from './transforms/utils.js'; diff --git a/packages/build-utils/src/transforms/remove-fenced-code.test.ts b/packages/build-utils/src/transforms/remove-fenced-code.test.ts index 749c7b2f3a2..bf787a428cd 100644 --- a/packages/build-utils/src/transforms/remove-fenced-code.test.ts +++ b/packages/build-utils/src/transforms/remove-fenced-code.test.ts @@ -1,10 +1,10 @@ -import { removeFencedCode } from '..'; -import type { FeatureLabels } from '..'; +import { removeFencedCode } from "./...js"; +import type { FeatureLabels } from "./...js"; import { DirectiveCommand, multiSplice, validateCommand, -} from './remove-fenced-code'; +} from './remove-fenced-code.js'; const FEATURE_A = 'feature-a'; const FEATURE_B = 'feature-b'; diff --git a/packages/build-utils/src/transforms/utils.test.ts b/packages/build-utils/src/transforms/utils.test.ts index 8921017c8cc..8e23e1b0e4e 100644 --- a/packages/build-utils/src/transforms/utils.test.ts +++ b/packages/build-utils/src/transforms/utils.test.ts @@ -1,4 +1,4 @@ -import { lintTransformedFile } from '..'; +import { lintTransformedFile } from "./...js"; describe('transform utils', () => { describe('lintTransformedFile', () => { From 4343a014917c7230de4be0bce7f284a6c269596d Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 19:59:22 +0200 Subject: [PATCH 012/136] Fix ESLint errors for `controller-utils` Add `.js` extensions to relative imports. Replace `lodash` with `lodash-es` for ESM-compatible named exports. --- packages/controller-utils/package.json | 4 ++-- packages/controller-utils/src/abi.test.ts | 2 +- packages/controller-utils/src/constants.ts | 2 +- .../src/create-service-policy.test.ts | 2 +- packages/controller-utils/src/index.test.ts | 2 +- packages/controller-utils/src/index.ts | 16 +++++++-------- packages/controller-utils/src/siwe.test.ts | 2 +- packages/controller-utils/src/siwe.ts | 2 +- packages/controller-utils/src/types.test.ts | 2 +- packages/controller-utils/src/util.test.ts | 6 +++--- packages/controller-utils/src/util.ts | 4 ++-- yarn.lock | 20 +++++++++++++++++-- 12 files changed, 40 insertions(+), 24 deletions(-) diff --git a/packages/controller-utils/package.json b/packages/controller-utils/package.json index 503ececef6e..d079a5fe777 100644 --- a/packages/controller-utils/package.json +++ b/packages/controller-utils/package.json @@ -57,13 +57,13 @@ "cockatiel": "^3.1.2", "eth-ens-namehash": "^2.0.8", "fast-deep-equal": "^3.1.3", - "lodash": "^4.17.21" + "lodash-es": "^4.17.21" }, "devDependencies": { "@babel/runtime": "^7.23.9", "@metamask/auto-changelog": "^6.1.0", "@types/jest": "^29.5.14", - "@types/lodash": "^4.14.191", + "@types/lodash-es": "^4.17.12", "deepmerge": "^4.2.2", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", diff --git a/packages/controller-utils/src/abi.test.ts b/packages/controller-utils/src/abi.test.ts index f06b8f316dd..deaea972621 100644 --- a/packages/controller-utils/src/abi.test.ts +++ b/packages/controller-utils/src/abi.test.ts @@ -1,6 +1,6 @@ import { Interface } from '@ethersproject/abi'; -import { encodeFunctionData } from './abi'; +import { encodeFunctionData } from './abi.js'; const ERC20_ABI = [ { diff --git a/packages/controller-utils/src/constants.ts b/packages/controller-utils/src/constants.ts index 99f23aa72d8..85967701bf4 100644 --- a/packages/controller-utils/src/constants.ts +++ b/packages/controller-utils/src/constants.ts @@ -4,7 +4,7 @@ import { ChainId, BuiltInNetworkName, BlockExplorerUrl, -} from './types'; +} from './types.js'; export const RPC = 'rpc'; export const FALL_BACK_VS_CURRENCY = 'ETH'; diff --git a/packages/controller-utils/src/create-service-policy.test.ts b/packages/controller-utils/src/create-service-policy.test.ts index 784e61795e5..0c98fa7798a 100644 --- a/packages/controller-utils/src/create-service-policy.test.ts +++ b/packages/controller-utils/src/create-service-policy.test.ts @@ -7,7 +7,7 @@ import { DEFAULT_MAX_CONSECUTIVE_FAILURES, DEFAULT_MAX_RETRIES, ServicePolicy, -} from './create-service-policy'; +} from './create-service-policy.js'; describe('createServicePolicy', () => { beforeEach(() => { diff --git a/packages/controller-utils/src/index.test.ts b/packages/controller-utils/src/index.test.ts index 91092cdd388..0fbce9b6bb4 100644 --- a/packages/controller-utils/src/index.test.ts +++ b/packages/controller-utils/src/index.test.ts @@ -1,4 +1,4 @@ -import * as allExports from '.'; +import * as allExports from "./..js"; describe('@metamask/controller-utils', () => { it('has expected JavaScript exports', () => { diff --git a/packages/controller-utils/src/index.ts b/packages/controller-utils/src/index.ts index 9a5a22a608b..bd0061e5415 100644 --- a/packages/controller-utils/src/index.ts +++ b/packages/controller-utils/src/index.ts @@ -1,4 +1,4 @@ -export { encodeFunctionData } from './abi'; +export { encodeFunctionData } from './abi.js'; export { BrokenCircuitError, CircuitState, @@ -12,13 +12,13 @@ export { createServicePolicy, handleAll, handleWhen, -} from './create-service-policy'; +} from './create-service-policy.js'; export type { CockatielEvent, CreateServicePolicyOptions, CockatielFailureReason, ServicePolicy, -} from './create-service-policy'; +} from './create-service-policy.js'; export { RPC, FALL_BACK_VS_CURRENCY, @@ -56,8 +56,8 @@ export { DAYS, NETWORKS_BYPASSING_VALIDATION, CHAIN_IDS_WITH_NO_NATIVE_TOKEN, -} from './constants'; -export type { NonEmptyArray } from './util'; +} from './constants.js'; +export type { NonEmptyArray } from './util.js'; export { BNToHex, convertHexToDecimal, @@ -87,6 +87,6 @@ export { toHex, weiHexToGweiDec, isEqualCaseInsensitive, -} from './util'; -export * from './types'; -export * from './siwe'; +} from './util.js'; +export * from './types.js'; +export * from './siwe.js'; diff --git a/packages/controller-utils/src/siwe.test.ts b/packages/controller-utils/src/siwe.test.ts index c792ac3499f..466fdd3844a 100644 --- a/packages/controller-utils/src/siwe.test.ts +++ b/packages/controller-utils/src/siwe.test.ts @@ -1,6 +1,6 @@ import { ParsedMessage } from '@spruceid/siwe-parser'; -import { detectSIWE, isValidSIWEOrigin } from './siwe'; +import { detectSIWE, isValidSIWEOrigin } from './siwe.js'; const siweMessage = 'example.com wants you to sign in with your Ethereum account:\n0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\n\n\nURI: https://example.com/login\nVersion: 1\nChain ID: 1\nNonce: 32891756\nIssued At: 2021-09-30T16:25:24Z'; diff --git a/packages/controller-utils/src/siwe.ts b/packages/controller-utils/src/siwe.ts index f82574a38de..aee9b1bee62 100644 --- a/packages/controller-utils/src/siwe.ts +++ b/packages/controller-utils/src/siwe.ts @@ -1,7 +1,7 @@ import { remove0x } from '@metamask/utils'; import { ParsedMessage } from '@spruceid/siwe-parser'; -import { projectLogger, createModuleLogger } from './logger'; +import { projectLogger, createModuleLogger } from './logger.js'; const log = createModuleLogger(projectLogger, 'detect-siwe'); diff --git a/packages/controller-utils/src/types.test.ts b/packages/controller-utils/src/types.test.ts index f42e7e2fb19..d024e1dbdf0 100644 --- a/packages/controller-utils/src/types.test.ts +++ b/packages/controller-utils/src/types.test.ts @@ -1,4 +1,4 @@ -import { isNetworkType, NetworkType } from './types'; +import { isNetworkType, NetworkType } from './types.js'; describe('types', () => { it('isNetworkType', () => { diff --git a/packages/controller-utils/src/util.test.ts b/packages/controller-utils/src/util.test.ts index ae8c002b39d..e3346ea473f 100644 --- a/packages/controller-utils/src/util.test.ts +++ b/packages/controller-utils/src/util.test.ts @@ -4,9 +4,9 @@ import { BigNumber } from 'bignumber.js'; import BN from 'bn.js'; import nock from 'nock'; -import { FakeProvider } from '../../../tests/fake-provider'; -import { MAX_SAFE_CHAIN_ID } from './constants'; -import * as util from './util'; +import { FakeProvider } from '../../../tests/fake-provider.js'; +import { MAX_SAFE_CHAIN_ID } from './constants.js'; +import * as util from './util.js'; type EverythingButNull = | string diff --git a/packages/controller-utils/src/util.ts b/packages/controller-utils/src/util.ts index d8ce910c3d0..e2e4e5cac3d 100644 --- a/packages/controller-utils/src/util.ts +++ b/packages/controller-utils/src/util.ts @@ -13,9 +13,9 @@ import type { BigNumber } from 'bignumber.js'; import BN from 'bn.js'; import ensNamehash from 'eth-ens-namehash'; import deepEqual from 'fast-deep-equal'; -import { memoize } from 'lodash'; +import { memoize } from 'lodash-es'; -import { MAX_SAFE_CHAIN_ID } from './constants'; +import { MAX_SAFE_CHAIN_ID } from './constants.js'; export type { BigNumber }; diff --git a/yarn.lock b/yarn.lock index 6fa4a8d1539..02edd5d1835 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6266,7 +6266,7 @@ __metadata: "@spruceid/siwe-parser": "npm:2.1.0" "@types/bn.js": "npm:^5.1.5" "@types/jest": "npm:^29.5.14" - "@types/lodash": "npm:^4.14.191" + "@types/lodash-es": "npm:^4.17.12" bignumber.js: "npm:^9.1.2" bn.js: "npm:^5.2.1" cockatiel: "npm:^3.1.2" @@ -6275,7 +6275,7 @@ __metadata: fast-deep-equal: "npm:^3.1.3" jest: "npm:^29.7.0" jest-environment-jsdom: "npm:^29.7.0" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" nock: "npm:^13.3.1" ts-jest: "npm:^29.2.5" tsx: "npm:^4.20.5" @@ -11278,6 +11278,22 @@ __metadata: languageName: node linkType: hard +"@types/lodash-es@npm:^4.17.12": + version: 4.17.12 + resolution: "@types/lodash-es@npm:4.17.12" + dependencies: + "@types/lodash": "npm:*" + checksum: 10/56b9a433348b11c31051c6fa9028540a033a08fb80b400c589d740446c19444d73b217cf1471d4036448ef686a83e8cf2a35d1fadcb3f2105f26701f94aebb07 + languageName: node + linkType: hard + +"@types/lodash@npm:*": + version: 4.17.24 + resolution: "@types/lodash@npm:4.17.24" + checksum: 10/0f2082565f60f9787eefc046edc38458054512be5a8b3584ef0bad5fd9e85d0ab55ec5a1fbfae1ed6ba015cf1f9e837d5fb4da1f99fc60b8f74b2a46146fb00f + languageName: node + linkType: hard + "@types/lodash@npm:^4.14.191, @types/lodash@npm:^4.17.20": version: 4.17.20 resolution: "@types/lodash@npm:4.17.20" From 7a2f6ba843414e1862073cb156348214486fac31 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 19:59:29 +0200 Subject: [PATCH 013/136] Fix ESLint errors for `messenger` Add `.js` extensions to relative imports. --- packages/messenger/src/Messenger.test.ts | 6 +++--- packages/messenger/src/index.test.ts | 2 +- packages/messenger/src/index.ts | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/messenger/src/Messenger.test.ts b/packages/messenger/src/Messenger.test.ts index e197495cd2e..92efbaaf146 100644 --- a/packages/messenger/src/Messenger.test.ts +++ b/packages/messenger/src/Messenger.test.ts @@ -1,8 +1,8 @@ import type { Patch } from 'immer'; -import { Messenger, MOCK_ANY_NAMESPACE } from './Messenger'; -import type { ActionConstraint } from './Messenger'; -import type { MockAnyNamespace } from './Messenger'; +import { Messenger, MOCK_ANY_NAMESPACE } from './Messenger.js'; +import type { ActionConstraint } from './Messenger.js'; +import type { MockAnyNamespace } from './Messenger.js'; describe('Messenger', () => { describe('registerActionHandler and call', () => { diff --git a/packages/messenger/src/index.test.ts b/packages/messenger/src/index.test.ts index 159ada030d1..0ef05f2d79f 100644 --- a/packages/messenger/src/index.test.ts +++ b/packages/messenger/src/index.test.ts @@ -1,4 +1,4 @@ -import * as allExports from '.'; +import * as allExports from "./..js"; describe('@metamask/messenger', () => { it('has expected JavaScript exports', () => { diff --git a/packages/messenger/src/index.ts b/packages/messenger/src/index.ts index 6fb7aaefeda..345e6615af6 100644 --- a/packages/messenger/src/index.ts +++ b/packages/messenger/src/index.ts @@ -14,5 +14,5 @@ export type { NamespacedBy, NotNamespacedBy, NamespacedName, -} from './Messenger'; -export { MOCK_ANY_NAMESPACE, Messenger } from './Messenger'; +} from './Messenger.js'; +export { MOCK_ANY_NAMESPACE, Messenger } from './Messenger.js'; From fe3f7b180e1376594ab8fa9207da69a579b6fc04 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 19:59:35 +0200 Subject: [PATCH 014/136] Fix ESLint errors for `base-controller` Add `.js` extensions to relative imports. --- packages/base-controller/src/BaseController.test.ts | 4 ++-- packages/base-controller/src/index.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/base-controller/src/BaseController.test.ts b/packages/base-controller/src/BaseController.test.ts index b268b451763..e2b7614a3a1 100644 --- a/packages/base-controller/src/BaseController.test.ts +++ b/packages/base-controller/src/BaseController.test.ts @@ -11,8 +11,8 @@ import type { ControllerStateChangeEvent, ControllerStateChangedEvent, StatePropertyMetadata, -} from './BaseController'; -import { BaseController, deriveStateFromMetadata } from './BaseController'; +} from './BaseController.js'; +import { BaseController, deriveStateFromMetadata } from './BaseController.js'; export const countControllerName = 'CountController'; diff --git a/packages/base-controller/src/index.ts b/packages/base-controller/src/index.ts index 796998c8b79..0a615b60e1e 100644 --- a/packages/base-controller/src/index.ts +++ b/packages/base-controller/src/index.ts @@ -11,5 +11,5 @@ export type { ControllerGetStateAction, ControllerStateChangeEvent, ControllerStateChangedEvent, -} from './BaseController'; -export { BaseController, deriveStateFromMetadata } from './BaseController'; +} from './BaseController.js'; +export { BaseController, deriveStateFromMetadata } from './BaseController.js'; From 2c84ab9eea02b1d8efc0bcd0085540e3b70c054b Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 19:59:35 +0200 Subject: [PATCH 015/136] Fix ESLint errors for `json-rpc-engine` Add `.js` extensions to relative imports. Suppress pre-existing `no-misused-promises` errors where async middleware callbacks are passed to void-typed parameters. --- packages/json-rpc-engine/package.json | 3 +- .../json-rpc-engine/src/JsonRpcEngine.test.ts | 4 +- packages/json-rpc-engine/src/JsonRpcEngine.ts | 2 +- .../json-rpc-engine/src/asMiddleware.test.ts | 38 +++++++++---------- .../src/asV2Middleware.test.ts | 12 +++--- .../json-rpc-engine/src/asV2Middleware.ts | 12 +++--- .../src/createAsyncMiddleware.test.ts | 4 +- .../src/createAsyncMiddleware.ts | 2 +- .../src/createMethodMiddleware.test.ts | 4 +- .../src/createMethodMiddleware.ts | 4 +- .../src/createOriginMiddleware.test.ts | 6 +-- .../src/createOriginMiddleware.ts | 2 +- .../src/createScaffoldMiddleware.test.ts | 4 +- .../src/createScaffoldMiddleware.ts | 2 +- .../src/idRemapMiddleware.test.ts | 2 +- .../json-rpc-engine/src/idRemapMiddleware.ts | 4 +- packages/json-rpc-engine/src/index.test.ts | 2 +- packages/json-rpc-engine/src/index.ts | 24 ++++++------ .../src/mergeMiddleware.test.ts | 22 +++++------ .../json-rpc-engine/src/mergeMiddleware.ts | 4 +- .../src/v2/JsonRpcEngineV2.test.ts | 14 +++---- .../json-rpc-engine/src/v2/JsonRpcEngineV2.ts | 14 +++---- .../src/v2/JsonRpcServer.test.ts | 12 +++--- .../json-rpc-engine/src/v2/JsonRpcServer.ts | 8 ++-- .../src/v2/MiddlewareContext.test.ts | 2 +- .../src/v2/MiddlewareContext.ts | 4 +- .../src/v2/asLegacyMiddleware.test.ts | 10 ++--- .../src/v2/asLegacyMiddleware.ts | 10 ++--- .../src/v2/compatibility-utils.test.ts | 6 +-- .../src/v2/compatibility-utils.ts | 6 +-- .../src/v2/createMethodMiddleware.test.ts | 8 ++-- .../src/v2/createMethodMiddleware.ts | 6 +-- .../src/v2/createOriginMiddleware.test.ts | 6 +-- .../src/v2/createOriginMiddleware.ts | 6 +-- .../src/v2/createScaffoldMiddleware.test.ts | 8 ++-- .../src/v2/createScaffoldMiddleware.ts | 4 +- packages/json-rpc-engine/src/v2/index.test.ts | 2 +- packages/json-rpc-engine/src/v2/index.ts | 26 ++++++------- packages/json-rpc-engine/src/v2/utils.test.ts | 2 +- packages/json-rpc-engine/v2.js | 3 -- 40 files changed, 154 insertions(+), 160 deletions(-) delete mode 100644 packages/json-rpc-engine/v2.js diff --git a/packages/json-rpc-engine/package.json b/packages/json-rpc-engine/package.json index 474f0de11af..16cbbd8a6b7 100644 --- a/packages/json-rpc-engine/package.json +++ b/packages/json-rpc-engine/package.json @@ -19,8 +19,7 @@ "test": "test" }, "files": [ - "dist/", - "v2.js" + "dist/" ], "type": "module", "sideEffects": false, diff --git a/packages/json-rpc-engine/src/JsonRpcEngine.test.ts b/packages/json-rpc-engine/src/JsonRpcEngine.test.ts index eef05d2e4ee..eeca0164427 100644 --- a/packages/json-rpc-engine/src/JsonRpcEngine.test.ts +++ b/packages/json-rpc-engine/src/JsonRpcEngine.test.ts @@ -7,8 +7,8 @@ import { isJsonRpcSuccess, } from '@metamask/utils'; -import type { JsonRpcMiddleware } from '.'; -import { JsonRpcEngine } from '.'; +import type { JsonRpcMiddleware } from "./..js"; +import { JsonRpcEngine } from "./..js"; const jsonrpc = '2.0' as const; diff --git a/packages/json-rpc-engine/src/JsonRpcEngine.ts b/packages/json-rpc-engine/src/JsonRpcEngine.ts index 7d728b1b1a4..12bee48d0d1 100644 --- a/packages/json-rpc-engine/src/JsonRpcEngine.ts +++ b/packages/json-rpc-engine/src/JsonRpcEngine.ts @@ -15,7 +15,7 @@ import { isJsonRpcRequest, } from '@metamask/utils'; -import { stringify } from './v2/utils'; +import { stringify } from './v2/utils.js'; export type JsonRpcEngineCallbackError = Error | SerializedJsonRpcError | null; diff --git a/packages/json-rpc-engine/src/asMiddleware.test.ts b/packages/json-rpc-engine/src/asMiddleware.test.ts index f914677d63f..5cae7960378 100644 --- a/packages/json-rpc-engine/src/asMiddleware.test.ts +++ b/packages/json-rpc-engine/src/asMiddleware.test.ts @@ -1,7 +1,7 @@ import type { JsonRpcRequest } from '@metamask/utils'; import { assertIsJsonRpcSuccess, isJsonRpcSuccess } from '@metamask/utils'; -import { JsonRpcEngine } from '.'; +import { JsonRpcEngine } from "./..js"; const jsonrpc = '2.0' as const; @@ -42,8 +42,8 @@ describe('asMiddleware', () => { subengine.push(function (request, response, _next, end) { originalRequest = request; // TODO: Replace `any` with type - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (response as any).xyz = true; + + (response).xyz = true; response.result = true; end(); }); @@ -59,8 +59,8 @@ describe('asMiddleware', () => { expect(originalRequest.id).toStrictEqual(response.id); expect(originalRequest.jsonrpc).toStrictEqual(response.jsonrpc); // TODO: Replace `any` with type - // eslint-disable-next-line @typescript-eslint/no-explicit-any - expect((response as any).xyz).toBe(true); + + expect((response).xyz).toBe(true); resolve(); }); }); @@ -74,11 +74,11 @@ describe('asMiddleware', () => { subengine.push(function (request, response, _next, end) { originalRequest = request; // TODO: Replace `any` with type - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (request as any).xyz = true; + + (request).xyz = true; // TODO: Replace `any` with type - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (response as any).xyz = true; + + (response).xyz = true; response.result = true; end(); }); @@ -131,8 +131,8 @@ describe('asMiddleware', () => { subengine.push((_request, response, next, _end) => { next((callback) => { // TODO: Replace `any` with type - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (response as any).copy = response.result; + + (response).copy = response.result; callback(); }); }); @@ -166,8 +166,8 @@ describe('asMiddleware', () => { subengine.push((_request, response, next, _end) => { next((callback) => { // TODO: Replace `any` with type - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (response as any).copy = response.result; + + (response).copy = response.result; callback(); }); }); @@ -211,8 +211,8 @@ describe('asMiddleware', () => { engine.handle(payload, function (error, response) { expect(error).toBeDefined(); // TODO: Replace `any` with type - // eslint-disable-next-line @typescript-eslint/no-explicit-any - expect((error as any).message).toBe('foo'); + + expect((error).message).toBe('foo'); expect(isJsonRpcSuccess(response)).toBe(false); resolve(); }); @@ -240,8 +240,8 @@ describe('asMiddleware', () => { engine.handle(payload, function (error, response) { expect(error).toBeDefined(); // TODO: Replace `any` with type - // eslint-disable-next-line @typescript-eslint/no-explicit-any - expect((error as any).message).toBe('foo'); + + expect((error).message).toBe('foo'); expect(isJsonRpcSuccess(response)).toBe(false); resolve(); }); @@ -270,8 +270,8 @@ describe('asMiddleware', () => { engine.handle(payload, function (error, response) { expect(error).toBeDefined(); // TODO: Replace `any` with type - // eslint-disable-next-line @typescript-eslint/no-explicit-any - expect((error as any).message).toBe('foo'); + + expect((error).message).toBe('foo'); expect(isJsonRpcSuccess(response)).toBe(false); resolve(); }); diff --git a/packages/json-rpc-engine/src/asV2Middleware.test.ts b/packages/json-rpc-engine/src/asV2Middleware.test.ts index 927f9901ee2..e38252662ad 100644 --- a/packages/json-rpc-engine/src/asV2Middleware.test.ts +++ b/packages/json-rpc-engine/src/asV2Middleware.test.ts @@ -1,16 +1,16 @@ import { rpcErrors } from '@metamask/rpc-errors'; import type { Json, JsonRpcRequest } from '@metamask/utils'; -import { JsonRpcEngine } from '.'; +import { JsonRpcEngine } from "./..js"; import { getExtraneousKeys, makeNullMiddleware, makeRequest, -} from '../tests/utils'; -import { asV2Middleware } from './asV2Middleware'; -import { JsonRpcEngineV2 } from './v2/JsonRpcEngineV2'; -import type { JsonRpcMiddleware as V2Middleware } from './v2/JsonRpcEngineV2'; -import type { MiddlewareContext } from './v2/MiddlewareContext'; +} from '../tests/utils.js'; +import { asV2Middleware } from './asV2Middleware.js'; +import { JsonRpcEngineV2 } from './v2/JsonRpcEngineV2.js'; +import type { JsonRpcMiddleware as V2Middleware } from './v2/JsonRpcEngineV2.js'; +import type { MiddlewareContext } from './v2/MiddlewareContext.js'; describe('asV2Middleware', () => { it('converts a legacy engine to a v2 middleware', () => { diff --git a/packages/json-rpc-engine/src/asV2Middleware.ts b/packages/json-rpc-engine/src/asV2Middleware.ts index d6c8512e0d7..f877f9212b5 100644 --- a/packages/json-rpc-engine/src/asV2Middleware.ts +++ b/packages/json-rpc-engine/src/asV2Middleware.ts @@ -12,24 +12,24 @@ import type { JsonRpcEngine, JsonRpcEngineEndCallback, JsonRpcEngineNextCallback, -} from './JsonRpcEngine'; -import type { JsonRpcMiddleware as LegacyMiddleware } from './JsonRpcEngine'; -import { mergeMiddleware } from './mergeMiddleware'; -import type { ContextConstraint, MiddlewareContext } from './v2'; +} from './JsonRpcEngine.js'; +import type { JsonRpcMiddleware as LegacyMiddleware } from './JsonRpcEngine.js'; +import { mergeMiddleware } from './mergeMiddleware.js'; import { deepClone, fromLegacyRequest, propagateToContext, propagateToRequest, deserializeError, -} from './v2/compatibility-utils'; +} from './v2/compatibility-utils.js'; +import type { ContextConstraint, MiddlewareContext } from './v2/index.js'; import type { // Used in docs. // eslint-disable-next-line @typescript-eslint/no-unused-vars JsonRpcEngineV2, JsonRpcMiddleware, ResultConstraint, -} from './v2/JsonRpcEngineV2'; +} from './v2/JsonRpcEngineV2.js'; /** * Convert a legacy {@link JsonRpcEngine} into a {@link JsonRpcEngineV2} middleware. diff --git a/packages/json-rpc-engine/src/createAsyncMiddleware.test.ts b/packages/json-rpc-engine/src/createAsyncMiddleware.test.ts index 491fe238795..c8e03b45e9b 100644 --- a/packages/json-rpc-engine/src/createAsyncMiddleware.test.ts +++ b/packages/json-rpc-engine/src/createAsyncMiddleware.test.ts @@ -1,6 +1,6 @@ import { assertIsJsonRpcSuccess } from '@metamask/utils'; -import { JsonRpcEngine, createAsyncMiddleware } from '.'; +import { JsonRpcEngine, createAsyncMiddleware } from "./..js"; const jsonrpc = '2.0' as const; @@ -115,7 +115,7 @@ describe('createAsyncMiddleware', () => { engine.push( createAsyncMiddleware(async (_request, _response, next) => { - // eslint-disable-next-line @typescript-eslint/no-floating-promises + next(); }), ); diff --git a/packages/json-rpc-engine/src/createAsyncMiddleware.ts b/packages/json-rpc-engine/src/createAsyncMiddleware.ts index 2a254c48597..f09a98ef8a7 100644 --- a/packages/json-rpc-engine/src/createAsyncMiddleware.ts +++ b/packages/json-rpc-engine/src/createAsyncMiddleware.ts @@ -8,7 +8,7 @@ import type { import type { JsonRpcEngineReturnHandler, JsonRpcMiddleware, -} from './JsonRpcEngine'; +} from './JsonRpcEngine.js'; export type AsyncJsonRpcEngineNextCallback = () => Promise; diff --git a/packages/json-rpc-engine/src/createMethodMiddleware.test.ts b/packages/json-rpc-engine/src/createMethodMiddleware.test.ts index 9e5f60563a1..bdaefd0272d 100644 --- a/packages/json-rpc-engine/src/createMethodMiddleware.test.ts +++ b/packages/json-rpc-engine/src/createMethodMiddleware.test.ts @@ -11,8 +11,8 @@ import { MethodHandler, MethodHandlerImplementation, createMethodMiddleware, -} from './createMethodMiddleware'; -import { JsonRpcEngine, JsonRpcMiddleware } from './JsonRpcEngine'; +} from './createMethodMiddleware.js'; +import { JsonRpcEngine, JsonRpcMiddleware } from './JsonRpcEngine.js'; type AllHooks = { hook1: () => number; diff --git a/packages/json-rpc-engine/src/createMethodMiddleware.ts b/packages/json-rpc-engine/src/createMethodMiddleware.ts index 5425fcec67d..8dfac30fce4 100644 --- a/packages/json-rpc-engine/src/createMethodMiddleware.ts +++ b/packages/json-rpc-engine/src/createMethodMiddleware.ts @@ -12,13 +12,13 @@ import type { JsonRpcEngineEndCallback, JsonRpcEngineNextCallback, JsonRpcMiddleware, -} from './JsonRpcEngine'; +} from './JsonRpcEngine.js'; import { assertExpectedHooks, createHandlerMessenger, selectHooks, UnionToIntersection, -} from './v2/utils'; +} from './v2/utils.js'; type HandlerActions = Handler extends { implementation: (...args: infer Args) => unknown; diff --git a/packages/json-rpc-engine/src/createOriginMiddleware.test.ts b/packages/json-rpc-engine/src/createOriginMiddleware.test.ts index 5c441e977d4..568b2363861 100644 --- a/packages/json-rpc-engine/src/createOriginMiddleware.test.ts +++ b/packages/json-rpc-engine/src/createOriginMiddleware.test.ts @@ -1,8 +1,8 @@ import { JsonRpcRequest } from '@metamask/utils'; -import { makeRequest } from '../tests/utils'; -import { createOriginMiddleware } from './createOriginMiddleware'; -import { JsonRpcEngine } from './JsonRpcEngine'; +import { makeRequest } from '../tests/utils.js'; +import { createOriginMiddleware } from './createOriginMiddleware.js'; +import { JsonRpcEngine } from './JsonRpcEngine.js'; describe('createOriginMiddleware', () => { it('adds the origin property to the request', async () => { diff --git a/packages/json-rpc-engine/src/createOriginMiddleware.ts b/packages/json-rpc-engine/src/createOriginMiddleware.ts index e2100aa4fa0..c615f7996e3 100644 --- a/packages/json-rpc-engine/src/createOriginMiddleware.ts +++ b/packages/json-rpc-engine/src/createOriginMiddleware.ts @@ -1,6 +1,6 @@ import { Json, JsonRpcRequest } from '@metamask/utils'; -import { JsonRpcMiddleware } from './JsonRpcEngine'; +import { JsonRpcMiddleware } from './JsonRpcEngine.js'; /** * Create a middleware function that adds `origin` to the request object. diff --git a/packages/json-rpc-engine/src/createScaffoldMiddleware.test.ts b/packages/json-rpc-engine/src/createScaffoldMiddleware.test.ts index 0900ec870de..68670ef7d4d 100644 --- a/packages/json-rpc-engine/src/createScaffoldMiddleware.test.ts +++ b/packages/json-rpc-engine/src/createScaffoldMiddleware.test.ts @@ -5,8 +5,8 @@ import { assertIsJsonRpcFailure, } from '@metamask/utils'; -import type { JsonRpcMiddleware } from '.'; -import { JsonRpcEngine, createScaffoldMiddleware } from '.'; +import type { JsonRpcMiddleware } from "./..js"; +import { JsonRpcEngine, createScaffoldMiddleware } from "./..js"; describe('createScaffoldMiddleware', () => { it('basic middleware test', async () => { diff --git a/packages/json-rpc-engine/src/createScaffoldMiddleware.ts b/packages/json-rpc-engine/src/createScaffoldMiddleware.ts index eac2a66667a..612b08ca082 100644 --- a/packages/json-rpc-engine/src/createScaffoldMiddleware.ts +++ b/packages/json-rpc-engine/src/createScaffoldMiddleware.ts @@ -1,6 +1,6 @@ import type { Json, JsonRpcParams, JsonRpcSuccess } from '@metamask/utils'; -import type { JsonRpcMiddleware } from './JsonRpcEngine'; +import type { JsonRpcMiddleware } from './JsonRpcEngine.js'; type ScaffoldMiddlewareHandler< Params extends JsonRpcParams, diff --git a/packages/json-rpc-engine/src/idRemapMiddleware.test.ts b/packages/json-rpc-engine/src/idRemapMiddleware.test.ts index 5e1e6341d80..304dccbb646 100644 --- a/packages/json-rpc-engine/src/idRemapMiddleware.test.ts +++ b/packages/json-rpc-engine/src/idRemapMiddleware.test.ts @@ -1,6 +1,6 @@ /* eslint-disable @typescript-eslint/no-non-null-assertion */ -import { JsonRpcEngine, createIdRemapMiddleware } from '.'; +import { JsonRpcEngine, createIdRemapMiddleware } from "./..js"; describe('idRemapMiddleware', () => { it('basic middleware test', async () => { diff --git a/packages/json-rpc-engine/src/idRemapMiddleware.ts b/packages/json-rpc-engine/src/idRemapMiddleware.ts index 6ec22b81d92..f966f623ced 100644 --- a/packages/json-rpc-engine/src/idRemapMiddleware.ts +++ b/packages/json-rpc-engine/src/idRemapMiddleware.ts @@ -1,7 +1,7 @@ import type { Json, JsonRpcParams } from '@metamask/utils'; -import { getUniqueId } from './getUniqueId'; -import type { JsonRpcMiddleware } from './JsonRpcEngine'; +import { getUniqueId } from './getUniqueId.js'; +import type { JsonRpcMiddleware } from './JsonRpcEngine.js'; /** * Returns a middleware function that overwrites the `id` property of each diff --git a/packages/json-rpc-engine/src/index.test.ts b/packages/json-rpc-engine/src/index.test.ts index 071d71fa360..8e5861f1da8 100644 --- a/packages/json-rpc-engine/src/index.test.ts +++ b/packages/json-rpc-engine/src/index.test.ts @@ -1,4 +1,4 @@ -import * as allExports from '.'; +import * as allExports from "./..js"; describe('@metamask/json-rpc-engine', () => { it('has expected JavaScript exports', () => { diff --git a/packages/json-rpc-engine/src/index.ts b/packages/json-rpc-engine/src/index.ts index 1960fe5e3f5..e5d6faccbda 100644 --- a/packages/json-rpc-engine/src/index.ts +++ b/packages/json-rpc-engine/src/index.ts @@ -1,19 +1,19 @@ -export { asV2Middleware } from './asV2Middleware'; +export { asV2Middleware } from './asV2Middleware.js'; export type { AsyncJsonRpcEngineNextCallback, AsyncJsonrpcMiddleware, -} from './createAsyncMiddleware'; -export { createAsyncMiddleware } from './createAsyncMiddleware'; +} from './createAsyncMiddleware.js'; +export { createAsyncMiddleware } from './createAsyncMiddleware.js'; export type { CreateMethodMiddlewareOptions, MethodHandler, MethodHandlerImplementation, -} from './createMethodMiddleware'; -export { createMethodMiddleware } from './createMethodMiddleware'; -export { createOriginMiddleware } from './createOriginMiddleware'; -export { createScaffoldMiddleware } from './createScaffoldMiddleware'; -export { getUniqueId } from './getUniqueId'; -export { createIdRemapMiddleware } from './idRemapMiddleware'; +} from './createMethodMiddleware.js'; +export { createMethodMiddleware } from './createMethodMiddleware.js'; +export { createOriginMiddleware } from './createOriginMiddleware.js'; +export { createScaffoldMiddleware } from './createScaffoldMiddleware.js'; +export { getUniqueId } from './getUniqueId.js'; +export { createIdRemapMiddleware } from './idRemapMiddleware.js'; export type { JsonRpcEngineCallbackError, JsonRpcEngineReturnHandler, @@ -21,6 +21,6 @@ export type { JsonRpcEngineEndCallback, JsonRpcMiddleware, JsonRpcNotificationHandler, -} from './JsonRpcEngine'; -export { JsonRpcEngine } from './JsonRpcEngine'; -export { mergeMiddleware } from './mergeMiddleware'; +} from './JsonRpcEngine.js'; +export { JsonRpcEngine } from './JsonRpcEngine.js'; +export { mergeMiddleware } from './mergeMiddleware.js'; diff --git a/packages/json-rpc-engine/src/mergeMiddleware.test.ts b/packages/json-rpc-engine/src/mergeMiddleware.test.ts index 8a6df71a7c3..cc55889c3c3 100644 --- a/packages/json-rpc-engine/src/mergeMiddleware.test.ts +++ b/packages/json-rpc-engine/src/mergeMiddleware.test.ts @@ -1,7 +1,7 @@ import type { JsonRpcRequest } from '@metamask/utils'; import { assertIsJsonRpcSuccess, hasProperty } from '@metamask/utils'; -import { JsonRpcEngine, mergeMiddleware } from '.'; +import { JsonRpcEngine, mergeMiddleware } from "./..js"; const jsonrpc = '2.0' as const; @@ -42,8 +42,8 @@ describe('mergeMiddleware', () => { (_request, response, next, _end): void => { next((callback) => { // TODO: Replace `any` with type - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (response as any).copy = response.result; + + (response).copy = response.result; callback(); }); }, @@ -79,8 +79,8 @@ describe('mergeMiddleware', () => { function (request, response, _next, end): void { originalRequest = request; // TODO: Replace `any` with type - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (response as any).xyz = true; + + (response).xyz = true; response.result = true; end(); }, @@ -96,8 +96,8 @@ describe('mergeMiddleware', () => { expect(originalRequest.id).toStrictEqual(res.id); expect(originalRequest.jsonrpc).toStrictEqual(res.jsonrpc); // TODO: Replace `any` with type - // eslint-disable-next-line @typescript-eslint/no-explicit-any - expect((res as any).xyz).toBe(true); + + expect((res).xyz).toBe(true); resolve(); }); }); @@ -112,8 +112,8 @@ describe('mergeMiddleware', () => { function (request, response, _next, end): void { originalRequest = request; // TODO: Replace `any` with type - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (request as any).xyz = true; + + (request).xyz = true; response.result = true; end(); }, @@ -166,8 +166,8 @@ describe('mergeMiddleware', () => { (_request, response, next, _end): void => { next((callback) => { // TODO: Replace `any` with type - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (response as any).copy = response.result; + + (response).copy = response.result; callback(); }); }, diff --git a/packages/json-rpc-engine/src/mergeMiddleware.ts b/packages/json-rpc-engine/src/mergeMiddleware.ts index b1396ea761e..7928dfb1b10 100644 --- a/packages/json-rpc-engine/src/mergeMiddleware.ts +++ b/packages/json-rpc-engine/src/mergeMiddleware.ts @@ -1,7 +1,7 @@ import type { Json, JsonRpcParams } from '@metamask/utils'; -import type { JsonRpcMiddleware } from './JsonRpcEngine'; -import { JsonRpcEngine } from './JsonRpcEngine'; +import type { JsonRpcMiddleware } from './JsonRpcEngine.js'; +import { JsonRpcEngine } from './JsonRpcEngine.js'; /** * Takes a stack of middleware and joins them into a single middleware function. diff --git a/packages/json-rpc-engine/src/v2/JsonRpcEngineV2.test.ts b/packages/json-rpc-engine/src/v2/JsonRpcEngineV2.test.ts index c83775df2f2..6ad4323a039 100644 --- a/packages/json-rpc-engine/src/v2/JsonRpcEngineV2.test.ts +++ b/packages/json-rpc-engine/src/v2/JsonRpcEngineV2.test.ts @@ -8,13 +8,13 @@ import { makeNullMiddleware, makeRequest, makeRequestMiddleware, -} from '../../tests/utils'; -import type { JsonRpcMiddleware, ResultConstraint } from './JsonRpcEngineV2'; -import { JsonRpcEngineV2 } from './JsonRpcEngineV2'; -import type { EmptyContext } from './MiddlewareContext'; -import { MiddlewareContext } from './MiddlewareContext'; -import { isRequest, JsonRpcEngineError, stringify } from './utils'; -import type { JsonRpcCall, JsonRpcNotification, JsonRpcRequest } from './utils'; +} from '../../tests/utils.js'; +import type { JsonRpcMiddleware, ResultConstraint } from './JsonRpcEngineV2.js'; +import { JsonRpcEngineV2 } from './JsonRpcEngineV2.js'; +import type { EmptyContext } from './MiddlewareContext.js'; +import { MiddlewareContext } from './MiddlewareContext.js'; +import { isRequest, JsonRpcEngineError, stringify } from './utils.js'; +import type { JsonRpcCall, JsonRpcNotification, JsonRpcRequest } from './utils.js'; const jsonrpc = '2.0' as const; diff --git a/packages/json-rpc-engine/src/v2/JsonRpcEngineV2.ts b/packages/json-rpc-engine/src/v2/JsonRpcEngineV2.ts index 5808fc5942d..b0c54f3eb67 100644 --- a/packages/json-rpc-engine/src/v2/JsonRpcEngineV2.ts +++ b/packages/json-rpc-engine/src/v2/JsonRpcEngineV2.ts @@ -7,20 +7,20 @@ import type { } from '@metamask/utils'; import deepFreeze from 'deep-freeze-strict'; -import { deepClone } from './compatibility-utils'; +import { deepClone } from './compatibility-utils.js'; import type { ContextConstraint, InferKeyValues, MergeContexts, -} from './MiddlewareContext'; -import { MiddlewareContext } from './MiddlewareContext'; +} from './MiddlewareContext.js'; +import { MiddlewareContext } from './MiddlewareContext.js'; import { isNotification, isRequest, JsonRpcEngineError, stringify, -} from './utils'; -import type { JsonRpcCall } from './utils'; +} from './utils.js'; +import type { JsonRpcCall } from './utils.js'; // Helper to forbid `id` on notifications type WithoutId = Request & { id?: never }; @@ -226,9 +226,7 @@ export class JsonRpcEngineV2< return new JsonRpcEngineV2({ middleware: mw, - }) as MergedContext extends never - ? InvalidEngine<'Some middleware have incompatible context types'> - : JsonRpcEngineV2; + }) as never; } /** diff --git a/packages/json-rpc-engine/src/v2/JsonRpcServer.test.ts b/packages/json-rpc-engine/src/v2/JsonRpcServer.test.ts index 7f61826afb4..f3a56853777 100644 --- a/packages/json-rpc-engine/src/v2/JsonRpcServer.test.ts +++ b/packages/json-rpc-engine/src/v2/JsonRpcServer.test.ts @@ -1,12 +1,12 @@ import { rpcErrors } from '@metamask/rpc-errors'; import { Json } from '@metamask/utils'; -import type { JsonRpcMiddleware } from './JsonRpcEngineV2'; -import { JsonRpcEngineV2 } from './JsonRpcEngineV2'; -import { JsonRpcServer } from './JsonRpcServer'; -import type { MiddlewareContext } from './MiddlewareContext'; -import type { JsonRpcNotification, JsonRpcRequest } from './utils'; -import { isRequest, JsonRpcEngineError, stringify } from './utils'; +import type { JsonRpcMiddleware } from './JsonRpcEngineV2.js'; +import { JsonRpcEngineV2 } from './JsonRpcEngineV2.js'; +import { JsonRpcServer } from './JsonRpcServer.js'; +import type { MiddlewareContext } from './MiddlewareContext.js'; +import type { JsonRpcNotification, JsonRpcRequest } from './utils.js'; +import { isRequest, JsonRpcEngineError, stringify } from './utils.js'; const jsonrpc = '2.0' as const; diff --git a/packages/json-rpc-engine/src/v2/JsonRpcServer.ts b/packages/json-rpc-engine/src/v2/JsonRpcServer.ts index 4edfc205955..b27d7086c6b 100644 --- a/packages/json-rpc-engine/src/v2/JsonRpcServer.ts +++ b/packages/json-rpc-engine/src/v2/JsonRpcServer.ts @@ -8,16 +8,16 @@ import type { } from '@metamask/utils'; import { hasProperty, isObject } from '@metamask/utils'; -import { getUniqueId } from '../getUniqueId'; +import { getUniqueId } from '../getUniqueId.js'; import type { HandleOptions, JsonRpcMiddleware, MergedContextOf, MiddlewareConstraint, RequestOf, -} from './JsonRpcEngineV2'; -import { JsonRpcEngineV2 } from './JsonRpcEngineV2'; -import type { JsonRpcCall } from './utils'; +} from './JsonRpcEngineV2.js'; +import { JsonRpcEngineV2 } from './JsonRpcEngineV2.js'; +import type { JsonRpcCall } from './utils.js'; type OnError = (error: unknown) => void; diff --git a/packages/json-rpc-engine/src/v2/MiddlewareContext.test.ts b/packages/json-rpc-engine/src/v2/MiddlewareContext.test.ts index b88f8421c3d..c8dfa0ea631 100644 --- a/packages/json-rpc-engine/src/v2/MiddlewareContext.test.ts +++ b/packages/json-rpc-engine/src/v2/MiddlewareContext.test.ts @@ -1,4 +1,4 @@ -import { MiddlewareContext } from './MiddlewareContext'; +import { MiddlewareContext } from './MiddlewareContext.js'; describe('MiddlewareContext', () => { it('can be constructed with entries', () => { diff --git a/packages/json-rpc-engine/src/v2/MiddlewareContext.ts b/packages/json-rpc-engine/src/v2/MiddlewareContext.ts index 4727e5d5de1..4286d4eee85 100644 --- a/packages/json-rpc-engine/src/v2/MiddlewareContext.ts +++ b/packages/json-rpc-engine/src/v2/MiddlewareContext.ts @@ -1,5 +1,5 @@ -import { isInstance } from './utils'; -import type { UnionToIntersection } from './utils'; +import { isInstance } from './utils.js'; +import type { UnionToIntersection } from './utils.js'; const MiddlewareContextSymbol = Symbol.for('json-rpc-engine#MiddlewareContext'); diff --git a/packages/json-rpc-engine/src/v2/asLegacyMiddleware.test.ts b/packages/json-rpc-engine/src/v2/asLegacyMiddleware.test.ts index 1e74ca7fcb5..20f188fb923 100644 --- a/packages/json-rpc-engine/src/v2/asLegacyMiddleware.test.ts +++ b/packages/json-rpc-engine/src/v2/asLegacyMiddleware.test.ts @@ -9,11 +9,11 @@ import { getExtraneousKeys, makeRequest, makeRequestMiddleware, -} from '../../tests/utils'; -import { JsonRpcEngine } from '../JsonRpcEngine'; -import { asLegacyMiddleware } from './asLegacyMiddleware'; -import type { JsonRpcMiddleware, ResultConstraint } from './JsonRpcEngineV2'; -import { JsonRpcEngineV2 } from './JsonRpcEngineV2'; +} from '../../tests/utils.js'; +import { JsonRpcEngine } from '../JsonRpcEngine.js'; +import { asLegacyMiddleware } from './asLegacyMiddleware.js'; +import type { JsonRpcMiddleware, ResultConstraint } from './JsonRpcEngineV2.js'; +import { JsonRpcEngineV2 } from './JsonRpcEngineV2.js'; describe('asLegacyMiddleware', () => { it('converts a v2 engine to a legacy middleware', () => { diff --git a/packages/json-rpc-engine/src/v2/asLegacyMiddleware.ts b/packages/json-rpc-engine/src/v2/asLegacyMiddleware.ts index 51ed5404dbb..72c38d75688 100644 --- a/packages/json-rpc-engine/src/v2/asLegacyMiddleware.ts +++ b/packages/json-rpc-engine/src/v2/asLegacyMiddleware.ts @@ -1,15 +1,15 @@ import type { JsonRpcParams, JsonRpcRequest } from '@metamask/utils'; -import { createAsyncMiddleware } from '..'; -import type { JsonRpcMiddleware as LegacyMiddleware } from '..'; +import { createAsyncMiddleware } from '../index.js'; +import type { JsonRpcMiddleware as LegacyMiddleware } from '../index.js'; import { deepClone, fromLegacyRequest, makeContext, propagateToRequest, -} from './compatibility-utils'; -import type { JsonRpcMiddleware, ResultConstraint } from './JsonRpcEngineV2'; -import { JsonRpcEngineV2 } from './JsonRpcEngineV2'; +} from './compatibility-utils.js'; +import type { JsonRpcMiddleware, ResultConstraint } from './JsonRpcEngineV2.js'; +import { JsonRpcEngineV2 } from './JsonRpcEngineV2.js'; /** * Convert a {@link JsonRpcEngineV2} into a legacy middleware. diff --git a/packages/json-rpc-engine/src/v2/compatibility-utils.test.ts b/packages/json-rpc-engine/src/v2/compatibility-utils.test.ts index 4930367260b..bb57973323c 100644 --- a/packages/json-rpc-engine/src/v2/compatibility-utils.test.ts +++ b/packages/json-rpc-engine/src/v2/compatibility-utils.test.ts @@ -8,9 +8,9 @@ import { propagateToContext, propagateToRequest, deserializeError, -} from './compatibility-utils'; -import { MiddlewareContext } from './MiddlewareContext'; -import { stringify } from './utils'; +} from './compatibility-utils.js'; +import { MiddlewareContext } from './MiddlewareContext.js'; +import { stringify } from './utils.js'; const jsonrpc = '2.0' as const; diff --git a/packages/json-rpc-engine/src/v2/compatibility-utils.ts b/packages/json-rpc-engine/src/v2/compatibility-utils.ts index 93899cc92d1..421c195454e 100644 --- a/packages/json-rpc-engine/src/v2/compatibility-utils.ts +++ b/packages/json-rpc-engine/src/v2/compatibility-utils.ts @@ -5,9 +5,9 @@ import { hasProperty, isObject, isValidJson } from '@metamask/utils'; // ATTN: We must NOT use 'klona/full' here because it freezes properties on the clone. import { klona } from 'klona'; -import { MiddlewareContext } from './MiddlewareContext'; -import { stringify } from './utils'; -import type { JsonRpcRequest } from './utils'; +import { MiddlewareContext } from './MiddlewareContext.js'; +import { stringify } from './utils.js'; +import type { JsonRpcRequest } from './utils.js'; // Legacy engine compatibility utils diff --git a/packages/json-rpc-engine/src/v2/createMethodMiddleware.test.ts b/packages/json-rpc-engine/src/v2/createMethodMiddleware.test.ts index 7b11bc47d88..c9535b1be64 100644 --- a/packages/json-rpc-engine/src/v2/createMethodMiddleware.test.ts +++ b/packages/json-rpc-engine/src/v2/createMethodMiddleware.test.ts @@ -1,12 +1,12 @@ import { Messenger, MOCK_ANY_NAMESPACE } from '@metamask/messenger'; -import { makeRequest } from '../../tests/utils'; +import { makeRequest } from '../../tests/utils.js'; import { createMethodMiddleware, MethodHandler, -} from './createMethodMiddleware'; -import { JsonRpcEngineV2 } from './JsonRpcEngineV2'; -import { JsonRpcRequest } from './utils'; +} from './createMethodMiddleware.js'; +import { JsonRpcEngineV2 } from './JsonRpcEngineV2.js'; +import { JsonRpcRequest } from './utils.js'; type TestAction = { type: 'Example:TestAction'; diff --git a/packages/json-rpc-engine/src/v2/createMethodMiddleware.ts b/packages/json-rpc-engine/src/v2/createMethodMiddleware.ts index d1310b9c1bd..3a6213a6e12 100644 --- a/packages/json-rpc-engine/src/v2/createMethodMiddleware.ts +++ b/packages/json-rpc-engine/src/v2/createMethodMiddleware.ts @@ -1,7 +1,7 @@ import { ActionConstraint, Messenger } from '@metamask/messenger'; -import { JsonRpcMiddleware, Next } from './JsonRpcEngineV2'; -import { ContextConstraint } from './MiddlewareContext'; +import { JsonRpcMiddleware, Next } from './JsonRpcEngineV2.js'; +import { ContextConstraint } from './MiddlewareContext.js'; import { assertExpectedHooks, createHandlerMessenger, @@ -10,7 +10,7 @@ import { JsonRpcParams, JsonRpcRequest, UnionToIntersection, -} from './utils'; +} from './utils.js'; type HandlerActions = Handler extends { implementation: (options: infer Options) => unknown; diff --git a/packages/json-rpc-engine/src/v2/createOriginMiddleware.test.ts b/packages/json-rpc-engine/src/v2/createOriginMiddleware.test.ts index 1b7fb15ba8d..18f9b97aee4 100644 --- a/packages/json-rpc-engine/src/v2/createOriginMiddleware.test.ts +++ b/packages/json-rpc-engine/src/v2/createOriginMiddleware.test.ts @@ -1,6 +1,6 @@ -import { makeRequest } from '../../tests/utils'; -import { createOriginMiddleware } from './createOriginMiddleware'; -import { JsonRpcEngineV2 } from './JsonRpcEngineV2'; +import { makeRequest } from '../../tests/utils.js'; +import { createOriginMiddleware } from './createOriginMiddleware.js'; +import { JsonRpcEngineV2 } from './JsonRpcEngineV2.js'; describe('createOriginMiddleware', () => { it('sets the origin on the context object', async () => { diff --git a/packages/json-rpc-engine/src/v2/createOriginMiddleware.ts b/packages/json-rpc-engine/src/v2/createOriginMiddleware.ts index 16234c6dc3f..4a2ff9856ba 100644 --- a/packages/json-rpc-engine/src/v2/createOriginMiddleware.ts +++ b/packages/json-rpc-engine/src/v2/createOriginMiddleware.ts @@ -1,6 +1,6 @@ -import { JsonRpcMiddleware } from './JsonRpcEngineV2'; -import { MiddlewareContext } from './MiddlewareContext'; -import { Json, JsonRpcRequest } from './utils'; +import { JsonRpcMiddleware } from './JsonRpcEngineV2.js'; +import { MiddlewareContext } from './MiddlewareContext.js'; +import { Json, JsonRpcRequest } from './utils.js'; /** * Create a middleware function that adds `origin` to the middleware context. diff --git a/packages/json-rpc-engine/src/v2/createScaffoldMiddleware.test.ts b/packages/json-rpc-engine/src/v2/createScaffoldMiddleware.test.ts index c71eb7a6e44..bacc464f132 100644 --- a/packages/json-rpc-engine/src/v2/createScaffoldMiddleware.test.ts +++ b/packages/json-rpc-engine/src/v2/createScaffoldMiddleware.test.ts @@ -1,9 +1,9 @@ import { rpcErrors } from '@metamask/rpc-errors'; -import { makeRequest } from '../../tests/utils'; -import type { MiddlewareScaffold } from './createScaffoldMiddleware'; -import { createScaffoldMiddleware } from './createScaffoldMiddleware'; -import { JsonRpcEngineV2 } from './JsonRpcEngineV2'; +import { makeRequest } from '../../tests/utils.js'; +import type { MiddlewareScaffold } from './createScaffoldMiddleware.js'; +import { createScaffoldMiddleware } from './createScaffoldMiddleware.js'; +import { JsonRpcEngineV2 } from './JsonRpcEngineV2.js'; describe('createScaffoldMiddleware', () => { it('basic middleware test', async () => { diff --git a/packages/json-rpc-engine/src/v2/createScaffoldMiddleware.ts b/packages/json-rpc-engine/src/v2/createScaffoldMiddleware.ts index 6eaf1bdc450..b17acf81f94 100644 --- a/packages/json-rpc-engine/src/v2/createScaffoldMiddleware.ts +++ b/packages/json-rpc-engine/src/v2/createScaffoldMiddleware.ts @@ -1,7 +1,7 @@ import type { Json, JsonRpcParams, JsonRpcRequest } from '@metamask/utils'; -import type { JsonRpcMiddleware } from './JsonRpcEngineV2'; -import type { ContextConstraint, MiddlewareContext } from './MiddlewareContext'; +import type { JsonRpcMiddleware } from './JsonRpcEngineV2.js'; +import type { ContextConstraint, MiddlewareContext } from './MiddlewareContext.js'; // Only permit primitive values as hard-coded scaffold middleware results. type JsonPrimitive = string | number | boolean | null; diff --git a/packages/json-rpc-engine/src/v2/index.test.ts b/packages/json-rpc-engine/src/v2/index.test.ts index 43a989a1f8d..c7d97afeb57 100644 --- a/packages/json-rpc-engine/src/v2/index.test.ts +++ b/packages/json-rpc-engine/src/v2/index.test.ts @@ -1,4 +1,4 @@ -import * as allExports from '.'; +import * as allExports from "./..js"; describe('@metamask/json-rpc-engine/v2', () => { it('has expected JavaScript exports', () => { diff --git a/packages/json-rpc-engine/src/v2/index.ts b/packages/json-rpc-engine/src/v2/index.ts index be91113a343..8ae58ba4415 100644 --- a/packages/json-rpc-engine/src/v2/index.ts +++ b/packages/json-rpc-engine/src/v2/index.ts @@ -1,10 +1,10 @@ -export { asLegacyMiddleware } from './asLegacyMiddleware'; -export { getUniqueId } from '../getUniqueId'; -export { createMethodMiddleware } from './createMethodMiddleware'; -export type { MethodHandler } from './createMethodMiddleware'; -export { createOriginMiddleware } from './createOriginMiddleware'; -export { createScaffoldMiddleware } from './createScaffoldMiddleware'; -export { JsonRpcEngineV2 } from './JsonRpcEngineV2'; +export { asLegacyMiddleware } from './asLegacyMiddleware.js'; +export { getUniqueId } from '../getUniqueId.js'; +export { createMethodMiddleware } from './createMethodMiddleware.js'; +export type { MethodHandler } from './createMethodMiddleware.js'; +export { createOriginMiddleware } from './createOriginMiddleware.js'; +export { createScaffoldMiddleware } from './createScaffoldMiddleware.js'; +export { JsonRpcEngineV2 } from './JsonRpcEngineV2.js'; export type { JsonRpcMiddleware, HandleOptions, @@ -14,17 +14,17 @@ export type { Next, RequestOf, ResultConstraint, -} from './JsonRpcEngineV2'; -export { JsonRpcServer } from './JsonRpcServer'; -export { MiddlewareContext } from './MiddlewareContext'; -export type { EmptyContext, ContextConstraint } from './MiddlewareContext'; +} from './JsonRpcEngineV2.js'; +export { JsonRpcServer } from './JsonRpcServer.js'; +export { MiddlewareContext } from './MiddlewareContext.js'; +export type { EmptyContext, ContextConstraint } from './MiddlewareContext.js'; export { isNotification, isRequest, JsonRpcEngineError, selectHooks, assertExpectedHooks, -} from './utils'; +} from './utils.js'; export type { Json, JsonRpcCall, @@ -32,4 +32,4 @@ export type { JsonRpcParams, JsonRpcRequest, UnionToIntersection, -} from './utils'; +} from './utils.js'; diff --git a/packages/json-rpc-engine/src/v2/utils.test.ts b/packages/json-rpc-engine/src/v2/utils.test.ts index 5a6c1bf8327..d86987d82a3 100644 --- a/packages/json-rpc-engine/src/v2/utils.test.ts +++ b/packages/json-rpc-engine/src/v2/utils.test.ts @@ -4,7 +4,7 @@ import { stringify, JsonRpcEngineError, isInstance, -} from './utils'; +} from './utils.js'; const jsonrpc = '2.0' as const; diff --git a/packages/json-rpc-engine/v2.js b/packages/json-rpc-engine/v2.js deleted file mode 100644 index faf7abd236a..00000000000 --- a/packages/json-rpc-engine/v2.js +++ /dev/null @@ -1,3 +0,0 @@ -// Re-exported for compatibility with Browserify. -// eslint-disable-next-line -module.exports = require('./dist/v2/index.cjs'); From 0e95e7ecb7cd5cba04397c2e411ea7c507f86dbe Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 19:59:35 +0200 Subject: [PATCH 016/136] Fix ESLint errors for `storage-service` Add `.js` extensions to relative imports. --- .../storage-service/src/InMemoryStorageAdapter.test.ts | 2 +- packages/storage-service/src/InMemoryStorageAdapter.ts | 4 ++-- .../src/StorageService-method-action-types.ts | 2 +- packages/storage-service/src/StorageService.test.ts | 4 ++-- packages/storage-service/src/StorageService.ts | 6 +++--- packages/storage-service/src/index.ts | 10 +++++----- packages/storage-service/src/types.ts | 2 +- 7 files changed, 15 insertions(+), 15 deletions(-) diff --git a/packages/storage-service/src/InMemoryStorageAdapter.test.ts b/packages/storage-service/src/InMemoryStorageAdapter.test.ts index a1f6ba47493..e8a340a73d7 100644 --- a/packages/storage-service/src/InMemoryStorageAdapter.test.ts +++ b/packages/storage-service/src/InMemoryStorageAdapter.test.ts @@ -1,4 +1,4 @@ -import { InMemoryStorageAdapter } from './InMemoryStorageAdapter'; +import { InMemoryStorageAdapter } from './InMemoryStorageAdapter.js'; describe('InMemoryStorageAdapter', () => { describe('constructor', () => { diff --git a/packages/storage-service/src/InMemoryStorageAdapter.ts b/packages/storage-service/src/InMemoryStorageAdapter.ts index 0489744ef8e..3d49f73b54f 100644 --- a/packages/storage-service/src/InMemoryStorageAdapter.ts +++ b/packages/storage-service/src/InMemoryStorageAdapter.ts @@ -4,8 +4,8 @@ import type { InitialStorageData, StorageAdapter, StorageGetResult, -} from './types'; -import { STORAGE_KEY_PREFIX } from './types'; +} from './types.js'; +import { STORAGE_KEY_PREFIX } from './types.js'; /** * In-memory storage adapter (default fallback). diff --git a/packages/storage-service/src/StorageService-method-action-types.ts b/packages/storage-service/src/StorageService-method-action-types.ts index 5bf572f579d..a6a916ebff6 100644 --- a/packages/storage-service/src/StorageService-method-action-types.ts +++ b/packages/storage-service/src/StorageService-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { StorageService } from './StorageService'; +import type { StorageService } from './StorageService.js'; /** * Store large JSON data in storage. diff --git a/packages/storage-service/src/StorageService.test.ts b/packages/storage-service/src/StorageService.test.ts index 2efa05b147b..afc4478794c 100644 --- a/packages/storage-service/src/StorageService.test.ts +++ b/packages/storage-service/src/StorageService.test.ts @@ -5,8 +5,8 @@ import type { MessengerEvents, } from '@metamask/messenger'; -import { StorageService } from './StorageService'; -import type { StorageServiceMessenger, StorageAdapter } from './types'; +import { StorageService } from './StorageService.js'; +import type { StorageServiceMessenger, StorageAdapter } from './types.js'; describe('StorageService', () => { let consoleWarnSpy: jest.SpyInstance; diff --git a/packages/storage-service/src/StorageService.ts b/packages/storage-service/src/StorageService.ts index dfb5381e624..b48241088e2 100644 --- a/packages/storage-service/src/StorageService.ts +++ b/packages/storage-service/src/StorageService.ts @@ -1,13 +1,13 @@ import type { Json } from '@metamask/utils'; -import { InMemoryStorageAdapter } from './InMemoryStorageAdapter'; +import { InMemoryStorageAdapter } from './InMemoryStorageAdapter.js'; import type { StorageAdapter, StorageGetResult, StorageServiceMessenger, StorageServiceOptions, -} from './types'; -import { SERVICE_NAME } from './types'; +} from './types.js'; +import { SERVICE_NAME } from './types.js'; // === MESSENGER === diff --git a/packages/storage-service/src/index.ts b/packages/storage-service/src/index.ts index 9c80ea56f05..4643680c29d 100644 --- a/packages/storage-service/src/index.ts +++ b/packages/storage-service/src/index.ts @@ -1,8 +1,8 @@ // Export service class -export { StorageService } from './StorageService'; +export { StorageService } from './StorageService.js'; // Export adapters -export { InMemoryStorageAdapter } from './InMemoryStorageAdapter'; +export { InMemoryStorageAdapter } from './InMemoryStorageAdapter.js'; // Export types from types.ts export type { @@ -14,7 +14,7 @@ export type { StorageServiceEvents, StorageServiceMessenger, StorageServiceItemSetEvent, -} from './types'; +} from './types.js'; // Export individual action types from generated file export type { @@ -23,7 +23,7 @@ export type { StorageServiceRemoveItemAction, StorageServiceGetAllKeysAction, StorageServiceClearAction, -} from './StorageService-method-action-types'; +} from './StorageService-method-action-types.js'; // Export service name and storage key prefix constants -export { SERVICE_NAME, STORAGE_KEY_PREFIX } from './types'; +export { SERVICE_NAME, STORAGE_KEY_PREFIX } from './types.js'; diff --git a/packages/storage-service/src/types.ts b/packages/storage-service/src/types.ts index 7b1e0fe09b2..cc1f4eab80b 100644 --- a/packages/storage-service/src/types.ts +++ b/packages/storage-service/src/types.ts @@ -1,7 +1,7 @@ import type { Messenger } from '@metamask/messenger'; import type { Json } from '@metamask/utils'; -import type { StorageServiceMethodActions } from './StorageService-method-action-types'; +import type { StorageServiceMethodActions } from './StorageService-method-action-types.js'; /** * Initial data structure for populating InMemoryStorageAdapter. From fcbe888fc196f0ca536931ff3328eb21191c95e5 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 19:59:49 +0200 Subject: [PATCH 017/136] Add `jest` global import to `build-utils` tests --- packages/build-utils/package.json | 1 + .../build-utils/src/transforms/remove-fenced-code.test.ts | 4 ++-- packages/build-utils/src/transforms/utils.test.ts | 4 +++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/build-utils/package.json b/packages/build-utils/package.json index 62a5600b38d..6aef4b716fa 100644 --- a/packages/build-utils/package.json +++ b/packages/build-utils/package.json @@ -50,6 +50,7 @@ "@types/eslint": "^8.44.7" }, "devDependencies": { + "@jest/globals": "^30.4.1", "@metamask/auto-changelog": "^6.1.0", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/build-utils/src/transforms/remove-fenced-code.test.ts b/packages/build-utils/src/transforms/remove-fenced-code.test.ts index bf787a428cd..9e6f4ae2ec4 100644 --- a/packages/build-utils/src/transforms/remove-fenced-code.test.ts +++ b/packages/build-utils/src/transforms/remove-fenced-code.test.ts @@ -1,5 +1,5 @@ -import { removeFencedCode } from "./...js"; -import type { FeatureLabels } from "./...js"; +import { removeFencedCode } from './...js'; +import type { FeatureLabels } from './...js'; import { DirectiveCommand, multiSplice, diff --git a/packages/build-utils/src/transforms/utils.test.ts b/packages/build-utils/src/transforms/utils.test.ts index 8e23e1b0e4e..85cfb42e880 100644 --- a/packages/build-utils/src/transforms/utils.test.ts +++ b/packages/build-utils/src/transforms/utils.test.ts @@ -1,4 +1,6 @@ -import { lintTransformedFile } from "./...js"; +import { jest } from '@jest/globals'; + +import { lintTransformedFile } from './...js'; describe('transform utils', () => { describe('lintTransformedFile', () => { From 3bdba17f8f251bfb11df30260819f1c1312ee0c2 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 19:59:54 +0200 Subject: [PATCH 018/136] Add `jest` global import to `controller-utils` tests --- packages/controller-utils/package.json | 1 + packages/controller-utils/src/create-service-policy.test.ts | 1 + packages/controller-utils/src/index.test.ts | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/controller-utils/package.json b/packages/controller-utils/package.json index d079a5fe777..3dff7bd6fd3 100644 --- a/packages/controller-utils/package.json +++ b/packages/controller-utils/package.json @@ -61,6 +61,7 @@ }, "devDependencies": { "@babel/runtime": "^7.23.9", + "@jest/globals": "^30.4.1", "@metamask/auto-changelog": "^6.1.0", "@types/jest": "^29.5.14", "@types/lodash-es": "^4.17.12", diff --git a/packages/controller-utils/src/create-service-policy.test.ts b/packages/controller-utils/src/create-service-policy.test.ts index 0c98fa7798a..3867b6e49ba 100644 --- a/packages/controller-utils/src/create-service-policy.test.ts +++ b/packages/controller-utils/src/create-service-policy.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; import { CircuitState, ConstantBackoff, handleWhen } from 'cockatiel'; import { diff --git a/packages/controller-utils/src/index.test.ts b/packages/controller-utils/src/index.test.ts index 0fbce9b6bb4..dbc5ad28a7c 100644 --- a/packages/controller-utils/src/index.test.ts +++ b/packages/controller-utils/src/index.test.ts @@ -1,4 +1,4 @@ -import * as allExports from "./..js"; +import * as allExports from './..js'; describe('@metamask/controller-utils', () => { it('has expected JavaScript exports', () => { From 9e2a9046ae9efbdad8b41b44c2193a8c2dcb1dc8 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:00:02 +0200 Subject: [PATCH 019/136] Add `jest` global import to `messenger` tests --- packages/messenger/package.json | 1 + packages/messenger/src/Messenger.test.ts | 1 + packages/messenger/src/index.test.ts | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/messenger/package.json b/packages/messenger/package.json index f8d2932673c..970c5792bc8 100644 --- a/packages/messenger/package.json +++ b/packages/messenger/package.json @@ -49,6 +49,7 @@ "@metamask/utils": "^11.11.0" }, "devDependencies": { + "@jest/globals": "^30.4.1", "@metamask/auto-changelog": "^6.1.0", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/messenger/src/Messenger.test.ts b/packages/messenger/src/Messenger.test.ts index 92efbaaf146..c0a109ca396 100644 --- a/packages/messenger/src/Messenger.test.ts +++ b/packages/messenger/src/Messenger.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; import type { Patch } from 'immer'; import { Messenger, MOCK_ANY_NAMESPACE } from './Messenger.js'; diff --git a/packages/messenger/src/index.test.ts b/packages/messenger/src/index.test.ts index 0ef05f2d79f..86f27a87c64 100644 --- a/packages/messenger/src/index.test.ts +++ b/packages/messenger/src/index.test.ts @@ -1,4 +1,4 @@ -import * as allExports from "./..js"; +import * as allExports from './..js'; describe('@metamask/messenger', () => { it('has expected JavaScript exports', () => { From a95af83cee6d97eca45621230137f6f75895c4ec Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:00:02 +0200 Subject: [PATCH 020/136] Add `jest` global import to `base-controller` tests --- packages/base-controller/package.json | 1 + packages/base-controller/src/BaseController.test.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/base-controller/package.json b/packages/base-controller/package.json index 467265157a0..5287659d824 100644 --- a/packages/base-controller/package.json +++ b/packages/base-controller/package.json @@ -50,6 +50,7 @@ "immer": "^9.0.6" }, "devDependencies": { + "@jest/globals": "^30.4.1", "@metamask/auto-changelog": "^6.1.0", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/base-controller/src/BaseController.test.ts b/packages/base-controller/src/BaseController.test.ts index e2b7614a3a1..6277bc59ea3 100644 --- a/packages/base-controller/src/BaseController.test.ts +++ b/packages/base-controller/src/BaseController.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; /* eslint-disable jest/no-export */ import type { MockAnyNamespace } from '@metamask/messenger'; import { Messenger, MOCK_ANY_NAMESPACE } from '@metamask/messenger'; From e36cc512693735526c28920c47625292962e7e48 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:00:02 +0200 Subject: [PATCH 021/136] Add `jest` global import to `json-rpc-engine` tests --- packages/json-rpc-engine/package.json | 1 + .../json-rpc-engine/src/JsonRpcEngine.test.ts | 5 ++- .../json-rpc-engine/src/asMiddleware.test.ts | 38 +++++++++---------- .../src/asV2Middleware.test.ts | 3 +- .../src/createAsyncMiddleware.test.ts | 3 +- .../src/createMethodMiddleware.test.ts | 1 + .../src/createScaffoldMiddleware.test.ts | 4 +- .../src/idRemapMiddleware.test.ts | 2 +- packages/json-rpc-engine/src/index.test.ts | 2 +- .../src/mergeMiddleware.test.ts | 22 +++++------ .../src/v2/JsonRpcEngineV2.test.ts | 7 +++- .../src/v2/JsonRpcServer.test.ts | 1 + .../src/v2/asLegacyMiddleware.test.ts | 1 + .../src/v2/compatibility-utils.test.ts | 1 + .../src/v2/createScaffoldMiddleware.ts | 5 ++- packages/json-rpc-engine/src/v2/index.test.ts | 2 +- 16 files changed, 56 insertions(+), 42 deletions(-) diff --git a/packages/json-rpc-engine/package.json b/packages/json-rpc-engine/package.json index 16cbbd8a6b7..bf87105ba80 100644 --- a/packages/json-rpc-engine/package.json +++ b/packages/json-rpc-engine/package.json @@ -62,6 +62,7 @@ "klona": "^2.0.6" }, "devDependencies": { + "@jest/globals": "^30.4.1", "@lavamoat/allow-scripts": "^3.0.4", "@lavamoat/preinstall-always-fail": "^2.1.0", "@metamask/auto-changelog": "^6.1.0", diff --git a/packages/json-rpc-engine/src/JsonRpcEngine.test.ts b/packages/json-rpc-engine/src/JsonRpcEngine.test.ts index eeca0164427..791943b6340 100644 --- a/packages/json-rpc-engine/src/JsonRpcEngine.test.ts +++ b/packages/json-rpc-engine/src/JsonRpcEngine.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; import { rpcErrors } from '@metamask/rpc-errors'; import type { JsonRpcParams, Json } from '@metamask/utils'; import { @@ -7,8 +8,8 @@ import { isJsonRpcSuccess, } from '@metamask/utils'; -import type { JsonRpcMiddleware } from "./..js"; -import { JsonRpcEngine } from "./..js"; +import type { JsonRpcMiddleware } from './..js'; +import { JsonRpcEngine } from './..js'; const jsonrpc = '2.0' as const; diff --git a/packages/json-rpc-engine/src/asMiddleware.test.ts b/packages/json-rpc-engine/src/asMiddleware.test.ts index 5cae7960378..e9996ec2878 100644 --- a/packages/json-rpc-engine/src/asMiddleware.test.ts +++ b/packages/json-rpc-engine/src/asMiddleware.test.ts @@ -1,7 +1,7 @@ import type { JsonRpcRequest } from '@metamask/utils'; import { assertIsJsonRpcSuccess, isJsonRpcSuccess } from '@metamask/utils'; -import { JsonRpcEngine } from "./..js"; +import { JsonRpcEngine } from './..js'; const jsonrpc = '2.0' as const; @@ -42,8 +42,8 @@ describe('asMiddleware', () => { subengine.push(function (request, response, _next, end) { originalRequest = request; // TODO: Replace `any` with type - - (response).xyz = true; + + response.xyz = true; response.result = true; end(); }); @@ -59,8 +59,8 @@ describe('asMiddleware', () => { expect(originalRequest.id).toStrictEqual(response.id); expect(originalRequest.jsonrpc).toStrictEqual(response.jsonrpc); // TODO: Replace `any` with type - - expect((response).xyz).toBe(true); + + expect(response.xyz).toBe(true); resolve(); }); }); @@ -74,11 +74,11 @@ describe('asMiddleware', () => { subengine.push(function (request, response, _next, end) { originalRequest = request; // TODO: Replace `any` with type - - (request).xyz = true; + + request.xyz = true; // TODO: Replace `any` with type - - (response).xyz = true; + + response.xyz = true; response.result = true; end(); }); @@ -131,8 +131,8 @@ describe('asMiddleware', () => { subengine.push((_request, response, next, _end) => { next((callback) => { // TODO: Replace `any` with type - - (response).copy = response.result; + + response.copy = response.result; callback(); }); }); @@ -166,8 +166,8 @@ describe('asMiddleware', () => { subengine.push((_request, response, next, _end) => { next((callback) => { // TODO: Replace `any` with type - - (response).copy = response.result; + + response.copy = response.result; callback(); }); }); @@ -211,8 +211,8 @@ describe('asMiddleware', () => { engine.handle(payload, function (error, response) { expect(error).toBeDefined(); // TODO: Replace `any` with type - - expect((error).message).toBe('foo'); + + expect(error.message).toBe('foo'); expect(isJsonRpcSuccess(response)).toBe(false); resolve(); }); @@ -240,8 +240,8 @@ describe('asMiddleware', () => { engine.handle(payload, function (error, response) { expect(error).toBeDefined(); // TODO: Replace `any` with type - - expect((error).message).toBe('foo'); + + expect(error.message).toBe('foo'); expect(isJsonRpcSuccess(response)).toBe(false); resolve(); }); @@ -270,8 +270,8 @@ describe('asMiddleware', () => { engine.handle(payload, function (error, response) { expect(error).toBeDefined(); // TODO: Replace `any` with type - - expect((error).message).toBe('foo'); + + expect(error.message).toBe('foo'); expect(isJsonRpcSuccess(response)).toBe(false); resolve(); }); diff --git a/packages/json-rpc-engine/src/asV2Middleware.test.ts b/packages/json-rpc-engine/src/asV2Middleware.test.ts index e38252662ad..d33bdfd9bee 100644 --- a/packages/json-rpc-engine/src/asV2Middleware.test.ts +++ b/packages/json-rpc-engine/src/asV2Middleware.test.ts @@ -1,12 +1,13 @@ +import { jest } from '@jest/globals'; import { rpcErrors } from '@metamask/rpc-errors'; import type { Json, JsonRpcRequest } from '@metamask/utils'; -import { JsonRpcEngine } from "./..js"; import { getExtraneousKeys, makeNullMiddleware, makeRequest, } from '../tests/utils.js'; +import { JsonRpcEngine } from './..js'; import { asV2Middleware } from './asV2Middleware.js'; import { JsonRpcEngineV2 } from './v2/JsonRpcEngineV2.js'; import type { JsonRpcMiddleware as V2Middleware } from './v2/JsonRpcEngineV2.js'; diff --git a/packages/json-rpc-engine/src/createAsyncMiddleware.test.ts b/packages/json-rpc-engine/src/createAsyncMiddleware.test.ts index c8e03b45e9b..2992013bda4 100644 --- a/packages/json-rpc-engine/src/createAsyncMiddleware.test.ts +++ b/packages/json-rpc-engine/src/createAsyncMiddleware.test.ts @@ -1,6 +1,6 @@ import { assertIsJsonRpcSuccess } from '@metamask/utils'; -import { JsonRpcEngine, createAsyncMiddleware } from "./..js"; +import { JsonRpcEngine, createAsyncMiddleware } from './..js'; const jsonrpc = '2.0' as const; @@ -115,7 +115,6 @@ describe('createAsyncMiddleware', () => { engine.push( createAsyncMiddleware(async (_request, _response, next) => { - next(); }), ); diff --git a/packages/json-rpc-engine/src/createMethodMiddleware.test.ts b/packages/json-rpc-engine/src/createMethodMiddleware.test.ts index bdaefd0272d..915f5e2e022 100644 --- a/packages/json-rpc-engine/src/createMethodMiddleware.test.ts +++ b/packages/json-rpc-engine/src/createMethodMiddleware.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; import { Messenger, MOCK_ANY_NAMESPACE } from '@metamask/messenger'; import { assertIsJsonRpcFailure, diff --git a/packages/json-rpc-engine/src/createScaffoldMiddleware.test.ts b/packages/json-rpc-engine/src/createScaffoldMiddleware.test.ts index 68670ef7d4d..eaea5aa5a7a 100644 --- a/packages/json-rpc-engine/src/createScaffoldMiddleware.test.ts +++ b/packages/json-rpc-engine/src/createScaffoldMiddleware.test.ts @@ -5,8 +5,8 @@ import { assertIsJsonRpcFailure, } from '@metamask/utils'; -import type { JsonRpcMiddleware } from "./..js"; -import { JsonRpcEngine, createScaffoldMiddleware } from "./..js"; +import type { JsonRpcMiddleware } from './..js'; +import { JsonRpcEngine, createScaffoldMiddleware } from './..js'; describe('createScaffoldMiddleware', () => { it('basic middleware test', async () => { diff --git a/packages/json-rpc-engine/src/idRemapMiddleware.test.ts b/packages/json-rpc-engine/src/idRemapMiddleware.test.ts index 304dccbb646..16b6d8a980a 100644 --- a/packages/json-rpc-engine/src/idRemapMiddleware.test.ts +++ b/packages/json-rpc-engine/src/idRemapMiddleware.test.ts @@ -1,6 +1,6 @@ /* eslint-disable @typescript-eslint/no-non-null-assertion */ -import { JsonRpcEngine, createIdRemapMiddleware } from "./..js"; +import { JsonRpcEngine, createIdRemapMiddleware } from './..js'; describe('idRemapMiddleware', () => { it('basic middleware test', async () => { diff --git a/packages/json-rpc-engine/src/index.test.ts b/packages/json-rpc-engine/src/index.test.ts index 8e5861f1da8..6ede8c175f2 100644 --- a/packages/json-rpc-engine/src/index.test.ts +++ b/packages/json-rpc-engine/src/index.test.ts @@ -1,4 +1,4 @@ -import * as allExports from "./..js"; +import * as allExports from './..js'; describe('@metamask/json-rpc-engine', () => { it('has expected JavaScript exports', () => { diff --git a/packages/json-rpc-engine/src/mergeMiddleware.test.ts b/packages/json-rpc-engine/src/mergeMiddleware.test.ts index cc55889c3c3..838e0979549 100644 --- a/packages/json-rpc-engine/src/mergeMiddleware.test.ts +++ b/packages/json-rpc-engine/src/mergeMiddleware.test.ts @@ -1,7 +1,7 @@ import type { JsonRpcRequest } from '@metamask/utils'; import { assertIsJsonRpcSuccess, hasProperty } from '@metamask/utils'; -import { JsonRpcEngine, mergeMiddleware } from "./..js"; +import { JsonRpcEngine, mergeMiddleware } from './..js'; const jsonrpc = '2.0' as const; @@ -42,8 +42,8 @@ describe('mergeMiddleware', () => { (_request, response, next, _end): void => { next((callback) => { // TODO: Replace `any` with type - - (response).copy = response.result; + + response.copy = response.result; callback(); }); }, @@ -79,8 +79,8 @@ describe('mergeMiddleware', () => { function (request, response, _next, end): void { originalRequest = request; // TODO: Replace `any` with type - - (response).xyz = true; + + response.xyz = true; response.result = true; end(); }, @@ -96,8 +96,8 @@ describe('mergeMiddleware', () => { expect(originalRequest.id).toStrictEqual(res.id); expect(originalRequest.jsonrpc).toStrictEqual(res.jsonrpc); // TODO: Replace `any` with type - - expect((res).xyz).toBe(true); + + expect(res.xyz).toBe(true); resolve(); }); }); @@ -112,8 +112,8 @@ describe('mergeMiddleware', () => { function (request, response, _next, end): void { originalRequest = request; // TODO: Replace `any` with type - - (request).xyz = true; + + request.xyz = true; response.result = true; end(); }, @@ -166,8 +166,8 @@ describe('mergeMiddleware', () => { (_request, response, next, _end): void => { next((callback) => { // TODO: Replace `any` with type - - (response).copy = response.result; + + response.copy = response.result; callback(); }); }, diff --git a/packages/json-rpc-engine/src/v2/JsonRpcEngineV2.test.ts b/packages/json-rpc-engine/src/v2/JsonRpcEngineV2.test.ts index 6ad4323a039..e2769a984c4 100644 --- a/packages/json-rpc-engine/src/v2/JsonRpcEngineV2.test.ts +++ b/packages/json-rpc-engine/src/v2/JsonRpcEngineV2.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; /* eslint-disable n/callback-return */ // next() is not a Node.js callback. import type { Json, JsonRpcId } from '@metamask/utils'; import { createDeferredPromise } from '@metamask/utils'; @@ -14,7 +15,11 @@ import { JsonRpcEngineV2 } from './JsonRpcEngineV2.js'; import type { EmptyContext } from './MiddlewareContext.js'; import { MiddlewareContext } from './MiddlewareContext.js'; import { isRequest, JsonRpcEngineError, stringify } from './utils.js'; -import type { JsonRpcCall, JsonRpcNotification, JsonRpcRequest } from './utils.js'; +import type { + JsonRpcCall, + JsonRpcNotification, + JsonRpcRequest, +} from './utils.js'; const jsonrpc = '2.0' as const; diff --git a/packages/json-rpc-engine/src/v2/JsonRpcServer.test.ts b/packages/json-rpc-engine/src/v2/JsonRpcServer.test.ts index f3a56853777..5c8fa3c3d7c 100644 --- a/packages/json-rpc-engine/src/v2/JsonRpcServer.test.ts +++ b/packages/json-rpc-engine/src/v2/JsonRpcServer.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; import { rpcErrors } from '@metamask/rpc-errors'; import { Json } from '@metamask/utils'; diff --git a/packages/json-rpc-engine/src/v2/asLegacyMiddleware.test.ts b/packages/json-rpc-engine/src/v2/asLegacyMiddleware.test.ts index 20f188fb923..73f40489d81 100644 --- a/packages/json-rpc-engine/src/v2/asLegacyMiddleware.test.ts +++ b/packages/json-rpc-engine/src/v2/asLegacyMiddleware.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; import type { Json, JsonRpcFailure, diff --git a/packages/json-rpc-engine/src/v2/compatibility-utils.test.ts b/packages/json-rpc-engine/src/v2/compatibility-utils.test.ts index bb57973323c..94a0e3964ad 100644 --- a/packages/json-rpc-engine/src/v2/compatibility-utils.test.ts +++ b/packages/json-rpc-engine/src/v2/compatibility-utils.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; import { JsonRpcError } from '@metamask/rpc-errors'; import type { Json } from '@metamask/utils'; diff --git a/packages/json-rpc-engine/src/v2/createScaffoldMiddleware.ts b/packages/json-rpc-engine/src/v2/createScaffoldMiddleware.ts index b17acf81f94..7d145ffe4bf 100644 --- a/packages/json-rpc-engine/src/v2/createScaffoldMiddleware.ts +++ b/packages/json-rpc-engine/src/v2/createScaffoldMiddleware.ts @@ -1,7 +1,10 @@ import type { Json, JsonRpcParams, JsonRpcRequest } from '@metamask/utils'; import type { JsonRpcMiddleware } from './JsonRpcEngineV2.js'; -import type { ContextConstraint, MiddlewareContext } from './MiddlewareContext.js'; +import type { + ContextConstraint, + MiddlewareContext, +} from './MiddlewareContext.js'; // Only permit primitive values as hard-coded scaffold middleware results. type JsonPrimitive = string | number | boolean | null; diff --git a/packages/json-rpc-engine/src/v2/index.test.ts b/packages/json-rpc-engine/src/v2/index.test.ts index c7d97afeb57..5536a58475e 100644 --- a/packages/json-rpc-engine/src/v2/index.test.ts +++ b/packages/json-rpc-engine/src/v2/index.test.ts @@ -1,4 +1,4 @@ -import * as allExports from "./..js"; +import * as allExports from './..js'; describe('@metamask/json-rpc-engine/v2', () => { it('has expected JavaScript exports', () => { From f29a71694930a11bc991f776f14e574fc7e886f4 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:00:02 +0200 Subject: [PATCH 022/136] Add `jest` global import to `storage-service` tests --- packages/storage-service/package.json | 1 + packages/storage-service/src/InMemoryStorageAdapter.test.ts | 2 ++ packages/storage-service/src/StorageService.test.ts | 1 + 3 files changed, 4 insertions(+) diff --git a/packages/storage-service/package.json b/packages/storage-service/package.json index 2d78bb0d46d..983840178f6 100644 --- a/packages/storage-service/package.json +++ b/packages/storage-service/package.json @@ -52,6 +52,7 @@ "@metamask/utils": "^11.11.0" }, "devDependencies": { + "@jest/globals": "^30.4.1", "@metamask/auto-changelog": "^6.1.0", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/storage-service/src/InMemoryStorageAdapter.test.ts b/packages/storage-service/src/InMemoryStorageAdapter.test.ts index e8a340a73d7..6718b49c0fb 100644 --- a/packages/storage-service/src/InMemoryStorageAdapter.test.ts +++ b/packages/storage-service/src/InMemoryStorageAdapter.test.ts @@ -1,3 +1,5 @@ +import { jest } from '@jest/globals'; + import { InMemoryStorageAdapter } from './InMemoryStorageAdapter.js'; describe('InMemoryStorageAdapter', () => { diff --git a/packages/storage-service/src/StorageService.test.ts b/packages/storage-service/src/StorageService.test.ts index afc4478794c..4a820612f87 100644 --- a/packages/storage-service/src/StorageService.test.ts +++ b/packages/storage-service/src/StorageService.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; import { Messenger, MOCK_ANY_NAMESPACE } from '@metamask/messenger'; import type { MockAnyNamespace, From 8479da4c47c4971142dfa92adc76ec6b97bc408c Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:19:46 +0200 Subject: [PATCH 023/136] Add Jest custom resolver and fix ESM global import hoisting Replacing the `moduleNameMapper` directory fallback for external `@metamask/*` packages with a custom resolver (`jest.resolver.cjs`). Previously the fallback `/../../node_modules/@metamask/$1` returned a directory path. Jest resolved that using the package's `main` field (CJS), ignoring the `exports.import` (ESM) entry. This caused `class X extends SafeEventEmitter` to fail with "Class extends value [object Object] is not a constructor or null" because the CJS wrapper uses `exports.default = Class` rather than `module.exports = Class`. The custom resolver redirects monorepo `@metamask/*` imports to their TypeScript source (`src/index.ts`) and falls back to Jest's default resolver for external packages, which correctly honours the `exports` field and picks the ESM entry. Also fix `tests/setup.ts`: the static `import 'isomorphic-fetch'` is hoisted in ESM mode and ran before the `delete globalThis.fetch` lines, leaving `fetch` undefined. Replaced with a dynamic import so execution order is preserved. --- jest.config.packages.js | 13 +-- jest.resolver.cjs | 42 +++++++++ packages/controller-utils/src/index.test.ts | 98 ++++++++++----------- packages/json-rpc-engine/src/index.test.ts | 4 +- tests/setup.ts | 7 +- 5 files changed, 100 insertions(+), 64 deletions(-) create mode 100644 jest.resolver.cjs diff --git a/jest.config.packages.js b/jest.config.packages.js index 44cfedf92c0..0c117ba67c0 100644 --- a/jest.config.packages.js +++ b/jest.config.packages.js @@ -86,8 +86,9 @@ const config = { // ], // A map from regular expressions to module names or to arrays of module names that allow to stub out resources with a single module - // Here we ensure that Jest resolves `@metamask/*` imports to the uncompiled source code for packages that live in this repo. - // NOTE: This must be synchronized with the `paths` option in `tsconfig.base.json`. + // NOTE: Monorepo `@metamask/*` packages are resolved to TypeScript source by `jest.resolver.cjs`. + // External `@metamask/*` packages are resolved by Jest's default resolver, which honours `exports` fields. + // NOTE: The `'^(\\..+)\\.js$'` entry must be synchronized with the `paths` option in `tsconfig.base.json`. moduleNameMapper: { '^(\\..+)\\.js$': '$1', '^@metamask/json-rpc-engine/v2$': [ @@ -96,12 +97,6 @@ const config = { '^@metamask/utils/node$': fileURLToPath( import.meta.resolve('@metamask/utils/node'), ), - '^@metamask/(.+)$': [ - '/../$1/src', - // Some @metamask/* packages we are referencing aren't in this monorepo, - // so in that case use their published versions - '/../../node_modules/@metamask/$1', - ], }, // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader @@ -134,7 +129,7 @@ const config = { // resetModules: false, // A path to a custom resolver - // resolver: undefined, + resolver: '../../jest.resolver.cjs', // "restoreMocks" restores all mocks created using jest.spyOn to their // original implementations, between each test. It does not affect mocked diff --git a/jest.resolver.cjs b/jest.resolver.cjs new file mode 100644 index 00000000000..811f4ee69c5 --- /dev/null +++ b/jest.resolver.cjs @@ -0,0 +1,42 @@ +/* eslint-disable import-x/unambiguous */ +'use strict'; + +const { join, resolve } = require('path'); +const { existsSync, statSync } = require('fs'); + +const REPO_ROOT = resolve(__dirname); +const PACKAGES_DIR = join(REPO_ROOT, 'packages'); + +/** + * Custom Jest resolver that redirects `@metamask/*` imports to monorepo source + * when the package exists locally, and falls back to default resolution (which + * honours the package `exports` field) for external packages. + * + * Without this, the `moduleNameMapper` fallback returns a directory path for + * external `@metamask/*` packages. Jest then uses `main` (CJS) rather than + * `exports.import` (ESM), causing class-inheritance failures at runtime. + * + * @param {string} moduleName - The module name to resolve. + * @param {object} options - Jest resolver options including `defaultResolver`. + * @returns {string} The resolved module path. + */ +module.exports = function resolver(moduleName, options) { + const { defaultResolver } = options; + + const match = /^@metamask\/([^/]+)(\/.*)?$/u.exec(moduleName); + if (match) { + const [, pkgName, subPath = ''] = match; + const srcDir = join(PACKAGES_DIR, pkgName, 'src'); + if (existsSync(srcDir)) { // eslint-disable-line n/no-sync + let target = subPath ? join(srcDir, subPath) : join(srcDir, 'index.ts'); + // If the resolved target is a directory, look for its index file. + if (existsSync(target) && statSync(target).isDirectory()) { // eslint-disable-line n/no-sync + target = join(target, 'index.ts'); + } + return defaultResolver(target, options); + } + } + + // External package — use default resolver, which honours `exports` fields. + return defaultResolver(moduleName, options); +}; diff --git a/packages/controller-utils/src/index.test.ts b/packages/controller-utils/src/index.test.ts index dbc5ad28a7c..0399fc7d23e 100644 --- a/packages/controller-utils/src/index.test.ts +++ b/packages/controller-utils/src/index.test.ts @@ -4,74 +4,89 @@ describe('@metamask/controller-utils', () => { it('has expected JavaScript exports', () => { expect(Object.keys(allExports)).toMatchInlineSnapshot(` [ - "encodeFunctionData", + "ASSET_TYPES", + "ApprovalType", + "BNToHex", + "BUILT_IN_CUSTOM_NETWORKS_RPC", + "BUILT_IN_NETWORKS", + "BlockExplorerUrl", "BrokenCircuitError", + "BuiltInNetworkName", + "CHAIN_IDS_WITH_NO_NATIVE_TOKEN", + "CHAIN_ID_TO_ETHERS_NETWORK_NAME_MAP", + "ChainId", "CircuitState", "CockatielEventEmitter", "ConstantBackoff", + "CustomNetworkType", + "DAY", + "DAYS", "DEFAULT_CIRCUIT_BREAK_DURATION", "DEFAULT_DEGRADED_THRESHOLD", + "DEFAULT_INFURA_NETWORKS", "DEFAULT_MAX_CONSECUTIVE_FAILURES", "DEFAULT_MAX_RETRIES", - "ExponentialBackoff", - "createServicePolicy", - "handleAll", - "handleWhen", - "RPC", - "FALL_BACK_VS_CURRENCY", - "IPFS_DEFAULT_GATEWAY_URL", - "GANACHE_CHAIN_ID", - "MAX_SAFE_CHAIN_ID", - "ERC721", "ERC1155", - "ERC20", - "ERC721_INTERFACE_ID", - "ERC721_METADATA_INTERFACE_ID", - "ERC721_ENUMERABLE_INTERFACE_ID", "ERC1155_INTERFACE_ID", "ERC1155_METADATA_URI_INTERFACE_ID", "ERC1155_TOKEN_RECEIVER_INTERFACE_ID", + "ERC20", + "ERC721", + "ERC721_ENUMERABLE_INTERFACE_ID", + "ERC721_INTERFACE_ID", + "ERC721_METADATA_INTERFACE_ID", + "ExponentialBackoff", + "FALL_BACK_VS_CURRENCY", + "GANACHE_CHAIN_ID", "GWEI", - "ASSET_TYPES", - "TESTNET_TICKER_SYMBOLS", - "BUILT_IN_CUSTOM_NETWORKS_RPC", - "BUILT_IN_NETWORKS", - "OPENSEA_PROXY_URL", + "HOUR", + "HOURS", + "HttpError", + "IPFS_DEFAULT_GATEWAY_URL", + "InfuraNetworkType", + "MAX_SAFE_CHAIN_ID", + "MINUTE", + "MINUTES", + "NETWORKS_BYPASSING_VALIDATION", "NFT_API_BASE_URL", - "NFT_API_VERSION", "NFT_API_TIMEOUT", + "NFT_API_VERSION", + "NetworkNickname", + "NetworkType", + "NetworksTicker", + "OPENSEA_PROXY_URL", "ORIGIN_METAMASK", - "ApprovalType", - "CHAIN_ID_TO_ETHERS_NETWORK_NAME_MAP", + "RPC", "SECOND", "SECONDS", - "MINUTE", - "MINUTES", - "HOUR", - "HOURS", - "DAY", - "DAYS", - "NETWORKS_BYPASSING_VALIDATION", - "CHAIN_IDS_WITH_NO_NATIVE_TOKEN", - "BNToHex", + "TESTNET_TICKER_SYMBOLS", "convertHexToDecimal", + "createServicePolicy", + "detectSIWE", + "encodeFunctionData", "fetchWithErrorHandling", "fractionBN", "fromHex", "getBuyURL", "gweiDecToWEIBN", + "handleAll", "handleFetch", + "handleWhen", "hexToBN", "hexToText", - "HttpError", + "isEqualCaseInsensitive", + "isInfuraNetworkType", + "isNetworkType", "isNonEmptyArray", "isPlainObject", "isSafeChainId", "isSafeDynamicKey", "isSmartContractCode", - "isValidJson", "isValidHexAddress", + "isValidJson", + "isValidSIWEOrigin", "normalizeEnsName", + "parseDomainParts", "query", "safelyExecute", "safelyExecuteWithTimeout", @@ -80,21 +95,6 @@ describe('@metamask/controller-utils', () => { "toChecksumHexAddress", "toHex", "weiHexToGweiDec", - "isEqualCaseInsensitive", - "InfuraNetworkType", - "DEFAULT_INFURA_NETWORKS", - "CustomNetworkType", - "NetworkType", - "isNetworkType", - "isInfuraNetworkType", - "BuiltInNetworkName", - "ChainId", - "NetworksTicker", - "BlockExplorerUrl", - "NetworkNickname", - "parseDomainParts", - "isValidSIWEOrigin", - "detectSIWE", ] `); }); diff --git a/packages/json-rpc-engine/src/index.test.ts b/packages/json-rpc-engine/src/index.test.ts index 6ede8c175f2..72cd299882a 100644 --- a/packages/json-rpc-engine/src/index.test.ts +++ b/packages/json-rpc-engine/src/index.test.ts @@ -4,14 +4,14 @@ describe('@metamask/json-rpc-engine', () => { it('has expected JavaScript exports', () => { expect(Object.keys(allExports)).toMatchInlineSnapshot(` [ + "JsonRpcEngine", "asV2Middleware", "createAsyncMiddleware", + "createIdRemapMiddleware", "createMethodMiddleware", "createOriginMiddleware", "createScaffoldMiddleware", "getUniqueId", - "createIdRemapMiddleware", - "JsonRpcEngine", "mergeMiddleware", ] `); diff --git a/tests/setup.ts b/tests/setup.ts index b9508687d77..b7953a291e6 100644 --- a/tests/setup.ts +++ b/tests/setup.ts @@ -8,7 +8,6 @@ delete globalThis.Headers; delete globalThis.Request; // @ts-expect-error - Clear Response to ensure isomorphic-fetch sets up node-fetch version delete globalThis.Response; -// We need to import this *after* we delete `fetch` etc. above. -// Additionally, this import is used for side effects only. -// eslint-disable-next-line import-x/first, import-x/no-unassigned-import -import 'isomorphic-fetch'; +// Dynamic import so this runs *after* the deletes above (static imports are hoisted in ESM). +// eslint-disable-next-line import-x/no-unassigned-import +await import('isomorphic-fetch'); From e6ce38402193a83a7045a5e490c4ea057a23eeb8 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:23:46 +0200 Subject: [PATCH 024/136] Fix ESLint errors for `address-book-controller` Add `.js` extensions to relative imports. --- .../src/AddressBookController-method-action-types.ts | 2 +- .../src/AddressBookController.test.ts | 4 ++-- .../address-book-controller/src/AddressBookController.ts | 2 +- packages/address-book-controller/src/index.ts | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/address-book-controller/src/AddressBookController-method-action-types.ts b/packages/address-book-controller/src/AddressBookController-method-action-types.ts index 5dcfc6b1b22..0c62c5e1f44 100644 --- a/packages/address-book-controller/src/AddressBookController-method-action-types.ts +++ b/packages/address-book-controller/src/AddressBookController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { AddressBookController } from './AddressBookController'; +import type { AddressBookController } from './AddressBookController.js'; /** * Returns all address book entries as an array. diff --git a/packages/address-book-controller/src/AddressBookController.test.ts b/packages/address-book-controller/src/AddressBookController.test.ts index f3064c83750..5139c6be941 100644 --- a/packages/address-book-controller/src/AddressBookController.test.ts +++ b/packages/address-book-controller/src/AddressBookController.test.ts @@ -11,12 +11,12 @@ import type { Hex } from '@metamask/utils'; import type { AddressBookControllerContactDeletedEvent, AddressBookControllerMessenger, -} from './AddressBookController'; +} from './AddressBookController.js'; import { AddressBookController, AddressType, controllerName, -} from './AddressBookController'; +} from './AddressBookController.js'; type AllActions = MessengerActions; diff --git a/packages/address-book-controller/src/AddressBookController.ts b/packages/address-book-controller/src/AddressBookController.ts index 62ad4e66824..08e51b829a6 100644 --- a/packages/address-book-controller/src/AddressBookController.ts +++ b/packages/address-book-controller/src/AddressBookController.ts @@ -13,7 +13,7 @@ import { import type { Messenger } from '@metamask/messenger'; import type { Hex } from '@metamask/utils'; -import type { AddressBookControllerMethodActions } from './AddressBookController-method-action-types'; +import type { AddressBookControllerMethodActions } from './AddressBookController-method-action-types.js'; /** * ContactEntry representation diff --git a/packages/address-book-controller/src/index.ts b/packages/address-book-controller/src/index.ts index 3cf41024037..de2ef0e79ae 100644 --- a/packages/address-book-controller/src/index.ts +++ b/packages/address-book-controller/src/index.ts @@ -10,15 +10,15 @@ export type { AddressBookControllerEvents, AddressBookControllerMessenger, ContactEntry, -} from './AddressBookController'; +} from './AddressBookController.js'; export { getDefaultAddressBookControllerState, AddressBookController, -} from './AddressBookController'; +} from './AddressBookController.js'; export type { AddressBookControllerListAction, AddressBookControllerSetAction, AddressBookControllerDeleteAction, AddressBookControllerClearAction, -} from './AddressBookController-method-action-types'; +} from './AddressBookController-method-action-types.js'; From 489cbb6b85f9b9d0e8a7dc5632846a92d16f4ad6 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:24:55 +0200 Subject: [PATCH 025/136] Add `jest` global import to `address-book-controller` tests --- packages/address-book-controller/package.json | 1 + .../address-book-controller/src/AddressBookController.test.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/address-book-controller/package.json b/packages/address-book-controller/package.json index d46f8a1d374..5288b57bab4 100644 --- a/packages/address-book-controller/package.json +++ b/packages/address-book-controller/package.json @@ -54,6 +54,7 @@ "@metamask/utils": "^11.11.0" }, "devDependencies": { + "@jest/globals": "^30.4.1", "@metamask/auto-changelog": "^6.1.0", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/address-book-controller/src/AddressBookController.test.ts b/packages/address-book-controller/src/AddressBookController.test.ts index 5139c6be941..af619c011d5 100644 --- a/packages/address-book-controller/src/AddressBookController.test.ts +++ b/packages/address-book-controller/src/AddressBookController.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; import { deriveStateFromMetadata } from '@metamask/base-controller'; import { toHex } from '@metamask/controller-utils'; import { Messenger, MOCK_ANY_NAMESPACE } from '@metamask/messenger'; From 3d9fb9bc82293632790dfe98b411b7cda3ae4e95 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:32:16 +0200 Subject: [PATCH 026/136] Fix ESLint errors for `ai-controllers` Add `.js` extensions to relative imports. --- .../src/AiDigestController-method-action-types.ts | 2 +- .../ai-controllers/src/AiDigestController.test.ts | 4 ++-- packages/ai-controllers/src/AiDigestController.ts | 6 +++--- .../ai-controllers/src/AiDigestService.test.ts | 4 ++-- packages/ai-controllers/src/AiDigestService.ts | 4 ++-- packages/ai-controllers/src/index.ts | 14 +++++++------- 6 files changed, 17 insertions(+), 17 deletions(-) diff --git a/packages/ai-controllers/src/AiDigestController-method-action-types.ts b/packages/ai-controllers/src/AiDigestController-method-action-types.ts index 3cf0d1e8464..f70cc3f654e 100644 --- a/packages/ai-controllers/src/AiDigestController-method-action-types.ts +++ b/packages/ai-controllers/src/AiDigestController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { AiDigestController } from './AiDigestController'; +import type { AiDigestController } from './AiDigestController.js'; /** * Fetches market insights for a given asset identifier. diff --git a/packages/ai-controllers/src/AiDigestController.test.ts b/packages/ai-controllers/src/AiDigestController.test.ts index 998e50b23b2..09bcad60602 100644 --- a/packages/ai-controllers/src/AiDigestController.test.ts +++ b/packages/ai-controllers/src/AiDigestController.test.ts @@ -6,14 +6,14 @@ import { AiDigestControllerErrorMessage, CACHE_DURATION_MS, MAX_CACHE_ENTRIES, -} from '.'; +} from "./..js"; import type { AiDigestControllerMessenger, DigestService, MarketInsightsReport, MarketOverview, MarketOverviewFrontPage, -} from '.'; +} from "./..js"; const mockReport: MarketInsightsReport = { version: '1.0', diff --git a/packages/ai-controllers/src/AiDigestController.ts b/packages/ai-controllers/src/AiDigestController.ts index 3ad3eb86c3d..50223e4f094 100644 --- a/packages/ai-controllers/src/AiDigestController.ts +++ b/packages/ai-controllers/src/AiDigestController.ts @@ -11,7 +11,7 @@ import { controllerName, CACHE_DURATION_MS, MAX_CACHE_ENTRIES, -} from './ai-digest-constants'; +} from './ai-digest-constants.js'; import type { AiDigestControllerState, DigestService, @@ -20,8 +20,8 @@ import type { MarketOverview, MarketOverviewEntry, MarketOverviewFrontPage, -} from './ai-digest-types'; -import type { AiDigestControllerMethodActions } from './AiDigestController-method-action-types'; +} from './ai-digest-types.js'; +import type { AiDigestControllerMethodActions } from './AiDigestController-method-action-types.js'; export type AiDigestControllerGetStateAction = ControllerGetStateAction< typeof controllerName, diff --git a/packages/ai-controllers/src/AiDigestService.test.ts b/packages/ai-controllers/src/AiDigestService.test.ts index e5a83e0b866..e3b7243d468 100644 --- a/packages/ai-controllers/src/AiDigestService.test.ts +++ b/packages/ai-controllers/src/AiDigestService.test.ts @@ -1,5 +1,5 @@ -import { AiDigestService } from '.'; -import { AiDigestControllerErrorMessage } from './ai-digest-constants'; +import { AiDigestService } from "./..js"; +import { AiDigestControllerErrorMessage } from './ai-digest-constants.js'; describe('AiDigestService', () => { const mockFetch = jest.fn(); diff --git a/packages/ai-controllers/src/AiDigestService.ts b/packages/ai-controllers/src/AiDigestService.ts index cacc04da390..cc46185f68a 100644 --- a/packages/ai-controllers/src/AiDigestService.ts +++ b/packages/ai-controllers/src/AiDigestService.ts @@ -7,14 +7,14 @@ import { type as structType, } from '@metamask/superstruct'; -import { AiDigestControllerErrorMessage } from './ai-digest-constants'; +import { AiDigestControllerErrorMessage } from './ai-digest-constants.js'; import type { DigestService, MarketInsightsReport, MarketOverview, MarketOverviewFrontPage, MarketOverviewTrend, -} from './ai-digest-types'; +} from './ai-digest-types.js'; export type AiDigestServiceConfig = { baseUrl: string; diff --git a/packages/ai-controllers/src/index.ts b/packages/ai-controllers/src/index.ts index 176b69db306..c59aa890131 100644 --- a/packages/ai-controllers/src/index.ts +++ b/packages/ai-controllers/src/index.ts @@ -5,19 +5,19 @@ export type { AiDigestControllerMessenger, AiDigestControllerOptions, AiDigestControllerStateChangeEvent, -} from './AiDigestController'; +} from './AiDigestController.js'; export { AiDigestController, getDefaultAiDigestControllerState, -} from './AiDigestController'; +} from './AiDigestController.js'; export type { AiDigestControllerFetchMarketInsightsAction, AiDigestControllerFetchMarketOverviewAction, AiDigestControllerFetchFrontPageItemAction, -} from './AiDigestController-method-action-types'; +} from './AiDigestController-method-action-types.js'; -export type { AiDigestServiceConfig } from './AiDigestService'; -export { AiDigestService } from './AiDigestService'; +export type { AiDigestServiceConfig } from './AiDigestService.js'; +export { AiDigestService } from './AiDigestService.js'; export type { AiDigestControllerState, @@ -38,11 +38,11 @@ export type { RelatedAsset, Source, Tweet, -} from './ai-digest-types'; +} from './ai-digest-types.js'; export { controllerName as aiDigestControllerName, CACHE_DURATION_MS, MAX_CACHE_ENTRIES, AiDigestControllerErrorMessage, -} from './ai-digest-constants'; +} from './ai-digest-constants.js'; From 41343a29f24fdeecc1d5af3f3f612dd93f8364a6 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:32:22 +0200 Subject: [PATCH 027/136] Fix ESLint errors for `analytics-controller` Add `.js` extensions to relative imports. --- packages/analytics-controller/package.json | 2 +- .../AnalyticsController-method-action-types.ts | 2 +- .../src/AnalyticsController.test.ts | 6 +++--- .../src/AnalyticsController.ts | 12 ++++++------ .../analyticsControllerStateValidator.test.ts | 4 ++-- .../src/analyticsControllerStateValidator.ts | 2 +- packages/analytics-controller/src/index.ts | 18 +++++++++--------- .../analytics-controller/src/selectors.test.ts | 4 ++-- packages/analytics-controller/src/selectors.ts | 2 +- 9 files changed, 26 insertions(+), 26 deletions(-) diff --git a/packages/analytics-controller/package.json b/packages/analytics-controller/package.json index 0aa34dff2f0..4d58a230573 100644 --- a/packages/analytics-controller/package.json +++ b/packages/analytics-controller/package.json @@ -51,7 +51,7 @@ "@metamask/base-controller": "^9.1.0", "@metamask/messenger": "^2.0.0", "@metamask/utils": "^11.11.0", - "lodash": "^4.17.21", + "lodash-es": "^4.17.21", "uuid": "^8.3.2" }, "devDependencies": { diff --git a/packages/analytics-controller/src/AnalyticsController-method-action-types.ts b/packages/analytics-controller/src/AnalyticsController-method-action-types.ts index db027725a3f..d3756af5180 100644 --- a/packages/analytics-controller/src/AnalyticsController-method-action-types.ts +++ b/packages/analytics-controller/src/AnalyticsController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { AnalyticsController } from './AnalyticsController'; +import type { AnalyticsController } from './AnalyticsController.js'; /** * Track an analytics event. diff --git a/packages/analytics-controller/src/AnalyticsController.test.ts b/packages/analytics-controller/src/AnalyticsController.test.ts index 68a7aee0cce..1cff677b21b 100644 --- a/packages/analytics-controller/src/AnalyticsController.test.ts +++ b/packages/analytics-controller/src/AnalyticsController.test.ts @@ -8,7 +8,7 @@ import { AnalyticsPlatformAdapterSetupError, getDefaultAnalyticsControllerState, analyticsControllerSelectors, -} from '.'; +} from "./..js"; import type { AnalyticsControllerMessenger, AnalyticsControllerActions, @@ -18,8 +18,8 @@ import type { AnalyticsTrackingEvent, AnalyticsControllerState, AnalyticsContext, -} from '.'; -import { isValidUUIDv4 } from './analyticsControllerStateValidator'; +} from "./..js"; +import { isValidUUIDv4 } from './analyticsControllerStateValidator.js'; type SetupControllerOptions = { state: AnalyticsControllerState; diff --git a/packages/analytics-controller/src/AnalyticsController.ts b/packages/analytics-controller/src/AnalyticsController.ts index 1c8e8170216..54d199ac1db 100644 --- a/packages/analytics-controller/src/AnalyticsController.ts +++ b/packages/analytics-controller/src/AnalyticsController.ts @@ -6,12 +6,12 @@ import type { import { BaseController } from '@metamask/base-controller'; import type { Messenger } from '@metamask/messenger'; import type { Json } from '@metamask/utils'; -import { cloneDeep } from 'lodash'; +import { cloneDeep } from 'lodash-es'; import { v4 as uuid } from 'uuid'; -import type { AnalyticsControllerMethodActions } from './AnalyticsController-method-action-types'; -import { validateAnalyticsControllerState } from './analyticsControllerStateValidator'; -import { projectLogger as log } from './AnalyticsLogger'; +import type { AnalyticsControllerMethodActions } from './AnalyticsController-method-action-types.js'; +import { validateAnalyticsControllerState } from './analyticsControllerStateValidator.js'; +import { projectLogger as log } from './AnalyticsLogger.js'; import type { AnalyticsPlatformAdapter, AnalyticsDeliveryOptions, @@ -19,8 +19,8 @@ import type { AnalyticsEventProperties, AnalyticsUserTraits, AnalyticsTrackingEvent, -} from './AnalyticsPlatformAdapter.types'; -import { analyticsControllerSelectors } from './selectors'; +} from './AnalyticsPlatformAdapter.types.js'; +import { analyticsControllerSelectors } from './selectors.js'; // === GENERAL === diff --git a/packages/analytics-controller/src/analyticsControllerStateValidator.test.ts b/packages/analytics-controller/src/analyticsControllerStateValidator.test.ts index 2e1dea9c964..e7782413e70 100644 --- a/packages/analytics-controller/src/analyticsControllerStateValidator.test.ts +++ b/packages/analytics-controller/src/analyticsControllerStateValidator.test.ts @@ -1,5 +1,5 @@ -import type { AnalyticsControllerState } from './AnalyticsController'; -import { validateAnalyticsControllerState } from './analyticsControllerStateValidator'; +import type { AnalyticsControllerState } from './AnalyticsController.js'; +import { validateAnalyticsControllerState } from './analyticsControllerStateValidator.js'; describe('analyticsControllerStateValidator', () => { describe('validateAnalyticsControllerState', () => { diff --git a/packages/analytics-controller/src/analyticsControllerStateValidator.ts b/packages/analytics-controller/src/analyticsControllerStateValidator.ts index f40773994d2..2053d8c58b0 100644 --- a/packages/analytics-controller/src/analyticsControllerStateValidator.ts +++ b/packages/analytics-controller/src/analyticsControllerStateValidator.ts @@ -1,4 +1,4 @@ -import type { AnalyticsControllerState } from './AnalyticsController'; +import type { AnalyticsControllerState } from './AnalyticsController.js'; /** * UUIDv4 format regex pattern. diff --git a/packages/analytics-controller/src/index.ts b/packages/analytics-controller/src/index.ts index 6a7a61d17a3..14fcc0ae020 100644 --- a/packages/analytics-controller/src/index.ts +++ b/packages/analytics-controller/src/index.ts @@ -2,11 +2,11 @@ export { AnalyticsController, getDefaultAnalyticsControllerState, -} from './AnalyticsController'; -export type { AnalyticsControllerOptions } from './AnalyticsController'; +} from './AnalyticsController.js'; +export type { AnalyticsControllerOptions } from './AnalyticsController.js'; // Export errors -export { AnalyticsPlatformAdapterSetupError } from './AnalyticsPlatformAdapterSetupError'; +export { AnalyticsPlatformAdapterSetupError } from './AnalyticsPlatformAdapterSetupError.js'; // Export types export type { @@ -17,7 +17,7 @@ export type { AnalyticsUserTraits, AnalyticsPlatformAdapter, AnalyticsTrackingEvent, -} from './AnalyticsPlatformAdapter.types'; +} from './AnalyticsPlatformAdapter.types.js'; // Export state types export type { @@ -28,13 +28,13 @@ export type { AnalyticsQueuedTrackEvent, AnalyticsQueuedIdentifyEvent, AnalyticsQueuedViewEvent, -} from './AnalyticsController'; +} from './AnalyticsController.js'; // Export selectors -export { analyticsControllerSelectors } from './selectors'; +export { analyticsControllerSelectors } from './selectors.js'; // Export messenger types -export type { AnalyticsControllerMessenger } from './AnalyticsController'; +export type { AnalyticsControllerMessenger } from './AnalyticsController.js'; // Export action and event types export type { @@ -42,7 +42,7 @@ export type { AnalyticsControllerEvents, AnalyticsControllerGetStateAction, AnalyticsControllerStateChangeEvent, -} from './AnalyticsController'; +} from './AnalyticsController.js'; export type { AnalyticsControllerTrackEventAction, AnalyticsControllerIdentifyAction, @@ -51,4 +51,4 @@ export type { AnalyticsControllerOptOutAction, AnalyticsControllerResetConsentDecisionAction, AnalyticsControllerMethodActions, -} from './AnalyticsController-method-action-types'; +} from './AnalyticsController-method-action-types.js'; diff --git a/packages/analytics-controller/src/selectors.test.ts b/packages/analytics-controller/src/selectors.test.ts index 0a65cbbc206..3833250aa29 100644 --- a/packages/analytics-controller/src/selectors.test.ts +++ b/packages/analytics-controller/src/selectors.test.ts @@ -1,5 +1,5 @@ -import type { AnalyticsControllerState } from './AnalyticsController'; -import { analyticsControllerSelectors } from './selectors'; +import type { AnalyticsControllerState } from './AnalyticsController.js'; +import { analyticsControllerSelectors } from './selectors.js'; describe('analyticsControllerSelectors', () => { const defaultAnalyticsId = '550e8400-e29b-41d4-a716-446655440000'; diff --git a/packages/analytics-controller/src/selectors.ts b/packages/analytics-controller/src/selectors.ts index 9386e915462..b5509571989 100644 --- a/packages/analytics-controller/src/selectors.ts +++ b/packages/analytics-controller/src/selectors.ts @@ -1,4 +1,4 @@ -import type { AnalyticsControllerState } from './AnalyticsController'; +import type { AnalyticsControllerState } from './AnalyticsController.js'; /** * Selects the analytics ID from the controller state. From 03e54ea332601cb516070ab08510c65a61d8aec5 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:32:33 +0200 Subject: [PATCH 028/136] Fix ESLint errors for `analytics-data-regulation-controller` Add `.js` extensions to relative imports. --- ...egulationController-method-action-types.ts | 2 +- .../AnalyticsDataRegulationController.test.ts | 8 ++++---- .../src/AnalyticsDataRegulationController.ts | 10 +++++----- ...taRegulationService-method-action-types.ts | 2 +- .../AnalyticsDataRegulationService.test.ts | 6 +++--- .../src/AnalyticsDataRegulationService.ts | 6 +++--- .../src/index.ts | 20 +++++++++---------- .../src/selectors.test.ts | 4 ++-- .../src/selectors.ts | 2 +- 9 files changed, 30 insertions(+), 30 deletions(-) diff --git a/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationController-method-action-types.ts b/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationController-method-action-types.ts index 7706a11039d..344d0164e75 100644 --- a/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationController-method-action-types.ts +++ b/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { AnalyticsDataRegulationController } from './AnalyticsDataRegulationController'; +import type { AnalyticsDataRegulationController } from './AnalyticsDataRegulationController.js'; /** * Creates a new delete regulation for the user. diff --git a/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationController.test.ts b/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationController.test.ts index 88b44c3e599..759ffab2e23 100644 --- a/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationController.test.ts +++ b/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationController.test.ts @@ -4,15 +4,15 @@ import type { MockAnyNamespace } from '@metamask/messenger'; import { AnalyticsDataRegulationController, getDefaultAnalyticsDataRegulationControllerState, -} from '.'; +} from "./..js"; import type { AnalyticsDataRegulationControllerMessenger, AnalyticsDataRegulationControllerActions, AnalyticsDataRegulationControllerEvents, AnalyticsDataRegulationControllerState, -} from '.'; -import type { AnalyticsDataRegulationServiceActions } from './AnalyticsDataRegulationService'; -import { DATA_DELETE_RESPONSE_STATUSES, DATA_DELETE_STATUSES } from './types'; +} from "./..js"; +import type { AnalyticsDataRegulationServiceActions } from './AnalyticsDataRegulationService.js'; +import { DATA_DELETE_RESPONSE_STATUSES, DATA_DELETE_STATUSES } from './types.js'; type SetupControllerOptions = { state?: Partial; diff --git a/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationController.ts b/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationController.ts index 9a52143c36f..bbd2967ae09 100644 --- a/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationController.ts +++ b/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationController.ts @@ -6,11 +6,11 @@ import type { import { BaseController } from '@metamask/base-controller'; import type { Messenger } from '@metamask/messenger'; -import type { AnalyticsDataRegulationControllerMethodActions } from './AnalyticsDataRegulationController-method-action-types'; -import type { AnalyticsDataRegulationServiceActions } from './AnalyticsDataRegulationService'; -import { projectLogger as log } from './logger'; -import { DATA_DELETE_RESPONSE_STATUSES, DATA_DELETE_STATUSES } from './types'; -import type { DeleteRegulationResponse, DeleteRegulationStatus } from './types'; +import type { AnalyticsDataRegulationControllerMethodActions } from './AnalyticsDataRegulationController-method-action-types.js'; +import type { AnalyticsDataRegulationServiceActions } from './AnalyticsDataRegulationService.js'; +import { projectLogger as log } from './logger.js'; +import { DATA_DELETE_RESPONSE_STATUSES, DATA_DELETE_STATUSES } from './types.js'; +import type { DeleteRegulationResponse, DeleteRegulationStatus } from './types.js'; // === GENERAL === diff --git a/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationService-method-action-types.ts b/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationService-method-action-types.ts index 413629a9c79..7d650976473 100644 --- a/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationService-method-action-types.ts +++ b/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationService-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { AnalyticsDataRegulationService } from './AnalyticsDataRegulationService'; +import type { AnalyticsDataRegulationService } from './AnalyticsDataRegulationService.js'; /** * Creates a DELETE_ONLY regulation for the given analyticsId. diff --git a/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationService.test.ts b/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationService.test.ts index b528f086391..582d5daa322 100644 --- a/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationService.test.ts +++ b/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationService.test.ts @@ -6,9 +6,9 @@ import type { } from '@metamask/messenger'; import nock, { cleanAll, disableNetConnect, enableNetConnect } from 'nock'; -import type { AnalyticsDataRegulationServiceMessenger } from './AnalyticsDataRegulationService'; -import { AnalyticsDataRegulationService } from './AnalyticsDataRegulationService'; -import { DATA_DELETE_RESPONSE_STATUSES, DATA_DELETE_STATUSES } from './types'; +import type { AnalyticsDataRegulationServiceMessenger } from './AnalyticsDataRegulationService.js'; +import { AnalyticsDataRegulationService } from './AnalyticsDataRegulationService.js'; +import { DATA_DELETE_RESPONSE_STATUSES, DATA_DELETE_STATUSES } from './types.js'; describe('AnalyticsDataRegulationService', () => { const segmentSourceId = 'test-source-id'; diff --git a/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationService.ts b/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationService.ts index 1a916888c16..b6b668a973a 100644 --- a/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationService.ts +++ b/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationService.ts @@ -6,9 +6,9 @@ import { createServicePolicy, HttpError } from '@metamask/controller-utils'; import type { Messenger } from '@metamask/messenger'; import type { IDisposable } from 'cockatiel'; -import type { AnalyticsDataRegulationServiceMethodActions } from './AnalyticsDataRegulationService-method-action-types'; -import { DATA_DELETE_RESPONSE_STATUSES, DATA_DELETE_STATUSES } from './types'; -import type { DataDeleteStatus } from './types'; +import type { AnalyticsDataRegulationServiceMethodActions } from './AnalyticsDataRegulationService-method-action-types.js'; +import { DATA_DELETE_RESPONSE_STATUSES, DATA_DELETE_STATUSES } from './types.js'; +import type { DataDeleteStatus } from './types.js'; /** * Segment API regulation type for DELETE_ONLY operations. diff --git a/packages/analytics-data-regulation-controller/src/index.ts b/packages/analytics-data-regulation-controller/src/index.ts index 31ea1eb281b..c6eaeaf275a 100644 --- a/packages/analytics-data-regulation-controller/src/index.ts +++ b/packages/analytics-data-regulation-controller/src/index.ts @@ -1,30 +1,30 @@ export { AnalyticsDataRegulationController, getDefaultAnalyticsDataRegulationControllerState, -} from './AnalyticsDataRegulationController'; -export type { AnalyticsDataRegulationControllerOptions } from './AnalyticsDataRegulationController'; +} from './AnalyticsDataRegulationController.js'; +export type { AnalyticsDataRegulationControllerOptions } from './AnalyticsDataRegulationController.js'; -export { AnalyticsDataRegulationService } from './AnalyticsDataRegulationService'; +export { AnalyticsDataRegulationService } from './AnalyticsDataRegulationService.js'; export type { AnalyticsDataRegulationServiceActions, AnalyticsDataRegulationServiceEvents, AnalyticsDataRegulationServiceMessenger, AnalyticsDataRegulationServiceOptions, -} from './AnalyticsDataRegulationService'; +} from './AnalyticsDataRegulationService.js'; export { DATA_DELETE_STATUSES, DATA_DELETE_RESPONSE_STATUSES, type DataDeleteStatus, type DataDeleteResponseStatus, -} from './types'; -export type { DeleteRegulationResponse, DeleteRegulationStatus } from './types'; +} from './types.js'; +export type { DeleteRegulationResponse, DeleteRegulationStatus } from './types.js'; -export type { AnalyticsDataRegulationControllerState } from './AnalyticsDataRegulationController'; +export type { AnalyticsDataRegulationControllerState } from './AnalyticsDataRegulationController.js'; -export { analyticsDataRegulationControllerSelectors } from './selectors'; +export { analyticsDataRegulationControllerSelectors } from './selectors.js'; -export type { AnalyticsDataRegulationControllerMessenger } from './AnalyticsDataRegulationController'; +export type { AnalyticsDataRegulationControllerMessenger } from './AnalyticsDataRegulationController.js'; export type { AnalyticsDataRegulationControllerActions, @@ -33,4 +33,4 @@ export type { AnalyticsDataRegulationControllerStateChangeEvent, DataDeletionTaskCreatedEvent, DataRecordingFlagUpdatedEvent, -} from './AnalyticsDataRegulationController'; +} from './AnalyticsDataRegulationController.js'; diff --git a/packages/analytics-data-regulation-controller/src/selectors.test.ts b/packages/analytics-data-regulation-controller/src/selectors.test.ts index 644130b8513..9e3f85a118c 100644 --- a/packages/analytics-data-regulation-controller/src/selectors.test.ts +++ b/packages/analytics-data-regulation-controller/src/selectors.test.ts @@ -1,8 +1,8 @@ import { analyticsDataRegulationControllerSelectors, getDefaultAnalyticsDataRegulationControllerState, -} from '.'; -import type { AnalyticsDataRegulationControllerState } from './AnalyticsDataRegulationController'; +} from "./..js"; +import type { AnalyticsDataRegulationControllerState } from './AnalyticsDataRegulationController.js'; describe('analyticsDataRegulationControllerSelectors', () => { describe('selectHasCollectedDataSinceDeletionRequest', () => { diff --git a/packages/analytics-data-regulation-controller/src/selectors.ts b/packages/analytics-data-regulation-controller/src/selectors.ts index 1b98c59dd2d..583e2374b5a 100644 --- a/packages/analytics-data-regulation-controller/src/selectors.ts +++ b/packages/analytics-data-regulation-controller/src/selectors.ts @@ -1,4 +1,4 @@ -import type { AnalyticsDataRegulationControllerState } from './AnalyticsDataRegulationController'; +import type { AnalyticsDataRegulationControllerState } from './AnalyticsDataRegulationController.js'; /** * Selects the data recorded flag from the controller state. From d68cc6c336bcbca92f2eaa6054cb3fa151ad3778 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:32:33 +0200 Subject: [PATCH 029/136] Fix ESLint errors for `announcement-controller` Add `.js` extensions to relative imports. --- .../src/AnnouncementController-method-action-types.ts | 2 +- .../src/AnnouncementController.test.ts | 4 ++-- .../announcement-controller/src/AnnouncementController.ts | 2 +- packages/announcement-controller/src/index.ts | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/announcement-controller/src/AnnouncementController-method-action-types.ts b/packages/announcement-controller/src/AnnouncementController-method-action-types.ts index 41b20203922..06e7774f15e 100644 --- a/packages/announcement-controller/src/AnnouncementController-method-action-types.ts +++ b/packages/announcement-controller/src/AnnouncementController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { AnnouncementController } from './AnnouncementController'; +import type { AnnouncementController } from './AnnouncementController.js'; /** * Resets the isShown status for all announcements diff --git a/packages/announcement-controller/src/AnnouncementController.test.ts b/packages/announcement-controller/src/AnnouncementController.test.ts index 61411131799..0bcc2587e82 100644 --- a/packages/announcement-controller/src/AnnouncementController.test.ts +++ b/packages/announcement-controller/src/AnnouncementController.test.ts @@ -9,8 +9,8 @@ import type { AnnouncementControllerEvents, AnnouncementControllerMessenger, AnnouncementMap, -} from './AnnouncementController'; -import { AnnouncementController } from './AnnouncementController'; +} from './AnnouncementController.js'; +import { AnnouncementController } from './AnnouncementController.js'; const name = 'AnnouncementController'; diff --git a/packages/announcement-controller/src/AnnouncementController.ts b/packages/announcement-controller/src/AnnouncementController.ts index ed194a9025c..99d7ec7564a 100644 --- a/packages/announcement-controller/src/AnnouncementController.ts +++ b/packages/announcement-controller/src/AnnouncementController.ts @@ -6,7 +6,7 @@ import type { import { BaseController } from '@metamask/base-controller'; import type { Messenger } from '@metamask/messenger'; -import type { AnnouncementControllerMethodActions } from './AnnouncementController-method-action-types'; +import type { AnnouncementControllerMethodActions } from './AnnouncementController-method-action-types.js'; type ViewedAnnouncement = { [id: number]: boolean; diff --git a/packages/announcement-controller/src/index.ts b/packages/announcement-controller/src/index.ts index aa6e47ce381..84583167654 100644 --- a/packages/announcement-controller/src/index.ts +++ b/packages/announcement-controller/src/index.ts @@ -1,7 +1,7 @@ export type { AnnouncementControllerResetViewedAction, AnnouncementControllerUpdateViewedAction, -} from './AnnouncementController-method-action-types'; +} from './AnnouncementController-method-action-types.js'; export type { AnnouncementMap, StateAnnouncementMap, @@ -11,5 +11,5 @@ export type { AnnouncementControllerGetStateAction, AnnouncementControllerStateChangeEvent, AnnouncementControllerMessenger, -} from './AnnouncementController'; -export { AnnouncementController } from './AnnouncementController'; +} from './AnnouncementController.js'; +export { AnnouncementController } from './AnnouncementController.js'; From b4f46c740db6bf7fb1ec16aa41a0505d5dc9798d Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:32:33 +0200 Subject: [PATCH 030/136] Fix ESLint errors for `app-metadata-controller` Add `.js` extensions to relative imports. --- .../app-metadata-controller/src/AppMetadataController.test.ts | 4 ++-- packages/app-metadata-controller/src/index.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/app-metadata-controller/src/AppMetadataController.test.ts b/packages/app-metadata-controller/src/AppMetadataController.test.ts index b05944df221..5a16e18627d 100644 --- a/packages/app-metadata-controller/src/AppMetadataController.test.ts +++ b/packages/app-metadata-controller/src/AppMetadataController.test.ts @@ -5,12 +5,12 @@ import type { MockAnyNamespace } from '@metamask/messenger'; import { AppMetadataController, getDefaultAppMetadataControllerState, -} from './AppMetadataController'; +} from './AppMetadataController.js'; import type { AppMetadataControllerOptions, AppMetadataControllerActions, AppMetadataControllerEvents, -} from './AppMetadataController'; +} from './AppMetadataController.js'; describe('AppMetadataController', () => { describe('constructor', () => { diff --git a/packages/app-metadata-controller/src/index.ts b/packages/app-metadata-controller/src/index.ts index 67ce2803824..c116376df36 100644 --- a/packages/app-metadata-controller/src/index.ts +++ b/packages/app-metadata-controller/src/index.ts @@ -5,8 +5,8 @@ export type { AppMetadataControllerMessenger, AppMetadataControllerState, AppMetadataControllerStateChangeEvent, -} from './AppMetadataController'; +} from './AppMetadataController.js'; export { getDefaultAppMetadataControllerState, AppMetadataController, -} from './AppMetadataController'; +} from './AppMetadataController.js'; From dbb7bde3effb04919dead01c887a8f21751bb41b Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:32:33 +0200 Subject: [PATCH 031/136] Fix ESLint errors for `approval-controller` Add `.js` extensions to relative imports and restore floating-promise suppressions. --- .../ApprovalController-method-action-types.ts | 2 +- .../src/ApprovalController.test.ts | 44 ++++++------------- .../src/ApprovalController.ts | 4 +- packages/approval-controller/src/index.ts | 6 +-- 4 files changed, 19 insertions(+), 37 deletions(-) diff --git a/packages/approval-controller/src/ApprovalController-method-action-types.ts b/packages/approval-controller/src/ApprovalController-method-action-types.ts index eff304674ba..b95a2587231 100644 --- a/packages/approval-controller/src/ApprovalController-method-action-types.ts +++ b/packages/approval-controller/src/ApprovalController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { ApprovalController } from './ApprovalController'; +import type { ApprovalController } from './ApprovalController.js'; /** * Adds an approval request per the given arguments, optionally showing diff --git a/packages/approval-controller/src/ApprovalController.test.ts b/packages/approval-controller/src/ApprovalController.test.ts index 1853f6e7172..3e4656765f1 100644 --- a/packages/approval-controller/src/ApprovalController.test.ts +++ b/packages/approval-controller/src/ApprovalController.test.ts @@ -10,7 +10,7 @@ import type { import { errorCodes, JsonRpcError } from '@metamask/rpc-errors'; import { nanoid } from 'nanoid'; -import { flushPromises } from '../../../tests/helpers'; +import { flushPromises } from '../../../tests/helpers.js'; import type { AddApprovalOptions, ApprovalControllerActions, @@ -19,19 +19,19 @@ import type { ErrorOptions, StartFlowOptions, SuccessOptions, -} from './ApprovalController'; +} from './ApprovalController.js'; import { APPROVAL_TYPE_RESULT_ERROR, APPROVAL_TYPE_RESULT_SUCCESS, ApprovalController, ORIGIN_METAMASK, -} from './ApprovalController'; +} from './ApprovalController.js'; import { ApprovalRequestNoResultSupportError, EndInvalidFlowError, MissingApprovalFlowError, NoApprovalFlowsError, -} from './errors'; +} from './errors.js'; jest.mock('nanoid'); @@ -761,7 +761,7 @@ describe('approval controller', () => { }); it('returns true for existing entry by origin', () => { - // TODO: Either fix this lint violation or explain why it's necessary to ignore. + // We only want to check the stored entity exists in the state hence disabling floating promises here. // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.add({ id: 'foo', origin: 'bar.baz', type: TYPE }); @@ -769,7 +769,6 @@ describe('approval controller', () => { }); it('returns true for existing entry by origin and type', () => { - // TODO: Either fix this lint violation or explain why it's necessary to ignore. // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.add({ id: 'foo', origin: 'bar.baz', type: 'myType' }); @@ -779,7 +778,6 @@ describe('approval controller', () => { }); it('returns true for existing type', () => { - // TODO: Either fix this lint violation or explain why it's necessary to ignore. // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.add({ id: 'foo', origin: 'bar.baz', type: 'myType' }); @@ -787,7 +785,6 @@ describe('approval controller', () => { }); it('returns false for non-existing entry by id', () => { - // TODO: Either fix this lint violation or explain why it's necessary to ignore. // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.add({ id: 'foo', origin: 'bar.baz', type: TYPE }); @@ -795,7 +792,6 @@ describe('approval controller', () => { }); it('returns false for non-existing entry by origin', () => { - // TODO: Either fix this lint violation or explain why it's necessary to ignore. // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.add({ id: 'foo', origin: 'bar.baz', type: TYPE }); @@ -805,7 +801,6 @@ describe('approval controller', () => { }); it('returns false for non-existing entry by existing origin and non-existing type', () => { - // TODO: Either fix this lint violation or explain why it's necessary to ignore. // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.add({ id: 'foo', origin: 'bar.baz', type: TYPE }); @@ -815,7 +810,6 @@ describe('approval controller', () => { }); it('returns false for non-existing entry by non-existing origin and existing type', () => { - // TODO: Either fix this lint violation or explain why it's necessary to ignore. // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.add({ id: 'foo', origin: 'bar.baz', type: 'myType' }); @@ -825,7 +819,6 @@ describe('approval controller', () => { }); it('returns false for non-existing entry by type', () => { - // TODO: Either fix this lint violation or explain why it's necessary to ignore. // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.add({ id: 'foo', origin: 'bar.baz', type: 'myType1' }); @@ -840,7 +833,6 @@ describe('approval controller', () => { origin: 'bar.baz', type: 'myType', }); - // TODO: Either fix this lint violation or explain why it's necessary to ignore. // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.acceptRequest('foo', 'success'); @@ -860,14 +852,12 @@ describe('approval controller', () => { type: 'myType2', }); - // TODO: Either fix this lint violation or explain why it's necessary to ignore. // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.acceptRequest('foo2', 'success2'); let result = await approvalPromise2; expect(result).toBe('success2'); - // TODO: Either fix this lint violation or explain why it's necessary to ignore. // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.acceptRequest('foo1', 'success1'); @@ -939,7 +929,6 @@ describe('approval controller', () => { expectsResult: true, }); - // TODO: Either fix this lint violation or explain why it's necessary to ignore. // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.acceptRequest(ID_MOCK, VALUE_MOCK); @@ -950,7 +939,6 @@ describe('approval controller', () => { }); it('throws if accept wants to wait but request does not expect result', async () => { - // TODO: Either fix this lint violation or explain why it's necessary to ignore. // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.add({ id: ID_MOCK, @@ -966,11 +954,9 @@ describe('approval controller', () => { }); it('deletes entry', () => { - // TODO: Either fix this lint violation or explain why it's necessary to ignore. // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.add({ id: 'foo', origin: 'bar.baz', type: 'type' }); - // TODO: Either fix this lint violation or explain why it's necessary to ignore. // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.acceptRequest('foo'); @@ -983,14 +969,11 @@ describe('approval controller', () => { }); it('deletes one entry out of many without side-effects', () => { - // TODO: Either fix this lint violation or explain why it's necessary to ignore. // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.add({ id: 'foo', origin: 'bar.baz', type: 'type1' }); - // TODO: Either fix this lint violation or explain why it's necessary to ignore. // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.add({ id: 'fizz', origin: 'bar.baz', type: 'type2' }); - // TODO: Either fix this lint violation or explain why it's necessary to ignore. // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.acceptRequest('fizz'); @@ -1200,7 +1183,6 @@ describe('approval controller', () => { type: 'myType4', }); - // TODO: Either fix this lint violation or explain why it's necessary to ignore. // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.acceptRequest('foo2', 'success2'); @@ -1218,7 +1200,6 @@ describe('approval controller', () => { ); expect(approvalController.hasRequest({ origin: 'bar.baz' })).toBe(true); - // TODO: Either fix this lint violation or explain why it's necessary to ignore. // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.acceptRequest('foo1', 'success1'); @@ -1319,8 +1300,6 @@ describe('approval controller', () => { showApprovalRequest, }); - // TODO: Either fix this lint violation or explain why it's necessary to ignore. - // eslint-disable-next-line @typescript-eslint/no-floating-promises rootMessenger.call( 'ApprovalController:addRequest', { id: 'foo', origin: 'bar.baz', type: TYPE }, @@ -1338,8 +1317,6 @@ describe('approval controller', () => { showApprovalRequest, }); - // TODO: Either fix this lint violation or explain why it's necessary to ignore. - // eslint-disable-next-line @typescript-eslint/no-floating-promises rootMessenger.call( 'ApprovalController:addRequest', { id: 'foo', origin: 'bar.baz', type: TYPE }, @@ -1357,7 +1334,6 @@ describe('approval controller', () => { showApprovalRequest, }); - // TODO: Either fix this lint violation or explain why it's necessary to ignore. // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.add({ id: 'foo', @@ -1537,7 +1513,6 @@ describe('approval controller', () => { approvalController.state[PENDING_APPROVALS_STORE_KEY], )[0].id; - // TODO: Either fix this lint violation or explain why it's necessary to ignore. // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.acceptRequest(resultRequestId); await promise; @@ -1587,7 +1562,6 @@ describe('approval controller', () => { approvalController.state[PENDING_APPROVALS_STORE_KEY], )[0].id; - // TODO: Either fix this lint violation or explain why it's necessary to ignore. // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.acceptRequest(resultRequestId); await promise; @@ -1602,6 +1576,7 @@ describe('approval controller', () => { describe('success', () => { it('adds request with result success approval type', async () => { // TODO: Either fix this lint violation or explain why it's necessary to ignore. + // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.showSuccess(SUCCESS_OPTIONS_MOCK); expectRequestAdded(APPROVAL_TYPE_RESULT_SUCCESS, SUCCESS_OPTIONS_MOCK); @@ -1609,6 +1584,7 @@ describe('approval controller', () => { it('adds request with no options', async () => { // TODO: Either fix this lint violation or explain why it's necessary to ignore. + // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.showSuccess(); @@ -1622,6 +1598,7 @@ describe('approval controller', () => { it('only includes relevant options in request data', async () => { // TODO: Either fix this lint violation or explain why it's necessary to ignore. + // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.showSuccess({ ...SUCCESS_OPTIONS_MOCK, @@ -1637,6 +1614,7 @@ describe('approval controller', () => { it('shows approval request', async () => { // TODO: Either fix this lint violation or explain why it's necessary to ignore. + // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.showSuccess(SUCCESS_OPTIONS_MOCK); expect(showApprovalRequest).toHaveBeenCalledTimes(1); @@ -1672,6 +1650,7 @@ describe('approval controller', () => { describe('error', () => { it('adds request with result error approval type', async () => { // TODO: Either fix this lint violation or explain why it's necessary to ignore. + // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.showError(ERROR_OPTIONS_MOCK); expectRequestAdded(APPROVAL_TYPE_RESULT_ERROR, ERROR_OPTIONS_MOCK); @@ -1679,6 +1658,7 @@ describe('approval controller', () => { it('adds request with no options', async () => { // TODO: Either fix this lint violation or explain why it's necessary to ignore. + // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.showError(); @@ -1692,6 +1672,7 @@ describe('approval controller', () => { it('only includes relevant options in request data', async () => { // TODO: Either fix this lint violation or explain why it's necessary to ignore. + // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.showError({ ...ERROR_OPTIONS_MOCK, @@ -1707,6 +1688,7 @@ describe('approval controller', () => { it('shows approval request', async () => { // TODO: Either fix this lint violation or explain why it's necessary to ignore. + // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.showError(ERROR_OPTIONS_MOCK); expect(showApprovalRequest).toHaveBeenCalledTimes(1); diff --git a/packages/approval-controller/src/ApprovalController.ts b/packages/approval-controller/src/ApprovalController.ts index 0457c0aec89..73cf15154be 100644 --- a/packages/approval-controller/src/ApprovalController.ts +++ b/packages/approval-controller/src/ApprovalController.ts @@ -10,14 +10,14 @@ import { rpcErrors } from '@metamask/rpc-errors'; import type { Json, OptionalField } from '@metamask/utils'; import { nanoid } from 'nanoid'; -import type { ApprovalControllerMethodActions } from './ApprovalController-method-action-types'; +import type { ApprovalControllerMethodActions } from './ApprovalController-method-action-types.js'; import { ApprovalRequestNotFoundError, ApprovalRequestNoResultSupportError, EndInvalidFlowError, NoApprovalFlowsError, MissingApprovalFlowError, -} from './errors'; +} from './errors.js'; // Constants diff --git a/packages/approval-controller/src/index.ts b/packages/approval-controller/src/index.ts index 5a8f6173ff2..740667561c8 100644 --- a/packages/approval-controller/src/index.ts +++ b/packages/approval-controller/src/index.ts @@ -1,4 +1,4 @@ -export * from './ApprovalController'; +export * from './ApprovalController.js'; export type { ApprovalControllerAddRequestAction, ApprovalControllerAddAndShowApprovalRequestAction, @@ -16,5 +16,5 @@ export type { ApprovalControllerSetFlowLoadingTextAction, ApprovalControllerShowSuccessAction, ApprovalControllerShowErrorAction, -} from './ApprovalController-method-action-types'; -export * from './errors'; +} from './ApprovalController-method-action-types.js'; +export * from './errors.js'; From 2ef9fa6b05e48edb2e864f0eceab9a94a8c83e8e Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:32:33 +0200 Subject: [PATCH 032/136] Fix ESLint errors for `client-controller` Add `.js` extensions to relative imports. --- .../src/ClientController-method-action-types.ts | 2 +- packages/client-controller/src/ClientController.test.ts | 6 +++--- packages/client-controller/src/ClientController.ts | 2 +- packages/client-controller/src/index.ts | 8 ++++---- packages/client-controller/src/selectors.ts | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/client-controller/src/ClientController-method-action-types.ts b/packages/client-controller/src/ClientController-method-action-types.ts index 966fc52fcdd..16932305f2d 100644 --- a/packages/client-controller/src/ClientController-method-action-types.ts +++ b/packages/client-controller/src/ClientController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { ClientController } from './ClientController'; +import type { ClientController } from './ClientController.js'; /** * Updates state with whether the MetaMask UI is open. diff --git a/packages/client-controller/src/ClientController.test.ts b/packages/client-controller/src/ClientController.test.ts index c7c7b7cf412..ffc378261c8 100644 --- a/packages/client-controller/src/ClientController.test.ts +++ b/packages/client-controller/src/ClientController.test.ts @@ -4,13 +4,13 @@ import type { ClientControllerActions, ClientControllerEvents, ClientControllerMessenger, -} from './ClientController'; +} from './ClientController.js'; import { ClientController, controllerName, getDefaultClientControllerState, -} from './ClientController'; -import { clientControllerSelectors } from './selectors'; +} from './ClientController.js'; +import { clientControllerSelectors } from './selectors.js'; describe('ClientController', () => { type RootMessenger = Messenger< diff --git a/packages/client-controller/src/ClientController.ts b/packages/client-controller/src/ClientController.ts index 78553c1a990..507a4fd18f0 100644 --- a/packages/client-controller/src/ClientController.ts +++ b/packages/client-controller/src/ClientController.ts @@ -6,7 +6,7 @@ import type { import { BaseController } from '@metamask/base-controller'; import type { Messenger } from '@metamask/messenger'; -import type { ClientControllerMethodActions } from './ClientController-method-action-types'; +import type { ClientControllerMethodActions } from './ClientController-method-action-types.js'; // === GENERAL === diff --git a/packages/client-controller/src/index.ts b/packages/client-controller/src/index.ts index 8695331b716..86aa4d5f54c 100644 --- a/packages/client-controller/src/index.ts +++ b/packages/client-controller/src/index.ts @@ -1,8 +1,8 @@ export { ClientController, getDefaultClientControllerState, -} from './ClientController'; -export { clientControllerSelectors } from './selectors'; +} from './ClientController.js'; +export { clientControllerSelectors } from './selectors.js'; export type { ClientControllerState, @@ -12,5 +12,5 @@ export type { ClientControllerStateChangeEvent, ClientControllerEvents, ClientControllerMessenger, -} from './ClientController'; -export type { ClientControllerSetUiOpenAction } from './ClientController-method-action-types'; +} from './ClientController.js'; +export type { ClientControllerSetUiOpenAction } from './ClientController-method-action-types.js'; diff --git a/packages/client-controller/src/selectors.ts b/packages/client-controller/src/selectors.ts index a8cefc6c5a3..132152a782c 100644 --- a/packages/client-controller/src/selectors.ts +++ b/packages/client-controller/src/selectors.ts @@ -1,4 +1,4 @@ -import type { ClientControllerState } from './ClientController'; +import type { ClientControllerState } from './ClientController.js'; /** * Selects whether the UI is currently open. From 5459587031e1c935281f16cd8ff009f8d67e0190 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:32:33 +0200 Subject: [PATCH 033/136] Fix ESLint errors for `compliance-controller` Add `.js` extensions to relative imports. --- .../ComplianceController-method-action-types.ts | 2 +- .../src/ComplianceController.test.ts | 6 +++--- .../src/ComplianceController.ts | 8 ++++---- .../src/ComplianceService-method-action-types.ts | 2 +- .../src/ComplianceService.test.ts | 4 ++-- .../src/ComplianceService.ts | 2 +- packages/compliance-controller/src/index.ts | 16 ++++++++-------- packages/compliance-controller/src/selectors.ts | 4 ++-- packages/compliance-controller/src/utils.ts | 2 +- 9 files changed, 23 insertions(+), 23 deletions(-) diff --git a/packages/compliance-controller/src/ComplianceController-method-action-types.ts b/packages/compliance-controller/src/ComplianceController-method-action-types.ts index 602222842ff..78e9fd43062 100644 --- a/packages/compliance-controller/src/ComplianceController-method-action-types.ts +++ b/packages/compliance-controller/src/ComplianceController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { ComplianceController } from './ComplianceController'; +import type { ComplianceController } from './ComplianceController.js'; /** * Checks compliance status for a single wallet address via the API and diff --git a/packages/compliance-controller/src/ComplianceController.test.ts b/packages/compliance-controller/src/ComplianceController.test.ts index 96e7d9d9509..b566ce46ca0 100644 --- a/packages/compliance-controller/src/ComplianceController.test.ts +++ b/packages/compliance-controller/src/ComplianceController.test.ts @@ -7,9 +7,9 @@ import type { MessengerEvents, } from '@metamask/messenger'; -import { ComplianceController } from './ComplianceController'; -import type { ComplianceControllerMessenger } from './ComplianceController'; -import { selectAreAnyWalletsBlocked, selectIsWalletBlocked } from './selectors'; +import { ComplianceController } from './ComplianceController.js'; +import type { ComplianceControllerMessenger } from './ComplianceController.js'; +import { selectAreAnyWalletsBlocked, selectIsWalletBlocked } from './selectors.js'; const LOWERCASE_EVM_ADDRESS = '0x4e1ff7229bddaf0a73df183a88d9c3a04cc975e0'; const CHECKSUM_EVM_ADDRESS = toChecksumHexAddress(LOWERCASE_EVM_ADDRESS); diff --git a/packages/compliance-controller/src/ComplianceController.ts b/packages/compliance-controller/src/ComplianceController.ts index 4611b29f361..720441dde30 100644 --- a/packages/compliance-controller/src/ComplianceController.ts +++ b/packages/compliance-controller/src/ComplianceController.ts @@ -6,13 +6,13 @@ import type { import { BaseController } from '@metamask/base-controller'; import type { Messenger } from '@metamask/messenger'; -import type { ComplianceControllerMethodActions } from './ComplianceController-method-action-types'; +import type { ComplianceControllerMethodActions } from './ComplianceController-method-action-types.js'; import type { ComplianceServiceCheckWalletComplianceAction, ComplianceServiceCheckWalletsComplianceAction, -} from './ComplianceService-method-action-types'; -import type { WalletComplianceStatus } from './types'; -import { getWalletComplianceStatus } from './utils'; +} from './ComplianceService-method-action-types.js'; +import type { WalletComplianceStatus } from './types.js'; +import { getWalletComplianceStatus } from './utils.js'; // === GENERAL === diff --git a/packages/compliance-controller/src/ComplianceService-method-action-types.ts b/packages/compliance-controller/src/ComplianceService-method-action-types.ts index 602eee5b8fd..72948599d51 100644 --- a/packages/compliance-controller/src/ComplianceService-method-action-types.ts +++ b/packages/compliance-controller/src/ComplianceService-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { ComplianceService } from './ComplianceService'; +import type { ComplianceService } from './ComplianceService.js'; /** * Checks compliance status for a single wallet address. diff --git a/packages/compliance-controller/src/ComplianceService.test.ts b/packages/compliance-controller/src/ComplianceService.test.ts index 269d24d9587..378c2ba6b6d 100644 --- a/packages/compliance-controller/src/ComplianceService.test.ts +++ b/packages/compliance-controller/src/ComplianceService.test.ts @@ -7,8 +7,8 @@ import type { } from '@metamask/messenger'; import nock from 'nock'; -import type { ComplianceServiceMessenger } from './ComplianceService'; -import { ComplianceService } from './ComplianceService'; +import type { ComplianceServiceMessenger } from './ComplianceService.js'; +import { ComplianceService } from './ComplianceService.js'; const MOCK_API_URL = 'https://compliance.dev-api.cx.metamask.io'; const MOCK_PRODUCTION_API_URL = 'https://compliance.api.cx.metamask.io'; diff --git a/packages/compliance-controller/src/ComplianceService.ts b/packages/compliance-controller/src/ComplianceService.ts index 91fd92dece2..473da277132 100644 --- a/packages/compliance-controller/src/ComplianceService.ts +++ b/packages/compliance-controller/src/ComplianceService.ts @@ -8,7 +8,7 @@ import type { Infer } from '@metamask/superstruct'; import { array, boolean, object, string } from '@metamask/superstruct'; import type { IDisposable } from 'cockatiel'; -import type { ComplianceServiceMethodActions } from './ComplianceService-method-action-types'; +import type { ComplianceServiceMethodActions } from './ComplianceService-method-action-types.js'; // === GENERAL === diff --git a/packages/compliance-controller/src/index.ts b/packages/compliance-controller/src/index.ts index fa6d2463e91..77fba7dde37 100644 --- a/packages/compliance-controller/src/index.ts +++ b/packages/compliance-controller/src/index.ts @@ -4,12 +4,12 @@ export type { ComplianceServiceEvents, ComplianceServiceMessenger, ComplianceServiceOptions, -} from './ComplianceService'; +} from './ComplianceService.js'; export type { ComplianceServiceCheckWalletComplianceAction, ComplianceServiceCheckWalletsComplianceAction, -} from './ComplianceService-method-action-types'; -export { ComplianceService } from './ComplianceService'; +} from './ComplianceService-method-action-types.js'; +export { ComplianceService } from './ComplianceService.js'; export type { ComplianceControllerActions, ComplianceControllerEvents, @@ -17,15 +17,15 @@ export type { ComplianceControllerMessenger, ComplianceControllerState, ComplianceControllerStateChangeEvent, -} from './ComplianceController'; +} from './ComplianceController.js'; export type { ComplianceControllerCheckWalletComplianceAction, ComplianceControllerCheckWalletsComplianceAction, ComplianceControllerClearComplianceStateAction, -} from './ComplianceController-method-action-types'; +} from './ComplianceController-method-action-types.js'; export { ComplianceController, getDefaultComplianceControllerState, -} from './ComplianceController'; -export { selectAreAnyWalletsBlocked, selectIsWalletBlocked } from './selectors'; -export type { WalletComplianceStatus } from './types'; +} from './ComplianceController.js'; +export { selectAreAnyWalletsBlocked, selectIsWalletBlocked } from './selectors.js'; +export type { WalletComplianceStatus } from './types.js'; diff --git a/packages/compliance-controller/src/selectors.ts b/packages/compliance-controller/src/selectors.ts index 1e8f6a4bd7a..5d5660535ed 100644 --- a/packages/compliance-controller/src/selectors.ts +++ b/packages/compliance-controller/src/selectors.ts @@ -1,7 +1,7 @@ import { createSelector } from 'reselect'; -import type { ComplianceControllerState } from './ComplianceController'; -import { getWalletComplianceStatus } from './utils'; +import type { ComplianceControllerState } from './ComplianceController.js'; +import { getWalletComplianceStatus } from './utils.js'; const selectWalletComplianceStatusMap = ( state: ComplianceControllerState, diff --git a/packages/compliance-controller/src/utils.ts b/packages/compliance-controller/src/utils.ts index cdafbcc289e..cfc996186c0 100644 --- a/packages/compliance-controller/src/utils.ts +++ b/packages/compliance-controller/src/utils.ts @@ -3,7 +3,7 @@ import { isValidHexAddress, } from '@metamask/controller-utils'; -import type { WalletComplianceStatus } from './types'; +import type { WalletComplianceStatus } from './types.js'; export const getWalletComplianceStatus = ( statusMap: Record, From 6df564b54e0df82ef1df33a4fc54b07ce73f68cb Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:32:33 +0200 Subject: [PATCH 034/136] Fix ESLint errors for `connectivity-controller` Add `.js` extensions to relative imports. --- .../ConnectivityController-method-action-types.ts | 2 +- .../src/ConnectivityController.test.ts | 8 ++++---- .../src/ConnectivityController.ts | 6 +++--- packages/connectivity-controller/src/index.ts | 12 ++++++------ .../connectivity-controller/src/selectors.test.ts | 6 +++--- packages/connectivity-controller/src/selectors.ts | 6 +++--- 6 files changed, 20 insertions(+), 20 deletions(-) diff --git a/packages/connectivity-controller/src/ConnectivityController-method-action-types.ts b/packages/connectivity-controller/src/ConnectivityController-method-action-types.ts index 456618d255d..ddc961f0a57 100644 --- a/packages/connectivity-controller/src/ConnectivityController-method-action-types.ts +++ b/packages/connectivity-controller/src/ConnectivityController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { ConnectivityController } from './ConnectivityController'; +import type { ConnectivityController } from './ConnectivityController.js'; /** * Initializes the controller by fetching the initial connectivity status. diff --git a/packages/connectivity-controller/src/ConnectivityController.test.ts b/packages/connectivity-controller/src/ConnectivityController.test.ts index b90c90d72ef..0c5acee09c9 100644 --- a/packages/connectivity-controller/src/ConnectivityController.test.ts +++ b/packages/connectivity-controller/src/ConnectivityController.test.ts @@ -6,10 +6,10 @@ import type { MessengerEvents, } from '@metamask/messenger'; -import type { ConnectivityControllerMessenger } from './ConnectivityController'; -import { ConnectivityController } from './ConnectivityController'; -import { CONNECTIVITY_STATUSES } from './types'; -import type { ConnectivityAdapter, ConnectivityStatus } from './types'; +import type { ConnectivityControllerMessenger } from './ConnectivityController.js'; +import { ConnectivityController } from './ConnectivityController.js'; +import { CONNECTIVITY_STATUSES } from './types.js'; +import type { ConnectivityAdapter, ConnectivityStatus } from './types.js'; describe('ConnectivityController', () => { describe('constructor', () => { diff --git a/packages/connectivity-controller/src/ConnectivityController.ts b/packages/connectivity-controller/src/ConnectivityController.ts index b83312285f8..dd55086ed43 100644 --- a/packages/connectivity-controller/src/ConnectivityController.ts +++ b/packages/connectivity-controller/src/ConnectivityController.ts @@ -6,9 +6,9 @@ import type { import { BaseController } from '@metamask/base-controller'; import type { Messenger } from '@metamask/messenger'; -import { ConnectivityControllerMethodActions } from './ConnectivityController-method-action-types'; -import { CONNECTIVITY_STATUSES } from './types'; -import type { ConnectivityAdapter, ConnectivityStatus } from './types'; +import { ConnectivityControllerMethodActions } from './ConnectivityController-method-action-types.js'; +import { CONNECTIVITY_STATUSES } from './types.js'; +import type { ConnectivityAdapter, ConnectivityStatus } from './types.js'; /** * The name of the {@link ConnectivityController}, used to namespace the diff --git a/packages/connectivity-controller/src/index.ts b/packages/connectivity-controller/src/index.ts index 4cd875d8f89..3d6fdbd428c 100644 --- a/packages/connectivity-controller/src/index.ts +++ b/packages/connectivity-controller/src/index.ts @@ -5,12 +5,12 @@ export type { ConnectivityControllerStateChangeEvent, ConnectivityControllerEvents, ConnectivityControllerMessenger, -} from './ConnectivityController'; -export type { ConnectivityControllerSetConnectivityStatusAction } from './ConnectivityController-method-action-types'; -export type { ConnectivityAdapter, ConnectivityStatus } from './types'; -export { CONNECTIVITY_STATUSES } from './types'; +} from './ConnectivityController.js'; +export type { ConnectivityControllerSetConnectivityStatusAction } from './ConnectivityController-method-action-types.js'; +export type { ConnectivityAdapter, ConnectivityStatus } from './types.js'; +export { CONNECTIVITY_STATUSES } from './types.js'; export { ConnectivityController, getDefaultConnectivityControllerState, -} from './ConnectivityController'; -export { connectivityControllerSelectors } from './selectors'; +} from './ConnectivityController.js'; +export { connectivityControllerSelectors } from './selectors.js'; diff --git a/packages/connectivity-controller/src/selectors.test.ts b/packages/connectivity-controller/src/selectors.test.ts index 99eec99a459..80a363ded62 100644 --- a/packages/connectivity-controller/src/selectors.test.ts +++ b/packages/connectivity-controller/src/selectors.test.ts @@ -1,6 +1,6 @@ -import type { ConnectivityControllerState } from './ConnectivityController'; -import { connectivityControllerSelectors } from './selectors'; -import { CONNECTIVITY_STATUSES } from './types'; +import type { ConnectivityControllerState } from './ConnectivityController.js'; +import { connectivityControllerSelectors } from './selectors.js'; +import { CONNECTIVITY_STATUSES } from './types.js'; describe('connectivityControllerSelectors', () => { describe('selectConnectivityStatus', () => { diff --git a/packages/connectivity-controller/src/selectors.ts b/packages/connectivity-controller/src/selectors.ts index cea73cc5974..d8b442e6b76 100644 --- a/packages/connectivity-controller/src/selectors.ts +++ b/packages/connectivity-controller/src/selectors.ts @@ -1,8 +1,8 @@ import { createSelector } from 'reselect'; -import type { ConnectivityControllerState } from './ConnectivityController'; -import { CONNECTIVITY_STATUSES } from './types'; -import type { ConnectivityStatus } from './types'; +import type { ConnectivityControllerState } from './ConnectivityController.js'; +import { CONNECTIVITY_STATUSES } from './types.js'; +import type { ConnectivityStatus } from './types.js'; /** * Selects the connectivity status from the controller state. From 8ace21c8577e3b195ccfe1fec383e84c74481dac Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:32:33 +0200 Subject: [PATCH 035/136] Fix ESLint errors for `geolocation-controller` Add `.js` extensions to relative imports. --- .../GeolocationController-method-action-types.ts | 2 +- .../src/GeolocationController.test.ts | 6 +++--- .../src/GeolocationController.ts | 8 ++++---- ...eolocation-api-service-method-action-types.ts | 2 +- .../geolocation-api-service.test.ts | 6 +++--- .../geolocation-api-service.ts | 4 ++-- packages/geolocation-controller/src/index.ts | 16 ++++++++-------- 7 files changed, 22 insertions(+), 22 deletions(-) diff --git a/packages/geolocation-controller/src/GeolocationController-method-action-types.ts b/packages/geolocation-controller/src/GeolocationController-method-action-types.ts index 400d6477e18..d330e47b25a 100644 --- a/packages/geolocation-controller/src/GeolocationController-method-action-types.ts +++ b/packages/geolocation-controller/src/GeolocationController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { GeolocationController } from './GeolocationController'; +import type { GeolocationController } from './GeolocationController.js'; /** * Returns the geolocation code. Delegates to the diff --git a/packages/geolocation-controller/src/GeolocationController.test.ts b/packages/geolocation-controller/src/GeolocationController.test.ts index 37c8a560347..dcb8262a959 100644 --- a/packages/geolocation-controller/src/GeolocationController.test.ts +++ b/packages/geolocation-controller/src/GeolocationController.test.ts @@ -6,12 +6,12 @@ import type { MessengerEvents, } from '@metamask/messenger'; -import { UNKNOWN_LOCATION } from './geolocation-api-service/geolocation-api-service'; -import type { GeolocationControllerMessenger } from './GeolocationController'; +import { UNKNOWN_LOCATION } from './geolocation-api-service/geolocation-api-service.js'; +import type { GeolocationControllerMessenger } from './GeolocationController.js'; import { GeolocationController, getDefaultGeolocationControllerState, -} from './GeolocationController'; +} from './GeolocationController.js'; describe('GeolocationController', () => { describe('constructor', () => { diff --git a/packages/geolocation-controller/src/GeolocationController.ts b/packages/geolocation-controller/src/GeolocationController.ts index 4965a7afda8..357c7f7486b 100644 --- a/packages/geolocation-controller/src/GeolocationController.ts +++ b/packages/geolocation-controller/src/GeolocationController.ts @@ -6,10 +6,10 @@ import type { import { BaseController } from '@metamask/base-controller'; import type { Messenger } from '@metamask/messenger'; -import { UNKNOWN_LOCATION } from './geolocation-api-service/geolocation-api-service'; -import type { GeolocationApiServiceFetchGeolocationAction } from './geolocation-api-service/geolocation-api-service-method-action-types'; -import type { GeolocationControllerMethodActions } from './GeolocationController-method-action-types'; -import type { GeolocationRequestStatus } from './types'; +import { UNKNOWN_LOCATION } from './geolocation-api-service/geolocation-api-service.js'; +import type { GeolocationApiServiceFetchGeolocationAction } from './geolocation-api-service/geolocation-api-service-method-action-types.js'; +import type { GeolocationControllerMethodActions } from './GeolocationController-method-action-types.js'; +import type { GeolocationRequestStatus } from './types.js'; /** * The name of the {@link GeolocationController}, used to namespace the diff --git a/packages/geolocation-controller/src/geolocation-api-service/geolocation-api-service-method-action-types.ts b/packages/geolocation-controller/src/geolocation-api-service/geolocation-api-service-method-action-types.ts index 9757ab999b2..68efa407e78 100644 --- a/packages/geolocation-controller/src/geolocation-api-service/geolocation-api-service-method-action-types.ts +++ b/packages/geolocation-controller/src/geolocation-api-service/geolocation-api-service-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { GeolocationApiService } from './geolocation-api-service'; +import type { GeolocationApiService } from './geolocation-api-service.js'; /** * Returns the geolocation code. Serves from cache when the TTL has not diff --git a/packages/geolocation-controller/src/geolocation-api-service/geolocation-api-service.test.ts b/packages/geolocation-controller/src/geolocation-api-service/geolocation-api-service.test.ts index 0aac0d8c06a..ed89b92c408 100644 --- a/packages/geolocation-controller/src/geolocation-api-service/geolocation-api-service.test.ts +++ b/packages/geolocation-controller/src/geolocation-api-service/geolocation-api-service.test.ts @@ -6,12 +6,12 @@ import type { MessengerEvents, } from '@metamask/messenger'; -import { Env } from '../types'; -import type { GeolocationApiServiceMessenger } from './geolocation-api-service'; +import { Env } from '../types.js'; +import type { GeolocationApiServiceMessenger } from './geolocation-api-service.js'; import { GeolocationApiService, UNKNOWN_LOCATION, -} from './geolocation-api-service'; +} from './geolocation-api-service.js'; describe('GeolocationApiService', () => { beforeEach(() => { diff --git a/packages/geolocation-controller/src/geolocation-api-service/geolocation-api-service.ts b/packages/geolocation-controller/src/geolocation-api-service/geolocation-api-service.ts index 23c1798d4c2..c74a215d2b5 100644 --- a/packages/geolocation-controller/src/geolocation-api-service/geolocation-api-service.ts +++ b/packages/geolocation-controller/src/geolocation-api-service/geolocation-api-service.ts @@ -6,8 +6,8 @@ import { createServicePolicy, HttpError } from '@metamask/controller-utils'; import type { Messenger } from '@metamask/messenger'; import type { IDisposable } from 'cockatiel'; -import { Env } from '../types'; -import type { GeolocationApiServiceMethodActions } from './geolocation-api-service-method-action-types'; +import { Env } from '../types.js'; +import type { GeolocationApiServiceMethodActions } from './geolocation-api-service-method-action-types.js'; const DEFAULT_TTL_MS = 5 * 60 * 1000; diff --git a/packages/geolocation-controller/src/index.ts b/packages/geolocation-controller/src/index.ts index 05d773eaa65..d92ae556e3a 100644 --- a/packages/geolocation-controller/src/index.ts +++ b/packages/geolocation-controller/src/index.ts @@ -6,25 +6,25 @@ export type { GeolocationControllerEvents, GeolocationControllerMessenger, GeolocationControllerOptions, -} from './GeolocationController'; +} from './GeolocationController.js'; export type { GeolocationControllerGetGeolocationAction, GeolocationControllerRefreshGeolocationAction, -} from './GeolocationController-method-action-types'; -export type { GeolocationRequestStatus } from './types'; -export { Env } from './types'; +} from './GeolocationController-method-action-types.js'; +export type { GeolocationRequestStatus } from './types.js'; +export { Env } from './types.js'; export { GeolocationController, getDefaultGeolocationControllerState, -} from './GeolocationController'; +} from './GeolocationController.js'; export { GeolocationApiService, UNKNOWN_LOCATION, -} from './geolocation-api-service/geolocation-api-service'; +} from './geolocation-api-service/geolocation-api-service.js'; export type { GeolocationApiServiceMessenger, GeolocationApiServiceActions, GeolocationApiServiceEvents, FetchGeolocationOptions, -} from './geolocation-api-service/geolocation-api-service'; -export type { GeolocationApiServiceFetchGeolocationAction } from './geolocation-api-service/geolocation-api-service-method-action-types'; +} from './geolocation-api-service/geolocation-api-service.js'; +export type { GeolocationApiServiceFetchGeolocationAction } from './geolocation-api-service/geolocation-api-service-method-action-types.js'; From e4cccde8f101fca9c8c6b7d2c4fbdb93b266c54f Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:34:10 +0200 Subject: [PATCH 036/136] Add `jest` global import to `ai-controllers` tests --- packages/ai-controllers/package.json | 1 + packages/ai-controllers/src/AiDigestController.test.ts | 5 +++-- packages/ai-controllers/src/AiDigestService.test.ts | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/ai-controllers/package.json b/packages/ai-controllers/package.json index e6c49798752..25b304d6ff4 100644 --- a/packages/ai-controllers/package.json +++ b/packages/ai-controllers/package.json @@ -54,6 +54,7 @@ "@metamask/utils": "^11.11.0" }, "devDependencies": { + "@jest/globals": "^30.4.1", "@metamask/auto-changelog": "^6.1.0", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/ai-controllers/src/AiDigestController.test.ts b/packages/ai-controllers/src/AiDigestController.test.ts index 09bcad60602..64b24706cca 100644 --- a/packages/ai-controllers/src/AiDigestController.test.ts +++ b/packages/ai-controllers/src/AiDigestController.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; import { Messenger } from '@metamask/messenger'; import { @@ -6,14 +7,14 @@ import { AiDigestControllerErrorMessage, CACHE_DURATION_MS, MAX_CACHE_ENTRIES, -} from "./..js"; +} from './..js'; import type { AiDigestControllerMessenger, DigestService, MarketInsightsReport, MarketOverview, MarketOverviewFrontPage, -} from "./..js"; +} from './..js'; const mockReport: MarketInsightsReport = { version: '1.0', diff --git a/packages/ai-controllers/src/AiDigestService.test.ts b/packages/ai-controllers/src/AiDigestService.test.ts index e3b7243d468..4f443a786ca 100644 --- a/packages/ai-controllers/src/AiDigestService.test.ts +++ b/packages/ai-controllers/src/AiDigestService.test.ts @@ -1,4 +1,6 @@ -import { AiDigestService } from "./..js"; +import { jest } from '@jest/globals'; + +import { AiDigestService } from './..js'; import { AiDigestControllerErrorMessage } from './ai-digest-constants.js'; describe('AiDigestService', () => { From 75a2c5d9185dd4e9ed23682ea8557d385806bb9b Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:34:10 +0200 Subject: [PATCH 037/136] Add `jest` global import to `analytics-controller` tests --- packages/analytics-controller/package.json | 1 + .../analytics-controller/src/AnalyticsController.test.ts | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/analytics-controller/package.json b/packages/analytics-controller/package.json index 4d58a230573..66aafe70744 100644 --- a/packages/analytics-controller/package.json +++ b/packages/analytics-controller/package.json @@ -55,6 +55,7 @@ "uuid": "^8.3.2" }, "devDependencies": { + "@jest/globals": "^30.4.1", "@metamask/auto-changelog": "^6.1.0", "@types/jest": "^29.5.14", "@types/uuid": "^8.3.0", diff --git a/packages/analytics-controller/src/AnalyticsController.test.ts b/packages/analytics-controller/src/AnalyticsController.test.ts index 1cff677b21b..0bc4a86f15d 100644 --- a/packages/analytics-controller/src/AnalyticsController.test.ts +++ b/packages/analytics-controller/src/AnalyticsController.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; import { deriveStateFromMetadata } from '@metamask/base-controller'; import { Messenger, MOCK_ANY_NAMESPACE } from '@metamask/messenger'; import type { MockAnyNamespace } from '@metamask/messenger'; @@ -8,7 +9,7 @@ import { AnalyticsPlatformAdapterSetupError, getDefaultAnalyticsControllerState, analyticsControllerSelectors, -} from "./..js"; +} from './..js'; import type { AnalyticsControllerMessenger, AnalyticsControllerActions, @@ -18,7 +19,7 @@ import type { AnalyticsTrackingEvent, AnalyticsControllerState, AnalyticsContext, -} from "./..js"; +} from './..js'; import { isValidUUIDv4 } from './analyticsControllerStateValidator.js'; type SetupControllerOptions = { From 6cde727b23ad8528ec58c9bfd1c8dc657a7f9e44 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:34:10 +0200 Subject: [PATCH 038/136] Add `jest` global import to `analytics-data-regulation-controller` tests --- .../analytics-data-regulation-controller/package.json | 1 + .../src/AnalyticsDataRegulationController.test.ts | 10 +++++++--- .../src/AnalyticsDataRegulationController.ts | 10 ++++++++-- .../src/AnalyticsDataRegulationService.test.ts | 6 +++++- .../src/AnalyticsDataRegulationService.ts | 5 ++++- .../analytics-data-regulation-controller/src/index.ts | 5 ++++- .../src/selectors.test.ts | 2 +- 7 files changed, 30 insertions(+), 9 deletions(-) diff --git a/packages/analytics-data-regulation-controller/package.json b/packages/analytics-data-regulation-controller/package.json index 3bca6017180..690744e8d6f 100644 --- a/packages/analytics-data-regulation-controller/package.json +++ b/packages/analytics-data-regulation-controller/package.json @@ -54,6 +54,7 @@ "@metamask/utils": "^11.11.0" }, "devDependencies": { + "@jest/globals": "^30.4.1", "@metamask/auto-changelog": "^6.1.0", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationController.test.ts b/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationController.test.ts index 759ffab2e23..56ba21dfe05 100644 --- a/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationController.test.ts +++ b/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationController.test.ts @@ -1,18 +1,22 @@ +import { jest } from '@jest/globals'; import { Messenger, MOCK_ANY_NAMESPACE } from '@metamask/messenger'; import type { MockAnyNamespace } from '@metamask/messenger'; import { AnalyticsDataRegulationController, getDefaultAnalyticsDataRegulationControllerState, -} from "./..js"; +} from './..js'; import type { AnalyticsDataRegulationControllerMessenger, AnalyticsDataRegulationControllerActions, AnalyticsDataRegulationControllerEvents, AnalyticsDataRegulationControllerState, -} from "./..js"; +} from './..js'; import type { AnalyticsDataRegulationServiceActions } from './AnalyticsDataRegulationService.js'; -import { DATA_DELETE_RESPONSE_STATUSES, DATA_DELETE_STATUSES } from './types.js'; +import { + DATA_DELETE_RESPONSE_STATUSES, + DATA_DELETE_STATUSES, +} from './types.js'; type SetupControllerOptions = { state?: Partial; diff --git a/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationController.ts b/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationController.ts index bbd2967ae09..0620a9d1dbc 100644 --- a/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationController.ts +++ b/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationController.ts @@ -9,8 +9,14 @@ import type { Messenger } from '@metamask/messenger'; import type { AnalyticsDataRegulationControllerMethodActions } from './AnalyticsDataRegulationController-method-action-types.js'; import type { AnalyticsDataRegulationServiceActions } from './AnalyticsDataRegulationService.js'; import { projectLogger as log } from './logger.js'; -import { DATA_DELETE_RESPONSE_STATUSES, DATA_DELETE_STATUSES } from './types.js'; -import type { DeleteRegulationResponse, DeleteRegulationStatus } from './types.js'; +import { + DATA_DELETE_RESPONSE_STATUSES, + DATA_DELETE_STATUSES, +} from './types.js'; +import type { + DeleteRegulationResponse, + DeleteRegulationStatus, +} from './types.js'; // === GENERAL === diff --git a/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationService.test.ts b/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationService.test.ts index 582d5daa322..501932597be 100644 --- a/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationService.test.ts +++ b/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationService.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; import { Messenger, MOCK_ANY_NAMESPACE } from '@metamask/messenger'; import type { MockAnyNamespace, @@ -8,7 +9,10 @@ import nock, { cleanAll, disableNetConnect, enableNetConnect } from 'nock'; import type { AnalyticsDataRegulationServiceMessenger } from './AnalyticsDataRegulationService.js'; import { AnalyticsDataRegulationService } from './AnalyticsDataRegulationService.js'; -import { DATA_DELETE_RESPONSE_STATUSES, DATA_DELETE_STATUSES } from './types.js'; +import { + DATA_DELETE_RESPONSE_STATUSES, + DATA_DELETE_STATUSES, +} from './types.js'; describe('AnalyticsDataRegulationService', () => { const segmentSourceId = 'test-source-id'; diff --git a/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationService.ts b/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationService.ts index b6b668a973a..8e7ae1ed8a6 100644 --- a/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationService.ts +++ b/packages/analytics-data-regulation-controller/src/AnalyticsDataRegulationService.ts @@ -7,7 +7,10 @@ import type { Messenger } from '@metamask/messenger'; import type { IDisposable } from 'cockatiel'; import type { AnalyticsDataRegulationServiceMethodActions } from './AnalyticsDataRegulationService-method-action-types.js'; -import { DATA_DELETE_RESPONSE_STATUSES, DATA_DELETE_STATUSES } from './types.js'; +import { + DATA_DELETE_RESPONSE_STATUSES, + DATA_DELETE_STATUSES, +} from './types.js'; import type { DataDeleteStatus } from './types.js'; /** diff --git a/packages/analytics-data-regulation-controller/src/index.ts b/packages/analytics-data-regulation-controller/src/index.ts index c6eaeaf275a..b0b59ec77f9 100644 --- a/packages/analytics-data-regulation-controller/src/index.ts +++ b/packages/analytics-data-regulation-controller/src/index.ts @@ -18,7 +18,10 @@ export { type DataDeleteStatus, type DataDeleteResponseStatus, } from './types.js'; -export type { DeleteRegulationResponse, DeleteRegulationStatus } from './types.js'; +export type { + DeleteRegulationResponse, + DeleteRegulationStatus, +} from './types.js'; export type { AnalyticsDataRegulationControllerState } from './AnalyticsDataRegulationController.js'; diff --git a/packages/analytics-data-regulation-controller/src/selectors.test.ts b/packages/analytics-data-regulation-controller/src/selectors.test.ts index 9e3f85a118c..b8d4af8ec7c 100644 --- a/packages/analytics-data-regulation-controller/src/selectors.test.ts +++ b/packages/analytics-data-regulation-controller/src/selectors.test.ts @@ -1,7 +1,7 @@ import { analyticsDataRegulationControllerSelectors, getDefaultAnalyticsDataRegulationControllerState, -} from "./..js"; +} from './..js'; import type { AnalyticsDataRegulationControllerState } from './AnalyticsDataRegulationController.js'; describe('analyticsDataRegulationControllerSelectors', () => { From 4ae40bda0e20d5a8115e327e5b57836928b79c21 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:34:10 +0200 Subject: [PATCH 039/136] Add `jest` global import to `approval-controller` tests --- packages/approval-controller/package.json | 1 + .../src/ApprovalController.test.ts | 17 +++++++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/packages/approval-controller/package.json b/packages/approval-controller/package.json index 6faba5477b5..cabab4d3af1 100644 --- a/packages/approval-controller/package.json +++ b/packages/approval-controller/package.json @@ -55,6 +55,7 @@ "nanoid": "^3.3.8" }, "devDependencies": { + "@jest/globals": "^30.4.1", "@metamask/auto-changelog": "^6.1.0", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/approval-controller/src/ApprovalController.test.ts b/packages/approval-controller/src/ApprovalController.test.ts index 3e4656765f1..87fab488065 100644 --- a/packages/approval-controller/src/ApprovalController.test.ts +++ b/packages/approval-controller/src/ApprovalController.test.ts @@ -1,5 +1,6 @@ /* eslint-disable jest/expect-expect */ +import { jest } from '@jest/globals'; import { deriveStateFromMetadata } from '@metamask/base-controller'; import { MOCK_ANY_NAMESPACE, Messenger } from '@metamask/messenger'; import type { @@ -1576,7 +1577,7 @@ describe('approval controller', () => { describe('success', () => { it('adds request with result success approval type', async () => { // TODO: Either fix this lint violation or explain why it's necessary to ignore. - + // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.showSuccess(SUCCESS_OPTIONS_MOCK); expectRequestAdded(APPROVAL_TYPE_RESULT_SUCCESS, SUCCESS_OPTIONS_MOCK); @@ -1584,7 +1585,7 @@ describe('approval controller', () => { it('adds request with no options', async () => { // TODO: Either fix this lint violation or explain why it's necessary to ignore. - + // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.showSuccess(); @@ -1598,7 +1599,7 @@ describe('approval controller', () => { it('only includes relevant options in request data', async () => { // TODO: Either fix this lint violation or explain why it's necessary to ignore. - + // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.showSuccess({ ...SUCCESS_OPTIONS_MOCK, @@ -1614,7 +1615,7 @@ describe('approval controller', () => { it('shows approval request', async () => { // TODO: Either fix this lint violation or explain why it's necessary to ignore. - + // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.showSuccess(SUCCESS_OPTIONS_MOCK); expect(showApprovalRequest).toHaveBeenCalledTimes(1); @@ -1650,7 +1651,7 @@ describe('approval controller', () => { describe('error', () => { it('adds request with result error approval type', async () => { // TODO: Either fix this lint violation or explain why it's necessary to ignore. - + // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.showError(ERROR_OPTIONS_MOCK); expectRequestAdded(APPROVAL_TYPE_RESULT_ERROR, ERROR_OPTIONS_MOCK); @@ -1658,7 +1659,7 @@ describe('approval controller', () => { it('adds request with no options', async () => { // TODO: Either fix this lint violation or explain why it's necessary to ignore. - + // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.showError(); @@ -1672,7 +1673,7 @@ describe('approval controller', () => { it('only includes relevant options in request data', async () => { // TODO: Either fix this lint violation or explain why it's necessary to ignore. - + // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.showError({ ...ERROR_OPTIONS_MOCK, @@ -1688,7 +1689,7 @@ describe('approval controller', () => { it('shows approval request', async () => { // TODO: Either fix this lint violation or explain why it's necessary to ignore. - + // eslint-disable-next-line @typescript-eslint/no-floating-promises approvalController.showError(ERROR_OPTIONS_MOCK); expect(showApprovalRequest).toHaveBeenCalledTimes(1); From d71d8f21565b368249817384960c7d7a78f8b23a Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:34:10 +0200 Subject: [PATCH 040/136] Add `jest` global import to `compliance-controller` tests --- packages/compliance-controller/package.json | 1 + .../compliance-controller/src/ComplianceController.test.ts | 6 +++++- .../compliance-controller/src/ComplianceService.test.ts | 1 + packages/compliance-controller/src/index.ts | 5 ++++- 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/compliance-controller/package.json b/packages/compliance-controller/package.json index bf962fa9ef9..9f5255e2700 100644 --- a/packages/compliance-controller/package.json +++ b/packages/compliance-controller/package.json @@ -56,6 +56,7 @@ "reselect": "^5.1.1" }, "devDependencies": { + "@jest/globals": "^30.4.1", "@metamask/auto-changelog": "^6.1.0", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/compliance-controller/src/ComplianceController.test.ts b/packages/compliance-controller/src/ComplianceController.test.ts index b566ce46ca0..35378071832 100644 --- a/packages/compliance-controller/src/ComplianceController.test.ts +++ b/packages/compliance-controller/src/ComplianceController.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; import { deriveStateFromMetadata } from '@metamask/base-controller'; import { toChecksumHexAddress } from '@metamask/controller-utils'; import { Messenger, MOCK_ANY_NAMESPACE } from '@metamask/messenger'; @@ -9,7 +10,10 @@ import type { import { ComplianceController } from './ComplianceController.js'; import type { ComplianceControllerMessenger } from './ComplianceController.js'; -import { selectAreAnyWalletsBlocked, selectIsWalletBlocked } from './selectors.js'; +import { + selectAreAnyWalletsBlocked, + selectIsWalletBlocked, +} from './selectors.js'; const LOWERCASE_EVM_ADDRESS = '0x4e1ff7229bddaf0a73df183a88d9c3a04cc975e0'; const CHECKSUM_EVM_ADDRESS = toChecksumHexAddress(LOWERCASE_EVM_ADDRESS); diff --git a/packages/compliance-controller/src/ComplianceService.test.ts b/packages/compliance-controller/src/ComplianceService.test.ts index 378c2ba6b6d..8848610312e 100644 --- a/packages/compliance-controller/src/ComplianceService.test.ts +++ b/packages/compliance-controller/src/ComplianceService.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; import { HttpError } from '@metamask/controller-utils'; import { Messenger, MOCK_ANY_NAMESPACE } from '@metamask/messenger'; import type { diff --git a/packages/compliance-controller/src/index.ts b/packages/compliance-controller/src/index.ts index 77fba7dde37..c28a9c5e41e 100644 --- a/packages/compliance-controller/src/index.ts +++ b/packages/compliance-controller/src/index.ts @@ -27,5 +27,8 @@ export { ComplianceController, getDefaultComplianceControllerState, } from './ComplianceController.js'; -export { selectAreAnyWalletsBlocked, selectIsWalletBlocked } from './selectors.js'; +export { + selectAreAnyWalletsBlocked, + selectIsWalletBlocked, +} from './selectors.js'; export type { WalletComplianceStatus } from './types.js'; From 693d412238c0d5a566c7b87f4b6c1eac07310f1c Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:34:10 +0200 Subject: [PATCH 041/136] Add `jest` global import to `connectivity-controller` tests --- packages/connectivity-controller/package.json | 1 + .../connectivity-controller/src/ConnectivityController.test.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/connectivity-controller/package.json b/packages/connectivity-controller/package.json index 1be74607c5b..acff6d0d06e 100644 --- a/packages/connectivity-controller/package.json +++ b/packages/connectivity-controller/package.json @@ -53,6 +53,7 @@ "reselect": "^5.1.1" }, "devDependencies": { + "@jest/globals": "^30.4.1", "@metamask/auto-changelog": "^6.1.0", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/connectivity-controller/src/ConnectivityController.test.ts b/packages/connectivity-controller/src/ConnectivityController.test.ts index 0c5acee09c9..56ab109a270 100644 --- a/packages/connectivity-controller/src/ConnectivityController.test.ts +++ b/packages/connectivity-controller/src/ConnectivityController.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; import { deriveStateFromMetadata } from '@metamask/base-controller'; import { Messenger, MOCK_ANY_NAMESPACE } from '@metamask/messenger'; import type { From ec7583f0b0588586423ffeb375b108de5206d0fe Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:34:11 +0200 Subject: [PATCH 042/136] Add `jest` global import to `geolocation-controller` tests --- packages/geolocation-controller/package.json | 1 + .../geolocation-controller/src/GeolocationController.test.ts | 1 + packages/geolocation-controller/src/GeolocationController.ts | 2 +- .../src/geolocation-api-service/geolocation-api-service.test.ts | 1 + 4 files changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/geolocation-controller/package.json b/packages/geolocation-controller/package.json index 4ea3a7bb77b..659d6ab2674 100644 --- a/packages/geolocation-controller/package.json +++ b/packages/geolocation-controller/package.json @@ -53,6 +53,7 @@ "@metamask/messenger": "^2.0.0" }, "devDependencies": { + "@jest/globals": "^30.4.1", "@metamask/auto-changelog": "^6.1.0", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/geolocation-controller/src/GeolocationController.test.ts b/packages/geolocation-controller/src/GeolocationController.test.ts index dcb8262a959..3fa484afd20 100644 --- a/packages/geolocation-controller/src/GeolocationController.test.ts +++ b/packages/geolocation-controller/src/GeolocationController.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; import { deriveStateFromMetadata } from '@metamask/base-controller'; import { Messenger, MOCK_ANY_NAMESPACE } from '@metamask/messenger'; import type { diff --git a/packages/geolocation-controller/src/GeolocationController.ts b/packages/geolocation-controller/src/GeolocationController.ts index 357c7f7486b..cd1ba1a53c3 100644 --- a/packages/geolocation-controller/src/GeolocationController.ts +++ b/packages/geolocation-controller/src/GeolocationController.ts @@ -6,8 +6,8 @@ import type { import { BaseController } from '@metamask/base-controller'; import type { Messenger } from '@metamask/messenger'; -import { UNKNOWN_LOCATION } from './geolocation-api-service/geolocation-api-service.js'; import type { GeolocationApiServiceFetchGeolocationAction } from './geolocation-api-service/geolocation-api-service-method-action-types.js'; +import { UNKNOWN_LOCATION } from './geolocation-api-service/geolocation-api-service.js'; import type { GeolocationControllerMethodActions } from './GeolocationController-method-action-types.js'; import type { GeolocationRequestStatus } from './types.js'; diff --git a/packages/geolocation-controller/src/geolocation-api-service/geolocation-api-service.test.ts b/packages/geolocation-controller/src/geolocation-api-service/geolocation-api-service.test.ts index ed89b92c408..ab4555e4c31 100644 --- a/packages/geolocation-controller/src/geolocation-api-service/geolocation-api-service.test.ts +++ b/packages/geolocation-controller/src/geolocation-api-service/geolocation-api-service.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; import { HttpError } from '@metamask/controller-utils'; import { Messenger, MOCK_ANY_NAMESPACE } from '@metamask/messenger'; import type { From 4efa2db1663addd1c9d77f88b01100c1abd02f07 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:36:18 +0200 Subject: [PATCH 043/136] Fix ESLint errors for `keyring-controller` Add `.js` extensions to relative imports. --- packages/keyring-controller/package.json | 2 +- .../KeyringController-method-action-types.ts | 2 +- .../src/KeyringController.test.ts | 24 +++++++++---------- .../src/KeyringController.ts | 13 +++++----- .../keyring-controller/src/errors.test.ts | 4 ++-- packages/keyring-controller/src/errors.ts | 2 +- packages/keyring-controller/src/index.ts | 10 ++++---- .../tests/mocks/mockEncryptor.ts | 4 ++-- 8 files changed, 31 insertions(+), 30 deletions(-) diff --git a/packages/keyring-controller/package.json b/packages/keyring-controller/package.json index 70c013f0f05..a7a1f8c36a6 100644 --- a/packages/keyring-controller/package.json +++ b/packages/keyring-controller/package.json @@ -62,7 +62,7 @@ "async-mutex": "^0.5.0", "ethereumjs-wallet": "^1.0.1", "immer": "^9.0.6", - "lodash": "^4.17.21", + "lodash-es": "^4.17.21", "ulid": "^2.3.0" }, "devDependencies": { diff --git a/packages/keyring-controller/src/KeyringController-method-action-types.ts b/packages/keyring-controller/src/KeyringController-method-action-types.ts index b469bc643db..8b8bf1d764f 100644 --- a/packages/keyring-controller/src/KeyringController-method-action-types.ts +++ b/packages/keyring-controller/src/KeyringController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { KeyringController } from './KeyringController'; +import type { KeyringController } from './KeyringController.js'; /** * Adds a new account to the default (first) HD seed phrase keyring. diff --git a/packages/keyring-controller/src/KeyringController.test.ts b/packages/keyring-controller/src/KeyringController.test.ts index 1052dd7b082..59bd5ed705c 100644 --- a/packages/keyring-controller/src/KeyringController.test.ts +++ b/packages/keyring-controller/src/KeyringController.test.ts @@ -30,17 +30,17 @@ import MockEncryptor, { DECRYPTION_ERROR, MOCK_ENCRYPTION_KEY, SALT, -} from '../tests/mocks/mockEncryptor'; -import { MockErc4337Keyring } from '../tests/mocks/mockErc4337Keyring'; +} from '../tests/mocks/mockEncryptor.js'; +import { MockErc4337Keyring } from '../tests/mocks/mockErc4337Keyring.js'; import { HardwareWalletError, MockHardwareKeyring, -} from '../tests/mocks/mockHardwareKeyring'; -import { MockKeyring } from '../tests/mocks/mockKeyring'; -import MockShallowKeyring from '../tests/mocks/mockShallowKeyring'; -import { buildMockTransaction } from '../tests/mocks/mockTransaction'; -import { KeyringControllerErrorMessage } from './constants'; -import { KeyringControllerError } from './errors'; +} from '../tests/mocks/mockHardwareKeyring.js'; +import { MockKeyring } from '../tests/mocks/mockKeyring.js'; +import MockShallowKeyring from '../tests/mocks/mockShallowKeyring.js'; +import { buildMockTransaction } from '../tests/mocks/mockTransaction.js'; +import { KeyringControllerErrorMessage } from './constants.js'; +import { KeyringControllerError } from './errors.js'; import type { KeyringControllerEvents, KeyringControllerMessenger, @@ -51,14 +51,14 @@ import type { SerializedKeyring, KeyringSelector, KeyringSelectorV2, -} from './KeyringController'; +} from './KeyringController.js'; import { AccountImportStrategy, KeyringController, KeyringTypes, isCustodyKeyring, keyringBuilderFactory, -} from './KeyringController'; +} from './KeyringController.js'; type AllKeyringControllerActions = MessengerActions; @@ -1326,8 +1326,8 @@ describe('KeyringController', () => { const normalizedInitialAccounts = controller.state.keyrings[0].accounts.map(normalize); const keyring = (await controller.getKeyringForAccount( - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - normalizedInitialAccounts[0]!, + + normalizedInitialAccounts[0], )) as EthKeyring; expect(keyring.type).toBe('HD Key Tree'); expect(await keyring.getAccounts()).toStrictEqual( diff --git a/packages/keyring-controller/src/KeyringController.ts b/packages/keyring-controller/src/KeyringController.ts index a16ce8802bf..370cb14a432 100644 --- a/packages/keyring-controller/src/KeyringController.ts +++ b/packages/keyring-controller/src/KeyringController.ts @@ -39,19 +39,19 @@ import { Mutex } from 'async-mutex'; import type { MutexInterface } from 'async-mutex'; import Wallet, { thirdparty as importers } from 'ethereumjs-wallet'; import type { Patch } from 'immer'; -import { cloneDeep } from 'lodash'; +import { cloneDeep } from 'lodash-es'; // When generating a ULID within the same millisecond, monotonicFactory provides some guarantees regarding sort order. import { ulid } from 'ulid'; -import { KeyringControllerErrorMessage } from './constants'; -import { KeyringControllerError } from './errors'; -import type { KeyringControllerMethodActions } from './KeyringController-method-action-types'; +import { KeyringControllerErrorMessage } from './constants.js'; +import { KeyringControllerError } from './errors.js'; +import type { KeyringControllerMethodActions } from './KeyringController-method-action-types.js'; import type { Eip7702AuthorizationParams, Credentials, PersonalMessageParams, TypedMessageParams, -} from './types'; +} from './types.js'; const name = 'KeyringController'; @@ -1376,7 +1376,8 @@ export class KeyringController< try { wallet = importers.fromEtherWallet(input, password); } catch { - wallet = wallet ?? (await Wallet.fromV3(input, password, true)); + // eslint-disable-next-line @typescript-eslint/no-unsafe-call + wallet = wallet ?? (await (Wallet as unknown as typeof Wallet.default).fromV3(input, password, true)); } privateKey = bytesToHex(new Uint8Array(wallet.getPrivateKey())); break; diff --git a/packages/keyring-controller/src/errors.test.ts b/packages/keyring-controller/src/errors.test.ts index bfa8f41cdfb..21426f3d5dc 100644 --- a/packages/keyring-controller/src/errors.test.ts +++ b/packages/keyring-controller/src/errors.test.ts @@ -1,9 +1,9 @@ -import { KeyringControllerErrorMessage } from './constants'; +import { KeyringControllerErrorMessage } from './constants.js'; import { isKeyringControllerError, isKeyringNotFoundError, KeyringControllerError, -} from './errors'; +} from './errors.js'; describe('isKeyringControllerError', () => { it('returns true for a KeyringControllerError', () => { diff --git a/packages/keyring-controller/src/errors.ts b/packages/keyring-controller/src/errors.ts index 3d81c18618f..e080719aa15 100644 --- a/packages/keyring-controller/src/errors.ts +++ b/packages/keyring-controller/src/errors.ts @@ -1,4 +1,4 @@ -import { KeyringControllerErrorMessage } from './constants'; +import { KeyringControllerErrorMessage } from './constants.js'; /** * Options for creating a KeyringControllerError. diff --git a/packages/keyring-controller/src/index.ts b/packages/keyring-controller/src/index.ts index 4c90ec97036..f1394113e80 100644 --- a/packages/keyring-controller/src/index.ts +++ b/packages/keyring-controller/src/index.ts @@ -1,4 +1,4 @@ -export * from './KeyringController'; +export * from './KeyringController.js'; export type { KeyringControllerAddNewAccountAction, KeyringControllerCreateNewVaultAndRestoreAction, @@ -35,7 +35,7 @@ export type { KeyringControllerExportEncryptionKeyAction, KeyringControllerSubmitPasswordAction, KeyringControllerGetAccountKeyringTypeAction, -} from './KeyringController-method-action-types'; -export type * from './types'; -export * from './errors'; -export { KeyringControllerErrorMessage } from './constants'; +} from './KeyringController-method-action-types.js'; +export type * from './types.js'; +export * from './errors.js'; +export { KeyringControllerErrorMessage } from './constants.js'; diff --git a/packages/keyring-controller/tests/mocks/mockEncryptor.ts b/packages/keyring-controller/tests/mocks/mockEncryptor.ts index 4b075f2b056..92e3acd7382 100644 --- a/packages/keyring-controller/tests/mocks/mockEncryptor.ts +++ b/packages/keyring-controller/tests/mocks/mockEncryptor.ts @@ -6,9 +6,9 @@ import type { EncryptionResult, } from '@metamask/browser-passworder'; import type { Json } from '@metamask/utils'; -import { isEqual } from 'lodash'; +import { isEqual } from 'lodash-es'; -import type { Encryptor } from '../../src/KeyringController'; +import type { Encryptor } from '../../src/KeyringController.js'; export const PASSWORD = 'password123'; export const SALT = 'salt'; From 5edaca1b84c231d203997c0589148d6b5dbf852d Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:36:18 +0200 Subject: [PATCH 044/136] Fix ESLint errors for `logging-controller` Add `.js` extensions to relative imports. --- .../src/LoggingController-method-action-types.ts | 2 +- .../logging-controller/src/LoggingController.test.ts | 8 ++++---- packages/logging-controller/src/LoggingController.ts | 4 ++-- packages/logging-controller/src/index.ts | 6 +++--- packages/logging-controller/src/logTypes/EthSignLog.ts | 2 +- packages/logging-controller/src/logTypes/GenericLog.ts | 2 +- packages/logging-controller/src/logTypes/index.ts | 10 +++++----- 7 files changed, 17 insertions(+), 17 deletions(-) diff --git a/packages/logging-controller/src/LoggingController-method-action-types.ts b/packages/logging-controller/src/LoggingController-method-action-types.ts index 74d41e3e6e7..3e2fd71b6aa 100644 --- a/packages/logging-controller/src/LoggingController-method-action-types.ts +++ b/packages/logging-controller/src/LoggingController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { LoggingController } from './LoggingController'; +import type { LoggingController } from './LoggingController.js'; /** * Add log to the state. diff --git a/packages/logging-controller/src/LoggingController.test.ts b/packages/logging-controller/src/LoggingController.test.ts index 43fd99d7a7c..3e9d71c737b 100644 --- a/packages/logging-controller/src/LoggingController.test.ts +++ b/packages/logging-controller/src/LoggingController.test.ts @@ -7,10 +7,10 @@ import type { } from '@metamask/messenger'; import * as uuid from 'uuid'; -import type { LoggingControllerMessenger } from './LoggingController'; -import { LoggingController } from './LoggingController'; -import { LogType } from './logTypes'; -import { SigningMethod, SigningStage } from './logTypes/EthSignLog'; +import type { LoggingControllerMessenger } from './LoggingController.js'; +import { LoggingController } from './LoggingController.js'; +import { LogType } from './logTypes.js'; +import { SigningMethod, SigningStage } from './logTypes/EthSignLog.js'; jest.mock('uuid', () => { return { diff --git a/packages/logging-controller/src/LoggingController.ts b/packages/logging-controller/src/LoggingController.ts index 55c4a7bbb3b..f950cba141a 100644 --- a/packages/logging-controller/src/LoggingController.ts +++ b/packages/logging-controller/src/LoggingController.ts @@ -7,8 +7,8 @@ import { BaseController } from '@metamask/base-controller'; import type { Messenger } from '@metamask/messenger'; import { v1 as random } from 'uuid'; -import type { LoggingControllerMethodActions } from './LoggingController-method-action-types'; -import type { Log } from './logTypes'; +import type { LoggingControllerMethodActions } from './LoggingController-method-action-types.js'; +import type { Log } from './logTypes/index.js'; /** * LogEntry is the entry that will be added to the logging controller state. diff --git a/packages/logging-controller/src/index.ts b/packages/logging-controller/src/index.ts index aaf85b45b3b..70307ac953c 100644 --- a/packages/logging-controller/src/index.ts +++ b/packages/logging-controller/src/index.ts @@ -1,6 +1,6 @@ -export * from './LoggingController'; +export * from './LoggingController.js'; export type { LoggingControllerAddAction, LoggingControllerClearAction, -} from './LoggingController-method-action-types'; -export * from './logTypes'; +} from './LoggingController-method-action-types.js'; +export type * from './logTypes/index.js'; diff --git a/packages/logging-controller/src/logTypes/EthSignLog.ts b/packages/logging-controller/src/logTypes/EthSignLog.ts index 4c90e49ce46..7c58744c12c 100644 --- a/packages/logging-controller/src/logTypes/EthSignLog.ts +++ b/packages/logging-controller/src/logTypes/EthSignLog.ts @@ -1,4 +1,4 @@ -import type { LogType } from './LogType'; +import type { LogType } from './LogType.js'; /** * An enum of the signing method types that we are interested in logging. diff --git a/packages/logging-controller/src/logTypes/GenericLog.ts b/packages/logging-controller/src/logTypes/GenericLog.ts index 9a6e7870cad..2f398143658 100644 --- a/packages/logging-controller/src/logTypes/GenericLog.ts +++ b/packages/logging-controller/src/logTypes/GenericLog.ts @@ -1,4 +1,4 @@ -import type { LogType } from './LogType'; +import type { LogType } from './LogType.js'; /* * The logging controller can handle any kind of log statement that may benefit diff --git a/packages/logging-controller/src/logTypes/index.ts b/packages/logging-controller/src/logTypes/index.ts index e34adbc63a8..c8dc8436593 100644 --- a/packages/logging-controller/src/logTypes/index.ts +++ b/packages/logging-controller/src/logTypes/index.ts @@ -1,5 +1,5 @@ -import type { EthSignLog } from './EthSignLog'; -import type { GenericLog } from './GenericLog'; +import type { EthSignLog } from './EthSignLog.js'; +import type { GenericLog } from './GenericLog.js'; /** * Union of all possible log data structures. @@ -9,6 +9,6 @@ export type Log = EthSignLog | GenericLog; /** * Export all other types from these files for usage by clients */ -export * from './EthSignLog'; -export type * from './GenericLog'; -export * from './LogType'; +export * from './EthSignLog.js'; +export type * from './GenericLog.js'; +export * from './LogType.js'; From fa6a255300f262a7d35c704f53011db40b739c00 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:36:18 +0200 Subject: [PATCH 045/136] Fix ESLint errors for `message-manager` Add `.js` extensions to relative imports. --- .../message-manager/src/AbstractMessageManager.test.ts | 4 ++-- .../message-manager/src/DecryptMessageManager.test.ts | 4 ++-- packages/message-manager/src/DecryptMessageManager.ts | 6 +++--- .../src/EncryptionPublicKeyManager.test.ts | 4 ++-- .../message-manager/src/EncryptionPublicKeyManager.ts | 6 +++--- packages/message-manager/src/index.ts | 8 ++++---- packages/message-manager/src/types.ts | 2 +- packages/message-manager/src/utils.test.ts | 2 +- packages/message-manager/src/utils.ts | 4 ++-- 9 files changed, 20 insertions(+), 20 deletions(-) diff --git a/packages/message-manager/src/AbstractMessageManager.test.ts b/packages/message-manager/src/AbstractMessageManager.test.ts index bd12258372f..5ecae7c2b86 100644 --- a/packages/message-manager/src/AbstractMessageManager.test.ts +++ b/packages/message-manager/src/AbstractMessageManager.test.ts @@ -6,14 +6,14 @@ import type { import { ApprovalType } from '@metamask/controller-utils'; import type { Messenger } from '@metamask/messenger'; -import { AbstractMessageManager } from './AbstractMessageManager'; +import { AbstractMessageManager } from './AbstractMessageManager.js'; import type { AbstractMessage, AbstractMessageParams, MessageManagerState, MessageRequest, SecurityProviderRequest, -} from './AbstractMessageManager'; +} from './AbstractMessageManager.js'; type ConcreteMessage = AbstractMessage & { messageParams: ConcreteMessageParams; diff --git a/packages/message-manager/src/DecryptMessageManager.test.ts b/packages/message-manager/src/DecryptMessageManager.test.ts index 1e59533ae5f..df9e5e47368 100644 --- a/packages/message-manager/src/DecryptMessageManager.test.ts +++ b/packages/message-manager/src/DecryptMessageManager.test.ts @@ -1,5 +1,5 @@ -import { DecryptMessageManager } from './DecryptMessageManager'; -import type { DecryptMessageManagerMessenger } from './DecryptMessageManager'; +import { DecryptMessageManager } from './DecryptMessageManager.js'; +import type { DecryptMessageManagerMessenger } from './DecryptMessageManager.js'; const mockMessenger = { registerActionHandler: jest.fn(), diff --git a/packages/message-manager/src/DecryptMessageManager.ts b/packages/message-manager/src/DecryptMessageManager.ts index 11c48f3941d..0292ba1726c 100644 --- a/packages/message-manager/src/DecryptMessageManager.ts +++ b/packages/message-manager/src/DecryptMessageManager.ts @@ -13,9 +13,9 @@ import type { MessageManagerState, MessageRequest, SecurityProviderRequest, -} from './AbstractMessageManager'; -import { AbstractMessageManager } from './AbstractMessageManager'; -import { normalizeMessageData, validateDecryptedMessageData } from './utils'; +} from './AbstractMessageManager.js'; +import { AbstractMessageManager } from './AbstractMessageManager.js'; +import { normalizeMessageData, validateDecryptedMessageData } from './utils.js'; const managerName = 'DecryptMessageManager'; diff --git a/packages/message-manager/src/EncryptionPublicKeyManager.test.ts b/packages/message-manager/src/EncryptionPublicKeyManager.test.ts index 81735a5fdaa..740a9093564 100644 --- a/packages/message-manager/src/EncryptionPublicKeyManager.test.ts +++ b/packages/message-manager/src/EncryptionPublicKeyManager.test.ts @@ -1,5 +1,5 @@ -import { EncryptionPublicKeyManager } from './EncryptionPublicKeyManager'; -import type { EncryptionPublicKeyManagerMessenger } from './EncryptionPublicKeyManager'; +import { EncryptionPublicKeyManager } from './EncryptionPublicKeyManager.js'; +import type { EncryptionPublicKeyManagerMessenger } from './EncryptionPublicKeyManager.js'; const mockMessenger = { registerActionHandler: jest.fn(), diff --git a/packages/message-manager/src/EncryptionPublicKeyManager.ts b/packages/message-manager/src/EncryptionPublicKeyManager.ts index 371747725f2..c3464096dfb 100644 --- a/packages/message-manager/src/EncryptionPublicKeyManager.ts +++ b/packages/message-manager/src/EncryptionPublicKeyManager.ts @@ -12,9 +12,9 @@ import type { MessageManagerState, MessageRequest, SecurityProviderRequest, -} from './AbstractMessageManager'; -import { AbstractMessageManager } from './AbstractMessageManager'; -import { validateEncryptionPublicKeyMessageData } from './utils'; +} from './AbstractMessageManager.js'; +import { AbstractMessageManager } from './AbstractMessageManager.js'; +import { validateEncryptionPublicKeyMessageData } from './utils.js'; const managerName = 'EncryptionPublicKeyManager'; diff --git a/packages/message-manager/src/index.ts b/packages/message-manager/src/index.ts index bdcd9e46a88..0ab01d5a3a0 100644 --- a/packages/message-manager/src/index.ts +++ b/packages/message-manager/src/index.ts @@ -1,4 +1,4 @@ -export * from './AbstractMessageManager'; -export * from './EncryptionPublicKeyManager'; -export * from './DecryptMessageManager'; -export type * from './types'; +export * from './AbstractMessageManager.js'; +export * from './EncryptionPublicKeyManager.js'; +export * from './DecryptMessageManager.js'; +export type * from './types.js'; diff --git a/packages/message-manager/src/types.ts b/packages/message-manager/src/types.ts index dc580bd61d5..81726bbcf7f 100644 --- a/packages/message-manager/src/types.ts +++ b/packages/message-manager/src/types.ts @@ -1,6 +1,6 @@ import type { SIWEMessage } from '@metamask/controller-utils'; -import type { AbstractMessageParams } from './AbstractMessageManager'; +import type { AbstractMessageParams } from './AbstractMessageManager.js'; // Below types are have been moved into KeyringController, but are still exported here for backwards compatibility. diff --git a/packages/message-manager/src/utils.test.ts b/packages/message-manager/src/utils.test.ts index 01ac1327e08..936dab2c751 100644 --- a/packages/message-manager/src/utils.test.ts +++ b/packages/message-manager/src/utils.test.ts @@ -1,4 +1,4 @@ -import * as util from './utils'; +import * as util from './utils.js'; describe('utils', () => { it('normalizeMessageData', () => { diff --git a/packages/message-manager/src/utils.ts b/packages/message-manager/src/utils.ts index caa3aed7459..3fafade1e81 100644 --- a/packages/message-manager/src/utils.ts +++ b/packages/message-manager/src/utils.ts @@ -1,8 +1,8 @@ import { isValidHexAddress } from '@metamask/controller-utils'; import { add0x, bytesToHex, remove0x } from '@metamask/utils'; -import type { DecryptMessageParams } from './DecryptMessageManager'; -import type { EncryptionPublicKeyParams } from './EncryptionPublicKeyManager'; +import type { DecryptMessageParams } from './DecryptMessageManager.js'; +import type { EncryptionPublicKeyParams } from './EncryptionPublicKeyManager.js'; const hexRe = /^[0-9A-Fa-f]+$/gu; /** From fa3b360d6fa3db98b85e6f7ff3452cfc84d4fde2 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:36:18 +0200 Subject: [PATCH 046/136] Fix ESLint errors for `name-controller` Add `.js` extensions to relative imports and fix two `prefer-nullish-coalescing` violations. --- .../src/NameController-method-action-types.ts | 2 +- .../name-controller/src/NameController.test.ts | 8 ++++---- packages/name-controller/src/NameController.ts | 10 +++++----- packages/name-controller/src/index.ts | 14 +++++++------- packages/name-controller/src/providers/ens.test.ts | 4 ++-- packages/name-controller/src/providers/ens.ts | 6 +++--- .../src/providers/etherscan.test.ts | 8 ++++---- .../name-controller/src/providers/etherscan.ts | 10 +++++----- .../name-controller/src/providers/lens.test.ts | 6 +++--- packages/name-controller/src/providers/lens.ts | 8 ++++---- .../name-controller/src/providers/token.test.ts | 6 +++--- packages/name-controller/src/providers/token.ts | 8 ++++---- packages/name-controller/src/utils.test.ts | 2 +- 13 files changed, 46 insertions(+), 46 deletions(-) diff --git a/packages/name-controller/src/NameController-method-action-types.ts b/packages/name-controller/src/NameController-method-action-types.ts index d7a91815569..13f91e9c04d 100644 --- a/packages/name-controller/src/NameController-method-action-types.ts +++ b/packages/name-controller/src/NameController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { NameController } from './NameController'; +import type { NameController } from './NameController.js'; /** * Set the user specified name for a value. diff --git a/packages/name-controller/src/NameController.test.ts b/packages/name-controller/src/NameController.test.ts index 403688fd249..496557dd6ce 100644 --- a/packages/name-controller/src/NameController.test.ts +++ b/packages/name-controller/src/NameController.test.ts @@ -4,15 +4,15 @@ import type { SetNameRequest, UpdateProposedNamesRequest, NameControllerState, -} from './NameController'; +} from './NameController.js'; import { FALLBACK_VARIATION, NameController, NameOrigin, PROPOSED_NAME_EXPIRE_DURATION, -} from './NameController'; -import type { NameProvider } from './types'; -import { NameType } from './types'; +} from './NameController.js'; +import type { NameProvider } from './types.js'; +import { NameType } from './types.js'; const NAME_MOCK = 'TestName'; const PROPOSED_NAME_MOCK = 'TestProposedName'; diff --git a/packages/name-controller/src/NameController.ts b/packages/name-controller/src/NameController.ts index 1d9cb25c087..b6612cd8a42 100644 --- a/packages/name-controller/src/NameController.ts +++ b/packages/name-controller/src/NameController.ts @@ -6,14 +6,14 @@ import { BaseController } from '@metamask/base-controller'; import { isSafeDynamicKey } from '@metamask/controller-utils'; import type { Messenger } from '@metamask/messenger'; -import type { NameControllerMethodActions } from './NameController-method-action-types'; +import type { NameControllerMethodActions } from './NameController-method-action-types.js'; import type { NameProvider, NameProviderRequest, NameProviderResult, NameProviderSourceResult, -} from './types'; -import { NameType } from './types'; +} from './types.js'; +import { NameType } from './types.js'; export const FALLBACK_VARIATION = '*'; export const PROPOSED_NAME_EXPIRE_DURATION = 60 * 60 * 24; // 24 hours @@ -469,10 +469,10 @@ export class NameController extends BaseController< } this.update((state) => { - const typeEntries = state.names[type] || {}; + const typeEntries = state.names[type] ?? {}; state.names[type] = typeEntries; - const variationEntries = typeEntries[normalizedValue] || {}; + const variationEntries = typeEntries[normalizedValue] ?? {}; typeEntries[normalizedValue] = variationEntries; const entry = variationEntries[normalizedVariation] ?? { diff --git a/packages/name-controller/src/index.ts b/packages/name-controller/src/index.ts index 7a9bdceff5e..918c77eeb28 100644 --- a/packages/name-controller/src/index.ts +++ b/packages/name-controller/src/index.ts @@ -1,10 +1,10 @@ -export * from './NameController'; +export * from './NameController.js'; export type { NameControllerSetNameAction, NameControllerUpdateProposedNamesAction, -} from './NameController-method-action-types'; -export * from './types'; -export * from './providers/ens'; -export * from './providers/etherscan'; -export * from './providers/token'; -export * from './providers/lens'; +} from './NameController-method-action-types.js'; +export * from './types.js'; +export * from './providers/ens.js'; +export * from './providers/etherscan.js'; +export * from './providers/token.js'; +export * from './providers/lens.js'; diff --git a/packages/name-controller/src/providers/ens.test.ts b/packages/name-controller/src/providers/ens.test.ts index 126fb0cdcd7..147044a0d72 100644 --- a/packages/name-controller/src/providers/ens.test.ts +++ b/packages/name-controller/src/providers/ens.test.ts @@ -1,5 +1,5 @@ -import { NameType } from '../types'; -import { ENSNameProvider } from './ens'; +import { NameType } from '../types.js'; +import { ENSNameProvider } from './ens.js'; jest.mock('../util'); diff --git a/packages/name-controller/src/providers/ens.ts b/packages/name-controller/src/providers/ens.ts index 84f7df329df..7f96fc7bb33 100644 --- a/packages/name-controller/src/providers/ens.ts +++ b/packages/name-controller/src/providers/ens.ts @@ -1,11 +1,11 @@ -import { projectLogger, createModuleLogger } from '../logger'; +import { projectLogger, createModuleLogger } from '../logger.js'; import type { NameProvider, NameProviderMetadata, NameProviderRequest, NameProviderResult, -} from '../types'; -import { NameType } from '../types'; +} from '../types.js'; +import { NameType } from '../types.js'; export type ReverseLookupCallback = ( address: string, diff --git a/packages/name-controller/src/providers/etherscan.test.ts b/packages/name-controller/src/providers/etherscan.test.ts index 78ae2d42e41..44e0d394cab 100644 --- a/packages/name-controller/src/providers/etherscan.test.ts +++ b/packages/name-controller/src/providers/etherscan.test.ts @@ -1,7 +1,7 @@ -import { CHAIN_IDS } from '../constants'; -import { NameType } from '../types'; -import { handleFetch } from '../util'; -import { EtherscanNameProvider } from './etherscan'; +import { CHAIN_IDS } from '../constants.js'; +import { NameType } from '../types.js'; +import { handleFetch } from '../util.js'; +import { EtherscanNameProvider } from './etherscan.js'; jest.mock('../util'); diff --git a/packages/name-controller/src/providers/etherscan.ts b/packages/name-controller/src/providers/etherscan.ts index 9d26e5db03b..bb0a81134e2 100644 --- a/packages/name-controller/src/providers/etherscan.ts +++ b/packages/name-controller/src/providers/etherscan.ts @@ -1,15 +1,15 @@ import { Mutex } from 'async-mutex'; -import { ETHERSCAN_SUPPORTED_NETWORKS } from '../constants'; -import { createModuleLogger, projectLogger } from '../logger'; +import { ETHERSCAN_SUPPORTED_NETWORKS } from '../constants.js'; +import { createModuleLogger, projectLogger } from '../logger.js'; import type { NameProvider, NameProviderMetadata, NameProviderRequest, NameProviderResult, -} from '../types'; -import { NameType } from '../types'; -import { handleFetch, assertIsError } from '../util'; +} from '../types.js'; +import { NameType } from '../types.js'; +import { handleFetch, assertIsError } from '../util.js'; const ID = 'etherscan'; const LABEL = 'Etherscan (Verified Contract Name)'; diff --git a/packages/name-controller/src/providers/lens.test.ts b/packages/name-controller/src/providers/lens.test.ts index dc22770dbf3..8540260fc3a 100644 --- a/packages/name-controller/src/providers/lens.test.ts +++ b/packages/name-controller/src/providers/lens.test.ts @@ -1,6 +1,6 @@ -import { NameType } from '../types'; -import { graphQL } from '../util'; -import { LensNameProvider } from './lens'; +import { NameType } from '../types.js'; +import { graphQL } from '../util.js'; +import { LensNameProvider } from './lens.js'; jest.mock('../util'); diff --git a/packages/name-controller/src/providers/lens.ts b/packages/name-controller/src/providers/lens.ts index b3560c1e7f5..483d1c23705 100644 --- a/packages/name-controller/src/providers/lens.ts +++ b/packages/name-controller/src/providers/lens.ts @@ -1,12 +1,12 @@ -import { createModuleLogger, projectLogger } from '../logger'; +import { createModuleLogger, projectLogger } from '../logger.js'; import type { NameProvider, NameProviderMetadata, NameProviderRequest, NameProviderResult, -} from '../types'; -import { NameType } from '../types'; -import { graphQL } from '../util'; +} from '../types.js'; +import { NameType } from '../types.js'; +import { graphQL } from '../util.js'; const ID = 'lens'; const LABEL = 'Lens Protocol'; diff --git a/packages/name-controller/src/providers/token.test.ts b/packages/name-controller/src/providers/token.test.ts index 4215e2dfe51..a43eb46f747 100644 --- a/packages/name-controller/src/providers/token.test.ts +++ b/packages/name-controller/src/providers/token.test.ts @@ -1,6 +1,6 @@ -import { NameType } from '../types'; -import { handleFetch } from '../util'; -import { TokenNameProvider } from './token'; +import { NameType } from '../types.js'; +import { handleFetch } from '../util.js'; +import { TokenNameProvider } from './token.js'; jest.mock('../util'); diff --git a/packages/name-controller/src/providers/token.ts b/packages/name-controller/src/providers/token.ts index b082439caba..9ca9760acc4 100644 --- a/packages/name-controller/src/providers/token.ts +++ b/packages/name-controller/src/providers/token.ts @@ -1,12 +1,12 @@ -import { createModuleLogger, projectLogger } from '../logger'; +import { createModuleLogger, projectLogger } from '../logger.js'; import type { NameProvider, NameProviderMetadata, NameProviderRequest, NameProviderResult, -} from '../types'; -import { NameType } from '../types'; -import { handleFetch } from '../util'; +} from '../types.js'; +import { NameType } from '../types.js'; +import { handleFetch } from '../util.js'; const ID = 'token'; const LABEL = 'Blockchain (Token Name)'; diff --git a/packages/name-controller/src/utils.test.ts b/packages/name-controller/src/utils.test.ts index 44b498c6c7b..d7a7fa472ca 100644 --- a/packages/name-controller/src/utils.test.ts +++ b/packages/name-controller/src/utils.test.ts @@ -1,4 +1,4 @@ -import { assertIsError, graphQL } from './util'; +import { assertIsError, graphQL } from './util.js'; describe('Utils', () => { describe('graphQL', () => { From df90b8f7ef22cd6bd483ed6f8a82e6aee2cfc1ad Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:36:18 +0200 Subject: [PATCH 047/136] Fix ESLint errors for `passkey-controller` Add `.js` extensions to relative imports. --- .../PasskeyController-method-action-types.ts | 2 +- .../src/PasskeyController.test.ts | 16 +++++------ .../src/PasskeyController.ts | 28 +++++++++---------- .../src/ceremony-manager.test.ts | 2 +- .../src/ceremony-manager.ts | 2 +- .../passkey-controller/src/errors.test.ts | 4 +-- packages/passkey-controller/src/errors.ts | 2 +- packages/passkey-controller/src/index.ts | 14 +++++----- .../src/key-derivation.test.ts | 12 ++++---- .../passkey-controller/src/key-derivation.ts | 12 ++++---- packages/passkey-controller/src/logger.ts | 2 +- .../src/utils/crypto.test.ts | 4 +-- .../passkey-controller/src/utils/crypto.ts | 2 +- .../src/utils/encoding.test.ts | 2 +- .../decode-attestation-object.test.ts | 4 +-- .../src/webauthn/decode-attestation-object.ts | 2 +- .../webauthn/decode-client-data-json.test.ts | 2 +- .../src/webauthn/decode-client-data-json.ts | 4 +-- .../src/webauthn/match-expected-rp-id.test.ts | 2 +- .../src/webauthn/match-expected-rp-id.ts | 2 +- .../webauthn/parse-authenticator-data.test.ts | 4 +-- .../src/webauthn/parse-authenticator-data.ts | 2 +- .../passkey-controller/src/webauthn/types.ts | 2 +- .../verify-authentication-response.test.ts | 8 +++--- .../verify-authentication-response.ts | 16 +++++------ .../verify-registration-response.test.ts | 14 +++++----- .../webauthn/verify-registration-response.ts | 18 ++++++------ .../src/webauthn/verify-signature.test.ts | 6 ++-- .../src/webauthn/verify-signature.ts | 4 +-- 29 files changed, 97 insertions(+), 97 deletions(-) diff --git a/packages/passkey-controller/src/PasskeyController-method-action-types.ts b/packages/passkey-controller/src/PasskeyController-method-action-types.ts index fbf2b329ea6..be36cd986db 100644 --- a/packages/passkey-controller/src/PasskeyController-method-action-types.ts +++ b/packages/passkey-controller/src/PasskeyController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { PasskeyController } from './PasskeyController'; +import type { PasskeyController } from './PasskeyController.js'; /** * Whether a passkey is enrolled and vault key material is stored. diff --git a/packages/passkey-controller/src/PasskeyController.test.ts b/packages/passkey-controller/src/PasskeyController.test.ts index 75d6698b5a3..2bb7515b059 100644 --- a/packages/passkey-controller/src/PasskeyController.test.ts +++ b/packages/passkey-controller/src/PasskeyController.test.ts @@ -1,26 +1,26 @@ import { Messenger } from '@metamask/messenger'; -import { CEREMONY_MAX_AGE_MS, WEBAUTHN_TIMEOUT_MS } from './ceremony-manager'; +import { CEREMONY_MAX_AGE_MS, WEBAUTHN_TIMEOUT_MS } from './ceremony-manager.js'; import { PasskeyControllerErrorCode, PasskeyControllerErrorMessage, -} from './constants'; -import { PasskeyControllerError } from './errors'; +} from './constants.js'; +import { PasskeyControllerError } from './errors.js'; import { getDefaultPasskeyControllerState, passkeyControllerSelectors, PasskeyController, -} from './PasskeyController'; +} from './PasskeyController.js'; import type { PasskeyControllerMessenger, PasskeyControllerState, -} from './PasskeyController'; -import type { PasskeyRecord, PrfClientExtensionResults } from './types'; -import * as passkeyCrypto from './utils/crypto'; +} from './PasskeyController.js'; +import type { PasskeyRecord, PrfClientExtensionResults } from './types.js'; +import * as passkeyCrypto from './utils/crypto.js'; import type { PasskeyRegistrationResponse, PasskeyAuthenticationResponse, -} from './webauthn/types'; +} from './webauthn/types.js'; type ExtOutputsWithPrf = Record & PrfClientExtensionResults; diff --git a/packages/passkey-controller/src/PasskeyController.ts b/packages/passkey-controller/src/PasskeyController.ts index 6104d56a5e5..0ac0733f3d5 100644 --- a/packages/passkey-controller/src/PasskeyController.ts +++ b/packages/passkey-controller/src/PasskeyController.ts @@ -7,39 +7,39 @@ import { BaseController } from '@metamask/base-controller'; import type { Messenger } from '@metamask/messenger'; import { areUint8ArraysEqual, stringToBytes } from '@metamask/utils'; -import { WEBAUTHN_TIMEOUT_MS, CeremonyManager } from './ceremony-manager'; +import { WEBAUTHN_TIMEOUT_MS, CeremonyManager } from './ceremony-manager.js'; import { controllerName, PasskeyControllerErrorCode, PasskeyControllerErrorMessage, -} from './constants'; -import { PasskeyControllerError } from './errors'; -import { deriveKeyFromAuthenticationResponse } from './key-derivation'; -import { createModuleLogger, projectLogger } from './logger'; -import { PasskeyControllerMethodActions } from './PasskeyController-method-action-types'; +} from './constants.js'; +import { PasskeyControllerError } from './errors.js'; +import { deriveKeyFromAuthenticationResponse } from './key-derivation.js'; +import { createModuleLogger, projectLogger } from './logger.js'; +import { PasskeyControllerMethodActions } from './PasskeyController-method-action-types.js'; import type { AuthenticatorTransportFuture, PasskeyCredentialInfo, PasskeyKeyDerivation, PasskeyRecord, PrfClientExtensionResults, -} from './types'; +} from './types.js'; import { decryptWithKey, encryptWithKey, randomBytesToBase64URL, -} from './utils/crypto'; -import { base64URLToBytes, bytesToBase64URL } from './utils/encoding'; -import { COSEALG } from './webauthn/constants'; -import { decodeClientDataJSON } from './webauthn/decode-client-data-json'; +} from './utils/crypto.js'; +import { base64URLToBytes, bytesToBase64URL } from './utils/encoding.js'; +import { COSEALG } from './webauthn/constants.js'; +import { decodeClientDataJSON } from './webauthn/decode-client-data-json.js'; import type { PasskeyAuthenticationOptions, PasskeyAuthenticationResponse, PasskeyRegistrationOptions, PasskeyRegistrationResponse, -} from './webauthn/types'; -import { verifyAuthenticationResponse } from './webauthn/verify-authentication-response'; -import { verifyRegistrationResponse } from './webauthn/verify-registration-response'; +} from './webauthn/types.js'; +import { verifyAuthenticationResponse } from './webauthn/verify-authentication-response.js'; +import { verifyRegistrationResponse } from './webauthn/verify-registration-response.js'; export type PasskeyControllerState = { passkeyRecord: PasskeyRecord | null; diff --git a/packages/passkey-controller/src/ceremony-manager.test.ts b/packages/passkey-controller/src/ceremony-manager.test.ts index 8043eb5f7a5..90d21e143b8 100644 --- a/packages/passkey-controller/src/ceremony-manager.test.ts +++ b/packages/passkey-controller/src/ceremony-manager.test.ts @@ -2,7 +2,7 @@ import { CEREMONY_MAX_AGE_MS, CeremonyManager, MAX_CONCURRENT_PASSKEY_CEREMONIES, -} from './ceremony-manager'; +} from './ceremony-manager.js'; describe('CeremonyManager', () => { const baseReg = { userHandle: 'u' }; diff --git a/packages/passkey-controller/src/ceremony-manager.ts b/packages/passkey-controller/src/ceremony-manager.ts index 2e9aa5f368c..71bce5f686f 100644 --- a/packages/passkey-controller/src/ceremony-manager.ts +++ b/packages/passkey-controller/src/ceremony-manager.ts @@ -1,7 +1,7 @@ import type { PasskeyAuthenticationCeremony, PasskeyRegistrationCeremony, -} from './types'; +} from './types.js'; /** WebAuthn `timeout` for credential creation and assertion (ms). */ export const WEBAUTHN_TIMEOUT_MS = 60_000; diff --git a/packages/passkey-controller/src/errors.test.ts b/packages/passkey-controller/src/errors.test.ts index ccd249f4d01..ccc06f504ab 100644 --- a/packages/passkey-controller/src/errors.test.ts +++ b/packages/passkey-controller/src/errors.test.ts @@ -1,8 +1,8 @@ import { PasskeyControllerErrorCode, PasskeyControllerErrorMessage, -} from './constants'; -import { PasskeyControllerError } from './errors'; +} from './constants.js'; +import { PasskeyControllerError } from './errors.js'; describe('PasskeyControllerError', () => { it('sets code and cause from options', () => { diff --git a/packages/passkey-controller/src/errors.ts b/packages/passkey-controller/src/errors.ts index e0bbf6ebbe4..f6c08c25abb 100644 --- a/packages/passkey-controller/src/errors.ts +++ b/packages/passkey-controller/src/errors.ts @@ -1,4 +1,4 @@ -import type { PasskeyControllerErrorCode as PasskeyControllerErrorCodeType } from './constants'; +import type { PasskeyControllerErrorCode as PasskeyControllerErrorCodeType } from './constants.js'; /** * Options for creating a {@link PasskeyControllerError}. diff --git a/packages/passkey-controller/src/index.ts b/packages/passkey-controller/src/index.ts index d128b64b320..59d0e80dd7d 100644 --- a/packages/passkey-controller/src/index.ts +++ b/packages/passkey-controller/src/index.ts @@ -1,13 +1,13 @@ export { PasskeyControllerErrorCode, PasskeyControllerErrorMessage, -} from './constants'; -export { PasskeyControllerError } from './errors'; +} from './constants.js'; +export { PasskeyControllerError } from './errors.js'; export { PasskeyController, getDefaultPasskeyControllerState, passkeyControllerSelectors, -} from './PasskeyController'; +} from './PasskeyController.js'; export type { PasskeyControllerState, PasskeyControllerMessenger, @@ -15,7 +15,7 @@ export type { PasskeyControllerActions, PasskeyControllerStateChangedEvent, PasskeyControllerEvents, -} from './PasskeyController'; +} from './PasskeyController.js'; export type { PasskeyCredentialInfo, PasskeyDerivationMethod, @@ -23,13 +23,13 @@ export type { PasskeyRecord, PrfEvalExtension, PrfClientExtensionResults, -} from './types'; +} from './types.js'; export type { PasskeyRegistrationOptions, PasskeyRegistrationResponse, PasskeyAuthenticationOptions, PasskeyAuthenticationResponse, -} from './webauthn/types'; +} from './webauthn/types.js'; export type { PasskeyControllerIsPasskeyEnrolledAction, PasskeyControllerGenerateRegistrationOptionsAction, @@ -42,4 +42,4 @@ export type { PasskeyControllerRemovePasskeyAction, PasskeyControllerClearStateAction, PasskeyControllerDestroyAction, -} from './PasskeyController-method-action-types'; +} from './PasskeyController-method-action-types.js'; diff --git a/packages/passkey-controller/src/key-derivation.test.ts b/packages/passkey-controller/src/key-derivation.test.ts index 50cc9129191..d8b89b205df 100644 --- a/packages/passkey-controller/src/key-derivation.test.ts +++ b/packages/passkey-controller/src/key-derivation.test.ts @@ -1,9 +1,9 @@ -import { PasskeyControllerErrorMessage } from './constants'; -import { deriveKeyFromAuthenticationResponse } from './key-derivation'; -import { PasskeyRecord } from './types'; -import { deriveEncryptionKey } from './utils/crypto'; -import { base64URLToBytes } from './utils/encoding'; -import type { PasskeyAuthenticationResponse } from './webauthn/types'; +import { PasskeyControllerErrorMessage } from './constants.js'; +import { deriveKeyFromAuthenticationResponse } from './key-derivation.js'; +import { PasskeyRecord } from './types.js'; +import { deriveEncryptionKey } from './utils/crypto.js'; +import { base64URLToBytes } from './utils/encoding.js'; +import type { PasskeyAuthenticationResponse } from './webauthn/types.js'; function b64url(str: string): string { return btoa(str) diff --git a/packages/passkey-controller/src/key-derivation.ts b/packages/passkey-controller/src/key-derivation.ts index 5224f70f4ec..b9381d7ec56 100644 --- a/packages/passkey-controller/src/key-derivation.ts +++ b/packages/passkey-controller/src/key-derivation.ts @@ -1,12 +1,12 @@ import { PasskeyControllerErrorCode, PasskeyControllerErrorMessage, -} from './constants'; -import { PasskeyControllerError } from './errors'; -import type { PasskeyRecord, PrfClientExtensionResults } from './types'; -import { deriveEncryptionKey } from './utils/crypto'; -import { base64URLToBytes } from './utils/encoding'; -import type { PasskeyAuthenticationResponse } from './webauthn/types'; +} from './constants.js'; +import { PasskeyControllerError } from './errors.js'; +import type { PasskeyRecord, PrfClientExtensionResults } from './types.js'; +import { deriveEncryptionKey } from './utils/crypto.js'; +import { base64URLToBytes } from './utils/encoding.js'; +import type { PasskeyAuthenticationResponse } from './webauthn/types.js'; /** * Derives an AES-256 wrapping key from a WebAuthn authentication ceremony diff --git a/packages/passkey-controller/src/logger.ts b/packages/passkey-controller/src/logger.ts index 81fa93678f7..daf14c8fe3d 100644 --- a/packages/passkey-controller/src/logger.ts +++ b/packages/passkey-controller/src/logger.ts @@ -2,7 +2,7 @@ import { createProjectLogger, createModuleLogger } from '@metamask/utils'; -import { controllerName } from './constants'; +import { controllerName } from './constants.js'; export const projectLogger = createProjectLogger(controllerName); diff --git a/packages/passkey-controller/src/utils/crypto.test.ts b/packages/passkey-controller/src/utils/crypto.test.ts index 1b5908a6fcd..fe40d1165a3 100644 --- a/packages/passkey-controller/src/utils/crypto.test.ts +++ b/packages/passkey-controller/src/utils/crypto.test.ts @@ -3,8 +3,8 @@ import { deriveEncryptionKey, encryptWithKey, randomBytesToBase64URL, -} from './crypto'; -import { base64URLToBytes } from './encoding'; +} from './crypto.js'; +import { base64URLToBytes } from './encoding.js'; describe('crypto', () => { describe('randomBytesToBase64URL', () => { diff --git a/packages/passkey-controller/src/utils/crypto.ts b/packages/passkey-controller/src/utils/crypto.ts index 17280b0512e..69dab28e277 100644 --- a/packages/passkey-controller/src/utils/crypto.ts +++ b/packages/passkey-controller/src/utils/crypto.ts @@ -4,7 +4,7 @@ import { randomBytes } from '@noble/ciphers/webcrypto'; import { hkdf } from '@noble/hashes/hkdf'; import { sha256 } from '@noble/hashes/sha2'; -import { bytesToBase64URL } from './encoding'; +import { bytesToBase64URL } from './encoding.js'; const PASSKEY_HKDF_INFO = 'metamask:passkey:encryption-key:v1'; diff --git a/packages/passkey-controller/src/utils/encoding.test.ts b/packages/passkey-controller/src/utils/encoding.test.ts index beed5b7a572..cf670000943 100644 --- a/packages/passkey-controller/src/utils/encoding.test.ts +++ b/packages/passkey-controller/src/utils/encoding.test.ts @@ -1,4 +1,4 @@ -import { bytesToBase64URL, base64URLToBytes } from './encoding'; +import { bytesToBase64URL, base64URLToBytes } from './encoding.js'; describe('encoding', () => { describe('bytesToBase64URL', () => { diff --git a/packages/passkey-controller/src/webauthn/decode-attestation-object.test.ts b/packages/passkey-controller/src/webauthn/decode-attestation-object.test.ts index f4532c505a4..fdabcb05c84 100644 --- a/packages/passkey-controller/src/webauthn/decode-attestation-object.test.ts +++ b/packages/passkey-controller/src/webauthn/decode-attestation-object.test.ts @@ -1,5 +1,5 @@ -import { base64URLToBytes } from '../utils/encoding'; -import { decodeAttestationObject } from './decode-attestation-object'; +import { base64URLToBytes } from '../utils/encoding.js'; +import { decodeAttestationObject } from './decode-attestation-object.js'; describe('decodeAttestationObject', () => { it('decodes base64url-encoded indirect attestationObject', () => { diff --git a/packages/passkey-controller/src/webauthn/decode-attestation-object.ts b/packages/passkey-controller/src/webauthn/decode-attestation-object.ts index 21c3a4da218..d7c06418217 100644 --- a/packages/passkey-controller/src/webauthn/decode-attestation-object.ts +++ b/packages/passkey-controller/src/webauthn/decode-attestation-object.ts @@ -1,6 +1,6 @@ import { decodePartialCBOR } from '@levischuck/tiny-cbor'; -import type { AttestationObject } from './types'; +import type { AttestationObject } from './types.js'; /** * CBOR-decode an attestationObject buffer into a Map with `fmt`, `attStmt`, diff --git a/packages/passkey-controller/src/webauthn/decode-client-data-json.test.ts b/packages/passkey-controller/src/webauthn/decode-client-data-json.test.ts index 7c6e72404f4..81837f6a7b4 100644 --- a/packages/passkey-controller/src/webauthn/decode-client-data-json.test.ts +++ b/packages/passkey-controller/src/webauthn/decode-client-data-json.test.ts @@ -1,4 +1,4 @@ -import { decodeClientDataJSON } from './decode-client-data-json'; +import { decodeClientDataJSON } from './decode-client-data-json.js'; describe('decodeClientDataJSON', () => { it('converts base64url-encoded attestation clientDataJSON to JSON', () => { diff --git a/packages/passkey-controller/src/webauthn/decode-client-data-json.ts b/packages/passkey-controller/src/webauthn/decode-client-data-json.ts index e3881b30331..204246a2efb 100644 --- a/packages/passkey-controller/src/webauthn/decode-client-data-json.ts +++ b/packages/passkey-controller/src/webauthn/decode-client-data-json.ts @@ -1,5 +1,5 @@ -import { base64URLToBytes } from '../utils/encoding'; -import type { ClientDataJSON } from './types'; +import { base64URLToBytes } from '../utils/encoding.js'; +import type { ClientDataJSON } from './types.js'; /** * Decode an authenticator's base64url-encoded clientDataJSON to JSON. diff --git a/packages/passkey-controller/src/webauthn/match-expected-rp-id.test.ts b/packages/passkey-controller/src/webauthn/match-expected-rp-id.test.ts index c746504d2c6..95e8232a22a 100644 --- a/packages/passkey-controller/src/webauthn/match-expected-rp-id.test.ts +++ b/packages/passkey-controller/src/webauthn/match-expected-rp-id.test.ts @@ -1,6 +1,6 @@ import { sha256 } from '@noble/hashes/sha2'; -import { matchExpectedRPID } from './match-expected-rp-id'; +import { matchExpectedRPID } from './match-expected-rp-id.js'; describe('matchExpectedRPID', () => { it('throws when no RP ID matches', () => { diff --git a/packages/passkey-controller/src/webauthn/match-expected-rp-id.ts b/packages/passkey-controller/src/webauthn/match-expected-rp-id.ts index 8faba44d6d5..e7930abc6f8 100644 --- a/packages/passkey-controller/src/webauthn/match-expected-rp-id.ts +++ b/packages/passkey-controller/src/webauthn/match-expected-rp-id.ts @@ -1,7 +1,7 @@ import { areUint8ArraysEqual } from '@metamask/utils'; import { sha256 } from '@noble/hashes/sha2'; -import { bytesToHex } from '../utils/encoding'; +import { bytesToHex } from '../utils/encoding.js'; /** * Verify that an authenticator data rpIdHash matches one of the expected diff --git a/packages/passkey-controller/src/webauthn/parse-authenticator-data.test.ts b/packages/passkey-controller/src/webauthn/parse-authenticator-data.test.ts index 825215db4e7..2d1083beed9 100644 --- a/packages/passkey-controller/src/webauthn/parse-authenticator-data.test.ts +++ b/packages/passkey-controller/src/webauthn/parse-authenticator-data.test.ts @@ -2,8 +2,8 @@ import { encodeCBOR } from '@levischuck/tiny-cbor'; import { base64ToBytes, bytesToBase64 } from '@metamask/utils'; import { sha256 } from '@noble/hashes/sha2'; -import { bytesToBase64URL } from '../utils/encoding'; -import { parseAuthenticatorData } from './parse-authenticator-data'; +import { bytesToBase64URL } from '../utils/encoding.js'; +import { parseAuthenticatorData } from './parse-authenticator-data.js'; /** * Conformance vectors from SimpleWebAuthn `parseAuthenticatorData.test.ts` diff --git a/packages/passkey-controller/src/webauthn/parse-authenticator-data.ts b/packages/passkey-controller/src/webauthn/parse-authenticator-data.ts index a60840690c1..4d42cef11b8 100644 --- a/packages/passkey-controller/src/webauthn/parse-authenticator-data.ts +++ b/packages/passkey-controller/src/webauthn/parse-authenticator-data.ts @@ -1,6 +1,6 @@ import { decodePartialCBOR } from '@levischuck/tiny-cbor'; -import type { ParsedAuthenticatorData, AuthenticatorDataFlags } from './types'; +import type { ParsedAuthenticatorData, AuthenticatorDataFlags } from './types.js'; /* eslint-disable no-bitwise */ diff --git a/packages/passkey-controller/src/webauthn/types.ts b/packages/passkey-controller/src/webauthn/types.ts index ae91e045168..5a294fe2805 100644 --- a/packages/passkey-controller/src/webauthn/types.ts +++ b/packages/passkey-controller/src/webauthn/types.ts @@ -1,7 +1,7 @@ import type { AuthenticatorTransportFuture, Base64URLString as Base64URL, -} from '../types'; +} from '../types.js'; export type PublicKeyCredentialDescriptorJSON = { id: Base64URL; diff --git a/packages/passkey-controller/src/webauthn/verify-authentication-response.test.ts b/packages/passkey-controller/src/webauthn/verify-authentication-response.test.ts index b7fa7bd73b7..fefd25f2f62 100644 --- a/packages/passkey-controller/src/webauthn/verify-authentication-response.test.ts +++ b/packages/passkey-controller/src/webauthn/verify-authentication-response.test.ts @@ -1,7 +1,7 @@ -import { bytesToBase64URL, base64URLToBytes } from '../utils/encoding'; -import { decodeClientDataJSON } from './decode-client-data-json'; -import type { PasskeyAuthenticationResponse } from './types'; -import { verifyAuthenticationResponse } from './verify-authentication-response'; +import { bytesToBase64URL, base64URLToBytes } from '../utils/encoding.js'; +import { decodeClientDataJSON } from './decode-client-data-json.js'; +import type { PasskeyAuthenticationResponse } from './types.js'; +import { verifyAuthenticationResponse } from './verify-authentication-response.js'; const EXPECTED_ORIGIN = 'https://dev.dontneeda.pw'; const EXPECTED_RP_ID = 'dev.dontneeda.pw'; diff --git a/packages/passkey-controller/src/webauthn/verify-authentication-response.ts b/packages/passkey-controller/src/webauthn/verify-authentication-response.ts index a0c99d0a735..67db9d9c368 100644 --- a/packages/passkey-controller/src/webauthn/verify-authentication-response.ts +++ b/packages/passkey-controller/src/webauthn/verify-authentication-response.ts @@ -2,14 +2,14 @@ import { decodePartialCBOR } from '@levischuck/tiny-cbor'; import { concatBytes } from '@metamask/utils'; import { sha256 } from '@noble/hashes/sha2'; -import type { AuthenticatorTransportFuture } from '../types'; -import { base64URLToBytes } from '../utils/encoding'; -import { decodeClientDataJSON } from './decode-client-data-json'; -import { matchExpectedRPID } from './match-expected-rp-id'; -import { parseAuthenticatorData } from './parse-authenticator-data'; -import type { ParsedAuthenticatorData } from './types'; -import type { PasskeyAuthenticationResponse } from './types'; -import { verifySignature } from './verify-signature'; +import type { AuthenticatorTransportFuture } from '../types.js'; +import { base64URLToBytes } from '../utils/encoding.js'; +import { decodeClientDataJSON } from './decode-client-data-json.js'; +import { matchExpectedRPID } from './match-expected-rp-id.js'; +import { parseAuthenticatorData } from './parse-authenticator-data.js'; +import type { ParsedAuthenticatorData } from './types.js'; +import type { PasskeyAuthenticationResponse } from './types.js'; +import { verifySignature } from './verify-signature.js'; export type VerifiedAuthenticationResponse = | { verified: false; authenticationInfo?: never } diff --git a/packages/passkey-controller/src/webauthn/verify-registration-response.test.ts b/packages/passkey-controller/src/webauthn/verify-registration-response.test.ts index 8b8e8024aec..9b86c188d00 100644 --- a/packages/passkey-controller/src/webauthn/verify-registration-response.test.ts +++ b/packages/passkey-controller/src/webauthn/verify-registration-response.test.ts @@ -2,13 +2,13 @@ import { encodeCBOR } from '@levischuck/tiny-cbor'; import { p256 } from '@noble/curves/p256'; import { sha256 } from '@noble/hashes/sha2'; -import { base64URLToBytes } from '../utils/encoding'; -import { bytesToBase64URL } from '../utils/encoding'; -import { COSEALG, COSECRV, COSEKEYS, COSEKTY } from './constants'; -import { decodeClientDataJSON } from './decode-client-data-json'; -import * as parseAuthenticatorDataModule from './parse-authenticator-data'; -import type { PasskeyRegistrationResponse } from './types'; -import { verifyRegistrationResponse } from './verify-registration-response'; +import { base64URLToBytes } from '../utils/encoding.js'; +import { bytesToBase64URL } from '../utils/encoding.js'; +import { COSEALG, COSECRV, COSEKEYS, COSEKTY } from './constants.js'; +import { decodeClientDataJSON } from './decode-client-data-json.js'; +import * as parseAuthenticatorDataModule from './parse-authenticator-data.js'; +import type { PasskeyRegistrationResponse } from './types.js'; +import { verifyRegistrationResponse } from './verify-registration-response.js'; const EXPECTED_ORIGIN = 'https://dev.dontneeda.pw'; const EXPECTED_RP_ID = 'dev.dontneeda.pw'; diff --git a/packages/passkey-controller/src/webauthn/verify-registration-response.ts b/packages/passkey-controller/src/webauthn/verify-registration-response.ts index a225a9e0827..904fe7341e6 100644 --- a/packages/passkey-controller/src/webauthn/verify-registration-response.ts +++ b/packages/passkey-controller/src/webauthn/verify-registration-response.ts @@ -2,19 +2,19 @@ import { decodePartialCBOR } from '@levischuck/tiny-cbor'; import { concatBytes } from '@metamask/utils'; import { sha256 } from '@noble/hashes/sha2'; -import type { AuthenticatorTransportFuture } from '../types'; +import type { AuthenticatorTransportFuture } from '../types.js'; import { base64URLToBytes, bytesToBase64URL, bytesToHex, -} from '../utils/encoding'; -import { COSEALG, COSEKEYS } from './constants'; -import { decodeAttestationObject } from './decode-attestation-object'; -import { decodeClientDataJSON } from './decode-client-data-json'; -import { matchExpectedRPID } from './match-expected-rp-id'; -import { parseAuthenticatorData } from './parse-authenticator-data'; -import type { PasskeyRegistrationResponse } from './types'; -import { verifySignature } from './verify-signature'; +} from '../utils/encoding.js'; +import { COSEALG, COSEKEYS } from './constants.js'; +import { decodeAttestationObject } from './decode-attestation-object.js'; +import { decodeClientDataJSON } from './decode-client-data-json.js'; +import { matchExpectedRPID } from './match-expected-rp-id.js'; +import { parseAuthenticatorData } from './parse-authenticator-data.js'; +import type { PasskeyRegistrationResponse } from './types.js'; +import { verifySignature } from './verify-signature.js'; export type VerifiedRegistrationResponse = | { verified: false; registrationInfo?: never } diff --git a/packages/passkey-controller/src/webauthn/verify-signature.test.ts b/packages/passkey-controller/src/webauthn/verify-signature.test.ts index 3632ec93cdc..67b68caa274 100644 --- a/packages/passkey-controller/src/webauthn/verify-signature.test.ts +++ b/packages/passkey-controller/src/webauthn/verify-signature.test.ts @@ -3,9 +3,9 @@ import { p384, p521 } from '@noble/curves/nist'; import { sha384, sha512 } from '@noble/hashes/sha2'; import { webcrypto } from 'node:crypto'; -import { base64URLToBytes } from '../utils/encoding'; -import { COSEALG, COSECRV, COSEKEYS, COSEKTY } from './constants'; -import { verifySignature } from './verify-signature'; +import { base64URLToBytes } from '../utils/encoding.js'; +import { COSEALG, COSECRV, COSEKEYS, COSEKTY } from './constants.js'; +import { verifySignature } from './verify-signature.js'; function decodeJwkBase64Url(value: string): Uint8Array { return Uint8Array.from( diff --git a/packages/passkey-controller/src/webauthn/verify-signature.ts b/packages/passkey-controller/src/webauthn/verify-signature.ts index b7e1b6f50b8..558d51724f5 100644 --- a/packages/passkey-controller/src/webauthn/verify-signature.ts +++ b/packages/passkey-controller/src/webauthn/verify-signature.ts @@ -3,8 +3,8 @@ import { ed25519 } from '@noble/curves/ed25519'; import { p256, p384, p521 } from '@noble/curves/nist'; import { sha256, sha384, sha512 } from '@noble/hashes/sha2'; -import { bytesToBase64URL } from '../utils/encoding'; -import { COSEALG, COSECRV, COSEKEYS, COSEKTY } from './constants'; +import { bytesToBase64URL } from '../utils/encoding.js'; +import { COSEALG, COSECRV, COSEKEYS, COSEKTY } from './constants.js'; type COSEPublicKey = Map; From be7623a1deab37d6775528a888f4fb08123fb1bd Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:36:18 +0200 Subject: [PATCH 048/136] Fix ESLint errors for `preferences-controller` Add `.js` extensions to relative imports. --- .../src/PreferencesController-method-action-types.ts | 2 +- .../src/PreferencesController.test.ts | 10 +++++----- .../src/PreferencesController.ts | 4 ++-- packages/preferences-controller/src/index.ts | 6 +++--- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/preferences-controller/src/PreferencesController-method-action-types.ts b/packages/preferences-controller/src/PreferencesController-method-action-types.ts index 098c80d6bdd..0ca5ed1369a 100644 --- a/packages/preferences-controller/src/PreferencesController-method-action-types.ts +++ b/packages/preferences-controller/src/PreferencesController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { PreferencesController } from './PreferencesController'; +import type { PreferencesController } from './PreferencesController.js'; /** * Enable or disable a specific feature flag. diff --git a/packages/preferences-controller/src/PreferencesController.test.ts b/packages/preferences-controller/src/PreferencesController.test.ts index 9b6cc650df7..4894261d7b6 100644 --- a/packages/preferences-controller/src/PreferencesController.test.ts +++ b/packages/preferences-controller/src/PreferencesController.test.ts @@ -6,12 +6,12 @@ import type { MockAnyNamespace, } from '@metamask/messenger'; -import { ETHERSCAN_SUPPORTED_CHAIN_IDS } from './constants'; +import { ETHERSCAN_SUPPORTED_CHAIN_IDS } from './constants.js'; import type { EtherscanSupportedHexChainId, PreferencesControllerMessenger, -} from './PreferencesController'; -import { PreferencesController } from './PreferencesController'; +} from './PreferencesController.js'; +import { PreferencesController } from './PreferencesController.js'; describe('PreferencesController', () => { it('should set default state', () => { @@ -31,12 +31,12 @@ describe('PreferencesController', () => { showMultiRpcModal: false, showIncomingTransactions: Object.values( ETHERSCAN_SUPPORTED_CHAIN_IDS, - ).reduce( + ).reduce<{ [chainId in EtherscanSupportedHexChainId]: boolean }>( (acc, curr) => { acc[curr] = true; return acc; }, - {} as { [chainId in EtherscanSupportedHexChainId]: boolean }, + {}, ), smartTransactionsOptInStatus: true, useSafeChainsListValidation: true, diff --git a/packages/preferences-controller/src/PreferencesController.ts b/packages/preferences-controller/src/PreferencesController.ts index 057da914783..665daf83b61 100644 --- a/packages/preferences-controller/src/PreferencesController.ts +++ b/packages/preferences-controller/src/PreferencesController.ts @@ -5,8 +5,8 @@ import type { } from '@metamask/base-controller'; import type { Messenger } from '@metamask/messenger'; -import { ETHERSCAN_SUPPORTED_CHAIN_IDS } from './constants'; -import type { PreferencesControllerMethodActions } from './PreferencesController-method-action-types'; +import { ETHERSCAN_SUPPORTED_CHAIN_IDS } from './constants.js'; +import type { PreferencesControllerMethodActions } from './PreferencesController-method-action-types.js'; /** * A type union of the name for each chain that is supported by Etherscan or diff --git a/packages/preferences-controller/src/index.ts b/packages/preferences-controller/src/index.ts index 41cfbb6e4ed..7a3db21766f 100644 --- a/packages/preferences-controller/src/index.ts +++ b/packages/preferences-controller/src/index.ts @@ -1,3 +1,3 @@ -export * from './PreferencesController'; -export type * from './PreferencesController-method-action-types'; -export { ETHERSCAN_SUPPORTED_CHAIN_IDS } from './constants'; +export * from './PreferencesController.js'; +export type * from './PreferencesController-method-action-types.js'; +export { ETHERSCAN_SUPPORTED_CHAIN_IDS } from './constants.js'; From eb5193ddbd7898ffe92428e0c6d327b417438f6a Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:36:18 +0200 Subject: [PATCH 049/136] Fix ESLint errors for `rate-limit-controller` Add `.js` extensions to relative imports. --- .../rate-limit-controller/src/RateLimitController.test.ts | 4 ++-- packages/rate-limit-controller/src/index.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/rate-limit-controller/src/RateLimitController.test.ts b/packages/rate-limit-controller/src/RateLimitController.test.ts index 128259690e0..c7ba29a5ca1 100644 --- a/packages/rate-limit-controller/src/RateLimitController.test.ts +++ b/packages/rate-limit-controller/src/RateLimitController.test.ts @@ -6,8 +6,8 @@ import type { MockAnyNamespace, } from '@metamask/messenger'; -import type { RateLimitMessenger } from './RateLimitController'; -import { RateLimitController } from './RateLimitController'; +import type { RateLimitMessenger } from './RateLimitController.js'; +import { RateLimitController } from './RateLimitController.js'; const controllerName = 'RateLimitController'; diff --git a/packages/rate-limit-controller/src/index.ts b/packages/rate-limit-controller/src/index.ts index 97cbe8505e0..afaf7871aad 100644 --- a/packages/rate-limit-controller/src/index.ts +++ b/packages/rate-limit-controller/src/index.ts @@ -9,5 +9,5 @@ export type { RateLimitControllerStateChangeEvent, RateLimitMessenger, RateLimitState, -} from './RateLimitController'; -export { RateLimitController } from './RateLimitController'; +} from './RateLimitController.js'; +export { RateLimitController } from './RateLimitController.js'; From aa4da2476da3d149f693f9dded644fdc15b7a52c Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:36:18 +0200 Subject: [PATCH 050/136] Fix ESLint errors for `remote-feature-flag-controller` Add `.js` extensions to relative imports. --- .../abstract-client-config-api-service.ts | 2 +- .../client-config-api-service.test.ts | 8 ++++---- .../client-config-api-service.ts | 6 +++--- .../remote-feature-flag-controller/src/index.ts | 14 +++++++------- ...-feature-flag-controller-method-action-types.ts | 2 +- .../src/remote-feature-flag-controller.test.ts | 12 ++++++------ .../src/remote-feature-flag-controller.ts | 10 +++++----- .../src/utils/user-segmentation-utils.test.ts | 2 +- .../src/utils/user-segmentation-utils.ts | 2 +- .../src/utils/version.test.ts | 2 +- .../src/utils/version.ts | 2 +- 11 files changed, 31 insertions(+), 31 deletions(-) diff --git a/packages/remote-feature-flag-controller/src/client-config-api-service/abstract-client-config-api-service.ts b/packages/remote-feature-flag-controller/src/client-config-api-service/abstract-client-config-api-service.ts index 7a07ed2db9b..e5f685b846e 100644 --- a/packages/remote-feature-flag-controller/src/client-config-api-service/abstract-client-config-api-service.ts +++ b/packages/remote-feature-flag-controller/src/client-config-api-service/abstract-client-config-api-service.ts @@ -1,6 +1,6 @@ import type { ServicePolicy } from '@metamask/controller-utils'; -import type { ServiceResponse } from '../remote-feature-flag-controller-types'; +import type { ServiceResponse } from '../remote-feature-flag-controller-types.js'; /** * A service object responsible for fetching feature flags. diff --git a/packages/remote-feature-flag-controller/src/client-config-api-service/client-config-api-service.test.ts b/packages/remote-feature-flag-controller/src/client-config-api-service/client-config-api-service.test.ts index a3a4830e934..1d7ff8d0ac5 100644 --- a/packages/remote-feature-flag-controller/src/client-config-api-service/client-config-api-service.test.ts +++ b/packages/remote-feature-flag-controller/src/client-config-api-service/client-config-api-service.test.ts @@ -1,14 +1,14 @@ -import { BASE_URL } from '../constants'; +import { BASE_URL } from '../constants.js'; import type { ApiDataResponse, FeatureFlags, -} from '../remote-feature-flag-controller-types'; +} from '../remote-feature-flag-controller-types.js'; import { ClientType, DistributionType, EnvironmentType, -} from '../remote-feature-flag-controller-types'; -import { ClientConfigApiService } from './client-config-api-service'; +} from '../remote-feature-flag-controller-types.js'; +import { ClientConfigApiService } from './client-config-api-service.js'; import Mock = jest.Mock; diff --git a/packages/remote-feature-flag-controller/src/client-config-api-service/client-config-api-service.ts b/packages/remote-feature-flag-controller/src/client-config-api-service/client-config-api-service.ts index 787dedd2608..dcc33df79b5 100644 --- a/packages/remote-feature-flag-controller/src/client-config-api-service/client-config-api-service.ts +++ b/packages/remote-feature-flag-controller/src/client-config-api-service/client-config-api-service.ts @@ -7,7 +7,7 @@ import { import type { ServicePolicy } from '@metamask/controller-utils'; import type { IDisposable } from 'cockatiel'; -import { BASE_URL } from '../constants'; +import { BASE_URL } from '../constants.js'; import type { FeatureFlags, ClientType, @@ -15,8 +15,8 @@ import type { EnvironmentType, ServiceResponse, ApiDataResponse, -} from '../remote-feature-flag-controller-types'; -import type { AbstractClientConfigApiService } from './abstract-client-config-api-service'; +} from '../remote-feature-flag-controller-types.js'; +import type { AbstractClientConfigApiService } from './abstract-client-config-api-service.js'; /** * This service is responsible for fetching feature flags from the ClientConfig API. diff --git a/packages/remote-feature-flag-controller/src/index.ts b/packages/remote-feature-flag-controller/src/index.ts index 00c1c1c2d12..54efe45eed2 100644 --- a/packages/remote-feature-flag-controller/src/index.ts +++ b/packages/remote-feature-flag-controller/src/index.ts @@ -1,4 +1,4 @@ -export { RemoteFeatureFlagController } from './remote-feature-flag-controller'; +export { RemoteFeatureFlagController } from './remote-feature-flag-controller.js'; export type { RemoteFeatureFlagControllerState, RemoteFeatureFlagControllerMessenger, @@ -6,7 +6,7 @@ export type { RemoteFeatureFlagControllerGetStateAction, RemoteFeatureFlagControllerEvents, RemoteFeatureFlagControllerStateChangeEvent, -} from './remote-feature-flag-controller'; +} from './remote-feature-flag-controller.js'; export type { RemoteFeatureFlagControllerClearAllFlagOverridesAction, RemoteFeatureFlagControllerDisableAction, @@ -15,14 +15,14 @@ export type { RemoteFeatureFlagControllerRemoveFlagOverrideAction, RemoteFeatureFlagControllerSetFlagOverrideAction, RemoteFeatureFlagControllerUpdateRemoteFeatureFlagsAction, -} from './remote-feature-flag-controller-method-action-types'; +} from './remote-feature-flag-controller-method-action-types.js'; export { ClientType, DistributionType, EnvironmentType, ThresholdVersion, -} from './remote-feature-flag-controller-types'; +} from './remote-feature-flag-controller-types.js'; -export type { FeatureFlags } from './remote-feature-flag-controller-types'; -export { ClientConfigApiService } from './client-config-api-service/client-config-api-service'; -export { generateDeterministicRandomNumber } from './utils/user-segmentation-utils'; +export type { FeatureFlags } from './remote-feature-flag-controller-types.js'; +export { ClientConfigApiService } from './client-config-api-service/client-config-api-service.js'; +export { generateDeterministicRandomNumber } from './utils/user-segmentation-utils.js'; diff --git a/packages/remote-feature-flag-controller/src/remote-feature-flag-controller-method-action-types.ts b/packages/remote-feature-flag-controller/src/remote-feature-flag-controller-method-action-types.ts index eb30efbf45d..ac47f7e41c1 100644 --- a/packages/remote-feature-flag-controller/src/remote-feature-flag-controller-method-action-types.ts +++ b/packages/remote-feature-flag-controller/src/remote-feature-flag-controller-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { RemoteFeatureFlagController } from './remote-feature-flag-controller'; +import type { RemoteFeatureFlagController } from './remote-feature-flag-controller.js'; /** * Retrieves the remote feature flags, fetching from the API if necessary. diff --git a/packages/remote-feature-flag-controller/src/remote-feature-flag-controller.test.ts b/packages/remote-feature-flag-controller/src/remote-feature-flag-controller.test.ts index 50f4f689028..70c57bf39a9 100644 --- a/packages/remote-feature-flag-controller/src/remote-feature-flag-controller.test.ts +++ b/packages/remote-feature-flag-controller/src/remote-feature-flag-controller.test.ts @@ -6,20 +6,20 @@ import type { MockAnyNamespace, } from '@metamask/messenger'; -import { flushPromises } from '../../../tests/helpers'; -import type { AbstractClientConfigApiService } from './client-config-api-service/abstract-client-config-api-service'; +import { flushPromises } from '../../../tests/helpers.js'; +import type { AbstractClientConfigApiService } from './client-config-api-service/abstract-client-config-api-service.js'; import { RemoteFeatureFlagController, controllerName, DEFAULT_CACHE_DURATION, getDefaultRemoteFeatureFlagControllerState, -} from './remote-feature-flag-controller'; +} from './remote-feature-flag-controller.js'; import type { RemoteFeatureFlagControllerMessenger, RemoteFeatureFlagControllerState, -} from './remote-feature-flag-controller'; -import { ThresholdVersion } from './remote-feature-flag-controller-types'; -import type { FeatureFlags } from './remote-feature-flag-controller-types'; +} from './remote-feature-flag-controller.js'; +import { ThresholdVersion } from './remote-feature-flag-controller-types.js'; +import type { FeatureFlags } from './remote-feature-flag-controller-types.js'; const MOCK_FLAGS: FeatureFlags = { feature1: true, diff --git a/packages/remote-feature-flag-controller/src/remote-feature-flag-controller.ts b/packages/remote-feature-flag-controller/src/remote-feature-flag-controller.ts index f04531a32bd..6bd6df6d66b 100644 --- a/packages/remote-feature-flag-controller/src/remote-feature-flag-controller.ts +++ b/packages/remote-feature-flag-controller/src/remote-feature-flag-controller.ts @@ -7,18 +7,18 @@ import type { Messenger } from '@metamask/messenger'; import { isValidSemVerVersion } from '@metamask/utils'; import type { Json, SemVerVersion } from '@metamask/utils'; -import type { AbstractClientConfigApiService } from './client-config-api-service/abstract-client-config-api-service'; -import type { RemoteFeatureFlagControllerMethodActions } from './remote-feature-flag-controller-method-action-types'; +import type { AbstractClientConfigApiService } from './client-config-api-service/abstract-client-config-api-service.js'; +import type { RemoteFeatureFlagControllerMethodActions } from './remote-feature-flag-controller-method-action-types.js'; import type { FeatureFlags, ServiceResponse, FeatureFlagScopeValue, -} from './remote-feature-flag-controller-types'; +} from './remote-feature-flag-controller-types.js'; import { calculateThresholdForFlag, isFeatureFlagWithScopeValue, -} from './utils/user-segmentation-utils'; -import { isVersionFeatureFlag, getVersionData } from './utils/version'; +} from './utils/user-segmentation-utils.js'; +import { isVersionFeatureFlag, getVersionData } from './utils/version.js'; // === GENERAL === diff --git a/packages/remote-feature-flag-controller/src/utils/user-segmentation-utils.test.ts b/packages/remote-feature-flag-controller/src/utils/user-segmentation-utils.test.ts index 44e0b10b321..aa11941462f 100644 --- a/packages/remote-feature-flag-controller/src/utils/user-segmentation-utils.test.ts +++ b/packages/remote-feature-flag-controller/src/utils/user-segmentation-utils.test.ts @@ -4,7 +4,7 @@ import { calculateThresholdForFlag, generateDeterministicRandomNumber, isFeatureFlagWithScopeValue, -} from './user-segmentation-utils'; +} from './user-segmentation-utils.js'; const MOCK_METRICS_IDS = { MOBILE_VALID: '123e4567-e89b-4456-a456-426614174000', diff --git a/packages/remote-feature-flag-controller/src/utils/user-segmentation-utils.ts b/packages/remote-feature-flag-controller/src/utils/user-segmentation-utils.ts index f2f48773105..e41a721e4b0 100644 --- a/packages/remote-feature-flag-controller/src/utils/user-segmentation-utils.ts +++ b/packages/remote-feature-flag-controller/src/utils/user-segmentation-utils.ts @@ -2,7 +2,7 @@ import type { Json } from '@metamask/utils'; import { sha256, bytesToHex } from '@metamask/utils'; import { validate as uuidValidate, version as uuidVersion } from 'uuid'; -import type { FeatureFlagScopeValue } from '../remote-feature-flag-controller-types'; +import type { FeatureFlagScopeValue } from '../remote-feature-flag-controller-types.js'; /** * Converts a UUID string to a BigInt by removing dashes and converting to hexadecimal. diff --git a/packages/remote-feature-flag-controller/src/utils/version.test.ts b/packages/remote-feature-flag-controller/src/utils/version.test.ts index e7133d34e08..682b0aa5fcd 100644 --- a/packages/remote-feature-flag-controller/src/utils/version.test.ts +++ b/packages/remote-feature-flag-controller/src/utils/version.test.ts @@ -1,6 +1,6 @@ import type { SemVerVersion } from '@metamask/utils'; -import { isVersionFeatureFlag, getVersionData } from './version'; +import { isVersionFeatureFlag, getVersionData } from './version.js'; describe('isVersionFeatureFlag', () => { it('returns true for valid multi-version feature flag', () => { diff --git a/packages/remote-feature-flag-controller/src/utils/version.ts b/packages/remote-feature-flag-controller/src/utils/version.ts index 94a5c0dad74..11d565fb343 100644 --- a/packages/remote-feature-flag-controller/src/utils/version.ts +++ b/packages/remote-feature-flag-controller/src/utils/version.ts @@ -1,7 +1,7 @@ import { gtVersion, isValidSemVerVersion } from '@metamask/utils'; import type { Json, SemVerVersion } from '@metamask/utils'; -import type { MultiVersionFeatureFlagValue } from '../remote-feature-flag-controller-types'; +import type { MultiVersionFeatureFlagValue } from '../remote-feature-flag-controller-types.js'; /** * Constants for MultiVersionFeatureFlagValue property names From e6f0cef41efa0273b998edbbdc73df3218f0af78 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:38:58 +0200 Subject: [PATCH 051/136] Add `jest` global import to `keyring-controller` tests --- packages/keyring-controller/package.json | 1 + packages/keyring-controller/src/KeyringController.test.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/keyring-controller/package.json b/packages/keyring-controller/package.json index a7a1f8c36a6..f69f1e8bf77 100644 --- a/packages/keyring-controller/package.json +++ b/packages/keyring-controller/package.json @@ -68,6 +68,7 @@ "devDependencies": { "@ethereumjs/common": "^4.4.0", "@ethereumjs/tx": "^5.4.0", + "@jest/globals": "^30.4.1", "@lavamoat/allow-scripts": "^3.0.4", "@lavamoat/preinstall-always-fail": "^2.1.0", "@metamask/auto-changelog": "^6.1.0", diff --git a/packages/keyring-controller/src/KeyringController.test.ts b/packages/keyring-controller/src/KeyringController.test.ts index 59bd5ed705c..e19e0f66e27 100644 --- a/packages/keyring-controller/src/KeyringController.test.ts +++ b/packages/keyring-controller/src/KeyringController.test.ts @@ -1,6 +1,7 @@ import { Chain, Common, Hardfork } from '@ethereumjs/common'; import type { TypedTxData } from '@ethereumjs/tx'; import { TransactionFactory } from '@ethereumjs/tx'; +import { jest } from '@jest/globals'; import { deriveStateFromMetadata } from '@metamask/base-controller'; import { HdKeyring } from '@metamask/eth-hd-keyring'; import { @@ -1326,7 +1327,6 @@ describe('KeyringController', () => { const normalizedInitialAccounts = controller.state.keyrings[0].accounts.map(normalize); const keyring = (await controller.getKeyringForAccount( - normalizedInitialAccounts[0], )) as EthKeyring; expect(keyring.type).toBe('HD Key Tree'); From 0105398bcde03df307c4ca1e40a6f0a4a116f3bc Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:38:58 +0200 Subject: [PATCH 052/136] Add `jest` global import to `logging-controller` tests --- packages/logging-controller/package.json | 1 + packages/logging-controller/src/LoggingController.test.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/logging-controller/package.json b/packages/logging-controller/package.json index f0135bf5053..90cce76cfd8 100644 --- a/packages/logging-controller/package.json +++ b/packages/logging-controller/package.json @@ -54,6 +54,7 @@ "uuid": "^8.3.2" }, "devDependencies": { + "@jest/globals": "^30.4.1", "@metamask/auto-changelog": "^6.1.0", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/logging-controller/src/LoggingController.test.ts b/packages/logging-controller/src/LoggingController.test.ts index 3e9d71c737b..f44ee459713 100644 --- a/packages/logging-controller/src/LoggingController.test.ts +++ b/packages/logging-controller/src/LoggingController.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; import { deriveStateFromMetadata } from '@metamask/base-controller'; import { Messenger, MOCK_ANY_NAMESPACE } from '@metamask/messenger'; import type { From b09bb6ca51655f3f8f259e86bb21704231007637 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:38:59 +0200 Subject: [PATCH 053/136] Add `jest` global import to `message-manager` tests --- packages/message-manager/package.json | 1 + packages/message-manager/src/AbstractMessageManager.test.ts | 1 + packages/message-manager/src/DecryptMessageManager.test.ts | 2 ++ packages/message-manager/src/EncryptionPublicKeyManager.test.ts | 2 ++ 4 files changed, 6 insertions(+) diff --git a/packages/message-manager/package.json b/packages/message-manager/package.json index 1fa9379423c..34033bd0ad0 100644 --- a/packages/message-manager/package.json +++ b/packages/message-manager/package.json @@ -56,6 +56,7 @@ "uuid": "^8.3.2" }, "devDependencies": { + "@jest/globals": "^30.4.1", "@metamask/auto-changelog": "^6.1.0", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/message-manager/src/AbstractMessageManager.test.ts b/packages/message-manager/src/AbstractMessageManager.test.ts index 5ecae7c2b86..a4f0f684d0b 100644 --- a/packages/message-manager/src/AbstractMessageManager.test.ts +++ b/packages/message-manager/src/AbstractMessageManager.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; import { deriveStateFromMetadata } from '@metamask/base-controller'; import type { ControllerGetStateAction, diff --git a/packages/message-manager/src/DecryptMessageManager.test.ts b/packages/message-manager/src/DecryptMessageManager.test.ts index df9e5e47368..c125cb57bca 100644 --- a/packages/message-manager/src/DecryptMessageManager.test.ts +++ b/packages/message-manager/src/DecryptMessageManager.test.ts @@ -1,3 +1,5 @@ +import { jest } from '@jest/globals'; + import { DecryptMessageManager } from './DecryptMessageManager.js'; import type { DecryptMessageManagerMessenger } from './DecryptMessageManager.js'; diff --git a/packages/message-manager/src/EncryptionPublicKeyManager.test.ts b/packages/message-manager/src/EncryptionPublicKeyManager.test.ts index 740a9093564..53a3d13a885 100644 --- a/packages/message-manager/src/EncryptionPublicKeyManager.test.ts +++ b/packages/message-manager/src/EncryptionPublicKeyManager.test.ts @@ -1,3 +1,5 @@ +import { jest } from '@jest/globals'; + import { EncryptionPublicKeyManager } from './EncryptionPublicKeyManager.js'; import type { EncryptionPublicKeyManagerMessenger } from './EncryptionPublicKeyManager.js'; From faae17ed1eef24b4cf5e191fd864d4aee8639acb Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:38:59 +0200 Subject: [PATCH 054/136] Add `jest` global import to `name-controller` tests --- packages/name-controller/package.json | 1 + packages/name-controller/src/NameController.test.ts | 1 + packages/name-controller/src/providers/ens.test.ts | 2 ++ packages/name-controller/src/providers/etherscan.test.ts | 2 ++ packages/name-controller/src/providers/lens.test.ts | 2 ++ packages/name-controller/src/providers/token.test.ts | 2 ++ packages/name-controller/src/utils.test.ts | 2 ++ 7 files changed, 12 insertions(+) diff --git a/packages/name-controller/package.json b/packages/name-controller/package.json index 18cb5d4ab1f..1b4f7523385 100644 --- a/packages/name-controller/package.json +++ b/packages/name-controller/package.json @@ -56,6 +56,7 @@ "async-mutex": "^0.5.0" }, "devDependencies": { + "@jest/globals": "^30.4.1", "@metamask/auto-changelog": "^6.1.0", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/name-controller/src/NameController.test.ts b/packages/name-controller/src/NameController.test.ts index 496557dd6ce..832d118eed8 100644 --- a/packages/name-controller/src/NameController.test.ts +++ b/packages/name-controller/src/NameController.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; import { deriveStateFromMetadata } from '@metamask/base-controller'; import type { diff --git a/packages/name-controller/src/providers/ens.test.ts b/packages/name-controller/src/providers/ens.test.ts index 147044a0d72..4a96cf274a9 100644 --- a/packages/name-controller/src/providers/ens.test.ts +++ b/packages/name-controller/src/providers/ens.test.ts @@ -1,3 +1,5 @@ +import { jest } from '@jest/globals'; + import { NameType } from '../types.js'; import { ENSNameProvider } from './ens.js'; diff --git a/packages/name-controller/src/providers/etherscan.test.ts b/packages/name-controller/src/providers/etherscan.test.ts index 44e0d394cab..caeacaacb5c 100644 --- a/packages/name-controller/src/providers/etherscan.test.ts +++ b/packages/name-controller/src/providers/etherscan.test.ts @@ -1,3 +1,5 @@ +import { jest } from '@jest/globals'; + import { CHAIN_IDS } from '../constants.js'; import { NameType } from '../types.js'; import { handleFetch } from '../util.js'; diff --git a/packages/name-controller/src/providers/lens.test.ts b/packages/name-controller/src/providers/lens.test.ts index 8540260fc3a..68efeaddda2 100644 --- a/packages/name-controller/src/providers/lens.test.ts +++ b/packages/name-controller/src/providers/lens.test.ts @@ -1,3 +1,5 @@ +import { jest } from '@jest/globals'; + import { NameType } from '../types.js'; import { graphQL } from '../util.js'; import { LensNameProvider } from './lens.js'; diff --git a/packages/name-controller/src/providers/token.test.ts b/packages/name-controller/src/providers/token.test.ts index a43eb46f747..d5074a2cdc2 100644 --- a/packages/name-controller/src/providers/token.test.ts +++ b/packages/name-controller/src/providers/token.test.ts @@ -1,3 +1,5 @@ +import { jest } from '@jest/globals'; + import { NameType } from '../types.js'; import { handleFetch } from '../util.js'; import { TokenNameProvider } from './token.js'; diff --git a/packages/name-controller/src/utils.test.ts b/packages/name-controller/src/utils.test.ts index d7a7fa472ca..6ad33a1046f 100644 --- a/packages/name-controller/src/utils.test.ts +++ b/packages/name-controller/src/utils.test.ts @@ -1,3 +1,5 @@ +import { jest } from '@jest/globals'; + import { assertIsError, graphQL } from './util.js'; describe('Utils', () => { From f6e99cea15d5116b70b936675c45d16df8f238fa Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:38:59 +0200 Subject: [PATCH 055/136] Add `jest` global import to `passkey-controller` tests --- packages/passkey-controller/package.json | 1 + packages/passkey-controller/src/PasskeyController.test.ts | 6 +++++- packages/passkey-controller/src/ceremony-manager.test.ts | 2 ++ .../src/webauthn/parse-authenticator-data.ts | 5 ++++- 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/passkey-controller/package.json b/packages/passkey-controller/package.json index 92c30ed4e28..87b26475417 100644 --- a/packages/passkey-controller/package.json +++ b/packages/passkey-controller/package.json @@ -58,6 +58,7 @@ "@noble/hashes": "^1.8.0" }, "devDependencies": { + "@jest/globals": "^30.4.1", "@metamask/auto-changelog": "^6.1.0", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/passkey-controller/src/PasskeyController.test.ts b/packages/passkey-controller/src/PasskeyController.test.ts index 2bb7515b059..61bdf38eb4d 100644 --- a/packages/passkey-controller/src/PasskeyController.test.ts +++ b/packages/passkey-controller/src/PasskeyController.test.ts @@ -1,6 +1,10 @@ +import { jest } from '@jest/globals'; import { Messenger } from '@metamask/messenger'; -import { CEREMONY_MAX_AGE_MS, WEBAUTHN_TIMEOUT_MS } from './ceremony-manager.js'; +import { + CEREMONY_MAX_AGE_MS, + WEBAUTHN_TIMEOUT_MS, +} from './ceremony-manager.js'; import { PasskeyControllerErrorCode, PasskeyControllerErrorMessage, diff --git a/packages/passkey-controller/src/ceremony-manager.test.ts b/packages/passkey-controller/src/ceremony-manager.test.ts index 90d21e143b8..13866b510be 100644 --- a/packages/passkey-controller/src/ceremony-manager.test.ts +++ b/packages/passkey-controller/src/ceremony-manager.test.ts @@ -1,3 +1,5 @@ +import { jest } from '@jest/globals'; + import { CEREMONY_MAX_AGE_MS, CeremonyManager, diff --git a/packages/passkey-controller/src/webauthn/parse-authenticator-data.ts b/packages/passkey-controller/src/webauthn/parse-authenticator-data.ts index 4d42cef11b8..d88c71b83e7 100644 --- a/packages/passkey-controller/src/webauthn/parse-authenticator-data.ts +++ b/packages/passkey-controller/src/webauthn/parse-authenticator-data.ts @@ -1,6 +1,9 @@ import { decodePartialCBOR } from '@levischuck/tiny-cbor'; -import type { ParsedAuthenticatorData, AuthenticatorDataFlags } from './types.js'; +import type { + ParsedAuthenticatorData, + AuthenticatorDataFlags, +} from './types.js'; /* eslint-disable no-bitwise */ From bfc6ec502c31aab450a8e0cdacc1482fdd0ba74d Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:38:59 +0200 Subject: [PATCH 056/136] Add `jest` global import to `rate-limit-controller` tests --- packages/rate-limit-controller/package.json | 1 + packages/rate-limit-controller/src/RateLimitController.test.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/rate-limit-controller/package.json b/packages/rate-limit-controller/package.json index ec590a68a1f..4c198a7c066 100644 --- a/packages/rate-limit-controller/package.json +++ b/packages/rate-limit-controller/package.json @@ -52,6 +52,7 @@ "@metamask/utils": "^11.11.0" }, "devDependencies": { + "@jest/globals": "^30.4.1", "@metamask/auto-changelog": "^6.1.0", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/rate-limit-controller/src/RateLimitController.test.ts b/packages/rate-limit-controller/src/RateLimitController.test.ts index c7ba29a5ca1..6019659e34c 100644 --- a/packages/rate-limit-controller/src/RateLimitController.test.ts +++ b/packages/rate-limit-controller/src/RateLimitController.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; import { deriveStateFromMetadata } from '@metamask/base-controller'; import { Messenger, MOCK_ANY_NAMESPACE } from '@metamask/messenger'; import type { From e26e4a4884109c20f8bad20d1f86c090353d50d5 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:38:59 +0200 Subject: [PATCH 057/136] Add `jest` global import to `remote-feature-flag-controller` tests --- packages/remote-feature-flag-controller/package.json | 1 + .../client-config-api-service.test.ts | 2 ++ .../src/remote-feature-flag-controller.test.ts | 5 +++-- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/remote-feature-flag-controller/package.json b/packages/remote-feature-flag-controller/package.json index 689d19614d4..303d8b14130 100644 --- a/packages/remote-feature-flag-controller/package.json +++ b/packages/remote-feature-flag-controller/package.json @@ -55,6 +55,7 @@ "uuid": "^8.3.2" }, "devDependencies": { + "@jest/globals": "^30.4.1", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^6.1.0", "@types/jest": "^29.5.14", diff --git a/packages/remote-feature-flag-controller/src/client-config-api-service/client-config-api-service.test.ts b/packages/remote-feature-flag-controller/src/client-config-api-service/client-config-api-service.test.ts index 1d7ff8d0ac5..f3a25b34adc 100644 --- a/packages/remote-feature-flag-controller/src/client-config-api-service/client-config-api-service.test.ts +++ b/packages/remote-feature-flag-controller/src/client-config-api-service/client-config-api-service.test.ts @@ -1,3 +1,5 @@ +import { jest } from '@jest/globals'; + import { BASE_URL } from '../constants.js'; import type { ApiDataResponse, diff --git a/packages/remote-feature-flag-controller/src/remote-feature-flag-controller.test.ts b/packages/remote-feature-flag-controller/src/remote-feature-flag-controller.test.ts index 70c57bf39a9..7f78dd5b4e9 100644 --- a/packages/remote-feature-flag-controller/src/remote-feature-flag-controller.test.ts +++ b/packages/remote-feature-flag-controller/src/remote-feature-flag-controller.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; import { deriveStateFromMetadata } from '@metamask/base-controller'; import { Messenger, MOCK_ANY_NAMESPACE } from '@metamask/messenger'; import type { @@ -8,6 +9,8 @@ import type { import { flushPromises } from '../../../tests/helpers.js'; import type { AbstractClientConfigApiService } from './client-config-api-service/abstract-client-config-api-service.js'; +import { ThresholdVersion } from './remote-feature-flag-controller-types.js'; +import type { FeatureFlags } from './remote-feature-flag-controller-types.js'; import { RemoteFeatureFlagController, controllerName, @@ -18,8 +21,6 @@ import type { RemoteFeatureFlagControllerMessenger, RemoteFeatureFlagControllerState, } from './remote-feature-flag-controller.js'; -import { ThresholdVersion } from './remote-feature-flag-controller-types.js'; -import type { FeatureFlags } from './remote-feature-flag-controller-types.js'; const MOCK_FLAGS: FeatureFlags = { feature1: true, From 80e97aee77f1ca6160ac8022c807968d9cabc945 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:40:29 +0200 Subject: [PATCH 058/136] Fix ESLint errors for `composable-controller` Add `.js` extensions to relative imports. --- packages/composable-controller/package.json | 1 + .../composable-controller/src/ComposableController.test.ts | 4 ++-- packages/composable-controller/src/index.ts | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/composable-controller/package.json b/packages/composable-controller/package.json index baf3337fd38..d959517e6d1 100644 --- a/packages/composable-controller/package.json +++ b/packages/composable-controller/package.json @@ -50,6 +50,7 @@ "@metamask/messenger": "^2.0.0" }, "devDependencies": { + "@jest/globals": "^30.4.1", "@metamask/auto-changelog": "^6.1.0", "@metamask/json-rpc-engine": "^10.5.0", "@types/jest": "^29.5.14", diff --git a/packages/composable-controller/src/ComposableController.test.ts b/packages/composable-controller/src/ComposableController.test.ts index fccf473b871..7cf0e9c4678 100644 --- a/packages/composable-controller/src/ComposableController.test.ts +++ b/packages/composable-controller/src/ComposableController.test.ts @@ -20,11 +20,11 @@ import type { ChildControllerStateChangeEvents, ComposableControllerActions, ComposableControllerEvents, -} from './ComposableController'; +} from './ComposableController.js'; import { ComposableController, INVALID_CONTROLLER_ERROR, -} from './ComposableController'; +} from './ComposableController.js'; // Mock BaseController classes diff --git a/packages/composable-controller/src/index.ts b/packages/composable-controller/src/index.ts index 8a0b5f5da2f..6d2000e7113 100644 --- a/packages/composable-controller/src/index.ts +++ b/packages/composable-controller/src/index.ts @@ -3,5 +3,5 @@ export type { ComposableControllerStateChangeEvent, ComposableControllerEvents, ComposableControllerMessenger, -} from './ComposableController'; -export { ComposableController } from './ComposableController'; +} from './ComposableController.js'; +export { ComposableController } from './ComposableController.js'; From 85562f6aa2387da3cdc6445e139741d50f5a429a Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:40:29 +0200 Subject: [PATCH 059/136] Fix ESLint errors for `eth-json-rpc-provider` Add `.js` extensions to relative imports. --- packages/eth-json-rpc-provider/package.json | 1 + packages/eth-json-rpc-provider/src/index.test.ts | 2 +- packages/eth-json-rpc-provider/src/index.ts | 4 ++-- packages/eth-json-rpc-provider/src/internal-provider.test.ts | 3 ++- .../src/provider-from-middleware.test.ts | 2 +- .../eth-json-rpc-provider/src/provider-from-middleware.ts | 2 +- 6 files changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/eth-json-rpc-provider/package.json b/packages/eth-json-rpc-provider/package.json index 72ede1154e4..f70e602cc31 100644 --- a/packages/eth-json-rpc-provider/package.json +++ b/packages/eth-json-rpc-provider/package.json @@ -53,6 +53,7 @@ }, "devDependencies": { "@ethersproject/providers": "^5.7.0", + "@jest/globals": "^30.4.1", "@metamask/auto-changelog": "^6.1.0", "@metamask/eth-query": "^4.0.0", "@metamask/ethjs-query": "^0.5.3", diff --git a/packages/eth-json-rpc-provider/src/index.test.ts b/packages/eth-json-rpc-provider/src/index.test.ts index 63ae8ab36ee..cd6ab0b5d5a 100644 --- a/packages/eth-json-rpc-provider/src/index.test.ts +++ b/packages/eth-json-rpc-provider/src/index.test.ts @@ -1,4 +1,4 @@ -import * as allExports from '.'; +import * as allExports from './..js'; describe('Package exports', () => { it('has expected exports', () => { diff --git a/packages/eth-json-rpc-provider/src/index.ts b/packages/eth-json-rpc-provider/src/index.ts index a4bab7a5db3..b972bff0db6 100644 --- a/packages/eth-json-rpc-provider/src/index.ts +++ b/packages/eth-json-rpc-provider/src/index.ts @@ -1,6 +1,6 @@ -import { InternalProvider } from './internal-provider'; +import { InternalProvider } from './internal-provider.js'; -export * from './provider-from-middleware'; +export * from './provider-from-middleware.js'; /** * @deprecated Use {@link InternalProvider} instead. diff --git a/packages/eth-json-rpc-provider/src/internal-provider.test.ts b/packages/eth-json-rpc-provider/src/internal-provider.test.ts index 24ee40abe33..00dc8accf1b 100644 --- a/packages/eth-json-rpc-provider/src/internal-provider.test.ts +++ b/packages/eth-json-rpc-provider/src/internal-provider.test.ts @@ -1,4 +1,5 @@ import { Web3Provider } from '@ethersproject/providers'; +import { jest } from '@jest/globals'; import EthQuery from '@metamask/eth-query'; import EthJsQuery from '@metamask/ethjs-query'; import { asV2Middleware, JsonRpcEngine } from '@metamask/json-rpc-engine'; @@ -15,7 +16,7 @@ import { promisify } from 'util'; import { InternalProvider, convertEip1193RequestToJsonRpcRequest, -} from './internal-provider'; +} from './internal-provider.js'; jest.mock('uuid'); diff --git a/packages/eth-json-rpc-provider/src/provider-from-middleware.test.ts b/packages/eth-json-rpc-provider/src/provider-from-middleware.test.ts index 6c20713e0bf..ca9955525e6 100644 --- a/packages/eth-json-rpc-provider/src/provider-from-middleware.test.ts +++ b/packages/eth-json-rpc-provider/src/provider-from-middleware.test.ts @@ -6,7 +6,7 @@ import type { Json, JsonRpcParams, JsonRpcRequest } from '@metamask/utils'; import { providerFromMiddleware, providerFromMiddlewareV2, -} from './provider-from-middleware'; +} from './provider-from-middleware.js'; describe('providerFromMiddleware', () => { it('handle a successful request', async () => { diff --git a/packages/eth-json-rpc-provider/src/provider-from-middleware.ts b/packages/eth-json-rpc-provider/src/provider-from-middleware.ts index f3ce178e58f..07a0f5fbbf5 100644 --- a/packages/eth-json-rpc-provider/src/provider-from-middleware.ts +++ b/packages/eth-json-rpc-provider/src/provider-from-middleware.ts @@ -8,7 +8,7 @@ import type { } from '@metamask/json-rpc-engine/v2'; import type { Json, JsonRpcParams, JsonRpcRequest } from '@metamask/utils'; -import { InternalProvider } from './internal-provider'; +import { InternalProvider } from './internal-provider.js'; /** * Construct an Ethereum provider from the given middleware. From 7194c68da80c6cfb547210322acf2c0d09d019c0 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:40:29 +0200 Subject: [PATCH 060/136] Fix ESLint errors for `json-rpc-middleware-stream` Add `.js` extensions to relative imports. Fix `setTimeout(context.end)` flagged as implied-eval by wrapping in an arrow function. --- .../src/createStreamMiddleware.ts | 2 +- packages/json-rpc-middleware-stream/src/index.test.ts | 8 ++++---- packages/json-rpc-middleware-stream/src/index.ts | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/json-rpc-middleware-stream/src/createStreamMiddleware.ts b/packages/json-rpc-middleware-stream/src/createStreamMiddleware.ts index c9d0c55dcac..0038ce56bd3 100644 --- a/packages/json-rpc-middleware-stream/src/createStreamMiddleware.ts +++ b/packages/json-rpc-middleware-stream/src/createStreamMiddleware.ts @@ -125,7 +125,7 @@ export default function createStreamMiddleware(options: Options = {}): { Object.assign(context.res, res); // run callback on empty stack, // prevent internal stream-handler from catching errors - setTimeout(context.end); + setTimeout(() => context.end()); } /** diff --git a/packages/json-rpc-middleware-stream/src/index.test.ts b/packages/json-rpc-middleware-stream/src/index.test.ts index ca172a0085a..68571b6de52 100644 --- a/packages/json-rpc-middleware-stream/src/index.test.ts +++ b/packages/json-rpc-middleware-stream/src/index.test.ts @@ -3,7 +3,7 @@ import PortStream from 'extension-port-stream'; import type { Duplex } from 'stream'; import type { Runtime } from 'webextension-polyfill-ts'; -import { createStreamMiddleware, createEngineStream } from '.'; +import { createStreamMiddleware, createEngineStream } from './..js'; const artificialDelay = async (time = 0): Promise => new Promise((resolve) => setTimeout(resolve, time)); @@ -181,7 +181,7 @@ describe('retry logic in middleware connected to a port', () => { // Initially sent once const responsePromise1 = engineA?.handle(req1); // intentionally not awaited - // eslint-disable-next-line @typescript-eslint/no-floating-promises + engineA?.handle(req2); await artificialDelay(); @@ -217,7 +217,7 @@ describe('retry logic in middleware connected to a port', () => { // Initially sent once, message count at 1 // intentionally not awaited - // eslint-disable-next-line @typescript-eslint/no-floating-promises + engineA?.handle(req); await artificialDelay(); expect(messages).toHaveLength(1); @@ -268,7 +268,7 @@ describe('retry logic in middleware connected to a port', () => { // Initially sent once, message count at 1 // intentionally not awaited - // eslint-disable-next-line @typescript-eslint/no-floating-promises + engineA?.handle(req); await artificialDelay(); expect(messages).toHaveLength(1); diff --git a/packages/json-rpc-middleware-stream/src/index.ts b/packages/json-rpc-middleware-stream/src/index.ts index e53b25d9024..2a824d162d5 100644 --- a/packages/json-rpc-middleware-stream/src/index.ts +++ b/packages/json-rpc-middleware-stream/src/index.ts @@ -1,4 +1,4 @@ -import createEngineStream from './createEngineStream'; -import createStreamMiddleware from './createStreamMiddleware'; +import createEngineStream from './createEngineStream.js'; +import createStreamMiddleware from './createStreamMiddleware.js'; export { createEngineStream, createStreamMiddleware }; From 2eadbd98f321bcdf20f9e59745861d9cfeb110d5 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:40:29 +0200 Subject: [PATCH 061/136] Fix ESLint errors for `permission-log-controller` Add `.js` extensions to relative imports. --- .../src/PermissionLogController-method-action-types.ts | 2 +- .../src/PermissionLogController.ts | 4 ++-- packages/permission-log-controller/src/index.ts | 6 +++--- .../tests/PermissionLogController.test.ts | 8 ++++---- packages/permission-log-controller/tests/helpers.ts | 2 +- packages/permission-log-controller/tests/index.test.ts | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/permission-log-controller/src/PermissionLogController-method-action-types.ts b/packages/permission-log-controller/src/PermissionLogController-method-action-types.ts index b68e61affa2..362445e3e70 100644 --- a/packages/permission-log-controller/src/PermissionLogController-method-action-types.ts +++ b/packages/permission-log-controller/src/PermissionLogController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { PermissionLogController } from './PermissionLogController'; +import type { PermissionLogController } from './PermissionLogController.js'; /** * Updates the exposed account history for the given origin. diff --git a/packages/permission-log-controller/src/PermissionLogController.ts b/packages/permission-log-controller/src/PermissionLogController.ts index 24a71602715..f62831e3bcd 100644 --- a/packages/permission-log-controller/src/PermissionLogController.ts +++ b/packages/permission-log-controller/src/PermissionLogController.ts @@ -19,8 +19,8 @@ import { LOG_METHOD_TYPES, WALLET_PREFIX, CAVEAT_TYPES, -} from './enums'; -import type { PermissionLogControllerMethodActions } from './PermissionLogController-method-action-types'; +} from './enums.js'; +import type { PermissionLogControllerMethodActions } from './PermissionLogController-method-action-types.js'; export type JsonRpcRequestWithOrigin< Params extends JsonRpcParams = JsonRpcParams, diff --git a/packages/permission-log-controller/src/index.ts b/packages/permission-log-controller/src/index.ts index edf1e9e47c5..ea689446ece 100644 --- a/packages/permission-log-controller/src/index.ts +++ b/packages/permission-log-controller/src/index.ts @@ -1,8 +1,8 @@ -export { PermissionLogController } from './PermissionLogController'; +export { PermissionLogController } from './PermissionLogController.js'; export type { PermissionLogControllerUpdateAccountsHistoryAction, PermissionLogControllerCreateMiddlewareAction, -} from './PermissionLogController-method-action-types'; +} from './PermissionLogController-method-action-types.js'; export type { JsonRpcRequestWithOrigin, Caveat, @@ -18,4 +18,4 @@ export type { PermissionLogControllerMessenger, PermissionLogControllerState, PermissionLogControllerOptions, -} from './PermissionLogController'; +} from './PermissionLogController.js'; diff --git a/packages/permission-log-controller/tests/PermissionLogController.test.ts b/packages/permission-log-controller/tests/PermissionLogController.test.ts index 96e87463dd6..26948d9673f 100644 --- a/packages/permission-log-controller/tests/PermissionLogController.test.ts +++ b/packages/permission-log-controller/tests/PermissionLogController.test.ts @@ -13,14 +13,14 @@ import { PendingJsonRpcResponseStruct } from '@metamask/utils'; import type { PendingJsonRpcResponse, JsonRpcRequest } from '@metamask/utils'; import { nanoid } from 'nanoid'; -import { LOG_LIMIT, LOG_METHOD_TYPES } from '../src/enums'; -import { PermissionLogController } from '../src/PermissionLogController'; +import { LOG_LIMIT, LOG_METHOD_TYPES } from '../src/enums.js'; +import { PermissionLogController } from '../src/PermissionLogController.js'; import type { Permission, PermissionLogControllerState, PermissionLogControllerMessenger, -} from '../src/PermissionLogController'; -import { constants, getters, noop } from './helpers'; +} from '../src/PermissionLogController.js'; +import { constants, getters, noop } from './helpers.js'; const { PERMS, RPC_REQUESTS } = getters; const { ACCOUNTS, EXPECTED_HISTORIES, SUBJECTS, PERM_NAMES, REQUEST_IDS } = diff --git a/packages/permission-log-controller/tests/helpers.ts b/packages/permission-log-controller/tests/helpers.ts index 28a1b2e293e..b39f310124a 100644 --- a/packages/permission-log-controller/tests/helpers.ts +++ b/packages/permission-log-controller/tests/helpers.ts @@ -7,7 +7,7 @@ import { JsonRpcRequestStruct } from '@metamask/utils'; import type { Json } from '@metamask/utils'; import deepFreeze from 'deep-freeze-strict'; -import { CAVEAT_TYPES } from '../src/enums'; +import { CAVEAT_TYPES } from '../src/enums.js'; /** * This file contains mocks for the PermissionLogController tests. diff --git a/packages/permission-log-controller/tests/index.test.ts b/packages/permission-log-controller/tests/index.test.ts index c33564c9c2b..ef6a8fdbc9a 100644 --- a/packages/permission-log-controller/tests/index.test.ts +++ b/packages/permission-log-controller/tests/index.test.ts @@ -1,4 +1,4 @@ -import * as allExports from '../src'; +import * as allExports from '../src.js'; describe('Package exports', () => { it('has expected exports', () => { From 55e9d7f1ff64174cde1073475b272e7dea7cd583 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:40:29 +0200 Subject: [PATCH 062/136] Fix ESLint errors for `base-data-service` Add `.js` extensions to relative imports. --- packages/base-data-service/package.json | 3 ++- .../base-data-service/src/BaseDataService.test.ts | 14 +++++++++----- packages/base-data-service/src/BaseDataService.ts | 4 ++-- .../src/createServicePolicy.test.ts | 2 +- packages/base-data-service/src/index.ts | 8 ++++---- .../ExampleDataService-method-action-types.ts | 2 +- .../base-data-service/tests/ExampleDataService.ts | 4 ++-- 7 files changed, 21 insertions(+), 16 deletions(-) diff --git a/packages/base-data-service/package.json b/packages/base-data-service/package.json index a352f054557..069288c33f9 100644 --- a/packages/base-data-service/package.json +++ b/packages/base-data-service/package.json @@ -55,9 +55,10 @@ "@tanstack/query-core": "^4.43.0", "cockatiel": "^3.1.2", "fast-deep-equal": "^3.1.3", - "lodash": "^4.17.21" + "lodash-es": "^4.17.21" }, "devDependencies": { + "@jest/globals": "^30.4.1", "@metamask/auto-changelog": "^6.1.0", "@types/jest": "^29.5.14", "@types/lodash": "^4.14.191", diff --git a/packages/base-data-service/src/BaseDataService.test.ts b/packages/base-data-service/src/BaseDataService.test.ts index af231b5b3a5..f9ac03c0453 100644 --- a/packages/base-data-service/src/BaseDataService.test.ts +++ b/packages/base-data-service/src/BaseDataService.test.ts @@ -1,9 +1,12 @@ import { MOCK_ANY_NAMESPACE, Messenger } from '@metamask/messenger'; import { hashQueryKey } from '@tanstack/query-core'; import { BrokenCircuitError } from 'cockatiel'; -import { cleanAll } from 'nock'; +import nock from 'nock'; -import { ExampleDataService, serviceName } from '../tests/ExampleDataService'; +import { + ExampleDataService, + serviceName, +} from '../tests/ExampleDataService.js'; import { mockAssets, mockTransactionsPage1, @@ -11,8 +14,8 @@ import { mockTransactionsPage3, TRANSACTIONS_PAGE_2_CURSOR, TRANSACTIONS_PAGE_3_CURSOR, -} from '../tests/mocks'; -import { STORAGE_SERVICE_KEY } from './BaseDataService'; +} from '../tests/mocks.js'; +import { STORAGE_SERVICE_KEY } from './BaseDataService.js'; const TEST_ADDRESS = '0x4bbeEB066eD09B7AEd07bF39EEe0460DFa261520'; @@ -232,7 +235,8 @@ describe('BaseDataService', () => { }); beforeEach(() => { - cleanAll(); + // eslint-disable-next-line import-x/no-named-as-default-member + nock.cleanAll(); }); it('retries failed queries using the service policy', async () => { diff --git a/packages/base-data-service/src/BaseDataService.ts b/packages/base-data-service/src/BaseDataService.ts index 3b459612253..96b02a38632 100644 --- a/packages/base-data-service/src/BaseDataService.ts +++ b/packages/base-data-service/src/BaseDataService.ts @@ -26,13 +26,13 @@ import { hydrate, } from '@tanstack/query-core'; import deepEqual from 'fast-deep-equal'; -import { debounce, DebouncedFunc } from 'lodash'; +import { debounce, DebouncedFunc } from 'lodash-es'; import { createServicePolicy, CreateServicePolicyOptions, ServicePolicy, -} from './createServicePolicy'; +} from './createServicePolicy.js'; // Data service queries use the following format: ['ServiceActionName', ...params] export type QueryKey = [string, ...Json[]]; diff --git a/packages/base-data-service/src/createServicePolicy.test.ts b/packages/base-data-service/src/createServicePolicy.test.ts index 9b34660b334..fd96f62d165 100644 --- a/packages/base-data-service/src/createServicePolicy.test.ts +++ b/packages/base-data-service/src/createServicePolicy.test.ts @@ -7,7 +7,7 @@ import { DEFAULT_MAX_CONSECUTIVE_FAILURES, DEFAULT_MAX_RETRIES, ServicePolicy, -} from './createServicePolicy'; +} from './createServicePolicy.js'; describe('createServicePolicy', () => { beforeEach(() => { diff --git a/packages/base-data-service/src/index.ts b/packages/base-data-service/src/index.ts index d0e9673dc01..9313f9d103a 100644 --- a/packages/base-data-service/src/index.ts +++ b/packages/base-data-service/src/index.ts @@ -21,8 +21,8 @@ export type { DataServiceGranularCacheUpdatedEvent, QueryKey, PersistenceConfiguration, -} from './BaseDataService'; -export { BaseDataService } from './BaseDataService'; +} from './BaseDataService.js'; +export { BaseDataService } from './BaseDataService.js'; export { DEFAULT_CIRCUIT_BREAK_DURATION, @@ -30,8 +30,8 @@ export { DEFAULT_MAX_CONSECUTIVE_FAILURES, DEFAULT_MAX_RETRIES, createServicePolicy, -} from './createServicePolicy'; +} from './createServicePolicy.js'; export type { CreateServicePolicyOptions, ServicePolicy, -} from './createServicePolicy'; +} from './createServicePolicy.js'; diff --git a/packages/base-data-service/tests/ExampleDataService-method-action-types.ts b/packages/base-data-service/tests/ExampleDataService-method-action-types.ts index 037dc899e74..b15943c584d 100644 --- a/packages/base-data-service/tests/ExampleDataService-method-action-types.ts +++ b/packages/base-data-service/tests/ExampleDataService-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { ExampleDataService } from './ExampleDataService'; +import type { ExampleDataService } from './ExampleDataService.js'; export type ExampleDataServiceGetAssetsAction = { type: `ExampleDataService:getAssets`; diff --git a/packages/base-data-service/tests/ExampleDataService.ts b/packages/base-data-service/tests/ExampleDataService.ts index f6eb3ff93bc..d84e9edf5d1 100644 --- a/packages/base-data-service/tests/ExampleDataService.ts +++ b/packages/base-data-service/tests/ExampleDataService.ts @@ -8,8 +8,8 @@ import { DataServiceCacheUpdatedEvent, DataServiceGranularCacheUpdatedEvent, PersistenceConfiguration, -} from '../src/BaseDataService'; -import { ExampleDataServiceMethodActions } from './ExampleDataService-method-action-types'; +} from '../src/BaseDataService.js'; +import { ExampleDataServiceMethodActions } from './ExampleDataService-method-action-types.js'; export const serviceName = 'ExampleDataService'; From 75847f851b9e416f7347d56f003b80fed1520244 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:40:30 +0200 Subject: [PATCH 063/136] Fix ESLint errors for `permission-controller` Add `.js` extensions to relative imports and fix one `prefer-nullish-coalescing` violation. --- packages/permission-controller/package.json | 1 + .../permission-controller/src/Caveat.test.ts | 6 ++--- packages/permission-controller/src/Caveat.ts | 8 +++---- .../src/Permission.test.ts | 8 +++---- .../permission-controller/src/Permission.ts | 6 ++--- ...ermissionController-method-action-types.ts | 2 +- .../src/PermissionController.test.ts | 13 +++++------ .../src/PermissionController.ts | 20 ++++++++--------- ...tMetadataController-method-action-types.ts | 2 +- .../src/SubjectMetadataController.test.ts | 4 ++-- .../src/SubjectMetadataController.ts | 6 ++--- .../createRestrictedMethodMessenger.test.ts | 2 +- .../permission-controller/src/errors.test.ts | 2 +- packages/permission-controller/src/errors.ts | 6 ++--- packages/permission-controller/src/index.ts | 22 +++++++++---------- .../src/permission-middleware.ts | 4 ++-- packages/permission-controller/src/utils.ts | 4 ++-- 17 files changed, 57 insertions(+), 59 deletions(-) diff --git a/packages/permission-controller/package.json b/packages/permission-controller/package.json index 2eadcbd8631..047329952b8 100644 --- a/packages/permission-controller/package.json +++ b/packages/permission-controller/package.json @@ -61,6 +61,7 @@ "nanoid": "^3.3.8" }, "devDependencies": { + "@jest/globals": "^30.4.1", "@metamask/auto-changelog": "^6.1.0", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", diff --git a/packages/permission-controller/src/Caveat.test.ts b/packages/permission-controller/src/Caveat.test.ts index 7d4e0c5e443..1fee7f4dbf2 100644 --- a/packages/permission-controller/src/Caveat.test.ts +++ b/packages/permission-controller/src/Caveat.test.ts @@ -1,6 +1,6 @@ -import type { Caveat, PermissionConstraint } from '.'; -import { decorateWithCaveats, PermissionType } from '.'; -import * as errors from './errors'; +import type { Caveat, PermissionConstraint } from './..js'; +import { decorateWithCaveats, PermissionType } from './..js'; +import * as errors from './errors.js'; describe('decorateWithCaveats', () => { it('decorates a method with caveat', async () => { diff --git a/packages/permission-controller/src/Caveat.ts b/packages/permission-controller/src/Caveat.ts index 40ec5894a90..f79ded41b35 100644 --- a/packages/permission-controller/src/Caveat.ts +++ b/packages/permission-controller/src/Caveat.ts @@ -4,16 +4,16 @@ import { hasProperty } from '@metamask/utils'; import { CaveatSpecificationMismatchError, UnrecognizedCaveatTypeError, -} from './errors'; +} from './errors.js'; import type { AsyncRestrictedMethod, RestrictedMethod, PermissionConstraint, RestrictedMethodParameters, -} from './Permission'; -import { PermissionType } from './Permission'; +} from './Permission.js'; +import { PermissionType } from './Permission.js'; // eslint-disable-next-line @typescript-eslint/no-unused-vars -import type { PermissionController } from './PermissionController'; +import type { PermissionController } from './PermissionController.js'; export type CaveatConstraint = { /** diff --git a/packages/permission-controller/src/Permission.test.ts b/packages/permission-controller/src/Permission.test.ts index a7fdf7a631c..237dc5d8bf9 100644 --- a/packages/permission-controller/src/Permission.test.ts +++ b/packages/permission-controller/src/Permission.test.ts @@ -5,10 +5,10 @@ import type { PermissionConstraint, PermissionSpecificationBuilder, RestrictedMethodSpecificationConstraint, -} from '.'; -import { constructPermission, PermissionType } from '.'; -import { createRestrictedMethodMessenger } from './createRestrictedMethodMessenger'; -import { findCaveat } from './Permission'; +} from './..js'; +import { constructPermission, PermissionType } from './..js'; +import { createRestrictedMethodMessenger } from './createRestrictedMethodMessenger.js'; +import { findCaveat } from './Permission.js'; describe('constructPermission', () => { it('constructs a permission', () => { diff --git a/packages/permission-controller/src/Permission.ts b/packages/permission-controller/src/Permission.ts index 02bb2a507ca..fcf4a171b87 100644 --- a/packages/permission-controller/src/Permission.ts +++ b/packages/permission-controller/src/Permission.ts @@ -4,14 +4,14 @@ import type { Json } from '@metamask/utils'; import { nanoid } from 'nanoid'; // eslint-disable-next-line @typescript-eslint/no-unused-vars -import type { CaveatConstraint, Caveat } from './Caveat'; +import type { CaveatConstraint, Caveat } from './Caveat.js'; import type { // eslint-disable-next-line @typescript-eslint/no-unused-vars PermissionController, PermissionsRequest, SideEffectMessenger, -} from './PermissionController'; -import type { SubjectType } from './SubjectMetadataController'; +} from './PermissionController.js'; +import type { SubjectType } from './SubjectMetadataController.js'; /** * The origin of a subject. diff --git a/packages/permission-controller/src/PermissionController-method-action-types.ts b/packages/permission-controller/src/PermissionController-method-action-types.ts index 75305e05abb..db60cd68d80 100644 --- a/packages/permission-controller/src/PermissionController-method-action-types.ts +++ b/packages/permission-controller/src/PermissionController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { PermissionController } from './PermissionController'; +import type { PermissionController } from './PermissionController.js'; /** * Checks whether the given method was declared as unrestricted at diff --git a/packages/permission-controller/src/PermissionController.test.ts b/packages/permission-controller/src/PermissionController.test.ts index b90e4f3e7ac..4327adb0c13 100644 --- a/packages/permission-controller/src/PermissionController.test.ts +++ b/packages/permission-controller/src/PermissionController.test.ts @@ -33,7 +33,7 @@ import { RestrictedMethodOptions, RestrictedMethodParameters, ValidPermission, -} from '.'; +} from './..js'; import { CaveatMutatorOperation, constructPermission, @@ -42,10 +42,10 @@ import { MethodNames, PermissionController, PermissionType, -} from '.'; -import * as errors from './errors'; -import type { EndowmentGetterParams } from './Permission'; -import { SubjectType } from './SubjectMetadataController'; +} from './..js'; +import * as errors from './errors.js'; +import type { EndowmentGetterParams } from './Permission.js'; +import { SubjectType } from './SubjectMetadataController.js'; // Caveat types and specifications @@ -5907,8 +5907,7 @@ describe('PermissionController', () => { expect( Object.keys( - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - messenger.call('PermissionController:getPermissions', 'foo')!, + messenger.call('PermissionController:getPermissions', 'foo'), ), ).toStrictEqual(['wallet_getSecretArray']); diff --git a/packages/permission-controller/src/PermissionController.ts b/packages/permission-controller/src/PermissionController.ts index 70fe65b6368..82b7a8eb72f 100644 --- a/packages/permission-controller/src/PermissionController.ts +++ b/packages/permission-controller/src/PermissionController.ts @@ -38,11 +38,11 @@ import type { ExtractCaveat, ExtractCaveats, ExtractCaveatValue, -} from './Caveat'; +} from './Caveat.js'; import { decorateWithCaveats, isRestrictedMethodCaveatSpecification, -} from './Caveat'; +} from './Caveat.js'; import { CaveatAlreadyExistsError, CaveatDoesNotExistError, @@ -70,7 +70,7 @@ import { UnrecognizedCaveatTypeError, UnrecognizedSubjectError, userRejectedRequest, -} from './errors'; +} from './errors.js'; import type { EndowmentSpecificationConstraint, ExtractAllowedCaveatTypes, @@ -86,16 +86,16 @@ import type { SideEffectHandler, ValidPermission, ValidPermissionSpecification, -} from './Permission'; +} from './Permission.js'; import { constructPermission, findCaveat, hasSpecificationType, PermissionType, -} from './Permission'; -import type { PermissionControllerMethodActions } from './PermissionController-method-action-types'; -import type { SubjectMetadataControllerGetSubjectMetadataAction } from './SubjectMetadataController-method-action-types'; -import { collectUniqueAndPairedCaveats, MethodNames } from './utils'; +} from './Permission.js'; +import type { PermissionControllerMethodActions } from './PermissionController-method-action-types.js'; +import type { SubjectMetadataControllerGetSubjectMetadataAction } from './SubjectMetadataController-method-action-types.js'; +import { collectUniqueAndPairedCaveats, MethodNames } from './utils.js'; /** * Flags for controlling the validation behavior of certain internal methods. @@ -1895,9 +1895,7 @@ export class PermissionController< >, ): void { this.update((draftState) => { - if (!draftState.subjects[origin]) { - draftState.subjects[origin] = { origin, permissions: {} }; - } + draftState.subjects[origin] ??= { origin, permissions: {} }; draftState.subjects[origin].permissions = castDraft(permissions); }); diff --git a/packages/permission-controller/src/SubjectMetadataController-method-action-types.ts b/packages/permission-controller/src/SubjectMetadataController-method-action-types.ts index 7857132236d..1c0ceca3998 100644 --- a/packages/permission-controller/src/SubjectMetadataController-method-action-types.ts +++ b/packages/permission-controller/src/SubjectMetadataController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { SubjectMetadataController } from './SubjectMetadataController'; +import type { SubjectMetadataController } from './SubjectMetadataController.js'; /** * Clears the state of this controller. Also resets the cache of subjects diff --git a/packages/permission-controller/src/SubjectMetadataController.test.ts b/packages/permission-controller/src/SubjectMetadataController.test.ts index b58532db3f5..1d596599b58 100644 --- a/packages/permission-controller/src/SubjectMetadataController.test.ts +++ b/packages/permission-controller/src/SubjectMetadataController.test.ts @@ -10,11 +10,11 @@ import type { Json } from '@metamask/utils'; import type { SubjectMetadata, SubjectMetadataControllerMessenger, -} from './SubjectMetadataController'; +} from './SubjectMetadataController.js'; import { SubjectMetadataController, SubjectType, -} from './SubjectMetadataController'; +} from './SubjectMetadataController.js'; const controllerName = 'SubjectMetadataController'; diff --git a/packages/permission-controller/src/SubjectMetadataController.ts b/packages/permission-controller/src/SubjectMetadataController.ts index 19a3e516601..dc781c6d9c2 100644 --- a/packages/permission-controller/src/SubjectMetadataController.ts +++ b/packages/permission-controller/src/SubjectMetadataController.ts @@ -6,12 +6,12 @@ import { BaseController } from '@metamask/base-controller'; import type { Messenger } from '@metamask/messenger'; import type { Json } from '@metamask/utils'; +import type { PermissionControllerHasPermissionsAction } from './PermissionController-method-action-types.js'; import type { GenericPermissionController, PermissionSubjectMetadata, -} from './PermissionController'; -import type { PermissionControllerHasPermissionsAction } from './PermissionController-method-action-types'; -import type { SubjectMetadataControllerMethodActions } from './SubjectMetadataController-method-action-types'; +} from './PermissionController.js'; +import type { SubjectMetadataControllerMethodActions } from './SubjectMetadataController-method-action-types.js'; const controllerName = 'SubjectMetadataController'; diff --git a/packages/permission-controller/src/createRestrictedMethodMessenger.test.ts b/packages/permission-controller/src/createRestrictedMethodMessenger.test.ts index 0cf75cee098..62aeba55f14 100644 --- a/packages/permission-controller/src/createRestrictedMethodMessenger.test.ts +++ b/packages/permission-controller/src/createRestrictedMethodMessenger.test.ts @@ -1,6 +1,6 @@ import { Messenger } from '@metamask/messenger'; -import { createRestrictedMethodMessenger } from './createRestrictedMethodMessenger'; +import { createRestrictedMethodMessenger } from './createRestrictedMethodMessenger.js'; type FooAction = { type: 'Foo:ping'; diff --git a/packages/permission-controller/src/errors.test.ts b/packages/permission-controller/src/errors.test.ts index a10d1416b96..80263036e3b 100644 --- a/packages/permission-controller/src/errors.test.ts +++ b/packages/permission-controller/src/errors.test.ts @@ -1,7 +1,7 @@ import { CaveatMergeTypeMismatchError, EndowmentPermissionDoesNotExistError, -} from './errors'; +} from './errors.js'; describe('error', () => { describe('CaveatMergeTypeMismatchError', () => { diff --git a/packages/permission-controller/src/errors.ts b/packages/permission-controller/src/errors.ts index 9c0d9ed65cc..37bc6b7853f 100644 --- a/packages/permission-controller/src/errors.ts +++ b/packages/permission-controller/src/errors.ts @@ -10,9 +10,9 @@ import { JsonRpcError, } from '@metamask/rpc-errors'; -import type { CaveatConstraint } from './Caveat'; -import type { PermissionType } from './Permission'; -import type { PermissionDiffMap } from './PermissionController'; +import type { CaveatConstraint } from './Caveat.js'; +import type { PermissionType } from './Permission.js'; +import type { PermissionDiffMap } from './PermissionController.js'; type UnauthorizedArg = { data?: Record; diff --git a/packages/permission-controller/src/index.ts b/packages/permission-controller/src/index.ts index 962b7921ad2..9781a532965 100644 --- a/packages/permission-controller/src/index.ts +++ b/packages/permission-controller/src/index.ts @@ -1,8 +1,8 @@ -export * from './Caveat'; -export { createRestrictedMethodMessenger } from './createRestrictedMethodMessenger'; -export * from './errors'; -export * from './Permission'; -export * from './PermissionController'; +export * from './Caveat.js'; +export { createRestrictedMethodMessenger } from './createRestrictedMethodMessenger.js'; +export * from './errors.js'; +export * from './Permission.js'; +export * from './PermissionController.js'; export type { PermissionControllerClearStateAction, PermissionControllerExecuteRestrictedMethodAction, @@ -26,18 +26,18 @@ export type { PermissionControllerUpdatePermissionsByCaveatAction, PermissionControllerAcceptPermissionsRequestAction, PermissionControllerRejectPermissionsRequestAction, -} from './PermissionController-method-action-types'; +} from './PermissionController-method-action-types.js'; export { createPermissionMiddleware, createPermissionMiddlewareV2, type PermissionMiddlewareActions, -} from './permission-middleware'; -export type { ExtractSpecifications } from './utils'; -export { MethodNames } from './utils'; -export * from './SubjectMetadataController'; +} from './permission-middleware.js'; +export type { ExtractSpecifications } from './utils.js'; +export { MethodNames } from './utils.js'; +export * from './SubjectMetadataController.js'; export type { SubjectMetadataControllerClearStateAction, SubjectMetadataControllerAddSubjectMetadataAction, SubjectMetadataControllerGetSubjectMetadataAction, SubjectMetadataControllerTrimMetadataStateAction, -} from './SubjectMetadataController-method-action-types'; +} from './SubjectMetadataController-method-action-types.js'; diff --git a/packages/permission-controller/src/permission-middleware.ts b/packages/permission-controller/src/permission-middleware.ts index 6fbb954465a..9915f96ec6e 100644 --- a/packages/permission-controller/src/permission-middleware.ts +++ b/packages/permission-controller/src/permission-middleware.ts @@ -7,11 +7,11 @@ import type { JsonRpcMiddleware as JsonRpcMiddlewareV2 } from '@metamask/json-rp import type { Messenger } from '@metamask/messenger'; import type { Json } from '@metamask/utils'; -import type { RestrictedMethodParameters } from './Permission'; +import type { RestrictedMethodParameters } from './Permission.js'; import type { PermissionControllerExecuteRestrictedMethodAction, PermissionControllerHasUnrestrictedMethodAction, -} from './PermissionController-method-action-types'; +} from './PermissionController-method-action-types.js'; /** * The set of messenger actions required by the permission middleware. diff --git a/packages/permission-controller/src/utils.ts b/packages/permission-controller/src/utils.ts index d576924ad6d..7d229f97446 100644 --- a/packages/permission-controller/src/utils.ts +++ b/packages/permission-controller/src/utils.ts @@ -2,12 +2,12 @@ import type { CaveatConstraint, CaveatSpecificationConstraint, CaveatSpecificationMap, -} from './Caveat'; +} from './Caveat.js'; import type { PermissionConstraint, PermissionSpecificationConstraint, PermissionSpecificationMap, -} from './Permission'; +} from './Permission.js'; export enum MethodNames { RequestPermissions = 'wallet_requestPermissions', From 19d7427bd23e5708eb2e49fb0c6cba31ffc23d9f Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:43:50 +0200 Subject: [PATCH 064/136] Add `jest` global import to batch 4 tests Adds the required `import { jest } from '@jest/globals'` to test files in composable-controller, eth-json-rpc-provider, json-rpc-middleware-stream, permission-log-controller, base-data-service, and permission-controller. Also fixes nock named import in base-data-service (CJS package, must use default import in ESM mode). --- packages/base-data-service/src/BaseDataService.test.ts | 1 + packages/composable-controller/src/ComposableController.test.ts | 1 + packages/eth-json-rpc-provider/src/internal-provider.test.ts | 1 + packages/permission-controller/src/PermissionController.test.ts | 1 + .../permission-controller/src/SubjectMetadataController.test.ts | 1 + 5 files changed, 5 insertions(+) diff --git a/packages/base-data-service/src/BaseDataService.test.ts b/packages/base-data-service/src/BaseDataService.test.ts index f9ac03c0453..70076546ed1 100644 --- a/packages/base-data-service/src/BaseDataService.test.ts +++ b/packages/base-data-service/src/BaseDataService.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; import { MOCK_ANY_NAMESPACE, Messenger } from '@metamask/messenger'; import { hashQueryKey } from '@tanstack/query-core'; import { BrokenCircuitError } from 'cockatiel'; diff --git a/packages/composable-controller/src/ComposableController.test.ts b/packages/composable-controller/src/ComposableController.test.ts index 7cf0e9c4678..0aef9eca4e5 100644 --- a/packages/composable-controller/src/ComposableController.test.ts +++ b/packages/composable-controller/src/ComposableController.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; import { BaseController, deriveStateFromMetadata, diff --git a/packages/eth-json-rpc-provider/src/internal-provider.test.ts b/packages/eth-json-rpc-provider/src/internal-provider.test.ts index 00dc8accf1b..3e40de07338 100644 --- a/packages/eth-json-rpc-provider/src/internal-provider.test.ts +++ b/packages/eth-json-rpc-provider/src/internal-provider.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; import { Web3Provider } from '@ethersproject/providers'; import { jest } from '@jest/globals'; import EthQuery from '@metamask/eth-query'; diff --git a/packages/permission-controller/src/PermissionController.test.ts b/packages/permission-controller/src/PermissionController.test.ts index 4327adb0c13..5494f33ab6b 100644 --- a/packages/permission-controller/src/PermissionController.test.ts +++ b/packages/permission-controller/src/PermissionController.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; import { deriveStateFromMetadata } from '@metamask/base-controller'; import { isPlainObject } from '@metamask/controller-utils'; import { JsonRpcEngine } from '@metamask/json-rpc-engine'; diff --git a/packages/permission-controller/src/SubjectMetadataController.test.ts b/packages/permission-controller/src/SubjectMetadataController.test.ts index 1d596599b58..1e1e8b6eb3e 100644 --- a/packages/permission-controller/src/SubjectMetadataController.test.ts +++ b/packages/permission-controller/src/SubjectMetadataController.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; import { deriveStateFromMetadata } from '@metamask/base-controller'; import { Messenger, MOCK_ANY_NAMESPACE } from '@metamask/messenger'; import type { From cde2101d98294ee477fe86bcc0ec4bf8fdbf6fe7 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:46:11 +0200 Subject: [PATCH 065/136] Add `jest` global import and fix import extensions in straggler files Adds jest import to base-data-service createServicePolicy.test.ts, and fixes .js import extensions in json-rpc-engine tests/utils.ts. --- packages/base-data-service/src/createServicePolicy.test.ts | 1 + packages/json-rpc-engine/tests/utils.ts | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/base-data-service/src/createServicePolicy.test.ts b/packages/base-data-service/src/createServicePolicy.test.ts index fd96f62d165..c7dd0c46357 100644 --- a/packages/base-data-service/src/createServicePolicy.test.ts +++ b/packages/base-data-service/src/createServicePolicy.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; import { CircuitState, ConstantBackoff, handleWhen } from 'cockatiel'; import { diff --git a/packages/json-rpc-engine/tests/utils.ts b/packages/json-rpc-engine/tests/utils.ts index eee712c50f4..40a6a5b0370 100644 --- a/packages/json-rpc-engine/tests/utils.ts +++ b/packages/json-rpc-engine/tests/utils.ts @@ -1,8 +1,8 @@ import type { JsonRpcRequest } from '@metamask/utils'; import type { JsonRpcMiddleware } from 'src/v2/JsonRpcEngineV2'; -import { requestProps } from '../src/v2/compatibility-utils'; -import type { JsonRpcNotification } from '../src/v2/utils'; +import { requestProps } from '../src/v2/compatibility-utils.js'; +import type { JsonRpcNotification } from '../src/v2/utils.js'; const jsonrpc = '2.0' as const; From c71bb3858737d0af1392e5cbd39f87adf52b576e Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:48:10 +0200 Subject: [PATCH 066/136] ESLint fix and `jest` global import for eth-block-tracker Adds .js extensions to relative imports and `import { jest }` to test files. --- .../eth-block-tracker/src/PollingBlockTracker.test.ts | 8 ++++---- packages/eth-block-tracker/src/PollingBlockTracker.ts | 4 ++-- packages/eth-block-tracker/src/index.ts | 4 ++-- .../eth-block-tracker/tests/recordCallsToSetTimeout.ts | 2 +- packages/eth-block-tracker/tests/withBlockTracker.ts | 4 ++-- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/eth-block-tracker/src/PollingBlockTracker.test.ts b/packages/eth-block-tracker/src/PollingBlockTracker.test.ts index 95ae2204f76..dbec24c97e9 100644 --- a/packages/eth-block-tracker/src/PollingBlockTracker.test.ts +++ b/packages/eth-block-tracker/src/PollingBlockTracker.test.ts @@ -1,9 +1,9 @@ import { createDeferredPromise } from '@metamask/utils'; -import { PollingBlockTracker } from '.'; -import EMPTY_FUNCTION from '../tests/emptyFunction'; -import recordCallsToSetTimeout from '../tests/recordCallsToSetTimeout'; -import { withPollingBlockTracker } from '../tests/withBlockTracker'; +import EMPTY_FUNCTION from '../tests/emptyFunction.js'; +import recordCallsToSetTimeout from '../tests/recordCallsToSetTimeout.js'; +import { withPollingBlockTracker } from '../tests/withBlockTracker.js'; +import { PollingBlockTracker } from './..js'; type Sync = { oldBlock: string; diff --git a/packages/eth-block-tracker/src/PollingBlockTracker.ts b/packages/eth-block-tracker/src/PollingBlockTracker.ts index 4d8bbe5737c..ab3e858bf9b 100644 --- a/packages/eth-block-tracker/src/PollingBlockTracker.ts +++ b/packages/eth-block-tracker/src/PollingBlockTracker.ts @@ -8,8 +8,8 @@ import { createDeferredPromise, getErrorMessage } from '@metamask/utils'; import type { DeferredPromise, JsonRpcRequest } from '@metamask/utils'; import getCreateRandomId from 'json-rpc-random-id'; -import type { BlockTracker } from './BlockTracker'; -import { projectLogger, createModuleLogger } from './logging-utils'; +import type { BlockTracker } from './BlockTracker.js'; +import { projectLogger, createModuleLogger } from './logging-utils.js'; const log = createModuleLogger(projectLogger, 'polling-block-tracker'); const createRandomId = getCreateRandomId(); diff --git a/packages/eth-block-tracker/src/index.ts b/packages/eth-block-tracker/src/index.ts index 20f0aa19b07..32370f265de 100644 --- a/packages/eth-block-tracker/src/index.ts +++ b/packages/eth-block-tracker/src/index.ts @@ -1,2 +1,2 @@ -export * from './PollingBlockTracker'; -export type * from './BlockTracker'; +export * from './PollingBlockTracker.js'; +export type * from './BlockTracker.js'; diff --git a/packages/eth-block-tracker/tests/recordCallsToSetTimeout.ts b/packages/eth-block-tracker/tests/recordCallsToSetTimeout.ts index 42116a3e78f..bb5ab7107ba 100644 --- a/packages/eth-block-tracker/tests/recordCallsToSetTimeout.ts +++ b/packages/eth-block-tracker/tests/recordCallsToSetTimeout.ts @@ -1,6 +1,6 @@ import EventEmitter from 'events'; -import EMPTY_FUNCTION from './emptyFunction'; +import EMPTY_FUNCTION from './emptyFunction.js'; type SetTimeoutCallback = () => unknown; diff --git a/packages/eth-block-tracker/tests/withBlockTracker.ts b/packages/eth-block-tracker/tests/withBlockTracker.ts index b5d6fe46759..ffc6c70a0ba 100644 --- a/packages/eth-block-tracker/tests/withBlockTracker.ts +++ b/packages/eth-block-tracker/tests/withBlockTracker.ts @@ -3,8 +3,8 @@ import { JsonRpcEngine } from '@metamask/json-rpc-engine'; import type { Json } from '@metamask/utils'; import util from 'util'; -import type { PollingBlockTrackerOptions } from '../src'; -import { PollingBlockTracker } from '../src'; +import type { PollingBlockTrackerOptions } from '../src.js'; +import { PollingBlockTracker } from '../src.js'; type WithPollingBlockTrackerOptions = { provider?: FakeProviderOptions; From 1d6d792935a6536386bbfc2f4e8f0e9175c6bf81 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:48:14 +0200 Subject: [PATCH 067/136] ESLint fix and `jest` global import for eip1193-permission-middleware --- packages/eip1193-permission-middleware/package.json | 2 +- packages/eip1193-permission-middleware/src/index.test.ts | 8 ++++---- packages/eip1193-permission-middleware/src/index.ts | 6 +++--- .../src/wallet-getPermissions.test.ts | 4 ++-- .../src/wallet-getPermissions.ts | 5 ++--- .../src/wallet-requestPermissions.test.ts | 4 ++-- .../src/wallet-requestPermissions.ts | 7 +++---- .../src/wallet-revokePermissions.test.ts | 4 ++-- .../src/wallet-revokePermissions.ts | 2 +- 9 files changed, 20 insertions(+), 22 deletions(-) diff --git a/packages/eip1193-permission-middleware/package.json b/packages/eip1193-permission-middleware/package.json index ac8fdde3054..33d421a2ba2 100644 --- a/packages/eip1193-permission-middleware/package.json +++ b/packages/eip1193-permission-middleware/package.json @@ -51,7 +51,7 @@ "@metamask/json-rpc-engine": "^10.5.0", "@metamask/permission-controller": "^13.1.1", "@metamask/utils": "^11.11.0", - "lodash": "^4.17.21" + "lodash-es": "^4.17.21" }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", diff --git a/packages/eip1193-permission-middleware/src/index.test.ts b/packages/eip1193-permission-middleware/src/index.test.ts index feed1294273..89ce618a75c 100644 --- a/packages/eip1193-permission-middleware/src/index.test.ts +++ b/packages/eip1193-permission-middleware/src/index.test.ts @@ -1,9 +1,9 @@ import { createMethodMiddleware } from '@metamask/json-rpc-engine'; -import * as allExports from '.'; -import type { GetPermissionsHooks } from './wallet-getPermissions'; -import type { RequestPermissionsHooks } from './wallet-requestPermissions'; -import type { RevokePermissionsHooks } from './wallet-revokePermissions'; +import * as allExports from './..js'; +import type { GetPermissionsHooks } from './wallet-getPermissions.js'; +import type { RequestPermissionsHooks } from './wallet-requestPermissions.js'; +import type { RevokePermissionsHooks } from './wallet-revokePermissions.js'; type Hooks = GetPermissionsHooks & RequestPermissionsHooks & diff --git a/packages/eip1193-permission-middleware/src/index.ts b/packages/eip1193-permission-middleware/src/index.ts index ef0b2336e84..c84419f78fc 100644 --- a/packages/eip1193-permission-middleware/src/index.ts +++ b/packages/eip1193-permission-middleware/src/index.ts @@ -1,8 +1,8 @@ import { MethodNames } from '@metamask/permission-controller'; -import { getPermissionsHandler } from './wallet-getPermissions'; -import { requestPermissionsHandler } from './wallet-requestPermissions'; -import { revokePermissionsHandler } from './wallet-revokePermissions'; +import { getPermissionsHandler } from './wallet-getPermissions.js'; +import { requestPermissionsHandler } from './wallet-requestPermissions.js'; +import { revokePermissionsHandler } from './wallet-revokePermissions.js'; type MethodHandlers = { [MethodNames.GetPermissions]: typeof getPermissionsHandler; diff --git a/packages/eip1193-permission-middleware/src/wallet-getPermissions.test.ts b/packages/eip1193-permission-middleware/src/wallet-getPermissions.test.ts index a13091bb69e..1866636dcc4 100644 --- a/packages/eip1193-permission-middleware/src/wallet-getPermissions.test.ts +++ b/packages/eip1193-permission-middleware/src/wallet-getPermissions.test.ts @@ -5,8 +5,8 @@ import type { PendingJsonRpcResponse, } from '@metamask/utils'; -import { CaveatTypes, EndowmentTypes, RestrictedMethods } from './types'; -import { getPermissionsHandler } from './wallet-getPermissions'; +import { CaveatTypes, EndowmentTypes, RestrictedMethods } from './types.js'; +import { getPermissionsHandler } from './wallet-getPermissions.js'; jest.mock('@metamask/chain-agnostic-permission', () => ({ ...jest.requireActual('@metamask/chain-agnostic-permission'), diff --git a/packages/eip1193-permission-middleware/src/wallet-getPermissions.ts b/packages/eip1193-permission-middleware/src/wallet-getPermissions.ts index 52914bc1ff4..1ef352468e7 100644 --- a/packages/eip1193-permission-middleware/src/wallet-getPermissions.ts +++ b/packages/eip1193-permission-middleware/src/wallet-getPermissions.ts @@ -1,4 +1,3 @@ -import type { Caip25CaveatValue } from '@metamask/chain-agnostic-permission'; import { Caip25CaveatType, Caip25EndowmentPermissionName, @@ -16,7 +15,7 @@ import type { PendingJsonRpcResponse, } from '@metamask/utils'; -import { CaveatTypes, EndowmentTypes, RestrictedMethods } from './types'; +import { CaveatTypes, EndowmentTypes, RestrictedMethods } from './types.js'; export type GetPermissionsHooks = { getPermissionsForOrigin: () => ReturnType< @@ -65,7 +64,7 @@ async function getPermissionsImplementation( const caip25Endowment = permissions[Caip25EndowmentPermissionName]; const caip25CaveatValue = caip25Endowment?.caveats?.find( ({ type }) => type === Caip25CaveatType, - )?.value as Caip25CaveatValue | undefined; + )?.value; delete permissions[Caip25EndowmentPermissionName]; if (caip25CaveatValue) { diff --git a/packages/eip1193-permission-middleware/src/wallet-requestPermissions.test.ts b/packages/eip1193-permission-middleware/src/wallet-requestPermissions.test.ts index c14728e930d..8e1e90e438b 100644 --- a/packages/eip1193-permission-middleware/src/wallet-requestPermissions.test.ts +++ b/packages/eip1193-permission-middleware/src/wallet-requestPermissions.test.ts @@ -6,8 +6,8 @@ import { invalidParams } from '@metamask/permission-controller'; import type { RequestedPermissions } from '@metamask/permission-controller'; import type { JsonRpcRequest, PendingJsonRpcResponse } from '@metamask/utils'; -import { CaveatTypes, EndowmentTypes, RestrictedMethods } from './types'; -import { requestPermissionsHandler } from './wallet-requestPermissions'; +import { CaveatTypes, EndowmentTypes, RestrictedMethods } from './types.js'; +import { requestPermissionsHandler } from './wallet-requestPermissions.js'; const getBaseRequest = (overrides = {}) => ({ jsonrpc: '2.0' as const, diff --git a/packages/eip1193-permission-middleware/src/wallet-requestPermissions.ts b/packages/eip1193-permission-middleware/src/wallet-requestPermissions.ts index ec723df7ba3..4f07f25cea2 100644 --- a/packages/eip1193-permission-middleware/src/wallet-requestPermissions.ts +++ b/packages/eip1193-permission-middleware/src/wallet-requestPermissions.ts @@ -1,4 +1,3 @@ -import type { Caip25CaveatValue } from '@metamask/chain-agnostic-permission'; import { Caip25CaveatType, Caip25EndowmentPermissionName, @@ -22,9 +21,9 @@ import type { JsonRpcRequest, PendingJsonRpcResponse, } from '@metamask/utils'; -import { pick } from 'lodash'; +import { pick } from 'lodash-es'; -import { CaveatTypes, EndowmentTypes, RestrictedMethods } from './types'; +import { CaveatTypes, EndowmentTypes, RestrictedMethods } from './types.js'; export type RequestPermissionsHooks = { getAccounts: () => string[]; @@ -128,7 +127,7 @@ async function requestPermissionsImplementation( const caip25CaveatValue = caip25Endowment.caveats?.find( ({ type }) => type === Caip25CaveatType, - )?.value as Caip25CaveatValue | undefined; + )?.value; if (!caip25CaveatValue) { throw new Error( `could not find ${Caip25CaveatType} in granted ${Caip25EndowmentPermissionName} permission.`, diff --git a/packages/eip1193-permission-middleware/src/wallet-revokePermissions.test.ts b/packages/eip1193-permission-middleware/src/wallet-revokePermissions.test.ts index 34bb499c4c3..0a7f51144cd 100644 --- a/packages/eip1193-permission-middleware/src/wallet-revokePermissions.test.ts +++ b/packages/eip1193-permission-middleware/src/wallet-revokePermissions.test.ts @@ -6,8 +6,8 @@ import type { PendingJsonRpcResponse, } from '@metamask/utils'; -import { EndowmentTypes, RestrictedMethods } from './types'; -import { revokePermissionsHandler } from './wallet-revokePermissions'; +import { EndowmentTypes, RestrictedMethods } from './types.js'; +import { revokePermissionsHandler } from './wallet-revokePermissions.js'; const baseRequest = { jsonrpc: '2.0' as const, diff --git a/packages/eip1193-permission-middleware/src/wallet-revokePermissions.ts b/packages/eip1193-permission-middleware/src/wallet-revokePermissions.ts index 8f051393a16..96039209937 100644 --- a/packages/eip1193-permission-middleware/src/wallet-revokePermissions.ts +++ b/packages/eip1193-permission-middleware/src/wallet-revokePermissions.ts @@ -13,7 +13,7 @@ import type { PendingJsonRpcResponse, } from '@metamask/utils'; -import { EndowmentTypes, RestrictedMethods } from './types'; +import { EndowmentTypes, RestrictedMethods } from './types.js'; export type RevokePermissionsHooks = { revokePermissionsForOrigin: ( From 8a07be68ae9c80218a411add7ad613889e5027f5 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:48:15 +0200 Subject: [PATCH 068/136] ESLint fix and `jest` global import for snap-account-service --- packages/snap-account-service/package.json | 2 +- .../SnapAccountService-method-action-types.ts | 2 +- .../src/SnapAccountService.test.ts | 6 +++--- .../src/SnapAccountService.ts | 16 ++++++---------- .../src/SnapPlatformWatcher.test.ts | 5 ++--- .../src/SnapPlatformWatcher.ts | 6 +++--- .../snap-account-service/src/SnapTracker.test.ts | 4 ++-- packages/snap-account-service/src/SnapTracker.ts | 4 ++-- packages/snap-account-service/src/index.ts | 10 +++++----- 9 files changed, 25 insertions(+), 30 deletions(-) diff --git a/packages/snap-account-service/package.json b/packages/snap-account-service/package.json index 02b24b2d807..82664284e63 100644 --- a/packages/snap-account-service/package.json +++ b/packages/snap-account-service/package.json @@ -58,7 +58,7 @@ "@metamask/snaps-controllers": "^19.0.0", "@metamask/snaps-sdk": "^11.0.0", "@metamask/utils": "^11.11.0", - "lodash": "^4.17.21" + "lodash-es": "^4.17.21" }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", diff --git a/packages/snap-account-service/src/SnapAccountService-method-action-types.ts b/packages/snap-account-service/src/SnapAccountService-method-action-types.ts index 3cfece68bb1..2ebf8c7b3ca 100644 --- a/packages/snap-account-service/src/SnapAccountService-method-action-types.ts +++ b/packages/snap-account-service/src/SnapAccountService-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { SnapAccountService } from './SnapAccountService'; +import type { SnapAccountService } from './SnapAccountService.js'; /** * Returns the IDs of all currently tracked account-management Snaps — diff --git a/packages/snap-account-service/src/SnapAccountService.test.ts b/packages/snap-account-service/src/SnapAccountService.test.ts index 4960416aa17..00a09e3fa43 100644 --- a/packages/snap-account-service/src/SnapAccountService.test.ts +++ b/packages/snap-account-service/src/SnapAccountService.test.ts @@ -42,9 +42,9 @@ import type { TruncatedSnap } from '@metamask/snaps-utils'; import type { SnapAccountServiceMessenger, SnapAccountServiceOptions, -} from './SnapAccountService'; -import { SnapAccountService } from './SnapAccountService'; -import type { AccountGroupObject } from './types'; +} from './SnapAccountService.js'; +import { SnapAccountService } from './SnapAccountService.js'; +import type { AccountGroupObject } from './types.js'; jest.mock('@metamask/keyring-internal-snap-client/v2'); diff --git a/packages/snap-account-service/src/SnapAccountService.ts b/packages/snap-account-service/src/SnapAccountService.ts index f73975225b1..f0a9af5ce6c 100644 --- a/packages/snap-account-service/src/SnapAccountService.ts +++ b/packages/snap-account-service/src/SnapAccountService.ts @@ -65,7 +65,7 @@ import { SnapId } from '@metamask/snaps-sdk'; import type { Json } from '@metamask/utils'; import { assertStruct } from '@metamask/utils'; -import { projectLogger as log } from './logger'; +import { projectLogger as log } from './logger.js'; import type { SnapAccountServiceEnsureReadyAction, SnapAccountServiceEnsureMigratedAction, @@ -77,10 +77,10 @@ import type { SnapAccountServiceHandleKeyringSnapMessageAction, SnapAccountServiceResolveAccountAddressAction, SnapAccountServiceSetSelectedAccountsAction, -} from './SnapAccountService-method-action-types'; -import { SnapPlatformWatcher } from './SnapPlatformWatcher'; -import type { SnapPlatformWatcherConfig } from './SnapPlatformWatcher'; -import { SnapTracker } from './SnapTracker'; +} from './SnapAccountService-method-action-types.js'; +import { SnapPlatformWatcher } from './SnapPlatformWatcher.js'; +import type { SnapPlatformWatcherConfig } from './SnapPlatformWatcher.js'; +import { SnapTracker } from './SnapTracker.js'; import type { AccountTreeControllerGetAccountGroupObjectAction, AccountTreeControllerGetSelectedAccountGroupAction, @@ -89,7 +89,7 @@ import type { AccountTreeControllerAccountGroupUpdatedEvent, AccountTreeControllerAccountGroupRemovedEvent, AccountGroupObject, -} from './types'; +} from './types.js'; /** * The name of the {@link SnapAccountService}, used to namespace the service's @@ -329,7 +329,6 @@ export class SnapAccountService { * @param groupId - The ID of the newly selected account group. */ #handleSelectedAccountGroupChange(groupId: AccountGroupId | ''): void { - // eslint-disable-next-line no-void void this.#forwardSelectedAccounts( groupId, this.#getAccountGroup(groupId)?.accounts, @@ -342,7 +341,6 @@ export class SnapAccountService { * keyring. */ #handleUnlock(): void { - // eslint-disable-next-line no-void void this.ensureMigrated() .then(async () => { // If the migration is successful, we re-forward the current groups to each new keyrings! @@ -365,7 +363,6 @@ export class SnapAccountService { */ #handleAccountGroupCreatedOrUpdated(group: AccountGroupObject): void { if (group.id === this.#getSelectedAccountGroupId()) { - // eslint-disable-next-line no-void void this.#forwardSelectedAccounts(group.id, group.accounts); } } @@ -378,7 +375,6 @@ export class SnapAccountService { */ #handleAccountGroupRemoved(groupId: AccountGroupId): void { if (groupId === this.#getSelectedAccountGroupId()) { - // eslint-disable-next-line no-void void this.#forwardSelectedAccounts( groupId, [], // Clearing accounts since the group is removed diff --git a/packages/snap-account-service/src/SnapPlatformWatcher.test.ts b/packages/snap-account-service/src/SnapPlatformWatcher.test.ts index dfce52b79b9..f399ff99dfa 100644 --- a/packages/snap-account-service/src/SnapPlatformWatcher.test.ts +++ b/packages/snap-account-service/src/SnapPlatformWatcher.test.ts @@ -1,4 +1,3 @@ -/* eslint-disable no-void */ import { Messenger, MOCK_ANY_NAMESPACE } from '@metamask/messenger'; import type { MockAnyNamespace, @@ -8,8 +7,8 @@ import type { import type { SnapControllerState } from '@metamask/snaps-controllers'; import { createDeferredPromise } from '@metamask/utils'; -import type { SnapAccountServiceMessenger } from './SnapAccountService'; -import { SnapPlatformWatcher } from './SnapPlatformWatcher'; +import type { SnapAccountServiceMessenger } from './SnapAccountService.js'; +import { SnapPlatformWatcher } from './SnapPlatformWatcher.js'; type RootMessenger = Messenger< MockAnyNamespace, diff --git a/packages/snap-account-service/src/SnapPlatformWatcher.ts b/packages/snap-account-service/src/SnapPlatformWatcher.ts index 91beb4144d1..b4ba6869e5f 100644 --- a/packages/snap-account-service/src/SnapPlatformWatcher.ts +++ b/packages/snap-account-service/src/SnapPlatformWatcher.ts @@ -1,8 +1,8 @@ import { createDeferredPromise, DeferredPromise } from '@metamask/utils'; -import { once } from 'lodash'; +import { once } from 'lodash-es'; -import { projectLogger as log } from './logger'; -import type { SnapAccountServiceMessenger } from './SnapAccountService'; +import { projectLogger as log } from './logger.js'; +import type { SnapAccountServiceMessenger } from './SnapAccountService.js'; export type SnapPlatformWatcherConfig = { /** diff --git a/packages/snap-account-service/src/SnapTracker.test.ts b/packages/snap-account-service/src/SnapTracker.test.ts index 5d5be4c3109..ec030fc0994 100644 --- a/packages/snap-account-service/src/SnapTracker.test.ts +++ b/packages/snap-account-service/src/SnapTracker.test.ts @@ -7,8 +7,8 @@ import type { import type { SnapId } from '@metamask/snaps-sdk'; import type { TruncatedSnap } from '@metamask/snaps-utils'; -import type { SnapAccountServiceMessenger } from './SnapAccountService'; -import { SnapTracker } from './SnapTracker'; +import type { SnapAccountServiceMessenger } from './SnapAccountService.js'; +import { SnapTracker } from './SnapTracker.js'; type RootMessenger = Messenger< MockAnyNamespace, diff --git a/packages/snap-account-service/src/SnapTracker.ts b/packages/snap-account-service/src/SnapTracker.ts index b824892c4ba..67436f67692 100644 --- a/packages/snap-account-service/src/SnapTracker.ts +++ b/packages/snap-account-service/src/SnapTracker.ts @@ -1,8 +1,8 @@ import { SnapId } from '@metamask/snaps-sdk'; import type { TruncatedSnap } from '@metamask/snaps-utils'; -import { projectLogger as log } from './logger'; -import type { SnapAccountServiceMessenger } from './SnapAccountService'; +import { projectLogger as log } from './logger.js'; +import type { SnapAccountServiceMessenger } from './SnapAccountService.js'; /** * Checks if a given Snap is an account management Snap. diff --git a/packages/snap-account-service/src/index.ts b/packages/snap-account-service/src/index.ts index a1f09bc833c..1d08878273a 100644 --- a/packages/snap-account-service/src/index.ts +++ b/packages/snap-account-service/src/index.ts @@ -1,4 +1,4 @@ -export { SnapAccountService } from './SnapAccountService'; +export { SnapAccountService } from './SnapAccountService.js'; export type { SnapAccountServiceActions, SnapAccountServiceConfig, @@ -8,7 +8,7 @@ export type { SnapAccountServiceAccountAssetListUpdatedEvent, SnapAccountServiceMessenger, SnapAccountServiceOptions, -} from './SnapAccountService'; +} from './SnapAccountService.js'; export type { SnapAccountServiceEnsureMigratedAction, SnapAccountServiceEnsureReadyAction, @@ -20,6 +20,6 @@ export type { SnapAccountServiceHandleKeyringSnapMessageAction, SnapAccountServiceResolveAccountAddressAction, SnapAccountServiceSetSelectedAccountsAction, -} from './SnapAccountService-method-action-types'; -export { SnapPlatformWatcher } from './SnapPlatformWatcher'; -export type { SnapPlatformWatcherConfig } from './SnapPlatformWatcher'; +} from './SnapAccountService-method-action-types.js'; +export { SnapPlatformWatcher } from './SnapPlatformWatcher.js'; +export type { SnapPlatformWatcherConfig } from './SnapPlatformWatcher.js'; From 709c259053c6594752dbe44d3d37da995dec6889 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:48:18 +0200 Subject: [PATCH 069/136] ESLint fix and `jest` global import for chain-agnostic-permission --- .../chain-agnostic-permission/package.json | 2 +- .../src/caip25Permission.test.ts | 12 ++++---- .../src/caip25Permission.ts | 20 ++++++------- .../src/index.test.ts | 2 +- .../chain-agnostic-permission/src/index.ts | 30 +++++++++---------- .../caip-permission-operator-accounts.test.ts | 6 ++-- .../caip-permission-operator-accounts.ts | 13 ++++---- ...ermission-operator-permittedChains.test.ts | 6 ++-- ...aip-permission-operator-permittedChains.ts | 13 ++++---- ...permission-operator-session-scopes.test.ts | 4 +-- ...caip-permission-operator-session-scopes.ts | 12 ++++---- .../src/scope/assert.test.ts | 8 ++--- .../src/scope/assert.ts | 6 ++-- .../src/scope/authorization.test.ts | 10 +++---- .../src/scope/authorization.ts | 10 +++---- .../src/scope/constants.test.ts | 2 +- .../src/scope/constants.ts | 2 +- .../src/scope/errors.test.ts | 2 +- .../src/scope/filter.test.ts | 6 ++-- .../src/scope/filter.ts | 6 ++-- .../src/scope/supported.test.ts | 4 +-- .../src/scope/supported.ts | 6 ++-- .../src/scope/transform.test.ts | 4 +-- .../src/scope/transform.ts | 6 ++-- .../src/scope/types.test.ts | 2 +- .../src/scope/validation.test.ts | 4 +-- .../src/scope/validation.ts | 4 +-- 27 files changed, 104 insertions(+), 98 deletions(-) diff --git a/packages/chain-agnostic-permission/package.json b/packages/chain-agnostic-permission/package.json index e0e550035d2..d06a0cedc8d 100644 --- a/packages/chain-agnostic-permission/package.json +++ b/packages/chain-agnostic-permission/package.json @@ -51,7 +51,7 @@ "@metamask/permission-controller": "^13.1.1", "@metamask/rpc-errors": "^7.0.2", "@metamask/utils": "^11.11.0", - "lodash": "^4.17.21" + "lodash-es": "^4.17.21" }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", diff --git a/packages/chain-agnostic-permission/src/caip25Permission.test.ts b/packages/chain-agnostic-permission/src/caip25Permission.test.ts index 514488adc95..f35a35b981a 100644 --- a/packages/chain-agnostic-permission/src/caip25Permission.test.ts +++ b/packages/chain-agnostic-permission/src/caip25Permission.test.ts @@ -8,9 +8,9 @@ import type { PermissionSpecificationConstraint, CaveatSpecificationConstraint, } from '@metamask/permission-controller'; -import { pick } from 'lodash'; +import { pick } from 'lodash-es'; -import type { Caip25CaveatValue } from './caip25Permission'; +import type { Caip25CaveatValue } from './caip25Permission.js'; import { Caip25CaveatType, caip25EndowmentBuilder, @@ -23,10 +23,10 @@ import { getCaip25CaveatFromPermission, getCaip25PermissionFromLegacyPermissions, requestPermittedChainsPermissionIncremental, -} from './caip25Permission'; -import { CaveatTypes, PermissionKeys } from './constants'; -import { KnownSessionProperties } from './scope/constants'; -import * as ScopeSupported from './scope/supported'; +} from './caip25Permission.js'; +import { CaveatTypes, PermissionKeys } from './constants.js'; +import { KnownSessionProperties } from './scope/constants.js'; +import * as ScopeSupported from './scope/supported.js'; jest.mock('./scope/supported', () => ({ ...jest.requireActual('./scope/supported'), diff --git a/packages/chain-agnostic-permission/src/caip25Permission.ts b/packages/chain-agnostic-permission/src/caip25Permission.ts index 2671fdd226e..3758969b4f7 100644 --- a/packages/chain-agnostic-permission/src/caip25Permission.ts +++ b/packages/chain-agnostic-permission/src/caip25Permission.ts @@ -23,31 +23,31 @@ import type { Hex, NonEmptyArray, } from '@metamask/utils'; -import { cloneDeep, isEqual, pick } from 'lodash'; +import { cloneDeep, isEqual, pick } from 'lodash-es'; -import { CaveatTypes, PermissionKeys } from './constants'; +import { CaveatTypes, PermissionKeys } from './constants.js'; import { setEthAccounts, setNonSCACaipAccountIdsInCaip25CaveatValue, -} from './operators/caip-permission-operator-accounts'; +} from './operators/caip-permission-operator-accounts.js'; import { setChainIdsInCaip25CaveatValue, setPermittedEthChainIds, -} from './operators/caip-permission-operator-permittedChains'; -import { assertIsInternalScopesObject } from './scope/assert'; -import { KnownSessionProperties } from './scope/constants'; +} from './operators/caip-permission-operator-permittedChains.js'; +import { assertIsInternalScopesObject } from './scope/assert.js'; +import { KnownSessionProperties } from './scope/constants.js'; import { isSupportedAccount, isSupportedScopeString, isSupportedSessionProperty, -} from './scope/supported'; -import { mergeInternalScopes } from './scope/transform'; -import { parseScopeString } from './scope/types'; +} from './scope/supported.js'; +import { mergeInternalScopes } from './scope/transform.js'; +import { parseScopeString } from './scope/types.js'; import type { ExternalScopeString, InternalScopeObject, InternalScopesObject, -} from './scope/types'; +} from './scope/types.js'; /** * The CAIP-25 permission caveat value. diff --git a/packages/chain-agnostic-permission/src/index.test.ts b/packages/chain-agnostic-permission/src/index.test.ts index 33c73ae3767..62fe16a34d6 100644 --- a/packages/chain-agnostic-permission/src/index.test.ts +++ b/packages/chain-agnostic-permission/src/index.test.ts @@ -1,4 +1,4 @@ -import * as allExports from '.'; +import * as allExports from './..js'; describe('@metamask/chain-agnostic-permission', () => { it('has expected JavaScript exports', () => { diff --git a/packages/chain-agnostic-permission/src/index.ts b/packages/chain-agnostic-permission/src/index.ts index 734114f6c4b..bf4f3744db8 100644 --- a/packages/chain-agnostic-permission/src/index.ts +++ b/packages/chain-agnostic-permission/src/index.ts @@ -6,7 +6,7 @@ export { getCaipAccountIdsFromCaip25CaveatValue, isInternalAccountInPermittedAccountIds, isCaipAccountIdInPermittedAccountIds, -} from './operators/caip-permission-operator-accounts'; +} from './operators/caip-permission-operator-accounts.js'; export { getPermittedEthChainIds, addPermittedEthChainId, @@ -17,20 +17,20 @@ export { getAllScopesFromPermission, getAllScopesFromCaip25CaveatValue, getAllScopesFromScopesObjects, -} from './operators/caip-permission-operator-permittedChains'; +} from './operators/caip-permission-operator-permittedChains.js'; export { getInternalScopesObject, getSessionScopes, getSessionProperties, getPermittedAccountsForScopes, -} from './operators/caip-permission-operator-session-scopes'; -export type { Caip25Authorization } from './scope/authorization'; +} from './operators/caip-permission-operator-session-scopes.js'; +export type { Caip25Authorization } from './scope/authorization.js'; export { validateAndNormalizeScopes, bucketScopes, isNamespaceInScopesObject, -} from './scope/authorization'; -export { assertIsInternalScopeString } from './scope/assert'; +} from './scope/authorization.js'; +export { assertIsInternalScopeString } from './scope/assert.js'; export { KnownWalletRpcMethods, KnownRpcMethods, @@ -38,8 +38,8 @@ export { KnownNotifications, KnownWalletScopeString, isKnownSessionPropertyValue, -} from './scope/constants'; -export { getSupportedScopeObjects } from './scope/filter'; +} from './scope/constants.js'; +export { getSupportedScopeObjects } from './scope/filter.js'; export type { ExternalScopeString, ExternalScopeObject, @@ -51,8 +51,8 @@ export type { NormalizedScopesObject, ScopedProperties, NonWalletKnownCaipNamespace, -} from './scope/types'; -export { parseScopeString } from './scope/types'; +} from './scope/types.js'; +export { parseScopeString } from './scope/types.js'; export { getUniqueArrayItems, normalizeScope, @@ -60,9 +60,9 @@ export { mergeNormalizedScopes, mergeInternalScopes, normalizeAndMergeScopes, -} from './scope/transform'; +} from './scope/transform.js'; -export type { Caip25CaveatValue } from './caip25Permission'; +export type { Caip25CaveatValue } from './caip25Permission.js'; export { caip25CaveatBuilder, Caip25CaveatType, @@ -74,6 +74,6 @@ export { getCaip25CaveatFromPermission, getCaip25PermissionFromLegacyPermissions, requestPermittedChainsPermissionIncremental, -} from './caip25Permission'; -export { KnownSessionProperties } from './scope/constants'; -export { Caip25Errors } from './scope/errors'; +} from './caip25Permission.js'; +export { KnownSessionProperties } from './scope/constants.js'; +export { Caip25Errors } from './scope/errors.js'; diff --git a/packages/chain-agnostic-permission/src/operators/caip-permission-operator-accounts.test.ts b/packages/chain-agnostic-permission/src/operators/caip-permission-operator-accounts.test.ts index 52aca179221..216dc401e55 100644 --- a/packages/chain-agnostic-permission/src/operators/caip-permission-operator-accounts.test.ts +++ b/packages/chain-agnostic-permission/src/operators/caip-permission-operator-accounts.test.ts @@ -1,7 +1,7 @@ import type { CaipAccountId } from '@metamask/utils'; -import type { Caip25CaveatValue } from '../caip25Permission'; -import type { InternalScopesObject } from '../scope/types'; +import type { Caip25CaveatValue } from '../caip25Permission.js'; +import type { InternalScopesObject } from '../scope/types.js'; import { getEthAccounts, setEthAccounts, @@ -10,7 +10,7 @@ import { getCaipAccountIdsFromCaip25CaveatValue, isCaipAccountIdInPermittedAccountIds, isInternalAccountInPermittedAccountIds, -} from './caip-permission-operator-accounts'; +} from './caip-permission-operator-accounts.js'; describe('CAIP-25 eth_accounts adapters', () => { describe('getEthAccounts', () => { diff --git a/packages/chain-agnostic-permission/src/operators/caip-permission-operator-accounts.ts b/packages/chain-agnostic-permission/src/operators/caip-permission-operator-accounts.ts index 71278aca353..281daa5e874 100644 --- a/packages/chain-agnostic-permission/src/operators/caip-permission-operator-accounts.ts +++ b/packages/chain-agnostic-permission/src/operators/caip-permission-operator-accounts.ts @@ -13,11 +13,14 @@ import type { Hex, } from '@metamask/utils'; -import type { Caip25CaveatValue } from '../caip25Permission'; -import { KnownWalletScopeString } from '../scope/constants'; -import { getUniqueArrayItems } from '../scope/transform'; -import type { InternalScopeString, InternalScopesObject } from '../scope/types'; -import { parseScopeString } from '../scope/types'; +import type { Caip25CaveatValue } from '../caip25Permission.js'; +import { KnownWalletScopeString } from '../scope/constants.js'; +import { getUniqueArrayItems } from '../scope/transform.js'; +import type { + InternalScopeString, + InternalScopesObject, +} from '../scope/types.js'; +import { parseScopeString } from '../scope/types.js'; /* * diff --git a/packages/chain-agnostic-permission/src/operators/caip-permission-operator-permittedChains.test.ts b/packages/chain-agnostic-permission/src/operators/caip-permission-operator-permittedChains.test.ts index f85384c9569..a14c5802ee8 100644 --- a/packages/chain-agnostic-permission/src/operators/caip-permission-operator-permittedChains.test.ts +++ b/packages/chain-agnostic-permission/src/operators/caip-permission-operator-permittedChains.test.ts @@ -1,5 +1,5 @@ -import type { Caip25CaveatValue } from '../caip25Permission'; -import { Caip25CaveatType } from '../caip25Permission'; +import type { Caip25CaveatValue } from '../caip25Permission.js'; +import { Caip25CaveatType } from '../caip25Permission.js'; import { addPermittedEthChainId, getPermittedEthChainIds, @@ -10,7 +10,7 @@ import { getAllScopesFromCaip25CaveatValue, getAllNamespacesFromCaip25CaveatValue, getAllScopesFromPermission, -} from './caip-permission-operator-permittedChains'; +} from './caip-permission-operator-permittedChains.js'; describe('CAIP-25 permittedChains adapters', () => { describe('getPermittedEthChainIds', () => { diff --git a/packages/chain-agnostic-permission/src/operators/caip-permission-operator-permittedChains.ts b/packages/chain-agnostic-permission/src/operators/caip-permission-operator-permittedChains.ts index c8feac45825..b44f53debc5 100644 --- a/packages/chain-agnostic-permission/src/operators/caip-permission-operator-permittedChains.ts +++ b/packages/chain-agnostic-permission/src/operators/caip-permission-operator-permittedChains.ts @@ -2,11 +2,14 @@ import { toHex } from '@metamask/controller-utils'; import type { Hex, CaipChainId, CaipNamespace } from '@metamask/utils'; import { hexToBigInt, KnownCaipNamespace } from '@metamask/utils'; -import { Caip25CaveatType } from '../caip25Permission'; -import type { Caip25CaveatValue } from '../caip25Permission'; -import { getUniqueArrayItems } from '../scope/transform'; -import type { InternalScopesObject, InternalScopeString } from '../scope/types'; -import { isWalletScope, parseScopeString } from '../scope/types'; +import { Caip25CaveatType } from '../caip25Permission.js'; +import type { Caip25CaveatValue } from '../caip25Permission.js'; +import { getUniqueArrayItems } from '../scope/transform.js'; +import type { + InternalScopesObject, + InternalScopeString, +} from '../scope/types.js'; +import { isWalletScope, parseScopeString } from '../scope/types.js'; /* * diff --git a/packages/chain-agnostic-permission/src/operators/caip-permission-operator-session-scopes.test.ts b/packages/chain-agnostic-permission/src/operators/caip-permission-operator-session-scopes.test.ts index 3e17e0cf627..cbdc893698c 100644 --- a/packages/chain-agnostic-permission/src/operators/caip-permission-operator-session-scopes.test.ts +++ b/packages/chain-agnostic-permission/src/operators/caip-permission-operator-session-scopes.test.ts @@ -5,13 +5,13 @@ import { KnownRpcMethods, KnownWalletNamespaceRpcMethods, KnownWalletRpcMethods, -} from '../scope/constants'; +} from '../scope/constants.js'; import { getInternalScopesObject, getPermittedAccountsForScopes, getSessionProperties, getSessionScopes, -} from './caip-permission-operator-session-scopes'; +} from './caip-permission-operator-session-scopes.js'; describe('CAIP-25 session scopes adapters', () => { describe('getInternalScopesObject', () => { diff --git a/packages/chain-agnostic-permission/src/operators/caip-permission-operator-session-scopes.ts b/packages/chain-agnostic-permission/src/operators/caip-permission-operator-session-scopes.ts index 1c4ccbbf1a7..c2ca2b7d8da 100644 --- a/packages/chain-agnostic-permission/src/operators/caip-permission-operator-session-scopes.ts +++ b/packages/chain-agnostic-permission/src/operators/caip-permission-operator-session-scopes.ts @@ -1,20 +1,20 @@ import { isCaipChainId, KnownCaipNamespace } from '@metamask/utils'; import type { CaipAccountId, CaipChainId, Hex, Json } from '@metamask/utils'; -import type { Caip25CaveatValue } from '../caip25Permission'; +import type { Caip25CaveatValue } from '../caip25Permission.js'; import { KnownNotifications, KnownRpcMethods, KnownWalletNamespaceRpcMethods, KnownWalletRpcMethods, -} from '../scope/constants'; -import { mergeNormalizedScopes } from '../scope/transform'; +} from '../scope/constants.js'; +import { mergeNormalizedScopes } from '../scope/transform.js'; import type { InternalScopesObject, NormalizedScopesObject, -} from '../scope/types'; -import { parseScopeString } from '../scope/types'; -import { getEthAccounts } from './caip-permission-operator-accounts'; +} from '../scope/types.js'; +import { parseScopeString } from '../scope/types.js'; +import { getEthAccounts } from './caip-permission-operator-accounts.js'; /** * Converts an NormalizedScopesObject to a InternalScopesObject. diff --git a/packages/chain-agnostic-permission/src/scope/assert.test.ts b/packages/chain-agnostic-permission/src/scope/assert.test.ts index 92487edd291..2f011a59d88 100644 --- a/packages/chain-agnostic-permission/src/scope/assert.test.ts +++ b/packages/chain-agnostic-permission/src/scope/assert.test.ts @@ -6,10 +6,10 @@ import { assertIsExternalScopesObject, assertIsInternalScopesObject, assertIsInternalScopeString, -} from './assert'; -import { Caip25Errors } from './errors'; -import * as Supported from './supported'; -import type { NormalizedScopeObject } from './types'; +} from './assert.js'; +import { Caip25Errors } from './errors.js'; +import * as Supported from './supported.js'; +import type { NormalizedScopeObject } from './types.js'; jest.mock('./supported', () => ({ isSupportedScopeString: jest.fn(), diff --git a/packages/chain-agnostic-permission/src/scope/assert.ts b/packages/chain-agnostic-permission/src/scope/assert.ts index 01eda87eb93..b5afee94bb5 100644 --- a/packages/chain-agnostic-permission/src/scope/assert.ts +++ b/packages/chain-agnostic-permission/src/scope/assert.ts @@ -8,12 +8,12 @@ import { } from '@metamask/utils'; import type { CaipChainId, Hex } from '@metamask/utils'; -import { Caip25Errors } from './errors'; +import { Caip25Errors } from './errors.js'; import { isSupportedMethod, isSupportedNotification, isSupportedScopeString, -} from './supported'; +} from './supported.js'; import type { ExternalScopeObject, ExternalScopesObject, @@ -23,7 +23,7 @@ import type { InternalScopeString, NormalizedScopeObject, NormalizedScopesObject, -} from './types'; +} from './types.js'; /** * Asserts that a scope string and its associated scope object are supported. diff --git a/packages/chain-agnostic-permission/src/scope/authorization.test.ts b/packages/chain-agnostic-permission/src/scope/authorization.test.ts index 53d3dc44111..a2d7d650951 100644 --- a/packages/chain-agnostic-permission/src/scope/authorization.test.ts +++ b/packages/chain-agnostic-permission/src/scope/authorization.test.ts @@ -2,11 +2,11 @@ import { bucketScopes, isNamespaceInScopesObject, validateAndNormalizeScopes, -} from './authorization'; -import * as Filter from './filter'; -import * as Transform from './transform'; -import type { ExternalScopeObject } from './types'; -import * as Validation from './validation'; +} from './authorization.js'; +import * as Filter from './filter.js'; +import * as Transform from './transform.js'; +import type { ExternalScopeObject } from './types.js'; +import * as Validation from './validation.js'; jest.mock('./filter', () => ({ bucketScopesBySupport: jest.fn(), diff --git a/packages/chain-agnostic-permission/src/scope/authorization.ts b/packages/chain-agnostic-permission/src/scope/authorization.ts index 2df9ae6c8f3..8f29ff57de0 100644 --- a/packages/chain-agnostic-permission/src/scope/authorization.ts +++ b/packages/chain-agnostic-permission/src/scope/authorization.ts @@ -1,14 +1,14 @@ import type { CaipChainId, CaipNamespace, Hex, Json } from '@metamask/utils'; -import { bucketScopesBySupport } from './filter'; -import { normalizeAndMergeScopes } from './transform'; +import { bucketScopesBySupport } from './filter.js'; +import { normalizeAndMergeScopes } from './transform.js'; import type { ExternalScopesObject, ExternalScopeString, NormalizedScopesObject, -} from './types'; -import { parseScopeString } from './types'; -import { getValidScopes } from './validation'; +} from './types.js'; +import { parseScopeString } from './types.js'; +import { getValidScopes } from './validation.js'; /** * Represents the parameters of a [CAIP-25](https://chainagnostic.org/CAIPs/caip-25) request. */ diff --git a/packages/chain-agnostic-permission/src/scope/constants.test.ts b/packages/chain-agnostic-permission/src/scope/constants.test.ts index ea0f622591a..cd0d09c407f 100644 --- a/packages/chain-agnostic-permission/src/scope/constants.test.ts +++ b/packages/chain-agnostic-permission/src/scope/constants.test.ts @@ -2,7 +2,7 @@ import { KnownRpcMethods, KnownSessionProperties, isKnownSessionPropertyValue, -} from './constants'; +} from './constants.js'; describe('KnownRpcMethods', () => { it('should match the snapshot', () => { diff --git a/packages/chain-agnostic-permission/src/scope/constants.ts b/packages/chain-agnostic-permission/src/scope/constants.ts index 1737948162b..cc6f6a5977b 100644 --- a/packages/chain-agnostic-permission/src/scope/constants.ts +++ b/packages/chain-agnostic-permission/src/scope/constants.ts @@ -1,6 +1,6 @@ import MetaMaskOpenRPCDocument from '@metamask/api-specs'; -import type { NonWalletKnownCaipNamespace } from './types'; +import type { NonWalletKnownCaipNamespace } from './types.js'; /** * ScopeStrings for offchain methods that are not specific to a chainId but are specific to a CAIP namespace. diff --git a/packages/chain-agnostic-permission/src/scope/errors.test.ts b/packages/chain-agnostic-permission/src/scope/errors.test.ts index f176cd36d8a..afe56f5747d 100644 --- a/packages/chain-agnostic-permission/src/scope/errors.test.ts +++ b/packages/chain-agnostic-permission/src/scope/errors.test.ts @@ -1,4 +1,4 @@ -import { Caip25Errors } from './errors'; +import { Caip25Errors } from './errors.js'; describe('Caip25Errors', () => { it('requestedChainsNotSupportedError', () => { diff --git a/packages/chain-agnostic-permission/src/scope/filter.test.ts b/packages/chain-agnostic-permission/src/scope/filter.test.ts index 336af7d3a98..d70a20d04f6 100644 --- a/packages/chain-agnostic-permission/src/scope/filter.test.ts +++ b/packages/chain-agnostic-permission/src/scope/filter.test.ts @@ -1,6 +1,6 @@ -import * as Assert from './assert'; -import { bucketScopesBySupport, getSupportedScopeObjects } from './filter'; -import * as Supported from './supported'; +import * as Assert from './assert.js'; +import { bucketScopesBySupport, getSupportedScopeObjects } from './filter.js'; +import * as Supported from './supported.js'; jest.mock('./assert', () => ({ ...jest.requireActual('./assert'), diff --git a/packages/chain-agnostic-permission/src/scope/filter.ts b/packages/chain-agnostic-permission/src/scope/filter.ts index a71dd18365e..41c14e20f58 100644 --- a/packages/chain-agnostic-permission/src/scope/filter.ts +++ b/packages/chain-agnostic-permission/src/scope/filter.ts @@ -1,12 +1,12 @@ import type { CaipChainId, Hex } from '@metamask/utils'; -import { assertIsInternalScopeString, assertScopeSupported } from './assert'; -import { isSupportedMethod, isSupportedNotification } from './supported'; +import { assertIsInternalScopeString, assertScopeSupported } from './assert.js'; +import { isSupportedMethod, isSupportedNotification } from './supported.js'; import type { InternalScopeString, NormalizedScopeObject, NormalizedScopesObject, -} from './types'; +} from './types.js'; /** * Groups a NormalizedScopesObject into two separate diff --git a/packages/chain-agnostic-permission/src/scope/supported.test.ts b/packages/chain-agnostic-permission/src/scope/supported.test.ts index d55ec08b17d..f596c383513 100644 --- a/packages/chain-agnostic-permission/src/scope/supported.test.ts +++ b/packages/chain-agnostic-permission/src/scope/supported.test.ts @@ -4,14 +4,14 @@ import { KnownSessionProperties, KnownWalletNamespaceRpcMethods, KnownWalletRpcMethods, -} from './constants'; +} from './constants.js'; import { isSupportedAccount, isSupportedMethod, isSupportedNotification, isSupportedScopeString, isSupportedSessionProperty, -} from './supported'; +} from './supported.js'; describe('Scope Support', () => { describe('isSupportedNotification', () => { diff --git a/packages/chain-agnostic-permission/src/scope/supported.ts b/packages/chain-agnostic-permission/src/scope/supported.ts index c0afa8a2d01..0b86cc9fdca 100644 --- a/packages/chain-agnostic-permission/src/scope/supported.ts +++ b/packages/chain-agnostic-permission/src/scope/supported.ts @@ -13,9 +13,9 @@ import { KnownSessionProperties, KnownWalletNamespaceRpcMethods, KnownWalletRpcMethods, -} from './constants'; -import type { ExternalScopeString } from './types'; -import { parseScopeString } from './types'; +} from './constants.js'; +import type { ExternalScopeString } from './types.js'; +import { parseScopeString } from './types.js'; /** * Determines if a scope string is supported. diff --git a/packages/chain-agnostic-permission/src/scope/transform.test.ts b/packages/chain-agnostic-permission/src/scope/transform.test.ts index 7d8e33715a5..1041f84d99b 100644 --- a/packages/chain-agnostic-permission/src/scope/transform.test.ts +++ b/packages/chain-agnostic-permission/src/scope/transform.test.ts @@ -4,12 +4,12 @@ import { mergeInternalScopes, mergeScopeObject, normalizeAndMergeScopes, -} from './transform'; +} from './transform.js'; import type { ExternalScopeObject, NormalizedScopeObject, InternalScopesObject, -} from './types'; +} from './types.js'; const externalScopeObject: ExternalScopeObject = { methods: [], diff --git a/packages/chain-agnostic-permission/src/scope/transform.ts b/packages/chain-agnostic-permission/src/scope/transform.ts index a44d510474d..c5d84c64dd3 100644 --- a/packages/chain-agnostic-permission/src/scope/transform.ts +++ b/packages/chain-agnostic-permission/src/scope/transform.ts @@ -1,5 +1,5 @@ import type { CaipReference } from '@metamask/utils'; -import { cloneDeep } from 'lodash'; +import { cloneDeep } from 'lodash-es'; import type { ExternalScopeObject, @@ -7,8 +7,8 @@ import type { InternalScopesObject, NormalizedScopeObject, NormalizedScopesObject, -} from './types'; -import { parseScopeString } from './types'; +} from './types.js'; +import { parseScopeString } from './types.js'; /** * Returns a list of unique items diff --git a/packages/chain-agnostic-permission/src/scope/types.test.ts b/packages/chain-agnostic-permission/src/scope/types.test.ts index 1b6149b3f2e..a7a16a15a7a 100644 --- a/packages/chain-agnostic-permission/src/scope/types.test.ts +++ b/packages/chain-agnostic-permission/src/scope/types.test.ts @@ -1,4 +1,4 @@ -import { parseScopeString } from './types'; +import { parseScopeString } from './types.js'; describe('Scope', () => { describe('parseScopeString', () => { diff --git a/packages/chain-agnostic-permission/src/scope/validation.test.ts b/packages/chain-agnostic-permission/src/scope/validation.test.ts index 6871b01069b..c79ee002772 100644 --- a/packages/chain-agnostic-permission/src/scope/validation.test.ts +++ b/packages/chain-agnostic-permission/src/scope/validation.test.ts @@ -1,5 +1,5 @@ -import type { ExternalScopeObject } from './types'; -import { isValidScope, getValidScopes } from './validation'; +import type { ExternalScopeObject } from './types.js'; +import { isValidScope, getValidScopes } from './validation.js'; const validScopeString = 'eip155:1'; const validScopeObject: ExternalScopeObject = { diff --git a/packages/chain-agnostic-permission/src/scope/validation.ts b/packages/chain-agnostic-permission/src/scope/validation.ts index 53c0b231d59..2f8629c2c45 100644 --- a/packages/chain-agnostic-permission/src/scope/validation.ts +++ b/packages/chain-agnostic-permission/src/scope/validation.ts @@ -4,8 +4,8 @@ import type { ExternalScopeString, ExternalScopeObject, ExternalScopesObject, -} from './types'; -import { parseScopeString } from './types'; +} from './types.js'; +import { parseScopeString } from './types.js'; /** * Validates a scope object according to the [CAIP-217](https://chainagnostic.org/CAIPs/caip-217) spec. From f9d154039ad8c9447a836d3e3ce50272c7035276 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:48:19 +0200 Subject: [PATCH 070/136] ESLint fix and `jest` global import for multichain-network-controller --- .../multichain-network-controller/package.json | 2 +- ...tichainNetworkController-method-action-types.ts | 2 +- .../MultichainNetworkController.test.ts | 12 ++++++------ .../MultichainNetworkController.ts | 14 +++++++------- .../AbstractMultichainNetworkService.ts | 2 +- .../MultichainNetworkService.test.ts | 8 ++++---- .../MultichainNetworkService.ts | 6 +++--- .../src/api/accounts-api.test.ts | 4 ++-- .../multichain-network-controller/src/constants.ts | 2 +- .../multichain-network-controller/src/index.ts | 14 +++++++------- .../multichain-network-controller/src/types.ts | 4 ++-- .../src/utils.test.ts | 2 +- .../multichain-network-controller/src/utils.ts | 6 +++--- 13 files changed, 39 insertions(+), 39 deletions(-) diff --git a/packages/multichain-network-controller/package.json b/packages/multichain-network-controller/package.json index a9242b5bc56..34052858a19 100644 --- a/packages/multichain-network-controller/package.json +++ b/packages/multichain-network-controller/package.json @@ -58,7 +58,7 @@ "@metamask/superstruct": "^3.1.0", "@metamask/utils": "^11.11.0", "@solana/addresses": "^2.0.0", - "lodash": "^4.17.21" + "lodash-es": "^4.17.21" }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", diff --git a/packages/multichain-network-controller/src/MultichainNetworkController/MultichainNetworkController-method-action-types.ts b/packages/multichain-network-controller/src/MultichainNetworkController/MultichainNetworkController-method-action-types.ts index 98bbc935663..8096059f4e8 100644 --- a/packages/multichain-network-controller/src/MultichainNetworkController/MultichainNetworkController-method-action-types.ts +++ b/packages/multichain-network-controller/src/MultichainNetworkController/MultichainNetworkController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { MultichainNetworkController } from './MultichainNetworkController'; +import type { MultichainNetworkController } from './MultichainNetworkController.js'; /** * Sets the active network. diff --git a/packages/multichain-network-controller/src/MultichainNetworkController/MultichainNetworkController.test.ts b/packages/multichain-network-controller/src/MultichainNetworkController/MultichainNetworkController.test.ts index fefd952ca6b..e2fb848a6c2 100644 --- a/packages/multichain-network-controller/src/MultichainNetworkController/MultichainNetworkController.test.ts +++ b/packages/multichain-network-controller/src/MultichainNetworkController/MultichainNetworkController.test.ts @@ -31,12 +31,12 @@ import type { import { KnownCaipNamespace } from '@metamask/utils'; import type { CaipAccountId } from '@metamask/utils'; -import { createMockInternalAccount } from '../../tests/utils'; -import type { ActiveNetworksResponse } from '../api/accounts-api'; -import { getDefaultMultichainNetworkControllerState } from '../constants'; -import type { AbstractMultichainNetworkService } from '../MultichainNetworkService/AbstractMultichainNetworkService'; -import type { MultichainNetworkControllerMessenger } from '../types'; -import { MultichainNetworkController } from './MultichainNetworkController'; +import { createMockInternalAccount } from '../../tests/utils.js'; +import type { ActiveNetworksResponse } from '../api/accounts-api.js'; +import { getDefaultMultichainNetworkControllerState } from '../constants.js'; +import type { AbstractMultichainNetworkService } from '../MultichainNetworkService/AbstractMultichainNetworkService.js'; +import type { MultichainNetworkControllerMessenger } from '../types.js'; +import { MultichainNetworkController } from './MultichainNetworkController.js'; // We exclude the generic account type, since it's used for testing purposes. type TestKeyringAccountType = Exclude< diff --git a/packages/multichain-network-controller/src/MultichainNetworkController/MultichainNetworkController.ts b/packages/multichain-network-controller/src/MultichainNetworkController/MultichainNetworkController.ts index d70612ddba1..f3c1aa8620c 100644 --- a/packages/multichain-network-controller/src/MultichainNetworkController/MultichainNetworkController.ts +++ b/packages/multichain-network-controller/src/MultichainNetworkController/MultichainNetworkController.ts @@ -8,26 +8,26 @@ import type { CaipChainId } from '@metamask/utils'; import { toAllowedCaipAccountIds, toActiveNetworksByAddress, -} from '../api/accounts-api'; -import type { ActiveNetworksByAddress } from '../api/accounts-api'; +} from '../api/accounts-api.js'; +import type { ActiveNetworksByAddress } from '../api/accounts-api.js'; import { AVAILABLE_MULTICHAIN_NETWORK_CONFIGURATIONS, MULTICHAIN_NETWORK_CONTROLLER_METADATA, getDefaultMultichainNetworkControllerState, -} from '../constants'; -import type { AbstractMultichainNetworkService } from '../MultichainNetworkService/AbstractMultichainNetworkService'; -import { MULTICHAIN_NETWORK_CONTROLLER_NAME } from '../types'; +} from '../constants.js'; +import type { AbstractMultichainNetworkService } from '../MultichainNetworkService/AbstractMultichainNetworkService.js'; +import { MULTICHAIN_NETWORK_CONTROLLER_NAME } from '../types.js'; import type { MultichainNetworkControllerState, MultichainNetworkControllerMessenger, SupportedCaipChainId, -} from '../types'; +} from '../types.js'; import { checkIfSupportedCaipChainId, getChainIdForNonEvm, convertEvmCaipToHexChainId, isEvmCaipChainId, -} from '../utils'; +} from '../utils.js'; const MESSENGER_EXPOSED_METHODS = [ 'setActiveNetwork', diff --git a/packages/multichain-network-controller/src/MultichainNetworkService/AbstractMultichainNetworkService.ts b/packages/multichain-network-controller/src/MultichainNetworkService/AbstractMultichainNetworkService.ts index 951b8c28d9f..fd1ead65f1d 100644 --- a/packages/multichain-network-controller/src/MultichainNetworkService/AbstractMultichainNetworkService.ts +++ b/packages/multichain-network-controller/src/MultichainNetworkService/AbstractMultichainNetworkService.ts @@ -1,6 +1,6 @@ import type { PublicInterface } from '@metamask/utils'; -import type { MultichainNetworkService } from './MultichainNetworkService'; +import type { MultichainNetworkService } from './MultichainNetworkService.js'; /** * A service object which is responsible for fetching network activity data. diff --git a/packages/multichain-network-controller/src/MultichainNetworkService/MultichainNetworkService.test.ts b/packages/multichain-network-controller/src/MultichainNetworkService/MultichainNetworkService.test.ts index 44798ce53ea..9b1743a7bac 100644 --- a/packages/multichain-network-controller/src/MultichainNetworkService/MultichainNetworkService.test.ts +++ b/packages/multichain-network-controller/src/MultichainNetworkService/MultichainNetworkService.test.ts @@ -1,14 +1,14 @@ import { KnownCaipNamespace } from '@metamask/utils'; import type { CaipAccountId } from '@metamask/utils'; -import { chunk } from 'lodash'; +import { chunk } from 'lodash-es'; import { MULTICHAIN_ACCOUNTS_CLIENT_HEADER, MULTICHAIN_ACCOUNTS_CLIENT_ID, MULTICHAIN_ACCOUNTS_BASE_URL, -} from '../api/accounts-api'; -import type { ActiveNetworksResponse } from '../api/accounts-api'; -import { MultichainNetworkService } from './MultichainNetworkService'; +} from '../api/accounts-api.js'; +import type { ActiveNetworksResponse } from '../api/accounts-api.js'; +import { MultichainNetworkService } from './MultichainNetworkService.js'; describe('MultichainNetworkService', () => { beforeEach(() => { diff --git a/packages/multichain-network-controller/src/MultichainNetworkService/MultichainNetworkService.ts b/packages/multichain-network-controller/src/MultichainNetworkService/MultichainNetworkService.ts index 0feccc9c404..801b0cef9df 100644 --- a/packages/multichain-network-controller/src/MultichainNetworkService/MultichainNetworkService.ts +++ b/packages/multichain-network-controller/src/MultichainNetworkService/MultichainNetworkService.ts @@ -1,14 +1,14 @@ import { assert } from '@metamask/superstruct'; import type { CaipAccountId } from '@metamask/utils'; -import { chunk } from 'lodash'; +import { chunk } from 'lodash-es'; import { ActiveNetworksResponseStruct, buildActiveNetworksUrl, MULTICHAIN_ACCOUNTS_CLIENT_HEADER, MULTICHAIN_ACCOUNTS_CLIENT_ID, -} from '../api/accounts-api'; -import type { ActiveNetworksResponse } from '../api/accounts-api'; +} from '../api/accounts-api.js'; +import type { ActiveNetworksResponse } from '../api/accounts-api.js'; /** * Service responsible for fetching network activity data from the API. diff --git a/packages/multichain-network-controller/src/api/accounts-api.test.ts b/packages/multichain-network-controller/src/api/accounts-api.test.ts index 7dd66745a40..c9bab8bbc58 100644 --- a/packages/multichain-network-controller/src/api/accounts-api.test.ts +++ b/packages/multichain-network-controller/src/api/accounts-api.test.ts @@ -21,8 +21,8 @@ import { toActiveNetworksByAddress, buildActiveNetworksUrl, MULTICHAIN_ACCOUNTS_BASE_URL, -} from './accounts-api'; -import type { ActiveNetworksResponse } from './accounts-api'; +} from './accounts-api.js'; +import type { ActiveNetworksResponse } from './accounts-api.js'; const MOCK_ADDRESSES = { evm: '0x1234567890123456789012345678901234567890', diff --git a/packages/multichain-network-controller/src/constants.ts b/packages/multichain-network-controller/src/constants.ts index 8fe82058815..860978370d4 100644 --- a/packages/multichain-network-controller/src/constants.ts +++ b/packages/multichain-network-controller/src/constants.ts @@ -8,7 +8,7 @@ import type { MultichainNetworkControllerState, MultichainNetworkMetadata, SupportedCaipChainId, -} from './types'; +} from './types.js'; export const BTC_NATIVE_ASSET = `${BtcScope.Mainnet}/slip44:0`; export const BTC_TESTNET_NATIVE_ASSET = `${BtcScope.Testnet}/slip44:0`; diff --git a/packages/multichain-network-controller/src/index.ts b/packages/multichain-network-controller/src/index.ts index 7301513e968..82bc27a28a6 100644 --- a/packages/multichain-network-controller/src/index.ts +++ b/packages/multichain-network-controller/src/index.ts @@ -1,12 +1,12 @@ -export { MultichainNetworkController } from './MultichainNetworkController/MultichainNetworkController'; -export { MultichainNetworkService } from './MultichainNetworkService/MultichainNetworkService'; +export { MultichainNetworkController } from './MultichainNetworkController/MultichainNetworkController.js'; +export { MultichainNetworkService } from './MultichainNetworkService/MultichainNetworkService.js'; export { getDefaultMultichainNetworkControllerState, NON_EVM_TESTNET_IDS, MULTICHAIN_NETWORK_TICKER, MULTICHAIN_NETWORK_DECIMAL_PLACES, AVAILABLE_MULTICHAIN_NETWORK_CONFIGURATIONS, -} from './constants'; +} from './constants.js'; export type { MultichainNetworkMetadata, SupportedCaipChainId, @@ -21,15 +21,15 @@ export type { MultichainNetworkControllerActions, MultichainNetworkControllerEvents, MultichainNetworkControllerMessenger, -} from './types'; +} from './types.js'; export type { MultichainNetworkControllerSetActiveNetworkAction, MultichainNetworkControllerGetNetworksWithTransactionActivityByAccountsAction, -} from './MultichainNetworkController/MultichainNetworkController-method-action-types'; +} from './MultichainNetworkController/MultichainNetworkController-method-action-types.js'; export { checkIfSupportedCaipChainId, toMultichainNetworkConfiguration, toMultichainNetworkConfigurationsByChainId, toEvmCaipChainId, -} from './utils'; -export type { ActiveNetworksByAddress } from './api/accounts-api'; +} from './utils.js'; +export type { ActiveNetworksByAddress } from './api/accounts-api.js'; diff --git a/packages/multichain-network-controller/src/types.ts b/packages/multichain-network-controller/src/types.ts index 4b4b42b6d4c..827eab28348 100644 --- a/packages/multichain-network-controller/src/types.ts +++ b/packages/multichain-network-controller/src/types.ts @@ -23,8 +23,8 @@ import type { NetworkClientId, } from '@metamask/network-controller'; -import type { ActiveNetworksByAddress } from './api/accounts-api'; -import type { MultichainNetworkControllerMethodActions } from './MultichainNetworkController/MultichainNetworkController-method-action-types'; +import type { ActiveNetworksByAddress } from './api/accounts-api.js'; +import type { MultichainNetworkControllerMethodActions } from './MultichainNetworkController/MultichainNetworkController-method-action-types.js'; export const MULTICHAIN_NETWORK_CONTROLLER_NAME = 'MultichainNetworkController'; diff --git a/packages/multichain-network-controller/src/utils.test.ts b/packages/multichain-network-controller/src/utils.test.ts index 83ceaacb05e..01b001dfc46 100644 --- a/packages/multichain-network-controller/src/utils.test.ts +++ b/packages/multichain-network-controller/src/utils.test.ts @@ -12,7 +12,7 @@ import { toMultichainNetworkConfiguration, toMultichainNetworkConfigurationsByChainId, isKnownCaipNamespace, -} from './utils'; +} from './utils.js'; describe('utils', () => { describe('getChainIdForNonEvm', () => { diff --git a/packages/multichain-network-controller/src/utils.ts b/packages/multichain-network-controller/src/utils.ts index 2cd868fac4f..cb36bff10c4 100644 --- a/packages/multichain-network-controller/src/utils.ts +++ b/packages/multichain-network-controller/src/utils.ts @@ -8,11 +8,11 @@ import { } from '@metamask/utils'; import type { Hex, CaipChainId } from '@metamask/utils'; -import { AVAILABLE_MULTICHAIN_NETWORK_CONFIGURATIONS } from './constants'; +import { AVAILABLE_MULTICHAIN_NETWORK_CONFIGURATIONS } from './constants.js'; import type { SupportedCaipChainId, MultichainNetworkConfiguration, -} from './types'; +} from './types.js'; /** * Checks if the chain ID is EVM. @@ -105,7 +105,7 @@ export const toMultichainNetworkConfiguration = ( return { chainId: toEvmCaipChainId(chainId), isEvm: true, - name: name || rpcEndpoints[defaultRpcEndpointIndex].url, + name: name ?? rpcEndpoints[defaultRpcEndpointIndex].url, nativeCurrency, blockExplorerUrls, defaultBlockExplorerUrlIndex, From 0e7b57920e6f2743737051fcbca5a65d534951ad Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:48:24 +0200 Subject: [PATCH 071/136] ESLint fix and `jest` global import for network-controller --- packages/network-controller/package.json | 2 +- .../NetworkController-method-action-types.ts | 2 +- .../src/NetworkController.ts | 29 +++++----- ...create-auto-managed-network-client.test.ts | 14 ++--- .../src/create-auto-managed-network-client.ts | 12 ++--- .../classify-retry-reason.test.ts | 2 +- .../block-hash-in-response.test.ts | 4 +- .../ethereum-spec/block-param.test.ts | 4 +- .../ethereum-spec/no-block-param.test.ts | 4 +- .../not-handled-by-middleware.test.ts | 4 +- .../ethereum-spec/other-methods.test.ts | 4 +- .../ex-ethereum-spec/no-block-param.test.ts | 4 +- .../not-handled-by-middleware.test.ts | 4 +- .../ex-ethereum-spec/other-methods.test.ts | 6 +-- .../rpc-endpoint-events.test.ts | 8 +-- .../rpc-endpoint-failover.test.ts | 4 +- .../src/create-network-client.ts | 16 +++--- packages/network-controller/src/index.ts | 31 ++++++----- .../src/rpc-service/abstract-rpc-service.ts | 2 +- .../src/rpc-service/rpc-service-chain.test.ts | 4 +- .../src/rpc-service/rpc-service-chain.ts | 8 +-- .../rpc-service/rpc-service-requestable.ts | 2 +- .../src/rpc-service/rpc-service.test.ts | 2 +- .../src/rpc-service/rpc-service.ts | 4 +- .../network-controller/src/selectors.test.ts | 2 +- .../tests/NetworkController.provider.test.ts | 4 +- .../tests/NetworkController.test.ts | 54 +++++++++---------- packages/network-controller/tests/helpers.ts | 26 ++++----- .../network-client/block-hash-in-response.ts | 10 ++-- .../tests/network-client/block-param.ts | 10 ++-- .../tests/network-client/helpers.ts | 16 +++--- .../tests/network-client/no-block-param.ts | 10 ++-- .../not-handled-by-middleware.ts | 6 +-- .../tests/network-client/rpc-failover.ts | 8 +-- 34 files changed, 164 insertions(+), 158 deletions(-) diff --git a/packages/network-controller/package.json b/packages/network-controller/package.json index 6c12e2e5308..2a18d7ccabc 100644 --- a/packages/network-controller/package.json +++ b/packages/network-controller/package.json @@ -83,7 +83,7 @@ "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "jest-when": "^3.4.2", - "lodash": "^4.17.21", + "lodash-es": "^4.17.21", "nock": "^13.3.1", "node-fetch": "^2.7.0", "ts-jest": "^29.2.5", diff --git a/packages/network-controller/src/NetworkController-method-action-types.ts b/packages/network-controller/src/NetworkController-method-action-types.ts index 019b6b225cd..793f944e68f 100644 --- a/packages/network-controller/src/NetworkController-method-action-types.ts +++ b/packages/network-controller/src/NetworkController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { NetworkController } from './NetworkController'; +import type { NetworkController } from './NetworkController.js'; /** * Returns the EthQuery instance for the currently selected network. diff --git a/packages/network-controller/src/NetworkController.ts b/packages/network-controller/src/NetworkController.ts index 5ad7b5443c1..83585c1b171 100644 --- a/packages/network-controller/src/NetworkController.ts +++ b/packages/network-controller/src/NetworkController.ts @@ -36,7 +36,7 @@ import { hasProperty, isPlainObject, isStrictHexString } from '@metamask/utils'; import deepEqual from 'fast-deep-equal'; import type { Draft } from 'immer'; import { produce } from 'immer'; -import { cloneDeep } from 'lodash'; +import { cloneDeep } from 'lodash-es'; import type { Logger } from 'loglevel'; import { createSelector } from 'reselect'; import * as URI from 'uri-js'; @@ -46,26 +46,29 @@ import { DEPRECATED_NETWORKS, INFURA_BLOCKED_KEY, NetworkStatus, -} from './constants'; +} from './constants.js'; import type { AutoManagedNetworkClient, ProxyWithAccessibleTarget, -} from './create-auto-managed-network-client'; -import { createAutoManagedNetworkClient } from './create-auto-managed-network-client'; -import type { DegradedEventType, RetryReason } from './create-network-client'; -import { projectLogger, createModuleLogger } from './logger'; -import type { NetworkControllerMethodActions } from './NetworkController-method-action-types'; -import type { RpcServiceOptionsWithDefaults } from './rpc-service/rpc-service'; -import { getRpcFailoverMode } from './selectors'; -import type { RpcFailoverMode } from './selectors'; -import { NetworkClientType } from './types'; +} from './create-auto-managed-network-client.js'; +import { createAutoManagedNetworkClient } from './create-auto-managed-network-client.js'; +import type { + DegradedEventType, + RetryReason, +} from './create-network-client.js'; +import { projectLogger, createModuleLogger } from './logger.js'; +import type { NetworkControllerMethodActions } from './NetworkController-method-action-types.js'; +import type { RpcServiceOptionsWithDefaults } from './rpc-service/rpc-service.js'; +import { getRpcFailoverMode } from './selectors.js'; +import type { RpcFailoverMode } from './selectors.js'; +import { NetworkClientType } from './types.js'; import type { BlockTracker, Provider, CustomNetworkClientConfiguration, InfuraNetworkClientConfiguration, NetworkClientConfiguration, -} from './types'; +} from './types.js'; const debugLog = createModuleLogger(projectLogger, 'NetworkController'); @@ -2471,7 +2474,7 @@ export class NetworkController extends BaseController< * In-progress requests will not be aborted. */ // We're intentionally changing the signature of an extended method. - // eslint-disable-next-line @typescript-eslint/no-misused-promises + async destroy(): Promise { await this.#blockTrackerProxy?.destroy(); } diff --git a/packages/network-controller/src/create-auto-managed-network-client.test.ts b/packages/network-controller/src/create-auto-managed-network-client.test.ts index d7e3c16def1..8f040abab29 100644 --- a/packages/network-controller/src/create-auto-managed-network-client.test.ts +++ b/packages/network-controller/src/create-auto-managed-network-client.test.ts @@ -1,16 +1,16 @@ import { BUILT_IN_NETWORKS, NetworkType } from '@metamask/controller-utils'; import { PollingBlockTrackerOptions } from '@metamask/eth-block-tracker'; -import { mockNetwork } from '../../../tests/mock-network'; -import { buildNetworkControllerMessenger } from '../tests/helpers'; -import { createAutoManagedNetworkClient } from './create-auto-managed-network-client'; -import * as createNetworkClientModule from './create-network-client'; -import { RpcServiceOptions } from './rpc-service/rpc-service'; +import { mockNetwork } from '../../../tests/mock-network.js'; +import { buildNetworkControllerMessenger } from '../tests/helpers.js'; +import { createAutoManagedNetworkClient } from './create-auto-managed-network-client.js'; +import * as createNetworkClientModule from './create-network-client.js'; +import { RpcServiceOptions } from './rpc-service/rpc-service.js'; import type { CustomNetworkClientConfiguration, InfuraNetworkClientConfiguration, -} from './types'; -import { NetworkClientType } from './types'; +} from './types.js'; +import { NetworkClientType } from './types.js'; describe('createAutoManagedNetworkClient', () => { const networkClientConfigurations: [ diff --git a/packages/network-controller/src/create-auto-managed-network-client.ts b/packages/network-controller/src/create-auto-managed-network-client.ts index fe826186cf4..458fee625d3 100644 --- a/packages/network-controller/src/create-auto-managed-network-client.ts +++ b/packages/network-controller/src/create-auto-managed-network-client.ts @@ -2,19 +2,19 @@ import type { PollingBlockTrackerOptions } from '@metamask/eth-block-tracker'; import { Json } from '@metamask/utils'; import type { Logger } from 'loglevel'; -import type { NetworkClient } from './create-network-client'; -import { createNetworkClient } from './create-network-client'; +import type { NetworkClient } from './create-network-client.js'; +import { createNetworkClient } from './create-network-client.js'; import type { NetworkClientId, NetworkControllerMessenger, -} from './NetworkController'; -import type { RpcServiceOptionsWithDefaults } from './rpc-service/rpc-service'; -import type { RpcFailoverMode } from './selectors'; +} from './NetworkController.js'; +import type { RpcServiceOptionsWithDefaults } from './rpc-service/rpc-service.js'; +import type { RpcFailoverMode } from './selectors.js'; import type { BlockTracker, NetworkClientConfiguration, Provider, -} from './types'; +} from './types.js'; /** * The name of the method on both the provider and block tracker proxy which can diff --git a/packages/network-controller/src/create-network-client-tests/classify-retry-reason.test.ts b/packages/network-controller/src/create-network-client-tests/classify-retry-reason.test.ts index 1a4e25f32d9..2521aeaba96 100644 --- a/packages/network-controller/src/create-network-client-tests/classify-retry-reason.test.ts +++ b/packages/network-controller/src/create-network-client-tests/classify-retry-reason.test.ts @@ -1,7 +1,7 @@ import { HttpError } from '@metamask/controller-utils'; import { FetchError } from 'node-fetch'; -import { classifyRetryReason } from '../create-network-client'; +import { classifyRetryReason } from '../create-network-client.js'; describe('classifyRetryReason', () => { it('returns "connection_failed" for FetchError connection failures', () => { diff --git a/packages/network-controller/src/create-network-client-tests/ethereum-spec/block-hash-in-response.test.ts b/packages/network-controller/src/create-network-client-tests/ethereum-spec/block-hash-in-response.test.ts index caab1b529b8..72d0783427c 100644 --- a/packages/network-controller/src/create-network-client-tests/ethereum-spec/block-hash-in-response.test.ts +++ b/packages/network-controller/src/create-network-client-tests/ethereum-spec/block-hash-in-response.test.ts @@ -1,5 +1,5 @@ -import { testsForRpcMethodsThatCheckForBlockHashInResponse } from '../../../tests/network-client/block-hash-in-response'; -import { NetworkClientType } from '../../types'; +import { testsForRpcMethodsThatCheckForBlockHashInResponse } from '../../../tests/network-client/block-hash-in-response.js'; +import { NetworkClientType } from '../../types.js'; describe('createNetworkClient - methods included in the Ethereum JSON-RPC spec - methods with block hashes in their result', () => { for (const networkClientType of Object.values(NetworkClientType)) { diff --git a/packages/network-controller/src/create-network-client-tests/ethereum-spec/block-param.test.ts b/packages/network-controller/src/create-network-client-tests/ethereum-spec/block-param.test.ts index 503397aec8a..a92213abe1c 100644 --- a/packages/network-controller/src/create-network-client-tests/ethereum-spec/block-param.test.ts +++ b/packages/network-controller/src/create-network-client-tests/ethereum-spec/block-param.test.ts @@ -1,5 +1,5 @@ -import { testsForRpcMethodSupportingBlockParam } from '../../../tests/network-client/block-param'; -import { NetworkClientType } from '../../types'; +import { testsForRpcMethodSupportingBlockParam } from '../../../tests/network-client/block-param.js'; +import { NetworkClientType } from '../../types.js'; describe('createNetworkClient - methods included in the Ethereum JSON-RPC spec - methods that have a param to specify the block', () => { for (const networkClientType of Object.values(NetworkClientType)) { diff --git a/packages/network-controller/src/create-network-client-tests/ethereum-spec/no-block-param.test.ts b/packages/network-controller/src/create-network-client-tests/ethereum-spec/no-block-param.test.ts index 0ef4fb4b55a..ef78a00fa2f 100644 --- a/packages/network-controller/src/create-network-client-tests/ethereum-spec/no-block-param.test.ts +++ b/packages/network-controller/src/create-network-client-tests/ethereum-spec/no-block-param.test.ts @@ -1,5 +1,5 @@ -import { testsForRpcMethodAssumingNoBlockParam } from '../../../tests/network-client/no-block-param'; -import { NetworkClientType } from '../../types'; +import { testsForRpcMethodAssumingNoBlockParam } from '../../../tests/network-client/no-block-param.js'; +import { NetworkClientType } from '../../types.js'; describe('createNetworkClient - methods included in the Ethereum JSON-RPC spec - methods that assume there is no block param', () => { for (const networkClientType of Object.values(NetworkClientType)) { diff --git a/packages/network-controller/src/create-network-client-tests/ethereum-spec/not-handled-by-middleware.test.ts b/packages/network-controller/src/create-network-client-tests/ethereum-spec/not-handled-by-middleware.test.ts index f3b799f3f18..3b1597fe3ca 100644 --- a/packages/network-controller/src/create-network-client-tests/ethereum-spec/not-handled-by-middleware.test.ts +++ b/packages/network-controller/src/create-network-client-tests/ethereum-spec/not-handled-by-middleware.test.ts @@ -1,5 +1,5 @@ -import { testsForRpcMethodNotHandledByMiddleware } from '../../../tests/network-client/not-handled-by-middleware'; -import { NetworkClientType } from '../../types'; +import { testsForRpcMethodNotHandledByMiddleware } from '../../../tests/network-client/not-handled-by-middleware.js'; +import { NetworkClientType } from '../../types.js'; describe('createNetworkClient - methods included in the Ethereum JSON-RPC spec - methods not handled by middleware', () => { for (const networkClientType of Object.values(NetworkClientType)) { diff --git a/packages/network-controller/src/create-network-client-tests/ethereum-spec/other-methods.test.ts b/packages/network-controller/src/create-network-client-tests/ethereum-spec/other-methods.test.ts index fa412274e67..aee90938e77 100644 --- a/packages/network-controller/src/create-network-client-tests/ethereum-spec/other-methods.test.ts +++ b/packages/network-controller/src/create-network-client-tests/ethereum-spec/other-methods.test.ts @@ -1,8 +1,8 @@ import { withMockedCommunications, withNetworkClient, -} from '../../../tests/network-client/helpers'; -import { NetworkClientType } from '../../types'; +} from '../../../tests/network-client/helpers.js'; +import { NetworkClientType } from '../../types.js'; describe('createNetworkClient - methods included in the Ethereum JSON-RPC spec - other methods', () => { for (const networkClientType of Object.values(NetworkClientType)) { diff --git a/packages/network-controller/src/create-network-client-tests/ex-ethereum-spec/no-block-param.test.ts b/packages/network-controller/src/create-network-client-tests/ex-ethereum-spec/no-block-param.test.ts index 0819318602e..c575356ad7c 100644 --- a/packages/network-controller/src/create-network-client-tests/ex-ethereum-spec/no-block-param.test.ts +++ b/packages/network-controller/src/create-network-client-tests/ex-ethereum-spec/no-block-param.test.ts @@ -1,5 +1,5 @@ -import { testsForRpcMethodAssumingNoBlockParam } from '../../../tests/network-client/no-block-param'; -import { NetworkClientType } from '../../types'; +import { testsForRpcMethodAssumingNoBlockParam } from '../../../tests/network-client/no-block-param.js'; +import { NetworkClientType } from '../../types.js'; describe('createNetworkClient - methods not included in the Ethereum JSON-RPC spec - methods that assume there is no block param', () => { for (const networkClientType of Object.values(NetworkClientType)) { diff --git a/packages/network-controller/src/create-network-client-tests/ex-ethereum-spec/not-handled-by-middleware.test.ts b/packages/network-controller/src/create-network-client-tests/ex-ethereum-spec/not-handled-by-middleware.test.ts index 42fee0efd37..3d5a2513369 100644 --- a/packages/network-controller/src/create-network-client-tests/ex-ethereum-spec/not-handled-by-middleware.test.ts +++ b/packages/network-controller/src/create-network-client-tests/ex-ethereum-spec/not-handled-by-middleware.test.ts @@ -1,5 +1,5 @@ -import { testsForRpcMethodNotHandledByMiddleware } from '../../../tests/network-client/not-handled-by-middleware'; -import { NetworkClientType } from '../../types'; +import { testsForRpcMethodNotHandledByMiddleware } from '../../../tests/network-client/not-handled-by-middleware.js'; +import { NetworkClientType } from '../../types.js'; describe('createNetworkClient - methods not included in the Ethereum JSON-RPC spec - methods not handled by middleware', () => { for (const networkClientType of Object.values(NetworkClientType)) { diff --git a/packages/network-controller/src/create-network-client-tests/ex-ethereum-spec/other-methods.test.ts b/packages/network-controller/src/create-network-client-tests/ex-ethereum-spec/other-methods.test.ts index 50c7363ffb4..7091a2f6203 100644 --- a/packages/network-controller/src/create-network-client-tests/ex-ethereum-spec/other-methods.test.ts +++ b/packages/network-controller/src/create-network-client-tests/ex-ethereum-spec/other-methods.test.ts @@ -1,9 +1,9 @@ -import { TESTNET } from '../../../tests/helpers'; +import { TESTNET } from '../../../tests/helpers.js'; import { withMockedCommunications, withNetworkClient, -} from '../../../tests/network-client/helpers'; -import { NetworkClientType } from '../../types'; +} from '../../../tests/network-client/helpers.js'; +import { NetworkClientType } from '../../types.js'; describe('createNetworkClient - methods not included in the Ethereum JSON-RPC spec - other methods', () => { for (const networkClientType of Object.values(NetworkClientType)) { diff --git a/packages/network-controller/src/create-network-client-tests/rpc-endpoint-events.test.ts b/packages/network-controller/src/create-network-client-tests/rpc-endpoint-events.test.ts index 3c50a39f399..4822ddbabf6 100644 --- a/packages/network-controller/src/create-network-client-tests/rpc-endpoint-events.test.ts +++ b/packages/network-controller/src/create-network-client-tests/rpc-endpoint-events.test.ts @@ -6,13 +6,13 @@ import { } from '@metamask/controller-utils'; import { errorCodes } from '@metamask/rpc-errors'; -import { buildRootMessenger } from '../../tests/helpers'; +import { buildRootMessenger } from '../../tests/helpers.js'; import { withMockedCommunications, withNetworkClient, -} from '../../tests/network-client/helpers'; -import { DEFAULT_MAX_CONSECUTIVE_FAILURES } from '../rpc-service/rpc-service'; -import { NetworkClientType } from '../types'; +} from '../../tests/network-client/helpers.js'; +import { DEFAULT_MAX_CONSECUTIVE_FAILURES } from '../rpc-service/rpc-service.js'; +import { NetworkClientType } from '../types.js'; describe('createNetworkClient - RPC endpoint events', () => { for (const networkClientType of Object.values(NetworkClientType)) { diff --git a/packages/network-controller/src/create-network-client-tests/rpc-endpoint-failover.test.ts b/packages/network-controller/src/create-network-client-tests/rpc-endpoint-failover.test.ts index 865f78f93af..fa6f9d5e0c0 100644 --- a/packages/network-controller/src/create-network-client-tests/rpc-endpoint-failover.test.ts +++ b/packages/network-controller/src/create-network-client-tests/rpc-endpoint-failover.test.ts @@ -1,8 +1,8 @@ -import { buildRootMessenger } from '../../tests/helpers'; +import { buildRootMessenger } from '../../tests/helpers.js'; import { withMockedCommunications, withNetworkClient, -} from '../../tests/network-client/helpers'; +} from '../../tests/network-client/helpers.js'; describe('createNetworkClient - RPC endpoint failover (forced)', () => { describe('when rpcFailoverMode is forced and providerType is infura', () => { diff --git a/packages/network-controller/src/create-network-client.ts b/packages/network-controller/src/create-network-client.ts index f79ef7b2cad..99d1222a813 100644 --- a/packages/network-controller/src/create-network-client.ts +++ b/packages/network-controller/src/create-network-client.ts @@ -38,23 +38,23 @@ import type { Logger } from 'loglevel'; import type { NetworkClientId, NetworkControllerMessenger, -} from './NetworkController'; -import type { RpcServiceOptionsWithDefaults } from './rpc-service/rpc-service'; +} from './NetworkController.js'; +import { RpcServiceChain } from './rpc-service/rpc-service-chain.js'; +import type { RpcServiceOptionsWithDefaults } from './rpc-service/rpc-service.js'; import { isConnectionError, isConnectionResetError, isJsonParseError, isHttpServerError, isTimeoutError, -} from './rpc-service/rpc-service'; -import { RpcServiceChain } from './rpc-service/rpc-service-chain'; -import type { RpcFailoverMode } from './selectors'; +} from './rpc-service/rpc-service.js'; +import type { RpcFailoverMode } from './selectors.js'; import type { BlockTracker, NetworkClientConfiguration, Provider, -} from './types'; -import { NetworkClientType } from './types'; +} from './types.js'; +import { NetworkClientType } from './types.js'; const SECOND = 1000; @@ -218,7 +218,7 @@ export function createNetworkClient({ const destroy = (): void => { // TODO: Either fix this lint violation or explain why it's necessary to ignore. - // eslint-disable-next-line @typescript-eslint/no-floating-promises + blockTracker.destroy(); }; diff --git a/packages/network-controller/src/index.ts b/packages/network-controller/src/index.ts index f1f3a4ecc13..e850deda53c 100644 --- a/packages/network-controller/src/index.ts +++ b/packages/network-controller/src/index.ts @@ -1,4 +1,4 @@ -export type { AutoManagedNetworkClient } from './create-auto-managed-network-client'; +export type { AutoManagedNetworkClient } from './create-auto-managed-network-client.js'; export type { Block, NetworkMetadata, @@ -32,28 +32,31 @@ export type { NetworkControllerRpcEndpointDegradedEvent, NetworkControllerRpcEndpointChainAvailableEvent, NetworkControllerRpcEndpointRetriedEvent, -} from './NetworkController'; +} from './NetworkController.js'; export { getDefaultNetworkControllerState, selectAvailableNetworkClientIds, knownKeysOf, NetworkController, RpcEndpointType, -} from './NetworkController'; -export * from './constants'; -export type { BlockTracker, Provider } from './types'; +} from './NetworkController.js'; +export * from './constants.js'; +export type { BlockTracker, Provider } from './types.js'; export type { NetworkClientConfiguration, InfuraNetworkClientConfiguration, CustomNetworkClientConfiguration, -} from './types'; -export { NetworkClientType } from './types'; -export type { NetworkClient } from './create-network-client'; -export type { AbstractRpcService } from './rpc-service/abstract-rpc-service'; -export type { RpcServiceRequestable } from './rpc-service/rpc-service-requestable'; -export type { DegradedEventType, RetryReason } from './create-network-client'; -export { classifyRetryReason } from './create-network-client'; -export { isConnectionError } from './rpc-service/rpc-service'; +} from './types.js'; +export { NetworkClientType } from './types.js'; +export type { NetworkClient } from './create-network-client.js'; +export type { AbstractRpcService } from './rpc-service/abstract-rpc-service.js'; +export type { RpcServiceRequestable } from './rpc-service/rpc-service-requestable.js'; +export type { + DegradedEventType, + RetryReason, +} from './create-network-client.js'; +export { classifyRetryReason } from './create-network-client.js'; +export { isConnectionError } from './rpc-service/rpc-service.js'; export type { NetworkControllerGetEthQueryAction, NetworkControllerGetNetworkClientByIdAction, @@ -76,4 +79,4 @@ export type { NetworkControllerResetConnectionAction, NetworkControllerRollbackToPreviousProviderAction, NetworkControllerLoadBackupAction, -} from './NetworkController-method-action-types'; +} from './NetworkController-method-action-types.js'; diff --git a/packages/network-controller/src/rpc-service/abstract-rpc-service.ts b/packages/network-controller/src/rpc-service/abstract-rpc-service.ts index 7769f88c055..9a23d93bd0f 100644 --- a/packages/network-controller/src/rpc-service/abstract-rpc-service.ts +++ b/packages/network-controller/src/rpc-service/abstract-rpc-service.ts @@ -1,4 +1,4 @@ -import type { RpcServiceRequestable } from './rpc-service-requestable'; +import type { RpcServiceRequestable } from './rpc-service-requestable.js'; /** * The interface for a service class responsible for making a request to an RPC diff --git a/packages/network-controller/src/rpc-service/rpc-service-chain.test.ts b/packages/network-controller/src/rpc-service/rpc-service-chain.test.ts index 5a8ffa37e87..702cf7f3f2e 100644 --- a/packages/network-controller/src/rpc-service/rpc-service-chain.test.ts +++ b/packages/network-controller/src/rpc-service/rpc-service-chain.test.ts @@ -6,11 +6,11 @@ import { import { errorCodes } from '@metamask/rpc-errors'; import nock from 'nock'; +import { RpcServiceChain } from './rpc-service-chain.js'; import { DEFAULT_MAX_CONSECUTIVE_FAILURES, DEFAULT_MAX_RETRIES, -} from './rpc-service'; -import { RpcServiceChain } from './rpc-service-chain'; +} from './rpc-service.js'; /** * The number of fetch requests made for a single request to an RPC service, using default max diff --git a/packages/network-controller/src/rpc-service/rpc-service-chain.ts b/packages/network-controller/src/rpc-service/rpc-service-chain.ts index af5a69e2c9b..89f6ba5cd2c 100644 --- a/packages/network-controller/src/rpc-service/rpc-service-chain.ts +++ b/packages/network-controller/src/rpc-service/rpc-service-chain.ts @@ -10,15 +10,15 @@ import type { } from '@metamask/utils'; import { IDisposable } from 'cockatiel'; -import { projectLogger, createModuleLogger } from '../logger'; -import { RpcService } from './rpc-service'; -import type { RpcServiceOptions } from './rpc-service'; +import { projectLogger, createModuleLogger } from '../logger.js'; +import { RpcService } from './rpc-service.js'; +import type { RpcServiceOptions } from './rpc-service.js'; import type { CockatielEventToEventListenerWithData, ExcludeCockatielEventData, ExtractCockatielEventData, FetchOptions, -} from './shared'; +} from './shared.js'; const log = createModuleLogger(projectLogger, 'RpcServiceChain'); diff --git a/packages/network-controller/src/rpc-service/rpc-service-requestable.ts b/packages/network-controller/src/rpc-service/rpc-service-requestable.ts index 6283a704736..7d8e2764d6c 100644 --- a/packages/network-controller/src/rpc-service/rpc-service-requestable.ts +++ b/packages/network-controller/src/rpc-service/rpc-service-requestable.ts @@ -12,7 +12,7 @@ import type { ExtendCockatielEventData, ExtractCockatielEventData, FetchOptions, -} from './shared'; +} from './shared.js'; /** * The interface for a service class responsible for making a request to a diff --git a/packages/network-controller/src/rpc-service/rpc-service.test.ts b/packages/network-controller/src/rpc-service/rpc-service.test.ts index 309296cab77..2e98f9c8094 100644 --- a/packages/network-controller/src/rpc-service/rpc-service.test.ts +++ b/packages/network-controller/src/rpc-service/rpc-service.test.ts @@ -13,7 +13,7 @@ import { CUSTOM_RPC_ERRORS, DEFAULT_MAX_RETRIES, RpcService, -} from './rpc-service'; +} from './rpc-service.js'; describe('RpcService', () => { beforeEach(() => { diff --git a/packages/network-controller/src/rpc-service/rpc-service.ts b/packages/network-controller/src/rpc-service/rpc-service.ts index 6e6cba3509e..1eef498ba30 100644 --- a/packages/network-controller/src/rpc-service/rpc-service.ts +++ b/packages/network-controller/src/rpc-service/rpc-service.ts @@ -20,14 +20,14 @@ import { CircuitState } from 'cockatiel'; import deepmerge from 'deepmerge'; import type { Logger } from 'loglevel'; -import { projectLogger, createModuleLogger } from '../logger'; +import { projectLogger, createModuleLogger } from '../logger.js'; import type { CockatielEventToEventListenerWithData, ExcludeCockatielEventData, ExtendCockatielEventData, ExtractCockatielEventData, FetchOptions, -} from './shared'; +} from './shared.js'; /** * Options for the RpcService constructor with some properties omitted and made optional as they have defaults. diff --git a/packages/network-controller/src/selectors.test.ts b/packages/network-controller/src/selectors.test.ts index 9e934fdc9e4..0fed844f57e 100644 --- a/packages/network-controller/src/selectors.test.ts +++ b/packages/network-controller/src/selectors.test.ts @@ -1,4 +1,4 @@ -import { getRpcFailoverMode } from './selectors'; +import { getRpcFailoverMode } from './selectors.js'; /** * Builds a remote feature flag controller state with the given failover mode. diff --git a/packages/network-controller/tests/NetworkController.provider.test.ts b/packages/network-controller/tests/NetworkController.provider.test.ts index 00e360b2e25..8456454907c 100644 --- a/packages/network-controller/tests/NetworkController.provider.test.ts +++ b/packages/network-controller/tests/NetworkController.provider.test.ts @@ -5,14 +5,14 @@ import { import { Duration, inMilliseconds } from '@metamask/utils'; import nock from 'nock'; -import { NetworkStatus } from '../src/constants'; +import { NetworkStatus } from '../src/constants.js'; import { buildCustomNetworkConfiguration, buildCustomRpcEndpoint, buildInfuraNetworkConfiguration, buildInfuraRpcEndpoint, withController, -} from './helpers'; +} from './helpers.js'; describe('NetworkController provider tests', () => { beforeEach(() => { diff --git a/packages/network-controller/tests/NetworkController.test.ts b/packages/network-controller/tests/NetworkController.test.ts index 35fa8fe8b09..3107edeb4c0 100644 --- a/packages/network-controller/tests/NetworkController.test.ts +++ b/packages/network-controller/tests/NetworkController.test.ts @@ -18,14 +18,14 @@ import { when, resetAllWhenMocks, WhenMock } from 'jest-when'; import { inspect, isDeepStrictEqual, promisify } from 'util'; import { v4 as uuidV4 } from 'uuid'; -import { FakeBlockTracker } from '../../../tests/fake-block-tracker'; -import type { FakeProviderStub } from '../../../tests/fake-provider'; -import { FakeProvider } from '../../../tests/fake-provider'; -import { NetworkStatus } from '../src/constants'; -import * as createAutoManagedNetworkClientModule from '../src/create-auto-managed-network-client'; -import type { AutoManagedNetworkClient } from '../src/create-auto-managed-network-client'; -import type { NetworkClient } from '../src/create-network-client'; -import { createNetworkClient } from '../src/create-network-client'; +import { FakeBlockTracker } from '../../../tests/fake-block-tracker.js'; +import type { FakeProviderStub } from '../../../tests/fake-provider.js'; +import { FakeProvider } from '../../../tests/fake-provider.js'; +import { NetworkStatus } from '../src/constants.js'; +import * as createAutoManagedNetworkClientModule from '../src/create-auto-managed-network-client.js'; +import type { AutoManagedNetworkClient } from '../src/create-auto-managed-network-client.js'; +import type { NetworkClient } from '../src/create-network-client.js'; +import { createNetworkClient } from '../src/create-network-client.js'; import type { AutoManagedBuiltInNetworkClientRegistry, AutoManagedCustomNetworkClientRegistry, @@ -35,7 +35,7 @@ import type { NetworkControllerEvents, NetworkControllerStateChangeEvent, NetworkState, -} from '../src/NetworkController'; +} from '../src/NetworkController.js'; import { getAvailableNetworkClientIds, getDefaultNetworkControllerState, @@ -44,10 +44,10 @@ import { RpcEndpointType, selectAvailableNetworkClientIds, selectNetworkConfigurations, -} from '../src/NetworkController'; -import type { RpcServiceOptions } from '../src/rpc-service/rpc-service'; -import type { NetworkClientConfiguration, Provider } from '../src/types'; -import { NetworkClientType } from '../src/types'; +} from '../src/NetworkController.js'; +import type { RpcServiceOptions } from '../src/rpc-service/rpc-service.js'; +import type { NetworkClientConfiguration, Provider } from '../src/types.js'; +import { NetworkClientType } from '../src/types.js'; import { buildAddNetworkCustomRpcEndpointFields, buildAddNetworkFields, @@ -64,8 +64,8 @@ import { INFURA_NETWORKS, TESTNET, withController, -} from './helpers'; -import type { RootMessenger } from './helpers'; +} from './helpers.js'; +import type { RootMessenger } from './helpers.js'; jest.mock('../src/create-network-client'); @@ -2030,7 +2030,7 @@ describe('NetworkController', () => { response: SUCCESSFUL_ETH_GET_BLOCK_BY_NUMBER_RESPONSE, beforeCompleting: (): void => { // We are purposefully not awaiting this promise. - // eslint-disable-next-line @typescript-eslint/no-floating-promises + controller.setActiveNetwork('AAAA-AAAA-AAAA-AAAA'); }, }, @@ -2122,7 +2122,7 @@ describe('NetworkController', () => { }, beforeCompleting: (): void => { // We are purposefully not awaiting this promise. - // eslint-disable-next-line @typescript-eslint/no-floating-promises + controller.setActiveNetwork('AAAA-AAAA-AAAA-AAAA'); }, }, @@ -2215,7 +2215,7 @@ describe('NetworkController', () => { error: BLOCKED_INFURA_JSON_RPC_ERROR, beforeCompleting: (): void => { // We are purposefully not awaiting this promise. - // eslint-disable-next-line @typescript-eslint/no-floating-promises + controller.setActiveNetwork('AAAA-AAAA-AAAA-AAAA'); }, }, @@ -2525,7 +2525,7 @@ describe('NetworkController', () => { response: SUCCESSFUL_ETH_GET_BLOCK_BY_NUMBER_RESPONSE, beforeCompleting: (): void => { // We are purposefully not awaiting this promise. - // eslint-disable-next-line @typescript-eslint/no-floating-promises + controller.setProviderType(TESTNET.networkType); }, }, @@ -2620,7 +2620,7 @@ describe('NetworkController', () => { }, beforeCompleting: (): void => { // We are purposefully not awaiting this promise. - // eslint-disable-next-line @typescript-eslint/no-floating-promises + controller.setProviderType(TESTNET.networkType); }, }, @@ -2718,7 +2718,7 @@ describe('NetworkController', () => { response: SUCCESSFUL_ETH_GET_BLOCK_BY_NUMBER_RESPONSE, beforeCompleting: (): void => { // We are purposefully not awaiting this promise. - // eslint-disable-next-line @typescript-eslint/no-floating-promises + controller.setProviderType(TESTNET.networkType); }, }, @@ -13505,7 +13505,7 @@ describe('NetworkController', () => { operation: () => { // Intentionally not awaited because we're capturing an event // emitted partway through the operation - // eslint-disable-next-line @typescript-eslint/no-floating-promises + controller.rollbackToPreviousProvider(); }, }); @@ -13548,7 +13548,7 @@ describe('NetworkController', () => { // Intentionally not awaited because we're capturing an event // emitted partway through the operation // TODO: Either fix this lint violation or explain why it's necessary to ignore. - // eslint-disable-next-line @typescript-eslint/no-floating-promises + controller.rollbackToPreviousProvider(); }, }); @@ -13681,7 +13681,7 @@ describe('NetworkController', () => { operation: () => { // Intentionally not awaited because we want to check state // while this operation is in-progress - // eslint-disable-next-line @typescript-eslint/no-floating-promises + controller.rollbackToPreviousProvider(); }, beforeResolving: () => { @@ -14094,7 +14094,7 @@ describe('NetworkController', () => { operation: () => { // Intentionally not awaited because we're capturing an event // emitted partway through the operation - // eslint-disable-next-line @typescript-eslint/no-floating-promises + controller.rollbackToPreviousProvider(); }, }); @@ -14139,7 +14139,7 @@ describe('NetworkController', () => { operation: () => { // Intentionally not awaited because we're capturing an event // emitted partway through the operation - // eslint-disable-next-line @typescript-eslint/no-floating-promises + controller.rollbackToPreviousProvider(); }, }); @@ -14275,7 +14275,7 @@ describe('NetworkController', () => { operation: () => { // Intentionally not awaited because we want to check state // while this operation is in-progress - // eslint-disable-next-line @typescript-eslint/no-floating-promises + controller.rollbackToPreviousProvider(); }, beforeResolving: () => { diff --git a/packages/network-controller/tests/helpers.ts b/packages/network-controller/tests/helpers.ts index a46c7cdf78b..d627c23bd85 100644 --- a/packages/network-controller/tests/helpers.ts +++ b/packages/network-controller/tests/helpers.ts @@ -17,11 +17,11 @@ import type { import type { Hex } from '@metamask/utils'; import { v4 as uuidV4 } from 'uuid'; -import { FakeBlockTracker } from '../../../tests/fake-block-tracker'; -import { FakeProvider } from '../../../tests/fake-provider'; -import type { FakeProviderStub } from '../../../tests/fake-provider'; -import { buildTestObject } from '../../../tests/helpers'; -import { NetworkController } from '../src'; +import { FakeBlockTracker } from '../../../tests/fake-block-tracker.js'; +import { FakeProvider } from '../../../tests/fake-provider.js'; +import type { FakeProviderStub } from '../../../tests/fake-provider.js'; +import { buildTestObject } from '../../../tests/helpers.js'; +import { NetworkController } from '../src.js'; import type { BuiltInNetworkClientId, CustomNetworkClientId, @@ -29,8 +29,8 @@ import type { NetworkClientConfiguration, NetworkClientId, NetworkConfiguration, -} from '../src'; -import type { AutoManagedNetworkClient } from '../src/create-auto-managed-network-client'; +} from '../src.js'; +import type { AutoManagedNetworkClient } from '../src/create-auto-managed-network-client.js'; import type { AddNetworkCustomRpcEndpointFields, AddNetworkFields, @@ -39,15 +39,15 @@ import type { NetworkControllerMessenger, NetworkControllerOptions, UpdateNetworkCustomRpcEndpointFields, -} from '../src/NetworkController'; -import { RpcEndpointType } from '../src/NetworkController'; -import { RpcServiceOptions } from '../src/rpc-service/rpc-service'; -import type { RpcFailoverMode } from '../src/selectors'; +} from '../src/NetworkController.js'; +import { RpcEndpointType } from '../src/NetworkController.js'; +import { RpcServiceOptions } from '../src/rpc-service/rpc-service.js'; +import type { RpcFailoverMode } from '../src/selectors.js'; import type { CustomNetworkClientConfiguration, InfuraNetworkClientConfiguration, -} from '../src/types'; -import { NetworkClientType } from '../src/types'; +} from '../src/types.js'; +import { NetworkClientType } from '../src/types.js'; export type AllNetworkControllerActions = MessengerActions; diff --git a/packages/network-controller/tests/network-client/block-hash-in-response.ts b/packages/network-controller/tests/network-client/block-hash-in-response.ts index 160d93da280..aeaa641bbf2 100644 --- a/packages/network-controller/tests/network-client/block-hash-in-response.ts +++ b/packages/network-controller/tests/network-client/block-hash-in-response.ts @@ -1,14 +1,14 @@ import { errorCodes, rpcErrors } from '@metamask/rpc-errors'; -import { CUSTOM_RPC_ERRORS } from '../../src/rpc-service/rpc-service'; -import { NetworkClientType } from '../../src/types'; -import type { ProviderType } from './helpers'; +import { CUSTOM_RPC_ERRORS } from '../../src/rpc-service/rpc-service.js'; +import { NetworkClientType } from '../../src/types.js'; +import type { ProviderType } from './helpers.js'; import { waitForPromiseToBeFulfilledAfterRunningAllTimers, withMockedCommunications, withNetworkClient, -} from './helpers'; -import { testsForRpcFailoverBehavior } from './rpc-failover'; +} from './helpers.js'; +import { testsForRpcFailoverBehavior } from './rpc-failover.js'; type TestsForRpcMethodThatCheckForBlockHashInResponseOptions = { providerType: ProviderType; diff --git a/packages/network-controller/tests/network-client/block-param.ts b/packages/network-controller/tests/network-client/block-param.ts index 2b8a6cf980e..5b0e206c7ee 100644 --- a/packages/network-controller/tests/network-client/block-param.ts +++ b/packages/network-controller/tests/network-client/block-param.ts @@ -1,17 +1,17 @@ import { errorCodes, rpcErrors } from '@metamask/rpc-errors'; import type { Hex } from '@metamask/utils'; -import { CUSTOM_RPC_ERRORS } from '../../src/rpc-service/rpc-service'; -import { NetworkClientType } from '../../src/types'; -import type { MockRequest, ProviderType } from './helpers'; +import { CUSTOM_RPC_ERRORS } from '../../src/rpc-service/rpc-service.js'; +import { NetworkClientType } from '../../src/types.js'; +import type { MockRequest, ProviderType } from './helpers.js'; import { buildMockParams, buildRequestWithReplacedBlockParam, waitForPromiseToBeFulfilledAfterRunningAllTimers, withMockedCommunications, withNetworkClient, -} from './helpers'; -import { testsForRpcFailoverBehavior } from './rpc-failover'; +} from './helpers.js'; +import { testsForRpcFailoverBehavior } from './rpc-failover.js'; type TestsForRpcMethodSupportingBlockParam = { providerType: ProviderType; diff --git a/packages/network-controller/tests/network-client/helpers.ts b/packages/network-controller/tests/network-client/helpers.ts index 83bff9e1477..850026dc21c 100644 --- a/packages/network-controller/tests/network-client/helpers.ts +++ b/packages/network-controller/tests/network-client/helpers.ts @@ -10,20 +10,20 @@ import type { Hex, Json, JsonRpcRequest } from '@metamask/utils'; import nock, { isDone as nockIsDone } from 'nock'; import type { Scope as NockScope } from 'nock'; -import { createNetworkClient } from '../../src/create-network-client'; +import { createNetworkClient } from '../../src/create-network-client.js'; import type { NetworkClientId, NetworkControllerOptions, -} from '../../src/NetworkController'; -import type { RpcServiceOptions } from '../../src/rpc-service/rpc-service'; -import type { RpcFailoverMode } from '../../src/selectors'; -import type { NetworkClientConfiguration, Provider } from '../../src/types'; -import { NetworkClientType } from '../../src/types'; -import type { RootMessenger } from '../helpers'; +} from '../../src/NetworkController.js'; +import type { RpcServiceOptions } from '../../src/rpc-service/rpc-service.js'; +import type { RpcFailoverMode } from '../../src/selectors.js'; +import type { NetworkClientConfiguration, Provider } from '../../src/types.js'; +import { NetworkClientType } from '../../src/types.js'; +import type { RootMessenger } from '../helpers.js'; import { buildNetworkControllerMessenger, buildRootMessenger, -} from '../helpers'; +} from '../helpers.js'; /** * A dummy value for the `infuraProjectId` option that `createInfuraClient` diff --git a/packages/network-controller/tests/network-client/no-block-param.ts b/packages/network-controller/tests/network-client/no-block-param.ts index d5e47951d71..14d5efb8fe2 100644 --- a/packages/network-controller/tests/network-client/no-block-param.ts +++ b/packages/network-controller/tests/network-client/no-block-param.ts @@ -1,14 +1,14 @@ import { errorCodes, rpcErrors } from '@metamask/rpc-errors'; -import { CUSTOM_RPC_ERRORS } from '../../src/rpc-service/rpc-service'; -import { NetworkClientType } from '../../src/types'; -import type { ProviderType } from './helpers'; +import { CUSTOM_RPC_ERRORS } from '../../src/rpc-service/rpc-service.js'; +import { NetworkClientType } from '../../src/types.js'; +import type { ProviderType } from './helpers.js'; import { waitForPromiseToBeFulfilledAfterRunningAllTimers, withMockedCommunications, withNetworkClient, -} from './helpers'; -import { testsForRpcFailoverBehavior } from './rpc-failover'; +} from './helpers.js'; +import { testsForRpcFailoverBehavior } from './rpc-failover.js'; type TestsForRpcMethodAssumingNoBlockParamOptions = { providerType: ProviderType; diff --git a/packages/network-controller/tests/network-client/not-handled-by-middleware.ts b/packages/network-controller/tests/network-client/not-handled-by-middleware.ts index 2dee8f3e85b..e7af4e0f45e 100644 --- a/packages/network-controller/tests/network-client/not-handled-by-middleware.ts +++ b/packages/network-controller/tests/network-client/not-handled-by-middleware.ts @@ -1,7 +1,7 @@ -import { fill } from 'lodash'; +import { fill } from 'lodash-es'; -import type { ProviderType } from './helpers'; -import { withMockedCommunications, withNetworkClient } from './helpers'; +import type { ProviderType } from './helpers.js'; +import { withMockedCommunications, withNetworkClient } from './helpers.js'; type TestsForRpcMethodNotHandledByMiddlewareOptions = { providerType: ProviderType; diff --git a/packages/network-controller/tests/network-client/rpc-failover.ts b/packages/network-controller/tests/network-client/rpc-failover.ts index ad4b9dd83ba..e0eec3c98ef 100644 --- a/packages/network-controller/tests/network-client/rpc-failover.ts +++ b/packages/network-controller/tests/network-client/rpc-failover.ts @@ -1,10 +1,10 @@ import { ConstantBackoff } from '@metamask/controller-utils'; import type { Hex } from '@metamask/utils'; -import { ignoreRejection } from '../../../../tests/helpers'; -import { buildRootMessenger } from '../helpers'; -import type { MockRequest, MockResponse, ProviderType } from './helpers'; -import { withMockedCommunications, withNetworkClient } from './helpers'; +import { ignoreRejection } from '../../../../tests/helpers.js'; +import { buildRootMessenger } from '../helpers.js'; +import type { MockRequest, MockResponse, ProviderType } from './helpers.js'; +import { withMockedCommunications, withNetworkClient } from './helpers.js'; /** * Tests for RPC failover behavior. From d5191364d9dd0326f2005b82cf1e083264a428b8 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:48:24 +0200 Subject: [PATCH 072/136] ESLint fix and `jest` global import for accounts-controller --- packages/accounts-controller/package.json | 2 +- .../AccountsController-method-action-types.ts | 2 +- .../src/AccountsController.test.ts | 8 +++---- .../src/AccountsController.ts | 22 ++++++++----------- packages/accounts-controller/src/index.ts | 8 +++---- packages/accounts-controller/src/typing.ts | 2 +- .../accounts-controller/src/utils.test.ts | 4 ++-- packages/accounts-controller/src/utils.ts | 2 +- 8 files changed, 23 insertions(+), 27 deletions(-) diff --git a/packages/accounts-controller/package.json b/packages/accounts-controller/package.json index 120179239f5..1ccf767505e 100644 --- a/packages/accounts-controller/package.json +++ b/packages/accounts-controller/package.json @@ -63,7 +63,7 @@ "deepmerge": "^4.2.2", "ethereum-cryptography": "^2.1.2", "immer": "^9.0.6", - "lodash": "^4.17.21", + "lodash-es": "^4.17.21", "uuid": "^8.3.2" }, "devDependencies": { diff --git a/packages/accounts-controller/src/AccountsController-method-action-types.ts b/packages/accounts-controller/src/AccountsController-method-action-types.ts index 34494943a28..12a69da6c60 100644 --- a/packages/accounts-controller/src/AccountsController-method-action-types.ts +++ b/packages/accounts-controller/src/AccountsController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { AccountsController } from './AccountsController'; +import type { AccountsController } from './AccountsController.js'; /** * Returns the internal account object for the given account ID, if it exists. diff --git a/packages/accounts-controller/src/AccountsController.test.ts b/packages/accounts-controller/src/AccountsController.test.ts index 1df8dfbf468..5dce84db319 100644 --- a/packages/accounts-controller/src/AccountsController.test.ts +++ b/packages/accounts-controller/src/AccountsController.test.ts @@ -40,16 +40,16 @@ import { createMockInternalAccount, createMockInternalAccountOptions, ETH_EOA_METHODS, -} from '../tests/mocks'; +} from '../tests/mocks.js'; import type { AccountsControllerMessenger, AccountsControllerState, -} from './AccountsController'; -import { AccountsController, EMPTY_ACCOUNT } from './AccountsController'; +} from './AccountsController.js'; +import { AccountsController, EMPTY_ACCOUNT } from './AccountsController.js'; import { getUUIDOptionsFromAddressOfNormalAccount, keyringTypeToName, -} from './utils'; +} from './utils.js'; type AllAccountsControllerActions = MessengerActions; diff --git a/packages/accounts-controller/src/AccountsController.ts b/packages/accounts-controller/src/AccountsController.ts index abfd0c7113f..16f1544bde4 100644 --- a/packages/accounts-controller/src/AccountsController.ts +++ b/packages/accounts-controller/src/AccountsController.ts @@ -34,18 +34,18 @@ import type { NetworkClientId } from '@metamask/network-controller'; import { isCaipChainId } from '@metamask/utils'; import type { CaipChainId } from '@metamask/utils'; import type { WritableDraft } from 'immer/dist/internal.js'; -import { cloneDeep } from 'lodash'; +import { cloneDeep } from 'lodash-es'; -import { AccountsControllerMethodActions } from './AccountsController-method-action-types'; -import { projectLogger as log } from './logger'; +import { AccountsControllerMethodActions } from './AccountsController-method-action-types.js'; +import { projectLogger as log } from './logger.js'; import type { MultichainNetworkControllerNetworkDidChangeEvent, SnapAccountServiceAccountAssetListUpdatedEvent, SnapAccountServiceAccountBalancesUpdatedEvent, SnapAccountServiceAccountTransactionsUpdatedEvent, -} from './types'; -import type { AccountsControllerStrictState } from './typing'; -import type { HdSnapKeyringAccount } from './utils'; +} from './types.js'; +import type { AccountsControllerStrictState } from './typing.js'; +import type { HdSnapKeyringAccount } from './utils.js'; import { constructAccountIdByAddress, getEvmDerivationPathForIndex, @@ -57,7 +57,7 @@ import { isSnapKeyringType, isSnapKeyringV2Type, keyringTypeToName, -} from './utils'; +} from './utils.js'; const controllerName = 'AccountsController'; @@ -1035,9 +1035,7 @@ export class AccountsController extends BaseController< ); if (account) { - const accounts = Object.values( - internalAccounts.accounts, - ) as InternalAccount[]; + const accounts = Object.values(internalAccounts.accounts); // If it's the first account, we need to select it. const lastSelected = @@ -1112,9 +1110,7 @@ export class AccountsController extends BaseController< // If the account no longer exists (or none is selected), we need to re-select another one. const { internalAccounts } = state; if (!internalAccounts.accounts[previouslySelectedAccount]) { - const accounts = Object.values( - internalAccounts.accounts, - ) as InternalAccount[]; + const accounts = Object.values(internalAccounts.accounts); // Get the lastly selected account (according to the current accounts). const lastSelectedAccount = this.#getLastSelectedAccount(accounts); diff --git a/packages/accounts-controller/src/index.ts b/packages/accounts-controller/src/index.ts index bfaf0be8e56..a19927804e4 100644 --- a/packages/accounts-controller/src/index.ts +++ b/packages/accounts-controller/src/index.ts @@ -18,7 +18,7 @@ export type { AllowedEvents, AccountsControllerEvents, AccountsControllerMessenger, -} from './AccountsController'; +} from './AccountsController.js'; export type { AccountsControllerGetAccountAction, AccountsControllerGetAccountsAction, @@ -33,11 +33,11 @@ export type { AccountsControllerUpdateAccountMetadataAction, AccountsControllerUpdateAccountsAction, AccountsControllerLoadBackupAction, -} from './AccountsController-method-action-types'; -export { EMPTY_ACCOUNT, AccountsController } from './AccountsController'; +} from './AccountsController-method-action-types.js'; +export { EMPTY_ACCOUNT, AccountsController } from './AccountsController.js'; export { keyringTypeToName, getUUIDOptionsFromAddressOfNormalAccount, getUUIDFromAddressOfNormalAccount, isNormalKeyringType, -} from './utils'; +} from './utils.js'; diff --git a/packages/accounts-controller/src/typing.ts b/packages/accounts-controller/src/typing.ts index 81d038ac998..bca520d9037 100644 --- a/packages/accounts-controller/src/typing.ts +++ b/packages/accounts-controller/src/typing.ts @@ -1,7 +1,7 @@ import type { KeyringAccountEntropyOptions } from '@metamask/keyring-api'; import type { InternalAccount } from '@metamask/keyring-internal-api'; -import type { AccountsControllerState } from './AccountsController'; +import type { AccountsControllerState } from './AccountsController.js'; /** * Type constraint to ensure a type is compatible with {@link AccountsControllerState}. diff --git a/packages/accounts-controller/src/utils.test.ts b/packages/accounts-controller/src/utils.test.ts index 66d22cd4621..6a03efe7c03 100644 --- a/packages/accounts-controller/src/utils.test.ts +++ b/packages/accounts-controller/src/utils.test.ts @@ -3,7 +3,7 @@ import { KeyringType } from '@metamask/keyring-api/v2'; import type { KeyringObject } from '@metamask/keyring-controller'; import { KeyringTypes } from '@metamask/keyring-controller'; -import { createMockInternalAccount } from '../tests/mocks'; +import { createMockInternalAccount } from '../tests/mocks.js'; import { constructAccountIdByAddress, getEvmGroupIndexFromAddressIndex, @@ -12,7 +12,7 @@ import { isSimpleKeyringType, isSnapKeyringV2Type, keyringTypeToName, -} from './utils'; +} from './utils.js'; describe('utils', () => { describe('keyringTypeToName', () => { diff --git a/packages/accounts-controller/src/utils.ts b/packages/accounts-controller/src/utils.ts index d10ec9538c0..64090871669 100644 --- a/packages/accounts-controller/src/utils.ts +++ b/packages/accounts-controller/src/utils.ts @@ -9,7 +9,7 @@ import { sha256 } from 'ethereum-cryptography/sha256'; import type { V4Options } from 'uuid'; import { v4 as uuid } from 'uuid'; -import type { AccountId } from './AccountsController'; +import type { AccountId } from './AccountsController.js'; /** * Returns the name of the keyring type. From f67e9714c6ae42259d308075fd3173faa07849bb Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:48:29 +0200 Subject: [PATCH 073/136] ESLint fix and `jest` global import for notification-services-controller --- .../package.json | 2 +- ...nServicesController-method-action-types.ts | 2 +- .../NotificationServicesController.test.ts | 34 +++++++++++-------- .../NotificationServicesController.ts | 28 +++++++-------- .../__fixtures__/mockServices.ts | 2 +- .../constants/index.ts | 2 +- .../NotificationServicesController/index.ts | 24 ++++++------- .../mocks/index.ts | 8 ++--- .../mocks/mock-feature-announcements.ts | 6 ++-- .../mocks/mock-raw-notifications.ts | 4 +-- .../mocks/mock-snap-notification.ts | 4 +-- .../mocks/mockResponses.ts | 10 +++--- .../processors/index.ts | 6 ++-- .../process-api-notifications.test.ts | 4 +-- .../processors/process-api-notifications.ts | 6 ++-- .../process-feature-announcement.test.ts | 8 ++--- .../process-feature-announcement.ts | 6 ++-- .../processors/process-notifications.test.ts | 10 +++--- .../processors/process-notifications.ts | 16 ++++----- .../process-snap-notifications.test.ts | 8 ++--- .../processors/process-snap-notifications.ts | 4 +-- .../services/api-notifications.test.ts | 6 ++-- .../services/api-notifications.ts | 8 ++--- .../services/feature-announcements.test.ts | 10 +++--- .../services/feature-announcements.ts | 14 ++++---- .../notification-config-cache.test.ts | 2 +- .../services/perp-notifications.test.ts | 6 ++-- .../services/perp-notifications.ts | 2 +- .../feature-announcement.ts | 4 +-- .../types/feature-announcement/index.ts | 6 ++-- .../type-feature-announcement.ts | 2 +- .../types/index.ts | 10 +++--- .../types/notification-api/index.ts | 4 +-- .../notification-api/notification-api.ts | 6 ++-- .../types/notification/index.ts | 2 +- .../types/notification/notification.ts | 8 ++--- .../types/perps/index.ts | 2 +- .../types/perps/perp-types.ts | 2 +- .../types/snaps/index.ts | 2 +- .../types/snaps/snaps.ts | 2 +- .../utils/isVersionInBounds.test.ts | 2 +- ...vicesPushController-method-action-types.ts | 2 +- ...NotificationServicesPushController.test.ts | 10 +++--- .../NotificationServicesPushController.ts | 14 ++++---- .../__fixtures__/mockMessenger.ts | 2 +- .../__fixtures__/mockServices.ts | 2 +- .../index.ts | 16 ++++----- .../mocks/index.ts | 2 +- .../mocks/mockResponse.ts | 2 +- .../services/services.test.ts | 8 ++--- .../services/services.ts | 8 ++--- .../types/index.ts | 4 +-- .../types/push-service-interface.ts | 2 +- .../utils/get-notification-data.test.ts | 2 +- .../utils/get-notification-message.test.ts | 8 ++--- .../utils/get-notification-message.ts | 18 ++++------ .../utils/index.ts | 4 +-- .../web/index.ts | 2 +- .../web/push-utils.test.ts | 10 +++--- .../web/push-utils.ts | 10 +++--- .../src/index.ts | 6 ++-- .../src/shared/index.ts | 6 ++-- .../shared/is-onchain-notification.test.ts | 4 +-- .../src/shared/is-onchain-notification.ts | 4 +-- .../shared/notification-api-type-guards.ts | 2 +- .../src/shared/to-raw-notification.ts | 4 +-- 66 files changed, 223 insertions(+), 223 deletions(-) diff --git a/packages/notification-services-controller/package.json b/packages/notification-services-controller/package.json index e1570dafed8..dddd4a67f85 100644 --- a/packages/notification-services-controller/package.json +++ b/packages/notification-services-controller/package.json @@ -80,7 +80,7 @@ "@metamask/utils": "^11.11.0", "bignumber.js": "^9.1.2", "firebase": "^11.2.0", - "lodash": "^4.17.21", + "lodash-es": "^4.17.21", "loglevel": "^1.8.1", "semver": "^7.6.3", "uuid": "^8.3.2" diff --git a/packages/notification-services-controller/src/NotificationServicesController/NotificationServicesController-method-action-types.ts b/packages/notification-services-controller/src/NotificationServicesController/NotificationServicesController-method-action-types.ts index 92eeee08c5e..c4f85cec6cb 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/NotificationServicesController-method-action-types.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/NotificationServicesController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { NotificationServicesController } from './NotificationServicesController'; +import type { NotificationServicesController } from './NotificationServicesController.js'; export type NotificationServicesControllerInitAction = { type: `NotificationServicesController:init`; diff --git a/packages/notification-services-controller/src/NotificationServicesController/NotificationServicesController.test.ts b/packages/notification-services-controller/src/NotificationServicesController/NotificationServicesController.test.ts index 8409d8c6ada..ae40cde18ab 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/NotificationServicesController.test.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/NotificationServicesController.test.ts @@ -26,23 +26,27 @@ import type { NotificationServicesPushControllerDeletePushNotificationLinksAction, NotificationServicesPushControllerEnablePushNotificationsAction, NotificationServicesPushControllerSubscribeToPushNotificationsAction, -} from '../NotificationServicesPushController'; -import { ADDRESS_1, ADDRESS_2, ADDRESS_3 } from './__fixtures__/mockAddresses'; +} from '../NotificationServicesPushController.js'; +import { + ADDRESS_1, + ADDRESS_2, + ADDRESS_3, +} from './__fixtures__/mockAddresses.js'; import { mockGetOnChainNotificationsConfig, mockGetAPINotifications, mockFetchFeatureAnnouncementNotifications, mockMarkNotificationsAsRead, mockCreatePerpNotification, -} from './__fixtures__/mockServices'; -import { waitFor } from './__fixtures__/test-utils'; -import { TRIGGER_TYPES } from './constants'; -import { createMockSnapNotification } from './mocks'; +} from './__fixtures__/mockServices.js'; +import { waitFor } from './__fixtures__/test-utils.js'; +import { TRIGGER_TYPES } from './constants.js'; +import { createMockSnapNotification } from './mocks.js'; import { createMockFeatureAnnouncementAPIResult, createMockFeatureAnnouncementRaw, -} from './mocks/mock-feature-announcements'; -import { createMockNotificationEthSent } from './mocks/mock-raw-notifications'; +} from './mocks/mock-feature-announcements.js'; +import { createMockNotificationEthSent } from './mocks/mock-raw-notifications.js'; import { DEFAULT_AGENTIC_CLI_PREFERENCES, DEFAULT_PERPS_PREFERENCES, @@ -51,16 +55,16 @@ import { NotificationServicesController, ACCOUNTS_UPDATE_DEBOUNCE_TIME_MS, defaultState, -} from './NotificationServicesController'; +} from './NotificationServicesController.js'; import type { NotificationServicesControllerMessenger, NotificationServicesControllerState, -} from './NotificationServicesController'; -import { processFeatureAnnouncement } from './processors'; -import { processNotification } from './processors/process-notifications'; -import { processSnapNotification } from './processors/process-snap-notifications'; -import { notificationsConfigCache } from './services/notification-config-cache'; -import type { INotification, OrderInput } from './types'; +} from './NotificationServicesController.js'; +import { processFeatureAnnouncement } from './processors.js'; +import { processNotification } from './processors/process-notifications.js'; +import { processSnapNotification } from './processors/process-snap-notifications.js'; +import { notificationsConfigCache } from './services/notification-config-cache.js'; +import type { INotification, OrderInput } from './types.js'; // Mock type used for testing purposes // eslint-disable-next-line @typescript-eslint/no-explicit-any diff --git a/packages/notification-services-controller/src/NotificationServicesController/NotificationServicesController.ts b/packages/notification-services-controller/src/NotificationServicesController/NotificationServicesController.ts index f973d76d06b..81d606c1e43 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/NotificationServicesController.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/NotificationServicesController.ts @@ -31,34 +31,34 @@ import type { Messenger } from '@metamask/messenger'; import type { AuthenticationController } from '@metamask/profile-sync-controller'; import type { Hex } from '@metamask/utils'; import { assert } from '@metamask/utils'; -import { debounce } from 'lodash'; +import { debounce } from 'lodash-es'; import log from 'loglevel'; -import type { NormalisedAPINotification } from '.'; import type { NotificationServicesPushControllerStateChangeEvent, NotificationServicesPushControllerOnNewNotificationEvent, -} from '../NotificationServicesPushController'; -import type { NotificationServicesPushControllerMethodActions } from '../NotificationServicesPushController/NotificationServicesPushController-method-action-types'; -import { TRIGGER_TYPES } from './constants/notification-schema'; -import type { NotificationServicesControllerMethodActions } from './NotificationServicesController-method-action-types'; +} from '../NotificationServicesPushController.js'; +import type { NotificationServicesPushControllerMethodActions } from '../NotificationServicesPushController/NotificationServicesPushController-method-action-types.js'; +import type { NormalisedAPINotification } from './..js'; +import { TRIGGER_TYPES } from './constants/notification-schema.js'; +import type { NotificationServicesControllerMethodActions } from './NotificationServicesController-method-action-types.js'; import { processAndFilterNotifications, safeProcessNotification, -} from './processors/process-notifications'; -import type { ENV } from './services/api-notifications'; +} from './processors/process-notifications.js'; +import type { ENV } from './services/api-notifications.js'; import { getAPINotifications, getNotificationsApiConfigCached, markNotificationsAsRead, -} from './services/api-notifications'; -import { getFeatureAnnouncementNotifications } from './services/feature-announcements'; -import { createPerpOrderNotification } from './services/perp-notifications'; +} from './services/api-notifications.js'; +import { getFeatureAnnouncementNotifications } from './services/feature-announcements.js'; +import { createPerpOrderNotification } from './services/perp-notifications.js'; import type { INotification, MarkAsReadNotificationsParam, -} from './types/notification/notification'; -import type { OrderInput } from './types/perps'; +} from './types/notification/notification.js'; +import type { OrderInput } from './types/perps.js'; // Unique name for the controller const controllerName = 'NotificationServicesController'; @@ -692,7 +692,7 @@ export class NotificationServicesController extends BaseController< this.messenger.subscribe( 'KeyringController:stateChange', // Using void return for async callback - result is intentionally ignored - // eslint-disable-next-line @typescript-eslint/no-misused-promises + debouncedUpdateAccountNotifications, (state: KeyringControllerState): number => { return ( diff --git a/packages/notification-services-controller/src/NotificationServicesController/__fixtures__/mockServices.ts b/packages/notification-services-controller/src/NotificationServicesController/__fixtures__/mockServices.ts index 449383d1921..bdab54c3f6d 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/__fixtures__/mockServices.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/__fixtures__/mockServices.ts @@ -6,7 +6,7 @@ import { getMockListNotificationsResponse, getMockMarkNotificationsAsReadResponse, getMockCreatePerpOrderNotification, -} from '../mocks/mockResponses'; +} from '../mocks/mockResponses.js'; type MockReply = { status: nock.StatusCode; diff --git a/packages/notification-services-controller/src/NotificationServicesController/constants/index.ts b/packages/notification-services-controller/src/NotificationServicesController/constants/index.ts index f4c592754f1..4d8d6f37b13 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/constants/index.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/constants/index.ts @@ -1 +1 @@ -export * from './notification-schema'; +export * from './notification-schema.js'; diff --git a/packages/notification-services-controller/src/NotificationServicesController/index.ts b/packages/notification-services-controller/src/NotificationServicesController/index.ts index 745d6f723eb..60beff139e0 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/index.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/index.ts @@ -1,17 +1,17 @@ -import { NotificationServicesController } from './NotificationServicesController'; +import { NotificationServicesController } from './NotificationServicesController.js'; export { NotificationServicesController as Controller }; export default NotificationServicesController; -export * from './NotificationServicesController'; -export type * as Types from './types'; -export type * from './types'; -export * as Processors from './processors'; -export * from './processors'; -export * as Constants from './constants'; -export * from './constants'; -export * as Mocks from './mocks'; -export * from '../shared'; -export { isVersionInBounds } from './utils/isVersionInBounds'; +export * from './NotificationServicesController.js'; +export type * as Types from './types.js'; +export type * from './types.js'; +export type * as Processors from './processors.js'; +export type * from './processors.js'; +export * as Constants from './constants.js'; +export * from './constants.js'; +export * as Mocks from './mocks.js'; +export type * from '../shared.js'; +export { isVersionInBounds } from './utils/isVersionInBounds.js'; export type { NotificationServicesControllerInitAction, @@ -31,4 +31,4 @@ export type { NotificationServicesControllerMarkMetamaskNotificationsAsReadAction, NotificationServicesControllerUpdateMetamaskNotificationsListAction, NotificationServicesControllerSendPerpPlaceOrderNotificationAction, -} from './NotificationServicesController-method-action-types'; +} from './NotificationServicesController-method-action-types.js'; diff --git a/packages/notification-services-controller/src/NotificationServicesController/mocks/index.ts b/packages/notification-services-controller/src/NotificationServicesController/mocks/index.ts index fbd22ca1f50..7d3df3199ff 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/mocks/index.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/mocks/index.ts @@ -1,4 +1,4 @@ -export * from './mock-feature-announcements'; -export * from './mock-raw-notifications'; -export * from './mockResponses'; -export * from './mock-snap-notification'; +export * from './mock-feature-announcements.js'; +export * from './mock-raw-notifications.js'; +export * from './mockResponses.js'; +export * from './mock-snap-notification.js'; diff --git a/packages/notification-services-controller/src/NotificationServicesController/mocks/mock-feature-announcements.ts b/packages/notification-services-controller/src/NotificationServicesController/mocks/mock-feature-announcements.ts index 63c6258964b..21e56537a2e 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/mocks/mock-feature-announcements.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/mocks/mock-feature-announcements.ts @@ -1,6 +1,6 @@ -import { TRIGGER_TYPES } from '../constants/notification-schema'; -import type { ContentfulResult } from '../services/feature-announcements'; -import type { FeatureAnnouncementRawNotification } from '../types/feature-announcement/feature-announcement'; +import { TRIGGER_TYPES } from '../constants/notification-schema.js'; +import type { ContentfulResult } from '../services/feature-announcements.js'; +import type { FeatureAnnouncementRawNotification } from '../types/feature-announcement/feature-announcement.js'; /** * Mocking Utility - create a mock normalized feature announcement diff --git a/packages/notification-services-controller/src/NotificationServicesController/mocks/mock-raw-notifications.ts b/packages/notification-services-controller/src/NotificationServicesController/mocks/mock-raw-notifications.ts index 01f2bb33968..5e493fe25c7 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/mocks/mock-raw-notifications.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/mocks/mock-raw-notifications.ts @@ -1,5 +1,5 @@ -import { TRIGGER_TYPES } from '../constants/notification-schema'; -import type { NormalisedAPINotification } from '../types/notification-api/notification-api'; +import { TRIGGER_TYPES } from '../constants/notification-schema.js'; +import type { NormalisedAPINotification } from '../types/notification-api/notification-api.js'; /** * Mocking Utility - create a mock Eth sent notification diff --git a/packages/notification-services-controller/src/NotificationServicesController/mocks/mock-snap-notification.ts b/packages/notification-services-controller/src/NotificationServicesController/mocks/mock-snap-notification.ts index d6d694179f2..fe6b4969e61 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/mocks/mock-snap-notification.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/mocks/mock-snap-notification.ts @@ -1,5 +1,5 @@ -import { TRIGGER_TYPES } from '../constants'; -import type { RawSnapNotification } from '../types/snaps'; +import { TRIGGER_TYPES } from '../constants.js'; +import type { RawSnapNotification } from '../types/snaps.js'; /** * Mocking Utility - create a mock raw snap notification diff --git a/packages/notification-services-controller/src/NotificationServicesController/mocks/mockResponses.ts b/packages/notification-services-controller/src/NotificationServicesController/mocks/mockResponses.ts index f6bd4773013..279067a5f0b 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/mocks/mockResponses.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/mocks/mockResponses.ts @@ -2,11 +2,11 @@ import { NOTIFICATION_API_LIST_ENDPOINT, NOTIFICATION_API_MARK_ALL_AS_READ_ENDPOINT, TRIGGER_API_NOTIFICATIONS_QUERY_ENDPOINT, -} from '../services/api-notifications'; -import { FEATURE_ANNOUNCEMENT_API } from '../services/feature-announcements'; -import { PERPS_API_CREATE_ORDERS } from '../services/perp-notifications'; -import { createMockFeatureAnnouncementAPIResult } from './mock-feature-announcements'; -import { createMockRawOnChainNotifications } from './mock-raw-notifications'; +} from '../services/api-notifications.js'; +import { FEATURE_ANNOUNCEMENT_API } from '../services/feature-announcements.js'; +import { PERPS_API_CREATE_ORDERS } from '../services/perp-notifications.js'; +import { createMockFeatureAnnouncementAPIResult } from './mock-feature-announcements.js'; +import { createMockRawOnChainNotifications } from './mock-raw-notifications.js'; type MockResponse = { url: string; diff --git a/packages/notification-services-controller/src/NotificationServicesController/processors/index.ts b/packages/notification-services-controller/src/NotificationServicesController/processors/index.ts index fdd06a7c4b9..2848622e294 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/processors/index.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/processors/index.ts @@ -1,3 +1,3 @@ -export * from './process-feature-announcement'; -export * from './process-notifications'; -export * from './process-api-notifications'; +export * from './process-feature-announcement.js'; +export * from './process-notifications.js'; +export * from './process-api-notifications.js'; diff --git a/packages/notification-services-controller/src/NotificationServicesController/processors/process-api-notifications.test.ts b/packages/notification-services-controller/src/NotificationServicesController/processors/process-api-notifications.test.ts index 44eb12139ae..7cc7d06633a 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/processors/process-api-notifications.test.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/processors/process-api-notifications.test.ts @@ -15,8 +15,8 @@ import { createMockNotificationLidoWithdrawalCompleted, createMockNotificationLidoReadyToBeWithdrawn, createMockPlatformNotification, -} from '../mocks/mock-raw-notifications'; -import { processAPINotifications } from './process-api-notifications'; +} from '../mocks/mock-raw-notifications.js'; +import { processAPINotifications } from './process-api-notifications.js'; const rawNotifications = [ createMockNotificationEthSent(), diff --git a/packages/notification-services-controller/src/NotificationServicesController/processors/process-api-notifications.ts b/packages/notification-services-controller/src/NotificationServicesController/processors/process-api-notifications.ts index dac4f2ed38a..fa2283f1d51 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/processors/process-api-notifications.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/processors/process-api-notifications.ts @@ -1,6 +1,6 @@ -import type { NormalisedAPINotification } from '../types/notification-api/notification-api'; -import type { INotification } from '../types/notification/notification'; -import { shouldAutoExpire } from '../utils/should-auto-expire'; +import type { NormalisedAPINotification } from '../types/notification-api/notification-api.js'; +import type { INotification } from '../types/notification/notification.js'; +import { shouldAutoExpire } from '../utils/should-auto-expire.js'; /** * Processes API notifications to a normalized INotification shape diff --git a/packages/notification-services-controller/src/NotificationServicesController/processors/process-feature-announcement.test.ts b/packages/notification-services-controller/src/NotificationServicesController/processors/process-feature-announcement.test.ts index a9777c7f734..499d85fa9fc 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/processors/process-feature-announcement.test.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/processors/process-feature-announcement.test.ts @@ -1,10 +1,10 @@ -import type { INotification } from '..'; -import { TRIGGER_TYPES } from '../constants/notification-schema'; -import { createMockFeatureAnnouncementRaw } from '../mocks/mock-feature-announcements'; +import { TRIGGER_TYPES } from '../constants/notification-schema.js'; +import { createMockFeatureAnnouncementRaw } from '../mocks/mock-feature-announcements.js'; +import type { INotification } from './...js'; import { isFeatureAnnouncementRead, processFeatureAnnouncement, -} from './process-feature-announcement'; +} from './process-feature-announcement.js'; describe('process-feature-announcement - isFeatureAnnouncementRead()', () => { const MOCK_NOTIFICATION_ID = 'MOCK_NOTIFICATION_ID'; diff --git a/packages/notification-services-controller/src/NotificationServicesController/processors/process-feature-announcement.ts b/packages/notification-services-controller/src/NotificationServicesController/processors/process-feature-announcement.ts index 7033e0451f6..68fb7892733 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/processors/process-feature-announcement.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/processors/process-feature-announcement.ts @@ -1,6 +1,6 @@ -import type { FeatureAnnouncementRawNotification } from '../types/feature-announcement/feature-announcement'; -import type { INotification } from '../types/notification/notification'; -import { shouldAutoExpire } from '../utils/should-auto-expire'; +import type { FeatureAnnouncementRawNotification } from '../types/feature-announcement/feature-announcement.js'; +import type { INotification } from '../types/notification/notification.js'; +import { shouldAutoExpire } from '../utils/should-auto-expire.js'; /** * Checks if a feature announcement should be read. diff --git a/packages/notification-services-controller/src/NotificationServicesController/processors/process-notifications.test.ts b/packages/notification-services-controller/src/NotificationServicesController/processors/process-notifications.test.ts index 190e0f9f715..62b29605e3b 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/processors/process-notifications.test.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/processors/process-notifications.test.ts @@ -1,14 +1,14 @@ -import type { TRIGGER_TYPES } from '../constants/notification-schema'; -import { createMockFeatureAnnouncementRaw } from '../mocks/mock-feature-announcements'; +import type { TRIGGER_TYPES } from '../constants/notification-schema.js'; +import { createMockFeatureAnnouncementRaw } from '../mocks/mock-feature-announcements.js'; import { createMockNotificationEthSent, createMockPlatformNotification, -} from '../mocks/mock-raw-notifications'; -import { createMockSnapNotification } from '../mocks/mock-snap-notification'; +} from '../mocks/mock-raw-notifications.js'; +import { createMockSnapNotification } from '../mocks/mock-snap-notification.js'; import { processNotification, safeProcessNotification, -} from './process-notifications'; +} from './process-notifications.js'; describe('process-notifications - processNotification()', () => { // More thorough tests are found in the specific process diff --git a/packages/notification-services-controller/src/NotificationServicesController/processors/process-notifications.ts b/packages/notification-services-controller/src/NotificationServicesController/processors/process-notifications.ts index 6e2bcd66a5f..1d322492be6 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/processors/process-notifications.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/processors/process-notifications.ts @@ -1,20 +1,20 @@ import { TRIGGER_TYPES, NOTIFICATION_API_TRIGGER_TYPES_SET, -} from '../constants/notification-schema'; -import type { FeatureAnnouncementRawNotification } from '../types/feature-announcement/feature-announcement'; -import type { NormalisedAPINotification } from '../types/notification-api/notification-api'; +} from '../constants/notification-schema.js'; +import type { FeatureAnnouncementRawNotification } from '../types/feature-announcement/feature-announcement.js'; +import type { NormalisedAPINotification } from '../types/notification-api/notification-api.js'; import type { INotification, RawNotificationUnion, -} from '../types/notification/notification'; -import type { RawSnapNotification } from '../types/snaps'; -import { processAPINotifications } from './process-api-notifications'; +} from '../types/notification/notification.js'; +import type { RawSnapNotification } from '../types/snaps.js'; +import { processAPINotifications } from './process-api-notifications.js'; import { isFeatureAnnouncementRead, processFeatureAnnouncement, -} from './process-feature-announcement'; -import { processSnapNotification } from './process-snap-notifications'; +} from './process-feature-announcement.js'; +import { processSnapNotification } from './process-snap-notifications.js'; const isOnChainNotification = ( notification: RawNotificationUnion, diff --git a/packages/notification-services-controller/src/NotificationServicesController/processors/process-snap-notifications.test.ts b/packages/notification-services-controller/src/NotificationServicesController/processors/process-snap-notifications.test.ts index 2c486691098..ee07c772db7 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/processors/process-snap-notifications.test.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/processors/process-snap-notifications.test.ts @@ -1,7 +1,7 @@ -import type { INotification } from '..'; -import { TRIGGER_TYPES } from '../constants'; -import { createMockSnapNotification } from '../mocks'; -import { processSnapNotification } from './process-snap-notifications'; +import { TRIGGER_TYPES } from '../constants.js'; +import { createMockSnapNotification } from '../mocks.js'; +import type { INotification } from './...js'; +import { processSnapNotification } from './process-snap-notifications.js'; describe('process-snap-notifications - processSnapNotification()', () => { it('processes a Raw Snap Notification to a shared Notification Type', () => { diff --git a/packages/notification-services-controller/src/NotificationServicesController/processors/process-snap-notifications.ts b/packages/notification-services-controller/src/NotificationServicesController/processors/process-snap-notifications.ts index 17227edaa67..ad2a77e76eb 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/processors/process-snap-notifications.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/processors/process-snap-notifications.ts @@ -1,7 +1,7 @@ import { v4 as uuid } from 'uuid'; -import type { INotification } from '../types'; -import type { RawSnapNotification } from '../types/snaps'; +import type { INotification } from '../types.js'; +import type { RawSnapNotification } from '../types/snaps.js'; /** * Processes a snap notification into a normalized shape. diff --git a/packages/notification-services-controller/src/NotificationServicesController/services/api-notifications.test.ts b/packages/notification-services-controller/src/NotificationServicesController/services/api-notifications.test.ts index 0fb4c9d5660..da1c63915bb 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/services/api-notifications.test.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/services/api-notifications.test.ts @@ -2,12 +2,12 @@ import { mockGetOnChainNotificationsConfig, mockGetAPINotifications, mockMarkNotificationsAsRead, -} from '../__fixtures__/mockServices'; +} from '../__fixtures__/mockServices.js'; import { createMockNotificationERC20Sent, createMockPlatformNotification, -} from '../mocks'; -import * as OnChainNotifications from './api-notifications'; +} from '../mocks.js'; +import * as OnChainNotifications from './api-notifications.js'; const MOCK_BEARER_TOKEN = 'MOCK_BEARER_TOKEN'; const MOCK_ADDRESSES = ['0x123', '0x456', '0x789']; diff --git a/packages/notification-services-controller/src/NotificationServicesController/services/api-notifications.ts b/packages/notification-services-controller/src/NotificationServicesController/services/api-notifications.ts index f4cedf54353..b76ade11f6f 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/services/api-notifications.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/services/api-notifications.ts @@ -1,13 +1,13 @@ import log from 'loglevel'; -import { toRawAPINotification } from '../../shared/to-raw-notification'; +import { toRawAPINotification } from '../../shared/to-raw-notification.js'; import type { NormalisedAPINotification, Schema, UnprocessedRawNotification, -} from '../types/notification-api'; -import { makeApiCall } from '../utils/utils'; -import { notificationsConfigCache } from './notification-config-cache'; +} from '../types/notification-api.js'; +import { makeApiCall } from '../utils/utils.js'; +import { notificationsConfigCache } from './notification-config-cache.js'; export type ENV = 'prd' | 'uat' | 'dev'; diff --git a/packages/notification-services-controller/src/NotificationServicesController/services/feature-announcements.test.ts b/packages/notification-services-controller/src/NotificationServicesController/services/feature-announcements.test.ts index 27c9dc4c3ea..16b5820131a 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/services/feature-announcements.test.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/services/feature-announcements.test.ts @@ -1,12 +1,12 @@ -import type { INotification } from '..'; -import { mockFetchFeatureAnnouncementNotifications } from '../__fixtures__/mockServices'; -import { TRIGGER_TYPES } from '../constants/notification-schema'; -import { createMockFeatureAnnouncementAPIResult } from '../mocks/mock-feature-announcements'; +import { mockFetchFeatureAnnouncementNotifications } from '../__fixtures__/mockServices.js'; +import { TRIGGER_TYPES } from '../constants/notification-schema.js'; +import { createMockFeatureAnnouncementAPIResult } from '../mocks/mock-feature-announcements.js'; +import type { INotification } from './...js'; import { ContentfulResult, getFeatureAnnouncementNotifications, getFeatureAnnouncementUrl, -} from './feature-announcements'; +} from './feature-announcements.js'; // Mocked type for testing, allows overwriting TS to test erroneous values // eslint-disable-next-line @typescript-eslint/no-explicit-any diff --git a/packages/notification-services-controller/src/NotificationServicesController/services/feature-announcements.ts b/packages/notification-services-controller/src/NotificationServicesController/services/feature-announcements.ts index bd84e3ebe41..caddc8e8001 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/services/feature-announcements.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/services/feature-announcements.ts @@ -1,21 +1,21 @@ import { documentToHtmlString } from '@contentful/rich-text-html-renderer'; import type { Entry, Asset, EntryCollection } from 'contentful'; -import { TRIGGER_TYPES } from '../constants/notification-schema'; -import { processFeatureAnnouncement } from '../processors/process-feature-announcement'; -import type { FeatureAnnouncementRawNotification } from '../types/feature-announcement/feature-announcement'; +import { TRIGGER_TYPES } from '../constants/notification-schema.js'; +import { processFeatureAnnouncement } from '../processors/process-feature-announcement.js'; +import type { FeatureAnnouncementRawNotification } from '../types/feature-announcement/feature-announcement.js'; import type { ImageFields, TypeFeatureAnnouncement, -} from '../types/feature-announcement/type-feature-announcement'; +} from '../types/feature-announcement/type-feature-announcement.js'; import type { TypeExternalLinkFields, TypePortfolioLinkFields, TypeExtensionLinkFields, TypeMobileLinkFields, -} from '../types/feature-announcement/type-links'; -import type { INotification } from '../types/notification/notification'; -import { isVersionInBounds } from '../utils/isVersionInBounds'; +} from '../types/feature-announcement/type-links.js'; +import type { INotification } from '../types/notification/notification.js'; +import { isVersionInBounds } from '../utils/isVersionInBounds.js'; // Feature announcements older than this (by sys.updatedAt) are excluded from the feed. const FEATURE_ANNOUNCEMENT_MAX_AGE_MONTHS = 3; diff --git a/packages/notification-services-controller/src/NotificationServicesController/services/notification-config-cache.test.ts b/packages/notification-services-controller/src/NotificationServicesController/services/notification-config-cache.test.ts index 0cc3f590ba2..9abe67f64f8 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/services/notification-config-cache.test.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/services/notification-config-cache.test.ts @@ -1,7 +1,7 @@ import { OnChainNotificationsCache, NotificationConfigCacheTTL, -} from './notification-config-cache'; +} from './notification-config-cache.js'; describe('OnChainNotificationsCache', () => { // Create a fresh instance for each test to avoid interference diff --git a/packages/notification-services-controller/src/NotificationServicesController/services/perp-notifications.test.ts b/packages/notification-services-controller/src/NotificationServicesController/services/perp-notifications.test.ts index 15202f43704..1e848128ae3 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/services/perp-notifications.test.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/services/perp-notifications.test.ts @@ -1,6 +1,6 @@ -import { mockCreatePerpNotification } from '../__fixtures__/mockServices'; -import type { OrderInput } from '../types/perps'; -import { createPerpOrderNotification } from './perp-notifications'; +import { mockCreatePerpNotification } from '../__fixtures__/mockServices.js'; +import type { OrderInput } from '../types/perps.js'; +import { createPerpOrderNotification } from './perp-notifications.js'; const mockOrderInput = (): OrderInput => ({ user_id: '0x111', // User Address diff --git a/packages/notification-services-controller/src/NotificationServicesController/services/perp-notifications.ts b/packages/notification-services-controller/src/NotificationServicesController/services/perp-notifications.ts index 8ada9b65fcf..2d432424d22 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/services/perp-notifications.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/services/perp-notifications.ts @@ -3,7 +3,7 @@ import { successfulFetch, } from '@metamask/controller-utils'; -import type { OrderInput } from '../types'; +import type { OrderInput } from '../types.js'; export const PERPS_API = 'https://perps.api.cx.metamask.io'; export const PERPS_API_CREATE_ORDERS = `${PERPS_API}/api/v1/orders`; diff --git a/packages/notification-services-controller/src/NotificationServicesController/types/feature-announcement/feature-announcement.ts b/packages/notification-services-controller/src/NotificationServicesController/types/feature-announcement/feature-announcement.ts index a1d6acb019a..fb125814f69 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/types/feature-announcement/feature-announcement.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/types/feature-announcement/feature-announcement.ts @@ -1,5 +1,5 @@ -import type { TRIGGER_TYPES } from '../../constants/notification-schema'; -import type { TypeFeatureAnnouncement } from './type-feature-announcement'; +import type { TRIGGER_TYPES } from '../../constants/notification-schema.js'; +import type { TypeFeatureAnnouncement } from './type-feature-announcement.js'; export type FeatureAnnouncementRawNotificationData = Omit< TypeFeatureAnnouncement['fields'], diff --git a/packages/notification-services-controller/src/NotificationServicesController/types/feature-announcement/index.ts b/packages/notification-services-controller/src/NotificationServicesController/types/feature-announcement/index.ts index a726f8d07fc..4f0811d8fcf 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/types/feature-announcement/index.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/types/feature-announcement/index.ts @@ -1,3 +1,3 @@ -export type * from './feature-announcement'; -export type * from './type-links'; -export type * from './type-feature-announcement'; +export type * from './feature-announcement.js'; +export type * from './type-links.js'; +export type * from './type-feature-announcement.js'; diff --git a/packages/notification-services-controller/src/NotificationServicesController/types/feature-announcement/type-feature-announcement.ts b/packages/notification-services-controller/src/NotificationServicesController/types/feature-announcement/type-feature-announcement.ts index a354987061c..7a5a518f608 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/types/feature-announcement/type-feature-announcement.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/types/feature-announcement/type-feature-announcement.ts @@ -5,7 +5,7 @@ import type { TypeExtensionLinkFields, TypePortfolioLinkFields, TypeMobileLinkFields, -} from './type-links'; +} from './type-links.js'; export type ImageFields = { fields: { diff --git a/packages/notification-services-controller/src/NotificationServicesController/types/index.ts b/packages/notification-services-controller/src/NotificationServicesController/types/index.ts index d2e18d1c996..ad9213eb5ee 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/types/index.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/types/index.ts @@ -1,5 +1,5 @@ -export type * from './feature-announcement'; -export type * from './notification-api'; -export type * from './notification'; -export type * from './snaps/snaps'; -export type * from './perps'; +export type * from './feature-announcement.js'; +export type * from './notification-api.js'; +export type * from './notification.js'; +export type * from './snaps/snaps.js'; +export type * from './perps.js'; diff --git a/packages/notification-services-controller/src/NotificationServicesController/types/notification-api/index.ts b/packages/notification-services-controller/src/NotificationServicesController/types/notification-api/index.ts index 1eea6328c95..8aa21282dd7 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/types/notification-api/index.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/types/notification-api/index.ts @@ -1,2 +1,2 @@ -export type * from './notification-api'; -export type * as Schema from './schema'; +export type * from './notification-api.js'; +export type * as Schema from './schema.js'; diff --git a/packages/notification-services-controller/src/NotificationServicesController/types/notification-api/notification-api.ts b/packages/notification-services-controller/src/NotificationServicesController/types/notification-api/notification-api.ts index 238bc3d5740..08fd046f4f3 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/types/notification-api/notification-api.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/types/notification-api/notification-api.ts @@ -1,8 +1,8 @@ -import { TRIGGER_TYPES } from '../../constants/notification-schema'; -import type { Compute } from '../type-utils'; +import { TRIGGER_TYPES } from '../../constants/notification-schema.js'; +import type { Compute } from '../type-utils.js'; // Types derived from external Notification API schema - naming follows API conventions /* eslint-disable @typescript-eslint/naming-convention */ -import type { components } from './schema'; +import type { components } from './schema.js'; export type Data_MetamaskSwapCompleted = components['schemas']['Data_MetamaskSwapCompleted']; diff --git a/packages/notification-services-controller/src/NotificationServicesController/types/notification/index.ts b/packages/notification-services-controller/src/NotificationServicesController/types/notification/index.ts index 43cd6dff02b..99762f3a1c6 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/types/notification/index.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/types/notification/index.ts @@ -1 +1 @@ -export type * from './notification'; +export type * from './notification.js'; diff --git a/packages/notification-services-controller/src/NotificationServicesController/types/notification/notification.ts b/packages/notification-services-controller/src/NotificationServicesController/types/notification/notification.ts index aa7102aa278..8f82b75ec60 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/types/notification/notification.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/types/notification/notification.ts @@ -1,7 +1,7 @@ -import type { FeatureAnnouncementRawNotification } from '../feature-announcement/feature-announcement'; -import type { NormalisedAPINotification } from '../notification-api/notification-api'; -import type { RawSnapNotification } from '../snaps'; -import type { Compute } from '../type-utils'; +import type { FeatureAnnouncementRawNotification } from '../feature-announcement/feature-announcement.js'; +import type { NormalisedAPINotification } from '../notification-api/notification-api.js'; +import type { RawSnapNotification } from '../snaps.js'; +import type { Compute } from '../type-utils.js'; export type BaseNotification = { id: string; diff --git a/packages/notification-services-controller/src/NotificationServicesController/types/perps/index.ts b/packages/notification-services-controller/src/NotificationServicesController/types/perps/index.ts index f99d0e8bf5e..38f4e234987 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/types/perps/index.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/types/perps/index.ts @@ -1 +1 @@ -export type * from './perp-types'; +export type * from './perp-types.js'; diff --git a/packages/notification-services-controller/src/NotificationServicesController/types/perps/perp-types.ts b/packages/notification-services-controller/src/NotificationServicesController/types/perps/perp-types.ts index 66d0cbe1164..2396105a341 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/types/perps/perp-types.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/types/perps/perp-types.ts @@ -1,3 +1,3 @@ -import type { components } from './schema'; +import type { components } from './schema.js'; export type OrderInput = components['schemas']['OrderInput']; diff --git a/packages/notification-services-controller/src/NotificationServicesController/types/snaps/index.ts b/packages/notification-services-controller/src/NotificationServicesController/types/snaps/index.ts index 1e307f3779a..e5d6174dff5 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/types/snaps/index.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/types/snaps/index.ts @@ -1 +1 @@ -export type * from './snaps'; +export type * from './snaps.js'; diff --git a/packages/notification-services-controller/src/NotificationServicesController/types/snaps/snaps.ts b/packages/notification-services-controller/src/NotificationServicesController/types/snaps/snaps.ts index 3438a83f5cf..1d0884657d9 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/types/snaps/snaps.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/types/snaps/snaps.ts @@ -1,4 +1,4 @@ -import type { TRIGGER_TYPES } from '../../constants'; +import type { TRIGGER_TYPES } from '../../constants.js'; export type ExpandedView = { title: string; diff --git a/packages/notification-services-controller/src/NotificationServicesController/utils/isVersionInBounds.test.ts b/packages/notification-services-controller/src/NotificationServicesController/utils/isVersionInBounds.test.ts index 8ce34444bf7..8bda023ecc1 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/utils/isVersionInBounds.test.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/utils/isVersionInBounds.test.ts @@ -1,4 +1,4 @@ -import { isVersionInBounds } from './isVersionInBounds'; +import { isVersionInBounds } from './isVersionInBounds.js'; describe('isVersionInBounds', () => { const version = '7.57.0'; diff --git a/packages/notification-services-controller/src/NotificationServicesPushController/NotificationServicesPushController-method-action-types.ts b/packages/notification-services-controller/src/NotificationServicesPushController/NotificationServicesPushController-method-action-types.ts index 9e02cc6b730..156391eca31 100644 --- a/packages/notification-services-controller/src/NotificationServicesPushController/NotificationServicesPushController-method-action-types.ts +++ b/packages/notification-services-controller/src/NotificationServicesPushController/NotificationServicesPushController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { NotificationServicesPushController } from './NotificationServicesPushController'; +import type { NotificationServicesPushController } from './NotificationServicesPushController.js'; export type NotificationServicesPushControllerSubscribeToPushNotificationsAction = { diff --git a/packages/notification-services-controller/src/NotificationServicesPushController/NotificationServicesPushController.test.ts b/packages/notification-services-controller/src/NotificationServicesPushController/NotificationServicesPushController.test.ts index bbe4a748273..7739e488f4e 100644 --- a/packages/notification-services-controller/src/NotificationServicesPushController/NotificationServicesPushController.test.ts +++ b/packages/notification-services-controller/src/NotificationServicesPushController/NotificationServicesPushController.test.ts @@ -2,14 +2,14 @@ import { deriveStateFromMetadata } from '@metamask/base-controller'; import type { AuthenticationController } from '@metamask/profile-sync-controller'; import log from 'loglevel'; -import { buildPushPlatformNotificationsControllerMessenger } from './__fixtures__/mockMessenger'; -import { NotificationServicesPushController } from './NotificationServicesPushController'; +import { buildPushPlatformNotificationsControllerMessenger } from './__fixtures__/mockMessenger.js'; +import { NotificationServicesPushController } from './NotificationServicesPushController.js'; import type { ControllerConfig, NotificationServicesPushControllerMessenger, -} from './NotificationServicesPushController'; -import * as services from './services/services'; -import type { PushNotificationEnv } from './types'; +} from './NotificationServicesPushController.js'; +import * as services from './services/services.js'; +import type { PushNotificationEnv } from './types.js'; const MOCK_JWT = 'mockJwt'; const MOCK_FCM_TOKEN = 'mockFcmToken'; diff --git a/packages/notification-services-controller/src/NotificationServicesPushController/NotificationServicesPushController.ts b/packages/notification-services-controller/src/NotificationServicesPushController/NotificationServicesPushController.ts index 44842609fa2..4fb0f9d327a 100644 --- a/packages/notification-services-controller/src/NotificationServicesPushController/NotificationServicesPushController.ts +++ b/packages/notification-services-controller/src/NotificationServicesPushController/NotificationServicesPushController.ts @@ -8,18 +8,18 @@ import type { Messenger } from '@metamask/messenger'; import type { AuthenticationController } from '@metamask/profile-sync-controller'; import log from 'loglevel'; -import type { Types } from '../NotificationServicesController'; -import type { NotificationServicesPushControllerMethodActions } from './NotificationServicesPushController-method-action-types'; -import type { ENV } from './services/endpoints'; -import type { RegToken } from './services/services'; +import type { Types } from '../NotificationServicesController.js'; +import type { NotificationServicesPushControllerMethodActions } from './NotificationServicesPushController-method-action-types.js'; +import type { ENV } from './services/endpoints.js'; +import type { RegToken } from './services/services.js'; import { activatePushNotifications, deleteLinksAPI, deactivatePushNotifications, updateLinksAPI, -} from './services/services'; -import type { PushNotificationEnv } from './types'; -import type { PushService } from './types/push-service-interface'; +} from './services/services.js'; +import type { PushNotificationEnv } from './types.js'; +import type { PushService } from './types/push-service-interface.js'; const controllerName = 'NotificationServicesPushController'; diff --git a/packages/notification-services-controller/src/NotificationServicesPushController/__fixtures__/mockMessenger.ts b/packages/notification-services-controller/src/NotificationServicesPushController/__fixtures__/mockMessenger.ts index 283eff5eee6..a968cd63e0f 100644 --- a/packages/notification-services-controller/src/NotificationServicesPushController/__fixtures__/mockMessenger.ts +++ b/packages/notification-services-controller/src/NotificationServicesPushController/__fixtures__/mockMessenger.ts @@ -5,7 +5,7 @@ import type { MockAnyNamespace, } from '@metamask/messenger'; -import type { NotificationServicesPushControllerMessenger } from '..'; +import type { NotificationServicesPushControllerMessenger } from './...js'; const controllerName = 'NotificationServicesPushController'; diff --git a/packages/notification-services-controller/src/NotificationServicesPushController/__fixtures__/mockServices.ts b/packages/notification-services-controller/src/NotificationServicesPushController/__fixtures__/mockServices.ts index 36037340276..2e448161946 100644 --- a/packages/notification-services-controller/src/NotificationServicesPushController/__fixtures__/mockServices.ts +++ b/packages/notification-services-controller/src/NotificationServicesPushController/__fixtures__/mockServices.ts @@ -3,7 +3,7 @@ import nock from 'nock'; import { getMockDeletePushNotificationLinksResponse, getMockUpdatePushNotificationLinksResponse, -} from '../mocks/mockResponse'; +} from '../mocks/mockResponse.js'; type MockReply = { status: nock.StatusCode; diff --git a/packages/notification-services-controller/src/NotificationServicesPushController/index.ts b/packages/notification-services-controller/src/NotificationServicesPushController/index.ts index 63f13a47367..d0f92e9a3d1 100644 --- a/packages/notification-services-controller/src/NotificationServicesPushController/index.ts +++ b/packages/notification-services-controller/src/NotificationServicesPushController/index.ts @@ -1,13 +1,13 @@ -import { NotificationServicesPushController } from './NotificationServicesPushController'; +import { NotificationServicesPushController } from './NotificationServicesPushController.js'; export { NotificationServicesPushController as Controller }; export default NotificationServicesPushController; -export * from './NotificationServicesPushController'; -export type * as Types from './types'; -export type * from './types'; -export * as Utils from './utils'; -export * from './utils'; -export * as Mocks from './mocks'; +export * from './NotificationServicesPushController.js'; +export type * as Types from './types.js'; +export type * from './types.js'; +export type * as Utils from './utils.js'; +export type * from './utils.js'; +export type * as Mocks from './mocks.js'; export type { NotificationServicesPushControllerSubscribeToPushNotificationsAction, @@ -17,4 +17,4 @@ export type { NotificationServicesPushControllerUpdateTriggerPushNotificationsAction, NotificationServicesPushControllerDeletePushNotificationLinksAction, NotificationServicesPushControllerMethodActions, -} from './NotificationServicesPushController-method-action-types'; +} from './NotificationServicesPushController-method-action-types.js'; diff --git a/packages/notification-services-controller/src/NotificationServicesPushController/mocks/index.ts b/packages/notification-services-controller/src/NotificationServicesPushController/mocks/index.ts index a5eb2c4a3ee..090815e2482 100644 --- a/packages/notification-services-controller/src/NotificationServicesPushController/mocks/index.ts +++ b/packages/notification-services-controller/src/NotificationServicesPushController/mocks/index.ts @@ -1 +1 @@ -export * from './mockResponse'; +export * from './mockResponse.js'; diff --git a/packages/notification-services-controller/src/NotificationServicesPushController/mocks/mockResponse.ts b/packages/notification-services-controller/src/NotificationServicesPushController/mocks/mockResponse.ts index f180c48522a..6f8f2011dbd 100644 --- a/packages/notification-services-controller/src/NotificationServicesPushController/mocks/mockResponse.ts +++ b/packages/notification-services-controller/src/NotificationServicesPushController/mocks/mockResponse.ts @@ -1,4 +1,4 @@ -import { REGISTRATION_TOKENS_ENDPOINT } from '../services/endpoints'; +import { REGISTRATION_TOKENS_ENDPOINT } from '../services/endpoints.js'; type MockResponse = { url: string | RegExp; diff --git a/packages/notification-services-controller/src/NotificationServicesPushController/services/services.test.ts b/packages/notification-services-controller/src/NotificationServicesPushController/services/services.test.ts index f45494d3121..efef3b2aaca 100644 --- a/packages/notification-services-controller/src/NotificationServicesPushController/services/services.test.ts +++ b/packages/notification-services-controller/src/NotificationServicesPushController/services/services.test.ts @@ -3,15 +3,15 @@ import log from 'loglevel'; import { mockEndpointDeletePushNotificationLinks, mockEndpointUpdatePushNotificationLinks, -} from '../__fixtures__/mockServices'; -import type { PushNotificationEnv } from '../types/firebase'; +} from '../__fixtures__/mockServices.js'; +import type { PushNotificationEnv } from '../types/firebase.js'; import { activatePushNotifications, deactivatePushNotifications, deleteLinksAPI, updateLinksAPI, -} from './services'; -import type { RegToken } from './services'; +} from './services.js'; +import type { RegToken } from './services.js'; // Testing util to clean up verbose logs when testing errors const mockErrorLog = (): jest.SpyInstance => diff --git a/packages/notification-services-controller/src/NotificationServicesPushController/services/services.ts b/packages/notification-services-controller/src/NotificationServicesPushController/services/services.ts index 95067488ead..c9f482fc407 100644 --- a/packages/notification-services-controller/src/NotificationServicesPushController/services/services.ts +++ b/packages/notification-services-controller/src/NotificationServicesPushController/services/services.ts @@ -1,10 +1,10 @@ -import type { PushNotificationEnv } from '../types'; +import type { PushNotificationEnv } from '../types.js'; import type { CreateRegToken, DeleteRegToken, -} from '../types/push-service-interface'; -import type { ENV } from './endpoints'; -import * as endpoints from './endpoints'; +} from '../types/push-service-interface.js'; +import type { ENV } from './endpoints.js'; +import * as endpoints from './endpoints.js'; export type RegToken = { token: string; diff --git a/packages/notification-services-controller/src/NotificationServicesPushController/types/index.ts b/packages/notification-services-controller/src/NotificationServicesPushController/types/index.ts index 693b8999cbc..d47ad66d98c 100644 --- a/packages/notification-services-controller/src/NotificationServicesPushController/types/index.ts +++ b/packages/notification-services-controller/src/NotificationServicesPushController/types/index.ts @@ -1,2 +1,2 @@ -export type * from './firebase'; -export type * from './push-service-interface'; +export type * from './firebase.js'; +export type * from './push-service-interface.js'; diff --git a/packages/notification-services-controller/src/NotificationServicesPushController/types/push-service-interface.ts b/packages/notification-services-controller/src/NotificationServicesPushController/types/push-service-interface.ts index 1dc37620c80..219cf71adee 100644 --- a/packages/notification-services-controller/src/NotificationServicesPushController/types/push-service-interface.ts +++ b/packages/notification-services-controller/src/NotificationServicesPushController/types/push-service-interface.ts @@ -1,4 +1,4 @@ -import type { PushNotificationEnv } from '.'; +import type { PushNotificationEnv } from './..js'; type Unsubscribe = () => void; diff --git a/packages/notification-services-controller/src/NotificationServicesPushController/utils/get-notification-data.test.ts b/packages/notification-services-controller/src/NotificationServicesPushController/utils/get-notification-data.test.ts index 4017150927e..c6659584bfc 100644 --- a/packages/notification-services-controller/src/NotificationServicesPushController/utils/get-notification-data.test.ts +++ b/packages/notification-services-controller/src/NotificationServicesPushController/utils/get-notification-data.test.ts @@ -2,7 +2,7 @@ import { formatAmount, getAmount, getLeadingZeroCount, -} from './get-notification-data'; +} from './get-notification-data.js'; describe('getNotificationData - formatAmount() tests', () => { it('should format large numbers', () => { diff --git a/packages/notification-services-controller/src/NotificationServicesPushController/utils/get-notification-message.test.ts b/packages/notification-services-controller/src/NotificationServicesPushController/utils/get-notification-message.test.ts index 15c79478381..dff835ce528 100644 --- a/packages/notification-services-controller/src/NotificationServicesPushController/utils/get-notification-message.test.ts +++ b/packages/notification-services-controller/src/NotificationServicesPushController/utils/get-notification-message.test.ts @@ -1,4 +1,4 @@ -import { Processors } from '../../NotificationServicesController'; +import { Processors } from '../../NotificationServicesController.js'; import { createMockNotificationERC1155Received, createMockNotificationERC1155Sent, @@ -15,9 +15,9 @@ import { createMockNotificationMetaMaskSwapsCompleted, createMockNotificationRocketPoolStakeCompleted, createMockNotificationRocketPoolUnStakeCompleted, -} from '../../NotificationServicesController/mocks'; -import type { TranslationKeys } from './get-notification-message'; -import { createOnChainPushNotificationMessage } from './get-notification-message'; +} from '../../NotificationServicesController/mocks.js'; +import type { TranslationKeys } from './get-notification-message.js'; +import { createOnChainPushNotificationMessage } from './get-notification-message.js'; const mockTranslations: TranslationKeys = { pushPlatformNotificationsFundsSentTitle: () => 'Funds sent', diff --git a/packages/notification-services-controller/src/NotificationServicesPushController/utils/get-notification-message.ts b/packages/notification-services-controller/src/NotificationServicesPushController/utils/get-notification-message.ts index 69a0a4641ba..ac1243beafa 100644 --- a/packages/notification-services-controller/src/NotificationServicesPushController/utils/get-notification-message.ts +++ b/packages/notification-services-controller/src/NotificationServicesPushController/utils/get-notification-message.ts @@ -1,6 +1,6 @@ -import type { Types } from '../../NotificationServicesController'; -import type { Constants } from '../../NotificationServicesController'; -import { getAmount, formatAmount } from './get-notification-data'; +import type { Types } from '../../NotificationServicesController.js'; +import type { Constants } from '../../NotificationServicesController.js'; +import { getAmount, formatAmount } from './get-notification-data.js'; export type TranslationKeys = { pushPlatformNotificationsFundsSentTitle: () => string; @@ -287,20 +287,16 @@ export function createOnChainPushNotificationMessage( let description: string | null = null; try { description = - // eslint-disable-next-line @typescript-eslint/no-explicit-any - notificationMessage?.getDescription?.(notification as any) ?? - // eslint-disable-next-line @typescript-eslint/no-explicit-any - notificationMessage.defaultDescription?.(notification as any) ?? + notificationMessage?.getDescription?.(notification) ?? + notificationMessage.defaultDescription?.(notification) ?? null; } catch { description = - // eslint-disable-next-line @typescript-eslint/no-explicit-any - notificationMessage.defaultDescription?.(notification as any) ?? null; + notificationMessage.defaultDescription?.(notification) ?? null; } return { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - title: notificationMessage?.title?.(notification as any) ?? '', // Ensure title is always a string + title: notificationMessage?.title?.(notification) ?? '', // Ensure title is always a string description: description ?? '', // Fallback to empty string if null }; } diff --git a/packages/notification-services-controller/src/NotificationServicesPushController/utils/index.ts b/packages/notification-services-controller/src/NotificationServicesPushController/utils/index.ts index be95219f07e..9ad21d1e303 100644 --- a/packages/notification-services-controller/src/NotificationServicesPushController/utils/index.ts +++ b/packages/notification-services-controller/src/NotificationServicesPushController/utils/index.ts @@ -1,2 +1,2 @@ -export * from './get-notification-data'; -export * from './get-notification-message'; +export * from './get-notification-data.js'; +export * from './get-notification-message.js'; diff --git a/packages/notification-services-controller/src/NotificationServicesPushController/web/index.ts b/packages/notification-services-controller/src/NotificationServicesPushController/web/index.ts index 5da7ef3239a..041670781d9 100644 --- a/packages/notification-services-controller/src/NotificationServicesPushController/web/index.ts +++ b/packages/notification-services-controller/src/NotificationServicesPushController/web/index.ts @@ -2,4 +2,4 @@ export { createRegToken, deleteRegToken, createSubscribeToPushNotifications, -} from './push-utils'; +} from './push-utils.js'; diff --git a/packages/notification-services-controller/src/NotificationServicesPushController/web/push-utils.test.ts b/packages/notification-services-controller/src/NotificationServicesPushController/web/push-utils.test.ts index 6a09cbccc09..d9103688357 100644 --- a/packages/notification-services-controller/src/NotificationServicesPushController/web/push-utils.test.ts +++ b/packages/notification-services-controller/src/NotificationServicesPushController/web/push-utils.test.ts @@ -2,15 +2,15 @@ import * as FirebaseAppModule from 'firebase/app'; import * as FirebaseMessagingModule from 'firebase/messaging'; import * as FirebaseMessagingSWModule from 'firebase/messaging/sw'; -import { processNotification } from '../../NotificationServicesController'; -import { createMockNotificationEthSent } from '../../NotificationServicesController/mocks/mock-raw-notifications'; -import { buildPushPlatformNotificationsControllerMessenger } from '../__fixtures__/mockMessenger'; +import { processNotification } from '../../NotificationServicesController.js'; +import { createMockNotificationEthSent } from '../../NotificationServicesController/mocks/mock-raw-notifications.js'; +import { buildPushPlatformNotificationsControllerMessenger } from '../__fixtures__/mockMessenger.js'; import { createRegToken, deleteRegToken, createSubscribeToPushNotifications, -} from './push-utils'; -import * as PushWebModule from './push-utils'; +} from './push-utils.js'; +import * as PushWebModule from './push-utils.js'; jest.mock('firebase/app'); jest.mock('firebase/messaging'); diff --git a/packages/notification-services-controller/src/NotificationServicesPushController/web/push-utils.ts b/packages/notification-services-controller/src/NotificationServicesPushController/web/push-utils.ts index f3c0257df68..6fa028c224c 100644 --- a/packages/notification-services-controller/src/NotificationServicesPushController/web/push-utils.ts +++ b/packages/notification-services-controller/src/NotificationServicesPushController/web/push-utils.ts @@ -12,14 +12,14 @@ import { import type { Messaging, MessagePayload } from 'firebase/messaging/sw'; import log from 'loglevel'; -import type { Types } from '../../NotificationServicesController'; +import type { Types } from '../../NotificationServicesController.js'; import { isOnChainRawNotification, safeProcessNotification, -} from '../../NotificationServicesController'; -import { toRawAPINotification } from '../../shared/to-raw-notification'; -import type { NotificationServicesPushControllerMessenger } from '../NotificationServicesPushController'; -import type { PushNotificationEnv } from '../types/firebase'; +} from '../../NotificationServicesController.js'; +import { toRawAPINotification } from '../../shared/to-raw-notification.js'; +import type { NotificationServicesPushControllerMessenger } from '../NotificationServicesPushController.js'; +import type { PushNotificationEnv } from '../types/firebase.js'; declare const self: ServiceWorkerGlobalScope; diff --git a/packages/notification-services-controller/src/index.ts b/packages/notification-services-controller/src/index.ts index bf95c249af8..069c321a382 100644 --- a/packages/notification-services-controller/src/index.ts +++ b/packages/notification-services-controller/src/index.ts @@ -1,8 +1,8 @@ -export * as NotificationServicesController from './NotificationServicesController'; -export * as NotificationServicesPushController from './NotificationServicesPushController'; +export * as NotificationServicesController from './NotificationServicesController.js'; +export * as NotificationServicesPushController from './NotificationServicesPushController.js'; export { DEFAULT_AGENTIC_CLI_PREFERENCES, DEFAULT_PERPS_PREFERENCES, DEFAULT_PRICE_ALERT_PREFERENCES, DEFAULT_SOCIAL_AI_PREFERENCES, -} from './NotificationServicesController'; +} from './NotificationServicesController.js'; diff --git a/packages/notification-services-controller/src/shared/index.ts b/packages/notification-services-controller/src/shared/index.ts index 342d8287ed9..76c4ceac70a 100644 --- a/packages/notification-services-controller/src/shared/index.ts +++ b/packages/notification-services-controller/src/shared/index.ts @@ -1,3 +1,3 @@ -export * from './is-onchain-notification'; -export * from './notification-api-type-guards'; -export * from './to-raw-notification'; +export * from './is-onchain-notification.js'; +export * from './notification-api-type-guards.js'; +export * from './to-raw-notification.js'; diff --git a/packages/notification-services-controller/src/shared/is-onchain-notification.test.ts b/packages/notification-services-controller/src/shared/is-onchain-notification.test.ts index c44e15a6b13..486d028b9d2 100644 --- a/packages/notification-services-controller/src/shared/is-onchain-notification.test.ts +++ b/packages/notification-services-controller/src/shared/is-onchain-notification.test.ts @@ -1,9 +1,9 @@ -import { isOnChainRawNotification } from '.'; import { createMockFeatureAnnouncementRaw, createMockPlatformNotification, createMockNotificationEthSent, -} from '../NotificationServicesController/mocks'; +} from '../NotificationServicesController/mocks.js'; +import { isOnChainRawNotification } from './..js'; describe('is-onchain-notification - isOnChainRawNotification()', () => { it('returns true if OnChainRawNotification', () => { diff --git a/packages/notification-services-controller/src/shared/is-onchain-notification.ts b/packages/notification-services-controller/src/shared/is-onchain-notification.ts index a2518828850..504e6e0ccf2 100644 --- a/packages/notification-services-controller/src/shared/is-onchain-notification.ts +++ b/packages/notification-services-controller/src/shared/is-onchain-notification.ts @@ -1,8 +1,8 @@ import type { UnprocessedRawNotification, OnChainNotification, -} from '../NotificationServicesController/types/notification-api'; -import { isOnChainNotification } from './notification-api-type-guards'; +} from '../NotificationServicesController/types/notification-api.js'; +import { isOnChainNotification } from './notification-api-type-guards.js'; /** * Checks if the given value is an on-chain notification using the v4 `notification_type` discriminator. diff --git a/packages/notification-services-controller/src/shared/notification-api-type-guards.ts b/packages/notification-services-controller/src/shared/notification-api-type-guards.ts index f587ef8443b..a7ff016a1e6 100644 --- a/packages/notification-services-controller/src/shared/notification-api-type-guards.ts +++ b/packages/notification-services-controller/src/shared/notification-api-type-guards.ts @@ -2,7 +2,7 @@ import type { UnprocessedRawNotification, OnChainNotification, PlatformNotification, -} from '../NotificationServicesController/types/notification-api'; +} from '../NotificationServicesController/types/notification-api.js'; /** * Narrows a v4 API notification to an on-chain notification. diff --git a/packages/notification-services-controller/src/shared/to-raw-notification.ts b/packages/notification-services-controller/src/shared/to-raw-notification.ts index d19418911da..9363964500a 100644 --- a/packages/notification-services-controller/src/shared/to-raw-notification.ts +++ b/packages/notification-services-controller/src/shared/to-raw-notification.ts @@ -5,8 +5,8 @@ import type { PlatformRawNotification, } from 'src/NotificationServicesController/types/notification-api'; -import { TRIGGER_TYPES } from '../NotificationServicesController/constants/notification-schema'; -import { isOnChainNotification } from './notification-api-type-guards'; +import { TRIGGER_TYPES } from '../NotificationServicesController/constants/notification-schema.js'; +import { isOnChainNotification } from './notification-api-type-guards.js'; /** * A true "raw notification" does not have some fields that exist on this type. E.g. the `type` field. From b0297440f4a28c0a1428d216554d253d044b2375 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:48:29 +0200 Subject: [PATCH 074/136] ESLint fix and `jest` global import for eip-5792-middleware --- packages/eip-5792-middleware/package.json | 2 +- .../src/hooks/getCallsStatus.test.ts | 6 ++--- .../src/hooks/getCallsStatus.ts | 12 +++------ .../src/hooks/getCapabilities.test.ts | 4 +-- .../src/hooks/getCapabilities.ts | 25 ++++++++----------- .../src/hooks/processSendCalls.test.ts | 6 ++--- .../src/hooks/processSendCalls.ts | 8 +++--- .../eip-5792-middleware/src/index.test.ts | 2 +- packages/eip-5792-middleware/src/index.ts | 18 ++++++------- .../src/methods/wallet_getCallsStatus.test.ts | 4 +-- .../src/methods/wallet_getCallsStatus.ts | 6 ++--- .../methods/wallet_getCapabilities.test.ts | 4 +-- .../src/methods/wallet_getCapabilities.ts | 6 ++--- .../src/methods/wallet_sendCalls.test.ts | 4 +-- .../src/methods/wallet_sendCalls.ts | 6 ++--- .../eip-5792-middleware/src/utils.test.ts | 6 ++--- packages/eip-5792-middleware/src/utils.ts | 4 +-- 17 files changed, 58 insertions(+), 65 deletions(-) diff --git a/packages/eip-5792-middleware/package.json b/packages/eip-5792-middleware/package.json index 09c360e1dc8..07a859422ba 100644 --- a/packages/eip-5792-middleware/package.json +++ b/packages/eip-5792-middleware/package.json @@ -51,7 +51,7 @@ "@metamask/superstruct": "^3.1.0", "@metamask/transaction-controller": "^69.0.0", "@metamask/utils": "^11.11.0", - "lodash": "^4.17.21", + "lodash-es": "^4.17.21", "uuid": "^8.3.2" }, "devDependencies": { diff --git a/packages/eip-5792-middleware/src/hooks/getCallsStatus.test.ts b/packages/eip-5792-middleware/src/hooks/getCallsStatus.test.ts index bad969e7917..ed4ddfa0f03 100644 --- a/packages/eip-5792-middleware/src/hooks/getCallsStatus.test.ts +++ b/packages/eip-5792-middleware/src/hooks/getCallsStatus.test.ts @@ -6,9 +6,9 @@ import type { TransactionControllerState, } from '@metamask/transaction-controller'; -import { GetCallsStatusCode } from '../constants'; -import type { EIP5792Messenger } from '../types'; -import { getCallsStatus } from './getCallsStatus'; +import { GetCallsStatusCode } from '../constants.js'; +import type { EIP5792Messenger } from '../types.js'; +import { getCallsStatus } from './getCallsStatus.js'; const CHAIN_ID_MOCK = '0x123'; const BATCH_ID_MOCK = '0xf3472db2a4134607a17213b7e9ca26e3'; diff --git a/packages/eip-5792-middleware/src/hooks/getCallsStatus.ts b/packages/eip-5792-middleware/src/hooks/getCallsStatus.ts index f3af9bb27eb..3ec4642f45f 100644 --- a/packages/eip-5792-middleware/src/hooks/getCallsStatus.ts +++ b/packages/eip-5792-middleware/src/hooks/getCallsStatus.ts @@ -1,14 +1,10 @@ import { JsonRpcError } from '@metamask/rpc-errors'; -import type { - Log, - TransactionMeta, - TransactionReceipt, -} from '@metamask/transaction-controller'; +import type { Log, TransactionMeta } from '@metamask/transaction-controller'; import { TransactionStatus } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; -import { EIP5792ErrorCode, GetCallsStatusCode, VERSION } from '../constants'; -import type { EIP5792Messenger, GetCallsStatusResult } from '../types'; +import { EIP5792ErrorCode, GetCallsStatusCode, VERSION } from '../constants.js'; +import type { EIP5792Messenger, GetCallsStatusResult } from '../types.js'; /** * Retrieves the status of a transaction batch by its ID. @@ -36,7 +32,7 @@ export function getCallsStatus( const transaction = transactions[0]; const { chainId, txReceipt: rawTxReceipt } = transaction; const status = getStatusCode(transaction); - const txReceipt = rawTxReceipt as Required | undefined; + const txReceipt = rawTxReceipt; const logs = (txReceipt?.logs ?? []) as Required[]; const receipts: GetCallsStatusResult['receipts'] = txReceipt && [ diff --git a/packages/eip-5792-middleware/src/hooks/getCapabilities.test.ts b/packages/eip-5792-middleware/src/hooks/getCapabilities.test.ts index e85be86bbc6..5ad6c431f07 100644 --- a/packages/eip-5792-middleware/src/hooks/getCapabilities.test.ts +++ b/packages/eip-5792-middleware/src/hooks/getCapabilities.test.ts @@ -12,8 +12,8 @@ import type { import type { TransactionController } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; -import type { EIP5792Messenger } from '../types'; -import { getCapabilities } from './getCapabilities'; +import type { EIP5792Messenger } from '../types.js'; +import { getCapabilities } from './getCapabilities.js'; const CHAIN_ID_MOCK = '0x123'; const FROM_MOCK = '0xabc123'; diff --git a/packages/eip-5792-middleware/src/hooks/getCapabilities.ts b/packages/eip-5792-middleware/src/hooks/getCapabilities.ts index 7fb74ac62ae..8e749071208 100644 --- a/packages/eip-5792-middleware/src/hooks/getCapabilities.ts +++ b/packages/eip-5792-middleware/src/hooks/getCapabilities.ts @@ -1,13 +1,12 @@ import type { IsAtomicBatchSupportedResult, - IsAtomicBatchSupportedResultEntry, TransactionController, } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; -import { KEYRING_TYPES_SUPPORTING_7702 } from '../constants'; -import type { EIP5792Messenger, GetCapabilitiesResult } from '../types'; -import { getAccountKeyringType } from '../utils'; +import { KEYRING_TYPES_SUPPORTING_7702 } from '../constants.js'; +import type { EIP5792Messenger, GetCapabilitiesResult } from '../types.js'; +import { getAccountKeyringType } from '../utils.js'; /** * Type definition for required controller hooks and utilities of {@link getCapabilities} @@ -79,11 +78,10 @@ export async function getCapabilities( ); return chainIdsNormalized.reduce((acc, chainId) => { - const chainBatchSupport = (batchSupport.find( - ({ chainId: batchChainId }) => batchChainId === chainId, - ) ?? {}) as IsAtomicBatchSupportedResultEntry & { - isRelaySupported: boolean; - }; + const chainBatchSupport = + batchSupport.find( + ({ chainId: batchChainId }) => batchChainId === chainId, + ) ?? {}; const { delegationAddress, isSupported, upgradeContractAddress } = chainBatchSupport; @@ -169,11 +167,10 @@ async function getAlternateGasFeesCapability( })); return chainIds.reduce((acc, chainId) => { - const chainBatchSupport = (updatedBatchSupport.find( - ({ chainId: batchChainId }) => batchChainId === chainId, - ) ?? {}) as IsAtomicBatchSupportedResultEntry & { - relaySupportedForChain: boolean; - }; + const chainBatchSupport = + updatedBatchSupport.find( + ({ chainId: batchChainId }) => batchChainId === chainId, + ) ?? {}; const { isSupported = false, relaySupportedForChain } = chainBatchSupport; diff --git a/packages/eip-5792-middleware/src/hooks/processSendCalls.test.ts b/packages/eip-5792-middleware/src/hooks/processSendCalls.test.ts index 6402b1fdade..5098fc743f9 100644 --- a/packages/eip-5792-middleware/src/hooks/processSendCalls.test.ts +++ b/packages/eip-5792-middleware/src/hooks/processSendCalls.test.ts @@ -16,13 +16,13 @@ import { providerErrors } from '@metamask/rpc-errors'; import type { TransactionController } from '@metamask/transaction-controller'; import type { Hex, JsonRpcRequest } from '@metamask/utils'; -import { SupportedCapabilities } from '../constants'; +import { SupportedCapabilities } from '../constants.js'; import type { SendCallsPayload, SendCallsParams, EIP5792Messenger, -} from '../types'; -import { processSendCalls } from './processSendCalls'; +} from '../types.js'; +import { processSendCalls } from './processSendCalls.js'; const CHAIN_ID_MOCK = '0x123'; const CHAIN_ID_2_MOCK = '0xabc'; diff --git a/packages/eip-5792-middleware/src/hooks/processSendCalls.ts b/packages/eip-5792-middleware/src/hooks/processSendCalls.ts index 9f97779612a..416ffcd5ba0 100644 --- a/packages/eip-5792-middleware/src/hooks/processSendCalls.ts +++ b/packages/eip-5792-middleware/src/hooks/processSendCalls.ts @@ -11,7 +11,7 @@ import type { import { TransactionEnvelopeType } from '@metamask/transaction-controller'; import type { Hex, JsonRpcRequest } from '@metamask/utils'; import { add0x, bytesToHex } from '@metamask/utils'; -import { groupBy } from 'lodash'; +import { groupBy } from 'lodash-es'; import { parse, v4 as uuid } from 'uuid'; import { @@ -21,14 +21,14 @@ import { MessageType, SupportedCapabilities, VERSION, -} from '../constants'; +} from '../constants.js'; import type { EIP5792Messenger, SendCallsPayload, SendCallsRequiredAssetsParam, SendCallsResult, -} from '../types'; -import { getAccountKeyringType } from '../utils'; +} from '../types.js'; +import { getAccountKeyringType } from '../utils.js'; /** * Type definition for required controller hooks and utilities of {@link processSendCalls} diff --git a/packages/eip-5792-middleware/src/index.test.ts b/packages/eip-5792-middleware/src/index.test.ts index 6b99a379ce6..cf9321f8f42 100644 --- a/packages/eip-5792-middleware/src/index.test.ts +++ b/packages/eip-5792-middleware/src/index.test.ts @@ -1,4 +1,4 @@ -import * as allExports from '.'; +import * as allExports from './..js'; describe('@metamask/eip-5792-middleware', () => { it('has expected JavaScript exports', () => { diff --git a/packages/eip-5792-middleware/src/index.ts b/packages/eip-5792-middleware/src/index.ts index d8e09244a9c..bf283cbd37f 100644 --- a/packages/eip-5792-middleware/src/index.ts +++ b/packages/eip-5792-middleware/src/index.ts @@ -1,17 +1,17 @@ export type { ProcessSendCallsRequest, ProcessSendCallsHooks, -} from './hooks/processSendCalls'; -export { processSendCalls } from './hooks/processSendCalls'; -export { getCallsStatus } from './hooks/getCallsStatus'; +} from './hooks/processSendCalls.js'; +export { processSendCalls } from './hooks/processSendCalls.js'; +export { getCallsStatus } from './hooks/getCallsStatus.js'; export { getCapabilities, type GetCapabilitiesHooks, -} from './hooks/getCapabilities'; -export { walletSendCalls } from './methods/wallet_sendCalls'; -export { walletGetCallsStatus } from './methods/wallet_getCallsStatus'; -export { walletGetCapabilities } from './methods/wallet_getCapabilities'; -export type { EIP5792Messenger } from './types'; +} from './hooks/getCapabilities.js'; +export { walletSendCalls } from './methods/wallet_sendCalls.js'; +export { walletGetCallsStatus } from './methods/wallet_getCallsStatus.js'; +export { walletGetCapabilities } from './methods/wallet_getCapabilities.js'; +export type { EIP5792Messenger } from './types.js'; export type { GetCallsStatusHook, @@ -24,4 +24,4 @@ export type { SendCallsPayload as SendCalls, SendCallsParams, SendCallsResult, -} from './types'; +} from './types.js'; diff --git a/packages/eip-5792-middleware/src/methods/wallet_getCallsStatus.test.ts b/packages/eip-5792-middleware/src/methods/wallet_getCallsStatus.test.ts index 2dd2dd69fec..ae9b2c8c8d2 100644 --- a/packages/eip-5792-middleware/src/methods/wallet_getCallsStatus.test.ts +++ b/packages/eip-5792-middleware/src/methods/wallet_getCallsStatus.test.ts @@ -9,8 +9,8 @@ import type { GetCallsStatusHook, GetCallsStatusParams, GetCallsStatusResult, -} from '../types'; -import { walletGetCallsStatus } from './wallet_getCallsStatus'; +} from '../types.js'; +import { walletGetCallsStatus } from './wallet_getCallsStatus.js'; const ID_MOCK = '0x12345678'; diff --git a/packages/eip-5792-middleware/src/methods/wallet_getCallsStatus.ts b/packages/eip-5792-middleware/src/methods/wallet_getCallsStatus.ts index 3023ec9b44b..e3a3bf60a2a 100644 --- a/packages/eip-5792-middleware/src/methods/wallet_getCallsStatus.ts +++ b/packages/eip-5792-middleware/src/methods/wallet_getCallsStatus.ts @@ -1,9 +1,9 @@ import { rpcErrors } from '@metamask/rpc-errors'; import type { JsonRpcRequest, PendingJsonRpcResponse } from '@metamask/utils'; -import { GetCallsStatusStruct } from '../types'; -import type { GetCallsStatusHook } from '../types'; -import { validateParams } from '../utils'; +import { GetCallsStatusStruct } from '../types.js'; +import type { GetCallsStatusHook } from '../types.js'; +import { validateParams } from '../utils.js'; /** * The RPC method handler middleware for `wallet_getCallStatus` diff --git a/packages/eip-5792-middleware/src/methods/wallet_getCapabilities.test.ts b/packages/eip-5792-middleware/src/methods/wallet_getCapabilities.test.ts index a53a058d073..01e7cd10655 100644 --- a/packages/eip-5792-middleware/src/methods/wallet_getCapabilities.test.ts +++ b/packages/eip-5792-middleware/src/methods/wallet_getCapabilities.test.ts @@ -5,8 +5,8 @@ import type { GetCapabilitiesHook, GetCapabilitiesParams, GetCapabilitiesResult, -} from '../types'; -import { walletGetCapabilities } from './wallet_getCapabilities'; +} from '../types.js'; +import { walletGetCapabilities } from './wallet_getCapabilities.js'; type GetPermittedAccountsForOrigin = () => Promise; diff --git a/packages/eip-5792-middleware/src/methods/wallet_getCapabilities.ts b/packages/eip-5792-middleware/src/methods/wallet_getCapabilities.ts index de68a51e325..989da9965ff 100644 --- a/packages/eip-5792-middleware/src/methods/wallet_getCapabilities.ts +++ b/packages/eip-5792-middleware/src/methods/wallet_getCapabilities.ts @@ -1,9 +1,9 @@ import { rpcErrors } from '@metamask/rpc-errors'; import type { JsonRpcRequest, PendingJsonRpcResponse } from '@metamask/utils'; -import { GetCapabilitiesStruct } from '../types'; -import type { GetCapabilitiesHook } from '../types'; -import { validateAndNormalizeKeyholder, validateParams } from '../utils'; +import { GetCapabilitiesStruct } from '../types.js'; +import type { GetCapabilitiesHook } from '../types.js'; +import { validateAndNormalizeKeyholder, validateParams } from '../utils.js'; /** * The RPC method handler middleware for `wallet_getCapabilities` diff --git a/packages/eip-5792-middleware/src/methods/wallet_sendCalls.test.ts b/packages/eip-5792-middleware/src/methods/wallet_sendCalls.test.ts index fd77076be8b..0b34d1b25fc 100644 --- a/packages/eip-5792-middleware/src/methods/wallet_sendCalls.test.ts +++ b/packages/eip-5792-middleware/src/methods/wallet_sendCalls.test.ts @@ -5,8 +5,8 @@ import type { ProcessSendCallsHook, SendCallsPayload, SendCallsParams, -} from '../types'; -import { walletSendCalls } from './wallet_sendCalls'; +} from '../types.js'; +import { walletSendCalls } from './wallet_sendCalls.js'; type GetPermittedAccountsForOrigin = () => Promise; diff --git a/packages/eip-5792-middleware/src/methods/wallet_sendCalls.ts b/packages/eip-5792-middleware/src/methods/wallet_sendCalls.ts index 9c3d391c485..e61401afe9d 100644 --- a/packages/eip-5792-middleware/src/methods/wallet_sendCalls.ts +++ b/packages/eip-5792-middleware/src/methods/wallet_sendCalls.ts @@ -1,9 +1,9 @@ import { rpcErrors } from '@metamask/rpc-errors'; import type { JsonRpcRequest, PendingJsonRpcResponse } from '@metamask/utils'; -import { SendCallsStruct } from '../types'; -import type { ProcessSendCallsHook, SendCallsPayload } from '../types'; -import { validateAndNormalizeKeyholder, validateParams } from '../utils'; +import { SendCallsStruct } from '../types.js'; +import type { ProcessSendCallsHook, SendCallsPayload } from '../types.js'; +import { validateAndNormalizeKeyholder, validateParams } from '../utils.js'; /** * The RPC method handler middleware for `wallet_sendCalls` diff --git a/packages/eip-5792-middleware/src/utils.test.ts b/packages/eip-5792-middleware/src/utils.test.ts index f9fadc5fa59..5bbfb616537 100644 --- a/packages/eip-5792-middleware/src/utils.test.ts +++ b/packages/eip-5792-middleware/src/utils.test.ts @@ -4,13 +4,13 @@ import type { StructError } from '@metamask/superstruct'; import { any, validate } from '@metamask/superstruct'; import type { Hex } from '@metamask/utils'; -import { EIP5792ErrorCode } from './constants'; -import type { EIP5792Messenger } from './types'; +import { EIP5792ErrorCode } from './constants.js'; +import type { EIP5792Messenger } from './types.js'; import { getAccountKeyringType, validateAndNormalizeKeyholder, validateParams, -} from './utils'; +} from './utils.js'; jest.mock('@metamask/superstruct', () => ({ ...jest.requireActual('@metamask/superstruct'), diff --git a/packages/eip-5792-middleware/src/utils.ts b/packages/eip-5792-middleware/src/utils.ts index c888ceafde9..f473eddebbe 100644 --- a/packages/eip-5792-middleware/src/utils.ts +++ b/packages/eip-5792-middleware/src/utils.ts @@ -4,8 +4,8 @@ import type { Struct, StructError } from '@metamask/superstruct'; import { validate } from '@metamask/superstruct'; import type { Hex } from '@metamask/utils'; -import { EIP5792ErrorCode } from './constants'; -import type { EIP5792Messenger } from './types'; +import { EIP5792ErrorCode } from './constants.js'; +import type { EIP5792Messenger } from './types.js'; /** * Retrieves the keyring type for a given account address. From c121c892de90f38a210be40f8ff4194a84506cfb Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:48:33 +0200 Subject: [PATCH 075/136] ESLint fix and `jest` global import for shield-controller --- packages/shield-controller/package.json | 2 +- .../src/ShieldController-method-action-types.ts | 2 +- .../src/ShieldController.test.ts | 17 ++++++++++------- .../shield-controller/src/ShieldController.ts | 10 +++++----- packages/shield-controller/src/backend.test.ts | 6 +++--- packages/shield-controller/src/backend.ts | 6 +++--- packages/shield-controller/src/index.ts | 10 +++++----- packages/shield-controller/src/logger.ts | 2 +- .../src/polling-with-policy.test.ts | 8 ++++++-- .../shield-controller/tests/mocks/messenger.ts | 4 ++-- packages/shield-controller/tests/utils.ts | 6 +++--- 11 files changed, 40 insertions(+), 33 deletions(-) diff --git a/packages/shield-controller/package.json b/packages/shield-controller/package.json index 9336dbf2598..a0261321c37 100644 --- a/packages/shield-controller/package.json +++ b/packages/shield-controller/package.json @@ -64,7 +64,7 @@ "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", - "lodash": "^4.17.21", + "lodash-es": "^4.17.21", "ts-jest": "^29.2.5", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/shield-controller/src/ShieldController-method-action-types.ts b/packages/shield-controller/src/ShieldController-method-action-types.ts index ca16c1baa92..423740dc44c 100644 --- a/packages/shield-controller/src/ShieldController-method-action-types.ts +++ b/packages/shield-controller/src/ShieldController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { ShieldController } from './ShieldController'; +import type { ShieldController } from './ShieldController.js'; /** * Start the ShieldController and subscribe to the transaction and signature controller state changes. diff --git a/packages/shield-controller/src/ShieldController.test.ts b/packages/shield-controller/src/ShieldController.test.ts index 4ae35f46b97..6b3e33c8f31 100644 --- a/packages/shield-controller/src/ShieldController.test.ts +++ b/packages/shield-controller/src/ShieldController.test.ts @@ -6,21 +6,24 @@ import { TransactionStatus } from '@metamask/transaction-controller'; import type { TransactionMeta } from '@metamask/transaction-controller'; import type { TransactionControllerState } from '@metamask/transaction-controller'; -import { TX_META_SIMULATION_DATA_MOCKS } from '../tests/data'; -import { createMockBackend, MOCK_COVERAGE_ID } from '../tests/mocks/backend'; -import { createMockMessenger, RootMessenger } from '../tests/mocks/messenger'; +import { TX_META_SIMULATION_DATA_MOCKS } from '../tests/data.js'; +import { createMockBackend, MOCK_COVERAGE_ID } from '../tests/mocks/backend.js'; +import { + createMockMessenger, + RootMessenger, +} from '../tests/mocks/messenger.js'; import { generateMockSignatureRequest, generateMockTxMeta, setupCoverageResultReceived, -} from '../tests/utils'; +} from '../tests/utils.js'; import { getDefaultShieldControllerState, ShieldController, ShieldControllerMessenger, -} from './ShieldController'; -import type { ShieldControllerState } from './ShieldController'; -import type { NormalizeSignatureRequestFn, ShieldBackend } from './types'; +} from './ShieldController.js'; +import type { ShieldControllerState } from './ShieldController.js'; +import type { NormalizeSignatureRequestFn, ShieldBackend } from './types.js'; /** * Sets up a ShieldController for testing. diff --git a/packages/shield-controller/src/ShieldController.ts b/packages/shield-controller/src/ShieldController.ts index e7109d6e941..14e7d967d60 100644 --- a/packages/shield-controller/src/ShieldController.ts +++ b/packages/shield-controller/src/ShieldController.ts @@ -14,16 +14,16 @@ import type { TransactionControllerStateChangeEvent, TransactionMeta, } from '@metamask/transaction-controller'; -import { cloneDeep, isEqual } from 'lodash'; +import { cloneDeep, isEqual } from 'lodash-es'; -import { controllerName } from './constants'; -import { projectLogger, createModuleLogger } from './logger'; -import type { ShieldControllerMethodActions } from './ShieldController-method-action-types'; +import { controllerName } from './constants.js'; +import { projectLogger, createModuleLogger } from './logger.js'; +import type { ShieldControllerMethodActions } from './ShieldController-method-action-types.js'; import type { CoverageResult, NormalizeSignatureRequestFn, ShieldBackend, -} from './types'; +} from './types.js'; const log = createModuleLogger(projectLogger, 'ShieldController'); diff --git a/packages/shield-controller/src/backend.test.ts b/packages/shield-controller/src/backend.test.ts index ab22c5d90b8..46f82e6a7c3 100644 --- a/packages/shield-controller/src/backend.test.ts +++ b/packages/shield-controller/src/backend.test.ts @@ -7,13 +7,13 @@ import { generateMockSignatureRequest, generateMockTxMeta, getRandomCoverageResult, -} from '../tests/utils'; +} from '../tests/utils.js'; import { makeInitCoverageCheckBody, parseSignatureRequestMethod, ShieldRemoteBackend, -} from './backend'; -import { SignTypedDataVersion } from './constants'; +} from './backend.js'; +import { SignTypedDataVersion } from './constants.js'; const mockCaptureException = jest.fn(); diff --git a/packages/shield-controller/src/backend.ts b/packages/shield-controller/src/backend.ts index d6fd4788a5f..7cb091e9965 100644 --- a/packages/shield-controller/src/backend.ts +++ b/packages/shield-controller/src/backend.ts @@ -12,8 +12,8 @@ import type { TransactionMeta } from '@metamask/transaction-controller'; import type { AuthorizationList } from '@metamask/transaction-controller'; import type { Json } from '@metamask/utils'; -import { SignTypedDataVersion } from './constants'; -import { PollingWithCockatielPolicy } from './polling-with-policy'; +import { SignTypedDataVersion } from './constants.js'; +import { PollingWithCockatielPolicy } from './polling-with-policy.js'; import type { CheckCoverageRequest, CheckSignatureCoverageRequest, @@ -22,7 +22,7 @@ import type { LogSignatureRequest, LogTransactionRequest, ShieldBackend, -} from './types'; +} from './types.js'; export type InitCoverageCheckRequest = { txParams: [ diff --git a/packages/shield-controller/src/index.ts b/packages/shield-controller/src/index.ts index 7747be50a42..8c7e2fcf292 100644 --- a/packages/shield-controller/src/index.ts +++ b/packages/shield-controller/src/index.ts @@ -3,7 +3,7 @@ export type { LogSignatureRequest, LogTransactionRequest, NormalizeSignatureRequestFn, -} from './types'; +} from './types.js'; export type { ShieldControllerActions, ShieldControllerEvents, @@ -12,16 +12,16 @@ export type { ShieldControllerGetStateAction, ShieldControllerCoverageResultReceivedEvent, ShieldControllerStateChangeEvent, -} from './ShieldController'; +} from './ShieldController.js'; export type { ShieldControllerStartAction, ShieldControllerStopAction, ShieldControllerClearStateAction, ShieldControllerCheckCoverageAction, ShieldControllerCheckSignatureCoverageAction, -} from './ShieldController-method-action-types'; +} from './ShieldController-method-action-types.js'; export { ShieldController, getDefaultShieldControllerState, -} from './ShieldController'; -export { ShieldRemoteBackend, parseSignatureRequestMethod } from './backend'; +} from './ShieldController.js'; +export { ShieldRemoteBackend, parseSignatureRequestMethod } from './backend.js'; diff --git a/packages/shield-controller/src/logger.ts b/packages/shield-controller/src/logger.ts index ca017b5ba54..abd139116dc 100644 --- a/packages/shield-controller/src/logger.ts +++ b/packages/shield-controller/src/logger.ts @@ -1,6 +1,6 @@ import { createProjectLogger, createModuleLogger } from '@metamask/utils'; -import { controllerName } from './constants'; +import { controllerName } from './constants.js'; export const projectLogger = createProjectLogger(controllerName); diff --git a/packages/shield-controller/src/polling-with-policy.test.ts b/packages/shield-controller/src/polling-with-policy.test.ts index c62958a2d8f..99fc1d3f45d 100644 --- a/packages/shield-controller/src/polling-with-policy.test.ts +++ b/packages/shield-controller/src/polling-with-policy.test.ts @@ -1,7 +1,7 @@ import { HttpError } from '@metamask/controller-utils'; -import { delay } from '../tests/utils'; -import { PollingWithCockatielPolicy } from './polling-with-policy'; +import { delay } from '../tests/utils.js'; +import { PollingWithCockatielPolicy } from './polling-with-policy.js'; describe('PollingWithCockatielPolicy', () => { it('should return the success result', async () => { @@ -22,6 +22,7 @@ describe('PollingWithCockatielPolicy', () => { return new Promise((resolve, reject) => { setTimeout(() => { if (invocationCount < 3) { + // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors reject(new HttpError(412, 'Results are not available yet')); } resolve('test'); @@ -39,6 +40,7 @@ describe('PollingWithCockatielPolicy', () => { .fn() .mockImplementation(async (_abortSignal: AbortSignal) => { return new Promise((_resolve, reject) => { + // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors reject(new HttpError(500, 'Internal server error')); }); }); @@ -58,6 +60,7 @@ describe('PollingWithCockatielPolicy', () => { .mockImplementation(async (_abortSignal: AbortSignal) => { return new Promise((_resolve, reject) => { setTimeout(() => { + // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors reject(new HttpError(412, 'Results are not available yet')); }, 100); }); @@ -82,6 +85,7 @@ describe('PollingWithCockatielPolicy', () => { reject(new Error('test error')); } + // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors reject(new HttpError(412, 'Results are not available yet')); }, 100); }); diff --git a/packages/shield-controller/tests/mocks/messenger.ts b/packages/shield-controller/tests/mocks/messenger.ts index c977739c464..38ac76a1596 100644 --- a/packages/shield-controller/tests/mocks/messenger.ts +++ b/packages/shield-controller/tests/mocks/messenger.ts @@ -5,8 +5,8 @@ import type { MockAnyNamespace, } from '@metamask/messenger'; -import type { ShieldControllerMessenger } from '../../src'; -import { controllerName } from '../../src/constants'; +import type { ShieldControllerMessenger } from '../../src.js'; +import { controllerName } from '../../src/constants.js'; type AllShieldControllerActions = MessengerActions; diff --git a/packages/shield-controller/tests/utils.ts b/packages/shield-controller/tests/utils.ts index be83af87f96..94039c947cb 100644 --- a/packages/shield-controller/tests/utils.ts +++ b/packages/shield-controller/tests/utils.ts @@ -11,9 +11,9 @@ import type { TransactionMeta } from '@metamask/transaction-controller'; import type { SignTypedDataVersion } from 'src/constants'; import { v1 as random } from 'uuid'; -import { coverageStatuses } from '../src/types'; -import type { CoverageResult, CoverageStatus } from '../src/types'; -import type { createMockMessenger } from './mocks/messenger'; +import { coverageStatuses } from '../src/types.js'; +import type { CoverageResult, CoverageStatus } from '../src/types.js'; +import type { createMockMessenger } from './mocks/messenger.js'; /** * Generate a mock transaction meta. From 4cc08decfea3feea403152236d14102a8a0fd064 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:48:33 +0200 Subject: [PATCH 076/136] ESLint fix and `jest` global import for smart-transactions-controller --- .../package.json | 2 +- ...nsactionsController-method-action-types.ts | 2 +- .../src/SmartTransactionsController.test.ts | 39 +++++++++---------- .../src/SmartTransactionsController.ts | 16 ++++---- .../src/featureFlags/feature-flags.test.ts | 4 +- .../src/featureFlags/feature-flags.ts | 6 +-- .../src/featureFlags/index.ts | 4 +- .../src/featureFlags/validators.test.ts | 2 +- .../src/index.ts | 14 +++---- .../src/selectors.test.ts | 6 +-- .../src/selectors.ts | 4 +- .../src/types.ts | 2 +- .../src/utils.test.ts | 6 +-- .../src/utils.ts | 8 ++-- 14 files changed, 56 insertions(+), 59 deletions(-) diff --git a/packages/smart-transactions-controller/package.json b/packages/smart-transactions-controller/package.json index d0e40bf425c..3acc6f83797 100644 --- a/packages/smart-transactions-controller/package.json +++ b/packages/smart-transactions-controller/package.json @@ -65,7 +65,7 @@ "@metamask/transaction-controller": "^69.0.0", "@metamask/utils": "^11.11.0", "bignumber.js": "^9.1.2", - "lodash": "^4.17.21", + "lodash-es": "^4.17.21", "reselect": "^5.1.1" }, "devDependencies": { diff --git a/packages/smart-transactions-controller/src/SmartTransactionsController-method-action-types.ts b/packages/smart-transactions-controller/src/SmartTransactionsController-method-action-types.ts index b8cae3c5db5..0abc024e10a 100644 --- a/packages/smart-transactions-controller/src/SmartTransactionsController-method-action-types.ts +++ b/packages/smart-transactions-controller/src/SmartTransactionsController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { SmartTransactionsController } from './SmartTransactionsController'; +import type { SmartTransactionsController } from './SmartTransactionsController.js'; export type SmartTransactionsControllerCheckPollAction = { type: `SmartTransactionsController:checkPoll`; diff --git a/packages/smart-transactions-controller/src/SmartTransactionsController.test.ts b/packages/smart-transactions-controller/src/SmartTransactionsController.test.ts index 6d921c3c256..0c63063e14f 100644 --- a/packages/smart-transactions-controller/src/SmartTransactionsController.test.ts +++ b/packages/smart-transactions-controller/src/SmartTransactionsController.test.ts @@ -26,21 +26,25 @@ import type { Hex } from '@metamask/utils'; import nock from 'nock'; import packageJson from '../package.json'; -import { advanceTime, flushPromises, getFakeProvider } from '../tests/helpers'; +import { + advanceTime, + flushPromises, + getFakeProvider, +} from '../tests/helpers.js'; import { API_BASE_URL, SENTINEL_API_BASE_URL_MAP, SmartTransactionsTraceName, -} from './constants'; +} from './constants.js'; import { DEFAULT_INTERVAL, SmartTransactionsController, getDefaultSmartTransactionsControllerState, -} from './SmartTransactionsController'; -import type { SmartTransactionsControllerMessenger } from './SmartTransactionsController'; -import type { SmartTransaction, UnsignedTransaction } from './types'; -import { SmartTransactionStatuses, ClientId } from './types'; -import * as utils from './utils'; +} from './SmartTransactionsController.js'; +import type { SmartTransactionsControllerMessenger } from './SmartTransactionsController.js'; +import type { SmartTransaction, UnsignedTransaction } from './types.js'; +import { SmartTransactionStatuses, ClientId } from './types.js'; +import * as utils from './utils.js'; type AllActions = MessengerActions; @@ -430,8 +434,7 @@ describe('SmartTransactionsController', () => { }), ); - // eslint-disable-next-line @typescript-eslint/no-floating-promises - controller.stop(); + void controller.stop(); }); it('does not report error when feature flags are valid after state change', async () => { @@ -530,8 +533,7 @@ describe('SmartTransactionsController', () => { // Should not be called after state change with valid flags expect(captureExceptionSpy).not.toHaveBeenCalled(); - // eslint-disable-next-line @typescript-eslint/no-floating-promises - controller.stop(); + void controller.stop(); }); it('reports error when smartTransactionsNetworks flag is missing after state change', async () => { @@ -632,8 +634,7 @@ describe('SmartTransactionsController', () => { }), ); - // eslint-disable-next-line @typescript-eslint/no-floating-promises - controller.stop(); + void controller.stop(); }); it('reports error to ErrorReportingService when feature flags become invalid after state change', async () => { @@ -743,8 +744,7 @@ describe('SmartTransactionsController', () => { }), ); - // eslint-disable-next-line @typescript-eslint/no-floating-promises - controller.stop(); + void controller.stop(); }); it('reports multiple errors to ErrorReportingService when multiple chains are invalid after state change', async () => { @@ -849,8 +849,7 @@ describe('SmartTransactionsController', () => { // Should be called twice - once for each invalid chain expect(captureExceptionSpy).toHaveBeenCalledTimes(2); - // eslint-disable-next-line @typescript-eslint/no-floating-promises - controller.stop(); + void controller.stop(); }); }); @@ -949,8 +948,7 @@ describe('SmartTransactionsController', () => { controller.timeoutHandle = setTimeout(() => ({})); - // eslint-disable-next-line @typescript-eslint/no-floating-promises - controller.poll(1000); + void controller.poll(1000); expect(updateSmartTransactionsSpy).toHaveBeenCalled(); }); @@ -3377,8 +3375,7 @@ async function withController( triggerNetworkStateChange, }); } finally { - // eslint-disable-next-line @typescript-eslint/no-floating-promises - controller.stop(); + void controller.stop(); controller.stopAllPolling(); } } diff --git a/packages/smart-transactions-controller/src/SmartTransactionsController.ts b/packages/smart-transactions-controller/src/SmartTransactionsController.ts index 5a7756fa067..2c9589dbff0 100644 --- a/packages/smart-transactions-controller/src/SmartTransactionsController.ts +++ b/packages/smart-transactions-controller/src/SmartTransactionsController.ts @@ -34,7 +34,7 @@ import type { } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; import { BigNumber } from 'bignumber.js'; -import cloneDeep from 'lodash/cloneDeep'; +import { cloneDeep } from 'lodash-es'; import { API_BASE_URL, @@ -43,13 +43,13 @@ import { MetaMetricsEventName, SENTINEL_API_BASE_URL_MAP, SmartTransactionsTraceName, -} from './constants'; +} from './constants.js'; import { getSmartTransactionsFeatureFlags, getSmartTransactionsFeatureFlagsForChain, -} from './featureFlags/feature-flags'; -import { validateSmartTransactionsFeatureFlags } from './featureFlags/validators'; -import type { SmartTransactionsControllerMethodActions } from './SmartTransactionsController-method-action-types'; +} from './featureFlags/feature-flags.js'; +import { validateSmartTransactionsFeatureFlags } from './featureFlags/validators.js'; +import type { SmartTransactionsControllerMethodActions } from './SmartTransactionsController-method-action-types.js'; import type { Fees, IndividualTxFees, @@ -62,8 +62,8 @@ import type { MetaMetricsProps, FeatureFlags, ClientId, -} from './types'; -import { APIType, SmartTransactionStatuses } from './types'; +} from './types.js'; +import { APIType, SmartTransactionStatuses } from './types.js'; import { calculateStatus, getAPIRequestURL, @@ -76,7 +76,7 @@ import { getSmartTransactionMetricsSensitiveProperties, shouldMarkRegularTransactionsAsFailed, markRegularTransactionsAsFailed, -} from './utils'; +} from './utils.js'; const SECOND = 1000; export const DEFAULT_INTERVAL = SECOND * 5; diff --git a/packages/smart-transactions-controller/src/featureFlags/feature-flags.test.ts b/packages/smart-transactions-controller/src/featureFlags/feature-flags.test.ts index bc89a602c28..8c31da42eec 100644 --- a/packages/smart-transactions-controller/src/featureFlags/feature-flags.test.ts +++ b/packages/smart-transactions-controller/src/featureFlags/feature-flags.test.ts @@ -1,10 +1,10 @@ -import { DEFAULT_DISABLED_SMART_TRANSACTIONS_FEATURE_FLAGS } from '../constants'; +import { DEFAULT_DISABLED_SMART_TRANSACTIONS_FEATURE_FLAGS } from '../constants.js'; import { processSmartTransactionsFeatureFlags, getSmartTransactionsFeatureFlags, getSmartTransactionsFeatureFlagsForChain, normalizeChainId, -} from './feature-flags'; +} from './feature-flags.js'; describe('feature-flags', () => { describe('processSmartTransactionsFeatureFlags', () => { diff --git a/packages/smart-transactions-controller/src/featureFlags/feature-flags.ts b/packages/smart-transactions-controller/src/featureFlags/feature-flags.ts index 43ac56f87cc..d70a8941c48 100644 --- a/packages/smart-transactions-controller/src/featureFlags/feature-flags.ts +++ b/packages/smart-transactions-controller/src/featureFlags/feature-flags.ts @@ -7,12 +7,12 @@ import { parseCaipChainId, } from '@metamask/utils'; -import { DEFAULT_DISABLED_SMART_TRANSACTIONS_FEATURE_FLAGS } from '../constants'; +import { DEFAULT_DISABLED_SMART_TRANSACTIONS_FEATURE_FLAGS } from '../constants.js'; import type { SmartTransactionsFeatureFlagsConfig, SmartTransactionsNetworkConfig, -} from '../types'; -import { validateSmartTransactionsFeatureFlags } from './validators'; +} from '../types.js'; +import { validateSmartTransactionsFeatureFlags } from './validators.js'; /** * Normalizes a chain ID to hex format for EVM chains. diff --git a/packages/smart-transactions-controller/src/featureFlags/index.ts b/packages/smart-transactions-controller/src/featureFlags/index.ts index 8d2fad6e105..464d44ab850 100644 --- a/packages/smart-transactions-controller/src/featureFlags/index.ts +++ b/packages/smart-transactions-controller/src/featureFlags/index.ts @@ -7,11 +7,11 @@ export { type SmartTransactionsNetworkConfigFromSchema as SmartTransactionsNetworkConfig, type SmartTransactionsFeatureFlagsConfigFromSchema, type FeatureFlagsProcessResult, -} from './validators'; +} from './validators.js'; export { getSmartTransactionsFeatureFlags, processSmartTransactionsFeatureFlags, getSmartTransactionsFeatureFlagsForChain, normalizeChainId, -} from './feature-flags'; +} from './feature-flags.js'; diff --git a/packages/smart-transactions-controller/src/featureFlags/validators.test.ts b/packages/smart-transactions-controller/src/featureFlags/validators.test.ts index 7672475a99f..d7e9ddfc407 100644 --- a/packages/smart-transactions-controller/src/featureFlags/validators.test.ts +++ b/packages/smart-transactions-controller/src/featureFlags/validators.test.ts @@ -1,7 +1,7 @@ import { validateSmartTransactionsFeatureFlags, validateSmartTransactionsNetworkConfig, -} from './validators'; +} from './validators.js'; describe('validators', () => { describe('validateSmartTransactionsNetworkConfig', () => { diff --git a/packages/smart-transactions-controller/src/index.ts b/packages/smart-transactions-controller/src/index.ts index eba2b414d0b..dcb6cf6a26b 100644 --- a/packages/smart-transactions-controller/src/index.ts +++ b/packages/smart-transactions-controller/src/index.ts @@ -1,4 +1,4 @@ -export { SmartTransactionsController } from './SmartTransactionsController'; +export { SmartTransactionsController } from './SmartTransactionsController.js'; export type { SmartTransactionsControllerMessenger, SmartTransactionsControllerState, @@ -8,7 +8,7 @@ export type { SmartTransactionsControllerSmartTransactionEvent, SmartTransactionsControllerSmartTransactionConfirmationDoneEvent, SmartTransactionsControllerEvents, -} from './SmartTransactionsController'; +} from './SmartTransactionsController.js'; export type { SmartTransactionsControllerCheckPollAction, SmartTransactionsControllerInitializeSmartTransactionsForChainIdAction, @@ -29,7 +29,7 @@ export type { SmartTransactionsControllerGetTransactionsAction, SmartTransactionsControllerGetSmartTransactionByMinedTxHashAction, SmartTransactionsControllerWipeSmartTransactionsAction, -} from './SmartTransactionsController-method-action-types'; +} from './SmartTransactionsController-method-action-types.js'; export { type Fee, type Fees, @@ -47,16 +47,16 @@ export { ClientId, Feature, Kind, -} from './types'; -export { MetaMetricsEventName, MetaMetricsEventCategory } from './constants'; +} from './types.js'; +export { MetaMetricsEventName, MetaMetricsEventCategory } from './constants.js'; export { getSmartTransactionMetricsProperties, getSmartTransactionMetricsSensitiveProperties, -} from './utils'; +} from './utils.js'; // Feature flag selectors export { selectSmartTransactionsFeatureFlags, selectSmartTransactionsFeatureFlagsForChain, type SmartTransactionsFeatureFlagsState, -} from './selectors'; +} from './selectors.js'; diff --git a/packages/smart-transactions-controller/src/selectors.test.ts b/packages/smart-transactions-controller/src/selectors.test.ts index 4d3e73eb200..791a9de29f2 100644 --- a/packages/smart-transactions-controller/src/selectors.test.ts +++ b/packages/smart-transactions-controller/src/selectors.test.ts @@ -1,9 +1,9 @@ -import { DEFAULT_DISABLED_SMART_TRANSACTIONS_FEATURE_FLAGS } from './constants'; +import { DEFAULT_DISABLED_SMART_TRANSACTIONS_FEATURE_FLAGS } from './constants.js'; import { selectSmartTransactionsFeatureFlags, selectSmartTransactionsFeatureFlagsForChain, -} from './selectors'; -import type { SmartTransactionsFeatureFlagsState } from './selectors'; +} from './selectors.js'; +import type { SmartTransactionsFeatureFlagsState } from './selectors.js'; describe('selectors', () => { beforeEach(() => { diff --git a/packages/smart-transactions-controller/src/selectors.ts b/packages/smart-transactions-controller/src/selectors.ts index e3b3a2ce55b..fd359265c44 100644 --- a/packages/smart-transactions-controller/src/selectors.ts +++ b/packages/smart-transactions-controller/src/selectors.ts @@ -4,11 +4,11 @@ import { createSelector as createSelector_ } from 'reselect'; import { processSmartTransactionsFeatureFlags, getSmartTransactionsFeatureFlagsForChain, -} from './featureFlags/feature-flags'; +} from './featureFlags/feature-flags.js'; import type { SmartTransactionsFeatureFlagsConfig, SmartTransactionsNetworkConfig, -} from './types'; +} from './types.js'; /** * The state shape expected by the smart transactions feature flag selectors. diff --git a/packages/smart-transactions-controller/src/types.ts b/packages/smart-transactions-controller/src/types.ts index 9e1a3a8d108..8ea7c9d8da0 100644 --- a/packages/smart-transactions-controller/src/types.ts +++ b/packages/smart-transactions-controller/src/types.ts @@ -2,7 +2,7 @@ import type { NetworkClientId } from '@metamask/network-controller'; import type { TransactionType } from '@metamask/transaction-controller'; import type { CaipChainId, Hex } from '@metamask/utils'; -import type { SmartTransactionsNetworkConfig } from './featureFlags'; +import type { SmartTransactionsNetworkConfig } from './featureFlags.js'; export type SentinelMeta = { txType?: TransactionType; diff --git a/packages/smart-transactions-controller/src/utils.test.ts b/packages/smart-transactions-controller/src/utils.test.ts index db4b4766106..31edd698ca4 100644 --- a/packages/smart-transactions-controller/src/utils.test.ts +++ b/packages/smart-transactions-controller/src/utils.test.ts @@ -5,7 +5,7 @@ import { TransactionStatus } from '@metamask/transaction-controller'; import type { TransactionMeta } from '@metamask/transaction-controller'; import packageJson from '../package.json'; -import { API_BASE_URL, SENTINEL_API_BASE_URL_MAP } from './constants'; +import { API_BASE_URL, SENTINEL_API_BASE_URL_MAP } from './constants.js'; import { SmartTransactionMinedTx, APIType, @@ -13,8 +13,8 @@ import { SmartTransactionCancellationReason, OriginalTransactionStatus, ClientId, -} from './types'; -import * as utils from './utils'; +} from './types.js'; +import * as utils from './utils.js'; const createSignedTransaction = () => { return '0xf86c098504a817c800825208943535353535353535353535353535353535353535880de0b6b3a76400008025a02b79f322a625d623a2bb2911e0c6b3e7eaf741a7c7c5d2e8c67ef3ff4acf146ca01ae168fea63dc3391b75b586c8a7c0cb55cdf3b8e2e4d8e097957a3a56c6f2c5'; diff --git a/packages/smart-transactions-controller/src/utils.ts b/packages/smart-transactions-controller/src/utils.ts index 936cd3406ee..a22c71063a8 100644 --- a/packages/smart-transactions-controller/src/utils.ts +++ b/packages/smart-transactions-controller/src/utils.ts @@ -7,19 +7,19 @@ import type { } from '@metamask/transaction-controller'; import { TransactionStatus } from '@metamask/transaction-controller'; import { BigNumber } from 'bignumber.js'; -import _ from 'lodash'; +import _ from 'lodash-es'; // Ignoring TypeScript errors here because this import is disallowed for production builds, because // the `package.json` file is above the root directory. // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore import packageJson from '../package.json'; -import { API_BASE_URL, SENTINEL_API_BASE_URL_MAP } from './constants'; +import { API_BASE_URL, SENTINEL_API_BASE_URL_MAP } from './constants.js'; import type { SmartTransaction, SmartTransactionsStatus, SmartTransactionsNetworkConfig, -} from './types'; +} from './types.js'; import { APIType, SmartTransactionStatuses, @@ -27,7 +27,7 @@ import { SmartTransactionMinedTx, cancellationReasonToStatusMap, ClientId, -} from './types'; +} from './types.js'; export function isSmartTransactionPending(smartTransaction: SmartTransaction) { return smartTransaction.status === SmartTransactionStatuses.PENDING; From ba8a94e4c10d2f8f98d7752023c51b1623801a14 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:48:36 +0200 Subject: [PATCH 077/136] ESLint fix and `jest` global import for user-operation-controller --- .../user-operation-controller/package.json | 2 +- ...OperationController-method-action-types.ts | 2 +- .../src/UserOperationController.test.ts | 26 +++++++++---------- .../src/UserOperationController.ts | 26 +++++++++---------- .../src/helpers/Bundler.test.ts | 4 +-- .../src/helpers/Bundler.ts | 4 +-- .../PendingUserOperationTracker.test.ts | 10 +++---- .../helpers/PendingUserOperationTracker.ts | 10 +++---- .../helpers/SnapSmartContractAccount.test.ts | 12 ++++----- .../src/helpers/SnapSmartContractAccount.ts | 8 +++--- .../user-operation-controller/src/index.ts | 6 ++--- .../src/utils/chain-id.test.ts | 2 +- .../src/utils/gas-fees.test.ts | 6 ++--- .../src/utils/gas-fees.ts | 8 +++--- .../src/utils/gas.test.ts | 12 ++++----- .../src/utils/gas.ts | 8 +++--- .../src/utils/transaction.test.ts | 14 +++++----- .../src/utils/transaction.ts | 6 ++--- .../src/utils/validation.test.ts | 8 +++--- .../src/utils/validation.ts | 6 ++--- 20 files changed, 90 insertions(+), 90 deletions(-) diff --git a/packages/user-operation-controller/package.json b/packages/user-operation-controller/package.json index de2d5af271a..8e2bfff69f0 100644 --- a/packages/user-operation-controller/package.json +++ b/packages/user-operation-controller/package.json @@ -64,7 +64,7 @@ "@metamask/utils": "^11.11.0", "bn.js": "^5.2.1", "immer": "^9.0.6", - "lodash": "^4.17.21", + "lodash-es": "^4.17.21", "uuid": "^8.3.2" }, "devDependencies": { diff --git a/packages/user-operation-controller/src/UserOperationController-method-action-types.ts b/packages/user-operation-controller/src/UserOperationController-method-action-types.ts index aeb25ac0a87..a1377907657 100644 --- a/packages/user-operation-controller/src/UserOperationController-method-action-types.ts +++ b/packages/user-operation-controller/src/UserOperationController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { UserOperationController } from './UserOperationController'; +import type { UserOperationController } from './UserOperationController.js'; /** * Create and submit a user operation. diff --git a/packages/user-operation-controller/src/UserOperationController.test.ts b/packages/user-operation-controller/src/UserOperationController.test.ts index cc946555099..58b7c100d9a 100644 --- a/packages/user-operation-controller/src/UserOperationController.test.ts +++ b/packages/user-operation-controller/src/UserOperationController.test.ts @@ -5,33 +5,33 @@ import { TransactionType } from '@metamask/transaction-controller'; import type { TransactionParams } from '@metamask/transaction-controller'; import { EventEmitter } from 'stream'; -import { ADDRESS_ZERO, EMPTY_BYTES, VALUE_ZERO } from './constants'; -import * as BundlerHelper from './helpers/Bundler'; -import * as PendingUserOperationTrackerHelper from './helpers/PendingUserOperationTracker'; -import { SnapSmartContractAccount } from './helpers/SnapSmartContractAccount'; -import { UserOperationStatus } from './types'; -import type { UserOperationMetadata } from './types'; +import { ADDRESS_ZERO, EMPTY_BYTES, VALUE_ZERO } from './constants.js'; +import * as BundlerHelper from './helpers/Bundler.js'; +import * as PendingUserOperationTrackerHelper from './helpers/PendingUserOperationTracker.js'; +import { SnapSmartContractAccount } from './helpers/SnapSmartContractAccount.js'; +import { UserOperationStatus } from './types.js'; +import type { UserOperationMetadata } from './types.js'; import type { PrepareUserOperationResponse, SignUserOperationResponse, SmartContractAccount, UpdateUserOperationResponse, -} from './types'; +} from './types.js'; import type { AddUserOperationOptions, AddUserOperationRequest, UserOperationControllerMessenger, -} from './UserOperationController'; -import { UserOperationController } from './UserOperationController'; -import { updateGas } from './utils/gas'; -import { updateGasFees } from './utils/gas-fees'; +} from './UserOperationController.js'; +import { UserOperationController } from './UserOperationController.js'; +import { updateGasFees } from './utils/gas-fees.js'; +import { updateGas } from './utils/gas.js'; import { validateAddUserOperationRequest, validateAddUserOperationOptions, validatePrepareUserOperationResponse, validateSignUserOperationResponse, validateUpdateUserOperationResponse, -} from './utils/validation'; +} from './utils/validation.js'; jest.mock('./utils/gas'); jest.mock('./utils/gas-fees'); @@ -237,7 +237,7 @@ describe('UserOperationController', () => { return approvalControllerAddRequestMock(); } - throw new Error(`Unexpected mock messenger action: ${action}`); + throw new Error(`Unexpected mock messenger action: ${String(action)}`); }, ); diff --git a/packages/user-operation-controller/src/UserOperationController.ts b/packages/user-operation-controller/src/UserOperationController.ts index c0fc7150f63..a33a0f22b38 100644 --- a/packages/user-operation-controller/src/UserOperationController.ts +++ b/packages/user-operation-controller/src/UserOperationController.ts @@ -30,31 +30,31 @@ import { add0x } from '@metamask/utils'; // This package purposefully relies on Node's EventEmitter module. // eslint-disable-next-line import-x/no-nodejs-modules import EventEmitter from 'events'; -import { cloneDeep } from 'lodash'; +import { cloneDeep } from 'lodash-es'; import { v1 as random } from 'uuid'; -import { ADDRESS_ZERO, EMPTY_BYTES, VALUE_ZERO } from './constants'; -import { Bundler } from './helpers/Bundler'; -import { PendingUserOperationTracker } from './helpers/PendingUserOperationTracker'; -import { SnapSmartContractAccount } from './helpers/SnapSmartContractAccount'; -import { projectLogger as log } from './logger'; +import { ADDRESS_ZERO, EMPTY_BYTES, VALUE_ZERO } from './constants.js'; +import { Bundler } from './helpers/Bundler.js'; +import { PendingUserOperationTracker } from './helpers/PendingUserOperationTracker.js'; +import { SnapSmartContractAccount } from './helpers/SnapSmartContractAccount.js'; +import { projectLogger as log } from './logger.js'; import type { SmartContractAccount, UserOperation, UserOperationMetadata, -} from './types'; -import { UserOperationStatus } from './types'; -import type { UserOperationControllerMethodActions } from './UserOperationController-method-action-types'; -import { updateGas } from './utils/gas'; -import { updateGasFees } from './utils/gas-fees'; -import { getTransactionMetadata } from './utils/transaction'; +} from './types.js'; +import { UserOperationStatus } from './types.js'; +import type { UserOperationControllerMethodActions } from './UserOperationController-method-action-types.js'; +import { updateGasFees } from './utils/gas-fees.js'; +import { updateGas } from './utils/gas.js'; +import { getTransactionMetadata } from './utils/transaction.js'; import { validateAddUserOperationOptions, validateAddUserOperationRequest, validatePrepareUserOperationResponse, validateSignUserOperationResponse, validateUpdateUserOperationResponse, -} from './utils/validation'; +} from './utils/validation.js'; const controllerName = 'UserOperationController'; diff --git a/packages/user-operation-controller/src/helpers/Bundler.test.ts b/packages/user-operation-controller/src/helpers/Bundler.test.ts index 2beb90c8abe..d3ea8a8c74c 100644 --- a/packages/user-operation-controller/src/helpers/Bundler.test.ts +++ b/packages/user-operation-controller/src/helpers/Bundler.test.ts @@ -1,5 +1,5 @@ -import type { UserOperation } from '../types'; -import { Bundler } from './Bundler'; +import type { UserOperation } from '../types.js'; +import { Bundler } from './Bundler.js'; const URL_MOCK = 'http://test.com'; const ENTRYPOINT_MOCK = '0x123'; diff --git a/packages/user-operation-controller/src/helpers/Bundler.ts b/packages/user-operation-controller/src/helpers/Bundler.ts index 7e66581aeed..2f62701588c 100644 --- a/packages/user-operation-controller/src/helpers/Bundler.ts +++ b/packages/user-operation-controller/src/helpers/Bundler.ts @@ -1,5 +1,5 @@ -import { createModuleLogger, projectLogger } from '../logger'; -import type { UserOperation, UserOperationReceipt } from '../types'; +import { createModuleLogger, projectLogger } from '../logger.js'; +import type { UserOperation, UserOperationReceipt } from '../types.js'; const log = createModuleLogger(projectLogger, 'bundler'); diff --git a/packages/user-operation-controller/src/helpers/PendingUserOperationTracker.test.ts b/packages/user-operation-controller/src/helpers/PendingUserOperationTracker.test.ts index 36a66efd467..bd084a603f8 100644 --- a/packages/user-operation-controller/src/helpers/PendingUserOperationTracker.test.ts +++ b/packages/user-operation-controller/src/helpers/PendingUserOperationTracker.test.ts @@ -1,11 +1,11 @@ import { query } from '@metamask/controller-utils'; import type { NetworkControllerGetNetworkClientByIdAction } from '@metamask/network-controller'; -import type { UserOperationMetadata, UserOperationReceipt } from '../types'; -import { UserOperationStatus } from '../types'; -import type { UserOperationControllerMessenger } from '../UserOperationController'; -import * as BundlerHelper from './Bundler'; -import { PendingUserOperationTracker } from './PendingUserOperationTracker'; +import type { UserOperationMetadata, UserOperationReceipt } from '../types.js'; +import { UserOperationStatus } from '../types.js'; +import type { UserOperationControllerMessenger } from '../UserOperationController.js'; +import * as BundlerHelper from './Bundler.js'; +import { PendingUserOperationTracker } from './PendingUserOperationTracker.js'; const CHAIN_ID_MOCK = '0x5'; const NETWORK_CLIENT_ID_MOCK = 'testNetworkClientId'; diff --git a/packages/user-operation-controller/src/helpers/PendingUserOperationTracker.ts b/packages/user-operation-controller/src/helpers/PendingUserOperationTracker.ts index 99124feeb0a..f887a7e4050 100644 --- a/packages/user-operation-controller/src/helpers/PendingUserOperationTracker.ts +++ b/packages/user-operation-controller/src/helpers/PendingUserOperationTracker.ts @@ -12,11 +12,11 @@ import type { Hex } from '@metamask/utils'; // eslint-disable-next-line import-x/no-nodejs-modules import EventEmitter from 'events'; -import { projectLogger } from '../logger'; -import type { UserOperationMetadata, UserOperationReceipt } from '../types'; -import { UserOperationStatus } from '../types'; -import type { UserOperationControllerMessenger } from '../UserOperationController'; -import { Bundler } from './Bundler'; +import { projectLogger } from '../logger.js'; +import type { UserOperationMetadata, UserOperationReceipt } from '../types.js'; +import { UserOperationStatus } from '../types.js'; +import type { UserOperationControllerMessenger } from '../UserOperationController.js'; +import { Bundler } from './Bundler.js'; const log = createModuleLogger(projectLogger, 'pending-user-operations'); diff --git a/packages/user-operation-controller/src/helpers/SnapSmartContractAccount.test.ts b/packages/user-operation-controller/src/helpers/SnapSmartContractAccount.test.ts index 28b48d0a27c..77aaaf50b2a 100644 --- a/packages/user-operation-controller/src/helpers/SnapSmartContractAccount.test.ts +++ b/packages/user-operation-controller/src/helpers/SnapSmartContractAccount.test.ts @@ -1,17 +1,17 @@ import type { KeyringController } from '@metamask/keyring-controller'; -import { ADDRESS_ZERO, EMPTY_BYTES, VALUE_ZERO } from '../constants'; +import { ADDRESS_ZERO, EMPTY_BYTES, VALUE_ZERO } from '../constants.js'; import type { PrepareUserOperationResponse, SignUserOperationRequest, SignUserOperationResponse, UpdateUserOperationRequest, UpdateUserOperationResponse, -} from '../types'; -import type { PrepareUserOperationRequest } from '../types'; -import type { UserOperationControllerMessenger } from '../UserOperationController'; -import { toEip155ChainId } from '../utils/chain-id'; -import { SnapSmartContractAccount } from './SnapSmartContractAccount'; +} from '../types.js'; +import type { PrepareUserOperationRequest } from '../types.js'; +import type { UserOperationControllerMessenger } from '../UserOperationController.js'; +import { toEip155ChainId } from '../utils/chain-id.js'; +import { SnapSmartContractAccount } from './SnapSmartContractAccount.js'; const PREPARE_USER_OPERATION_REQUEST_MOCK: PrepareUserOperationRequest = { chainId: '0x1', diff --git a/packages/user-operation-controller/src/helpers/SnapSmartContractAccount.ts b/packages/user-operation-controller/src/helpers/SnapSmartContractAccount.ts index 78cddc4ccd7..54ae14a07d3 100644 --- a/packages/user-operation-controller/src/helpers/SnapSmartContractAccount.ts +++ b/packages/user-operation-controller/src/helpers/SnapSmartContractAccount.ts @@ -1,4 +1,4 @@ -import { ADDRESS_ZERO, EMPTY_BYTES, VALUE_ZERO } from '../constants'; +import { ADDRESS_ZERO, EMPTY_BYTES, VALUE_ZERO } from '../constants.js'; import type { PrepareUserOperationRequest, PrepareUserOperationResponse, @@ -7,9 +7,9 @@ import type { SmartContractAccount, UpdateUserOperationRequest, UpdateUserOperationResponse, -} from '../types'; -import type { UserOperationControllerMessenger } from '../UserOperationController'; -import { toEip155ChainId } from '../utils/chain-id'; +} from '../types.js'; +import type { UserOperationControllerMessenger } from '../UserOperationController.js'; +import { toEip155ChainId } from '../utils/chain-id.js'; export class SnapSmartContractAccount implements SmartContractAccount { readonly #messenger: UserOperationControllerMessenger; diff --git a/packages/user-operation-controller/src/index.ts b/packages/user-operation-controller/src/index.ts index a6a4fee803a..64c6fffa00b 100644 --- a/packages/user-operation-controller/src/index.ts +++ b/packages/user-operation-controller/src/index.ts @@ -1,7 +1,7 @@ -export * from './UserOperationController'; +export * from './UserOperationController.js'; export type { UserOperationControllerAddUserOperationAction, UserOperationControllerAddUserOperationFromTransactionAction, UserOperationControllerStartPollingByNetworkClientIdAction, -} from './UserOperationController-method-action-types'; -export * from './types'; +} from './UserOperationController-method-action-types.js'; +export * from './types.js'; diff --git a/packages/user-operation-controller/src/utils/chain-id.test.ts b/packages/user-operation-controller/src/utils/chain-id.test.ts index 1efa378c3bc..47f8f0f42aa 100644 --- a/packages/user-operation-controller/src/utils/chain-id.test.ts +++ b/packages/user-operation-controller/src/utils/chain-id.test.ts @@ -1,4 +1,4 @@ -import { toEip155ChainId } from './chain-id'; +import { toEip155ChainId } from './chain-id.js'; describe('chain-id', () => { describe('toEip155ChainId', () => { diff --git a/packages/user-operation-controller/src/utils/gas-fees.test.ts b/packages/user-operation-controller/src/utils/gas-fees.test.ts index 794c98870e7..79d3f396a55 100644 --- a/packages/user-operation-controller/src/utils/gas-fees.test.ts +++ b/packages/user-operation-controller/src/utils/gas-fees.test.ts @@ -3,10 +3,10 @@ import type { GasFeeState } from '@metamask/gas-fee-controller'; import { GAS_ESTIMATE_TYPES } from '@metamask/gas-fee-controller'; import { UserFeeLevel } from '@metamask/transaction-controller'; import type { TransactionParams } from '@metamask/transaction-controller'; -import { cloneDeep } from 'lodash'; +import { cloneDeep } from 'lodash-es'; -import type { UpdateGasFeesRequest } from './gas-fees'; -import { updateGasFees } from './gas-fees'; +import type { UpdateGasFeesRequest } from './gas-fees.js'; +import { updateGasFees } from './gas-fees.js'; jest.mock('@metamask/controller-utils', () => ({ ...jest.requireActual('@metamask/controller-utils'), diff --git a/packages/user-operation-controller/src/utils/gas-fees.ts b/packages/user-operation-controller/src/utils/gas-fees.ts index 45ebaaaa274..ee7d86d1f2e 100644 --- a/packages/user-operation-controller/src/utils/gas-fees.ts +++ b/packages/user-operation-controller/src/utils/gas-fees.ts @@ -13,10 +13,10 @@ import { UserFeeLevel } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; import { add0x } from '@metamask/utils'; -import { EMPTY_BYTES } from '../constants'; -import { createModuleLogger, projectLogger } from '../logger'; -import type { UserOperation, UserOperationMetadata } from '../types'; -import type { AddUserOperationRequest } from '../UserOperationController'; +import { EMPTY_BYTES } from '../constants.js'; +import { createModuleLogger, projectLogger } from '../logger.js'; +import type { UserOperation, UserOperationMetadata } from '../types.js'; +import type { AddUserOperationRequest } from '../UserOperationController.js'; const log = createModuleLogger(projectLogger, 'gas-fees'); diff --git a/packages/user-operation-controller/src/utils/gas.test.ts b/packages/user-operation-controller/src/utils/gas.test.ts index b8df1c484f4..35dc2c094a0 100644 --- a/packages/user-operation-controller/src/utils/gas.test.ts +++ b/packages/user-operation-controller/src/utils/gas.test.ts @@ -1,13 +1,13 @@ -import { cloneDeep } from 'lodash'; +import { cloneDeep } from 'lodash-es'; -import { VALUE_ZERO } from '../constants'; -import type { BundlerEstimateUserOperationGasResponse } from '../helpers/Bundler'; -import { Bundler } from '../helpers/Bundler'; +import { VALUE_ZERO } from '../constants.js'; +import type { BundlerEstimateUserOperationGasResponse } from '../helpers/Bundler.js'; +import { Bundler } from '../helpers/Bundler.js'; import type { PrepareUserOperationResponse, UserOperationMetadata, -} from '../types'; -import { updateGas } from './gas'; +} from '../types.js'; +import { updateGas } from './gas.js'; jest.mock('../helpers/Bundler', () => ({ Bundler: jest.fn(), diff --git a/packages/user-operation-controller/src/utils/gas.ts b/packages/user-operation-controller/src/utils/gas.ts index 3d5715832fc..ebc26d74402 100644 --- a/packages/user-operation-controller/src/utils/gas.ts +++ b/packages/user-operation-controller/src/utils/gas.ts @@ -2,13 +2,13 @@ import { hexToBN } from '@metamask/controller-utils'; import { add0x } from '@metamask/utils'; import BN from 'bn.js'; -import { VALUE_ZERO } from '../constants'; -import { Bundler } from '../helpers/Bundler'; -import { createModuleLogger, projectLogger } from '../logger'; +import { VALUE_ZERO } from '../constants.js'; +import { Bundler } from '../helpers/Bundler.js'; +import { createModuleLogger, projectLogger } from '../logger.js'; import type { PrepareUserOperationResponse, UserOperationMetadata, -} from '../types'; +} from '../types.js'; const log = createModuleLogger(projectLogger, 'gas'); diff --git a/packages/user-operation-controller/src/utils/transaction.test.ts b/packages/user-operation-controller/src/utils/transaction.test.ts index ee7e49561fb..8dd47a59519 100644 --- a/packages/user-operation-controller/src/utils/transaction.test.ts +++ b/packages/user-operation-controller/src/utils/transaction.test.ts @@ -1,14 +1,14 @@ -import type { TransactionParams } from '../../../transaction-controller/src'; +import type { TransactionParams } from '../../../transaction-controller/src.js'; import { TransactionStatus, TransactionType, UserFeeLevel, -} from '../../../transaction-controller/src'; -import { EMPTY_BYTES, VALUE_ZERO } from '../constants'; -import { UserOperationStatus } from '../types'; -import type { UserOperation } from '../types'; -import type { UserOperationMetadata } from '../types'; -import { getTransactionMetadata } from './transaction'; +} from '../../../transaction-controller/src.js'; +import { EMPTY_BYTES, VALUE_ZERO } from '../constants.js'; +import { UserOperationStatus } from '../types.js'; +import type { UserOperation } from '../types.js'; +import type { UserOperationMetadata } from '../types.js'; +import { getTransactionMetadata } from './transaction.js'; const USER_OPERATION_METADATA_MOCK: UserOperationMetadata = { id: 'testUserOperationId', diff --git a/packages/user-operation-controller/src/utils/transaction.ts b/packages/user-operation-controller/src/utils/transaction.ts index 72e90be3cec..f945ab2898b 100644 --- a/packages/user-operation-controller/src/utils/transaction.ts +++ b/packages/user-operation-controller/src/utils/transaction.ts @@ -11,9 +11,9 @@ import type { Hex } from '@metamask/utils'; import { add0x, remove0x } from '@metamask/utils'; import BN from 'bn.js'; -import { EMPTY_BYTES, VALUE_ZERO } from '../constants'; -import { UserOperationStatus } from '../types'; -import type { UserOperationMetadata } from '../types'; +import { EMPTY_BYTES, VALUE_ZERO } from '../constants.js'; +import { UserOperationStatus } from '../types.js'; +import type { UserOperationMetadata } from '../types.js'; /** * Converts a user operation metadata object into a transaction metadata object. diff --git a/packages/user-operation-controller/src/utils/validation.test.ts b/packages/user-operation-controller/src/utils/validation.test.ts index e6537f0f422..b7faa6daf56 100644 --- a/packages/user-operation-controller/src/utils/validation.test.ts +++ b/packages/user-operation-controller/src/utils/validation.test.ts @@ -1,24 +1,24 @@ /* eslint-disable jest/expect-expect */ import { TransactionType } from '@metamask/transaction-controller'; -import { cloneDeep } from 'lodash'; +import { cloneDeep } from 'lodash-es'; import type { PrepareUserOperationResponse, SignUserOperationResponse, UpdateUserOperationResponse, -} from '../types'; +} from '../types.js'; import type { AddUserOperationOptions, AddUserOperationRequest, -} from '../UserOperationController'; +} from '../UserOperationController.js'; import { validateAddUserOperationOptions, validateAddUserOperationRequest, validatePrepareUserOperationResponse, validateSignUserOperationResponse, validateUpdateUserOperationResponse, -} from './validation'; +} from './validation.js'; const ADD_USER_OPERATION_REQUEST_MOCK: AddUserOperationRequest = { data: '0x1', diff --git a/packages/user-operation-controller/src/utils/validation.ts b/packages/user-operation-controller/src/utils/validation.ts index 3e06d4b500f..221575f264d 100644 --- a/packages/user-operation-controller/src/utils/validation.ts +++ b/packages/user-operation-controller/src/utils/validation.ts @@ -14,16 +14,16 @@ import { import { TransactionType } from '@metamask/transaction-controller'; import { isStrictHexString } from '@metamask/utils'; -import { EMPTY_BYTES } from '../constants'; +import { EMPTY_BYTES } from '../constants.js'; import type { PrepareUserOperationResponse, SignUserOperationResponse, UpdateUserOperationResponse, -} from '../types'; +} from '../types.js'; import type { AddUserOperationOptions, AddUserOperationRequest, -} from '../UserOperationController'; +} from '../UserOperationController.js'; /** * Validate a request to add a user operation. From 799f37b6dadc069afea6230c19049d677865fdfb Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:48:37 +0200 Subject: [PATCH 078/136] ESLint fix and `jest` global import for transaction-controller --- packages/transaction-controller/package.json | 2 +- ...ansactionController-method-action-types.ts | 2 +- .../src/TransactionController.test.ts | 71 +++++++------ .../src/TransactionController.ts | 99 ++++++++++--------- .../TransactionControllerIntegration.test.ts | 26 +++-- .../src/api/accounts-api.test.ts | 6 +- .../src/api/accounts-api.ts | 4 +- .../src/api/simulation-api.test.ts | 11 ++- .../src/api/simulation-api.ts | 13 ++- packages/transaction-controller/src/errors.ts | 2 +- .../src/gas-flows/DefaultGasFeeFlow.test.ts | 8 +- .../src/gas-flows/DefaultGasFeeFlow.ts | 20 ++-- .../src/gas-flows/LineaGasFeeFlow.test.ts | 14 +-- .../src/gas-flows/LineaGasFeeFlow.ts | 18 ++-- .../gas-flows/MantleLayer1GasFeeFlow.test.ts | 12 +-- .../src/gas-flows/MantleLayer1GasFeeFlow.ts | 10 +- .../OptimismLayer1GasFeeFlow.test.ts | 10 +- .../src/gas-flows/OptimismLayer1GasFeeFlow.ts | 8 +- .../gas-flows/OracleLayer1GasFeeFlow.test.ts | 12 +-- .../src/gas-flows/OracleLayer1GasFeeFlow.ts | 10 +- .../RandomisedEstimationsGasFeeFlow.test.ts | 12 +-- .../RandomisedEstimationsGasFeeFlow.ts | 20 ++-- .../gas-flows/ScrollLayer1GasFeeFlow.test.ts | 10 +- .../src/gas-flows/ScrollLayer1GasFeeFlow.ts | 8 +- .../src/gas-flows/TestGasFeeFlow.test.ts | 6 +- .../src/gas-flows/TestGasFeeFlow.ts | 4 +- .../src/helpers/GasFeePoller.test.ts | 16 +-- .../src/helpers/GasFeePoller.ts | 16 +-- .../src/helpers/MethodDataHelper.test.ts | 6 +- .../src/helpers/MethodDataHelper.ts | 6 +- .../helpers/MultichainTrackingHelper.test.ts | 10 +- .../src/helpers/MultichainTrackingHelper.ts | 4 +- .../helpers/PendingTransactionTracker.test.ts | 12 +-- .../src/helpers/PendingTransactionTracker.ts | 18 ++-- .../src/helpers/ResimulateHelper.test.ts | 12 +-- .../src/helpers/ResimulateHelper.ts | 10 +- .../src/helpers/TransactionPoller.test.ts | 8 +- .../src/helpers/TransactionPoller.ts | 10 +- .../src/hooks/CollectPublishHook.test.ts | 16 +-- .../src/hooks/CollectPublishHook.ts | 12 ++- .../ExtraTransactionsPublishHook.test.ts | 8 +- .../src/hooks/ExtraTransactionsPublishHook.ts | 6 +- .../hooks/SequentialPublishBatchHook.test.ts | 8 +- .../src/hooks/SequentialPublishBatchHook.ts | 6 +- packages/transaction-controller/src/index.ts | 26 ++--- packages/transaction-controller/src/types.ts | 2 +- .../src/utils/balance-changes.test.ts | 20 ++-- .../src/utils/balance-changes.ts | 20 ++-- .../src/utils/balance.test.ts | 11 ++- .../src/utils/balance.ts | 6 +- .../src/utils/batch.test.ts | 36 +++---- .../transaction-controller/src/utils/batch.ts | 50 +++++----- .../src/utils/eip7702.test.ts | 16 +-- .../src/utils/eip7702.ts | 12 +-- .../src/utils/external-transactions.test.ts | 6 +- .../src/utils/external-transactions.ts | 4 +- .../src/utils/feature-flags.test.ts | 8 +- .../src/utils/feature-flags.ts | 8 +- .../src/utils/first-time-interaction.test.ts | 12 +-- .../src/utils/first-time-interaction.ts | 14 +-- .../src/utils/gas-fee-tokens.test.ts | 16 +-- .../src/utils/gas-fee-tokens.ts | 26 ++--- .../src/utils/gas-fees.test.ts | 12 +-- .../src/utils/gas-fees.ts | 16 ++- .../src/utils/gas-flow.test.ts | 8 +- .../src/utils/gas-flow.ts | 16 +-- .../src/utils/gas.test.ts | 30 +++--- .../transaction-controller/src/utils/gas.ts | 21 ++-- .../src/utils/layer1-gas-fee-flow.test.ts | 10 +- .../src/utils/layer1-gas-fee-flow.ts | 8 +- .../src/utils/nonce.test.ts | 9 +- .../transaction-controller/src/utils/nonce.ts | 4 +- .../src/utils/prepare.test.ts | 6 +- .../src/utils/prepare.ts | 4 +- .../src/utils/provider.test.ts | 4 +- .../src/utils/provider.ts | 4 +- .../src/utils/retry.test.ts | 4 +- .../transaction-controller/src/utils/retry.ts | 2 +- .../src/utils/revert-reason.test.ts | 8 +- .../src/utils/revert-reason.ts | 8 +- .../src/utils/signature.test.ts | 2 +- .../src/utils/swaps.test.ts | 14 +-- .../transaction-controller/src/utils/swaps.ts | 18 ++-- .../src/utils/transaction-type.test.ts | 10 +- .../src/utils/transaction-type.ts | 13 ++- .../src/utils/utils.test.ts | 6 +- .../transaction-controller/src/utils/utils.ts | 8 +- .../src/utils/validation.test.ts | 6 +- .../src/utils/validation.ts | 6 +- .../tests/JsonRpcRequestMocks.ts | 2 +- 90 files changed, 592 insertions(+), 562 deletions(-) diff --git a/packages/transaction-controller/package.json b/packages/transaction-controller/package.json index da41ee3e2f1..3d755084c69 100644 --- a/packages/transaction-controller/package.json +++ b/packages/transaction-controller/package.json @@ -73,7 +73,7 @@ "bn.js": "^5.2.1", "eth-method-registry": "^4.0.0", "fast-json-patch": "^3.1.1", - "lodash": "^4.17.21", + "lodash-es": "^4.17.21", "uuid": "^8.3.2" }, "devDependencies": { diff --git a/packages/transaction-controller/src/TransactionController-method-action-types.ts b/packages/transaction-controller/src/TransactionController-method-action-types.ts index ab865d28b14..194d8a98d4e 100644 --- a/packages/transaction-controller/src/TransactionController-method-action-types.ts +++ b/packages/transaction-controller/src/TransactionController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { TransactionController } from './TransactionController'; +import type { TransactionController } from './TransactionController.js'; /** * Handle new method data request. diff --git a/packages/transaction-controller/src/TransactionController.test.ts b/packages/transaction-controller/src/TransactionController.test.ts index a1c1d072381..124d4118a88 100644 --- a/packages/transaction-controller/src/TransactionController.test.ts +++ b/packages/transaction-controller/src/TransactionController.test.ts @@ -1,4 +1,3 @@ -/* eslint-disable jest/unbound-method */ /* eslint-disable @typescript-eslint/naming-convention */ /* eslint-disable camelcase */ /* eslint-disable jest/expect-expect */ @@ -42,34 +41,34 @@ import assert from 'assert'; // eslint-disable-next-line import-x/namespace import * as uuidModule from 'uuid'; -import { FakeBlockTracker } from '../../../tests/fake-block-tracker'; -import { FakeProvider } from '../../../tests/fake-provider'; -import { flushPromises } from '../../../tests/helpers'; +import { FakeBlockTracker } from '../../../tests/fake-block-tracker.js'; +import { FakeProvider } from '../../../tests/fake-provider.js'; +import { flushPromises } from '../../../tests/helpers.js'; import { buildCustomNetworkClientConfiguration, buildMockFindNetworkClientIdByChainId, buildMockGetNetworkClientById, -} from '../../network-controller/tests/helpers'; -import { CHAIN_IDS } from './constants'; -import { DefaultGasFeeFlow } from './gas-flows/DefaultGasFeeFlow'; -import { LineaGasFeeFlow } from './gas-flows/LineaGasFeeFlow'; -import { RandomisedEstimationsGasFeeFlow } from './gas-flows/RandomisedEstimationsGasFeeFlow'; -import { TestGasFeeFlow } from './gas-flows/TestGasFeeFlow'; +} from '../../network-controller/tests/helpers.js'; +import { CHAIN_IDS } from './constants.js'; +import { DefaultGasFeeFlow } from './gas-flows/DefaultGasFeeFlow.js'; +import { LineaGasFeeFlow } from './gas-flows/LineaGasFeeFlow.js'; +import { RandomisedEstimationsGasFeeFlow } from './gas-flows/RandomisedEstimationsGasFeeFlow.js'; +import { TestGasFeeFlow } from './gas-flows/TestGasFeeFlow.js'; import { updateTransactionGasEstimates, GasFeePoller, -} from './helpers/GasFeePoller'; -import { MethodDataHelper } from './helpers/MethodDataHelper'; -import { MultichainTrackingHelper } from './helpers/MultichainTrackingHelper'; -import { PendingTransactionTracker } from './helpers/PendingTransactionTracker'; -import { shouldResimulate } from './helpers/ResimulateHelper'; -import { ExtraTransactionsPublishHook } from './hooks/ExtraTransactionsPublishHook'; +} from './helpers/GasFeePoller.js'; +import { MethodDataHelper } from './helpers/MethodDataHelper.js'; +import { MultichainTrackingHelper } from './helpers/MultichainTrackingHelper.js'; +import { PendingTransactionTracker } from './helpers/PendingTransactionTracker.js'; +import { shouldResimulate } from './helpers/ResimulateHelper.js'; +import { ExtraTransactionsPublishHook } from './hooks/ExtraTransactionsPublishHook.js'; import type { MethodData, TransactionControllerMessenger, TransactionControllerOptions, -} from './TransactionController'; -import { TransactionController } from './TransactionController'; +} from './TransactionController.js'; +import { TransactionController } from './TransactionController.js'; import type { TransactionMeta, DappSuggestedGasFees, @@ -84,7 +83,7 @@ import type { GasFeeEstimates, SimulationData, GetSimulationConfig, -} from './types'; +} from './types.js'; import { GasFeeEstimateLevel, GasFeeEstimateType, @@ -95,35 +94,35 @@ import { TransactionStatus, TransactionType, WalletDevice, -} from './types'; -import { getBalanceChanges } from './utils/balance-changes'; -import { addTransactionBatch } from './utils/batch'; -import { getDelegationAddress } from './utils/eip7702'; +} from './types.js'; +import { getBalanceChanges } from './utils/balance-changes.js'; +import { addTransactionBatch } from './utils/batch.js'; +import { getDelegationAddress } from './utils/eip7702.js'; import { getSubmitHistoryLimit, getTransactionHistoryLimit, -} from './utils/feature-flags'; -import { updateFirstTimeInteraction } from './utils/first-time-interaction'; +} from './utils/feature-flags.js'; +import { updateFirstTimeInteraction } from './utils/first-time-interaction.js'; +import { getGasFeeTokens } from './utils/gas-fee-tokens.js'; +import { updateGasFees } from './utils/gas-fees.js'; +import { getGasFeeFlow } from './utils/gas-flow.js'; import { addGasBuffer, estimateGas, estimateGasBatch, updateGas, -} from './utils/gas'; -import { getGasFeeTokens } from './utils/gas-fee-tokens'; -import { updateGasFees } from './utils/gas-fees'; -import { getGasFeeFlow } from './utils/gas-flow'; +} from './utils/gas.js'; import { getTransactionLayer1GasFee, updateTransactionLayer1GasFee, -} from './utils/layer1-gas-fee-flow'; -import { rpcRequest } from './utils/provider'; +} from './utils/layer1-gas-fee-flow.js'; +import { rpcRequest } from './utils/provider.js'; import { updatePostTransactionBalance, updateSwapsTransaction, -} from './utils/swaps'; -import * as transactionTypeUtils from './utils/transaction-type'; -import { ErrorCode } from './utils/validation'; +} from './utils/swaps.js'; +import * as transactionTypeUtils from './utils/transaction-type.js'; +import { ErrorCode } from './utils/validation.js'; type AllTransactionControllerActions = MessengerActions; @@ -1325,6 +1324,7 @@ describe('TransactionController', () => { it('updates state when helper emits update event', async () => { const { controller } = setupController(); + // eslint-disable-next-line jest/unbound-method jest.mocked(methodDataHelperMock.hub.on).mock.calls[0][1]({ fourBytePrefix: '0x12345678', methodData: METHOD_DATA_MOCK, @@ -5769,8 +5769,7 @@ describe('TransactionController', () => { }; // Send the transaction to put it in the process of being signed - // eslint-disable-next-line @typescript-eslint/no-floating-promises - controller.approveTransactionsWithSameNonce([mockTransactionParam]); + void controller.approveTransactionsWithSameNonce([mockTransactionParam]); // Now send it one more time to test that it doesn't get signed again const result = await controller.approveTransactionsWithSameNonce([ diff --git a/packages/transaction-controller/src/TransactionController.ts b/packages/transaction-controller/src/TransactionController.ts index b0ff4cd3533..f6d20469b53 100644 --- a/packages/transaction-controller/src/TransactionController.ts +++ b/packages/transaction-controller/src/TransactionController.ts @@ -68,33 +68,33 @@ import { add0x } from '@metamask/utils'; // This package purposefully relies on Node's EventEmitter module. // eslint-disable-next-line import-x/no-nodejs-modules import { EventEmitter } from 'events'; -import { cloneDeep, mapValues, merge, noop, pickBy, sortBy } from 'lodash'; +import { cloneDeep, mapValues, merge, noop, pickBy, sortBy } from 'lodash-es'; import { v1 as random } from 'uuid'; -import { DefaultGasFeeFlow } from './gas-flows/DefaultGasFeeFlow'; -import { LineaGasFeeFlow } from './gas-flows/LineaGasFeeFlow'; -import { MantleLayer1GasFeeFlow } from './gas-flows/MantleLayer1GasFeeFlow'; -import { OptimismLayer1GasFeeFlow } from './gas-flows/OptimismLayer1GasFeeFlow'; -import { RandomisedEstimationsGasFeeFlow } from './gas-flows/RandomisedEstimationsGasFeeFlow'; -import { ScrollLayer1GasFeeFlow } from './gas-flows/ScrollLayer1GasFeeFlow'; -import { TestGasFeeFlow } from './gas-flows/TestGasFeeFlow'; +import { DefaultGasFeeFlow } from './gas-flows/DefaultGasFeeFlow.js'; +import { LineaGasFeeFlow } from './gas-flows/LineaGasFeeFlow.js'; +import { MantleLayer1GasFeeFlow } from './gas-flows/MantleLayer1GasFeeFlow.js'; +import { OptimismLayer1GasFeeFlow } from './gas-flows/OptimismLayer1GasFeeFlow.js'; +import { RandomisedEstimationsGasFeeFlow } from './gas-flows/RandomisedEstimationsGasFeeFlow.js'; +import { ScrollLayer1GasFeeFlow } from './gas-flows/ScrollLayer1GasFeeFlow.js'; +import { TestGasFeeFlow } from './gas-flows/TestGasFeeFlow.js'; import { GasFeePoller, updateTransactionGasProperties, updateTransactionGasEstimates, -} from './helpers/GasFeePoller'; -import { MethodDataHelper } from './helpers/MethodDataHelper'; -import { MultichainTrackingHelper } from './helpers/MultichainTrackingHelper'; -import { PendingTransactionTracker } from './helpers/PendingTransactionTracker'; -import type { ResimulateResponse } from './helpers/ResimulateHelper'; +} from './helpers/GasFeePoller.js'; +import { MethodDataHelper } from './helpers/MethodDataHelper.js'; +import { MultichainTrackingHelper } from './helpers/MultichainTrackingHelper.js'; +import { PendingTransactionTracker } from './helpers/PendingTransactionTracker.js'; +import type { ResimulateResponse } from './helpers/ResimulateHelper.js'; import { ResimulateHelper, hasSimulationDataChanged, shouldResimulate, -} from './helpers/ResimulateHelper'; -import { ExtraTransactionsPublishHook } from './hooks/ExtraTransactionsPublishHook'; -import { projectLogger as log } from './logger'; -import type { TransactionControllerMethodActions } from './TransactionController-method-action-types'; +} from './helpers/ResimulateHelper.js'; +import { ExtraTransactionsPublishHook } from './hooks/ExtraTransactionsPublishHook.js'; +import { projectLogger as log } from './logger.js'; +import type { TransactionControllerMethodActions } from './TransactionController-method-action-types.js'; import type { DappSuggestedGasFees, Layer1GasFeeFlow, @@ -129,7 +129,7 @@ import type { AddTransactionOptions, PublishHookResult, GetGasFeeTokensRequest, -} from './types'; +} from './types.js'; import { GasFeeEstimateLevel, TransactionContainerType, @@ -137,49 +137,53 @@ import { TransactionType, TransactionStatus, SimulationErrorCode, -} from './types'; -import { getBalanceChanges } from './utils/balance-changes'; -import { addTransactionBatch, isAtomicBatchSupported } from './utils/batch'; +} from './types.js'; +import { getBalanceChanges } from './utils/balance-changes.js'; +import { addTransactionBatch, isAtomicBatchSupported } from './utils/batch.js'; import { generateEIP7702BatchTransaction, getDelegationAddress, signAuthorizationList, -} from './utils/eip7702'; -import { validateConfirmedExternalTransaction } from './utils/external-transactions'; +} from './utils/eip7702.js'; +import { validateConfirmedExternalTransaction } from './utils/external-transactions.js'; import { getSubmitHistoryLimit, getTransactionHistoryLimit, -} from './utils/feature-flags'; -import { updateFirstTimeInteraction } from './utils/first-time-interaction'; -import type { EstimateGasBatchResult } from './utils/gas'; +} from './utils/feature-flags.js'; +import { updateFirstTimeInteraction } from './utils/first-time-interaction.js'; +import { + checkGasFeeTokenBeforePublish, + getGasFeeTokens, +} from './utils/gas-fee-tokens.js'; +import { updateGasFees } from './utils/gas-fees.js'; +import { getGasFeeFlow } from './utils/gas-flow.js'; +import type { EstimateGasBatchResult } from './utils/gas.js'; import { addGasBuffer, estimateGas, estimateGasBatch, updateGas, -} from './utils/gas'; -import { - checkGasFeeTokenBeforePublish, - getGasFeeTokens, -} from './utils/gas-fee-tokens'; -import { updateGasFees } from './utils/gas-fees'; -import { getGasFeeFlow } from './utils/gas-flow'; +} from './utils/gas.js'; import { getTransactionLayer1GasFee, updateTransactionLayer1GasFee, -} from './utils/layer1-gas-fee-flow'; +} from './utils/layer1-gas-fee-flow.js'; import { getAndFormatTransactionsForNonceTracker, getNextNonce, -} from './utils/nonce'; -import { prepareTransaction, serializeTransaction } from './utils/prepare'; -import { getChainId, getNetworkClientId, rpcRequest } from './utils/provider'; -import { getTransactionParamsWithIncreasedGasFee } from './utils/retry'; +} from './utils/nonce.js'; +import { prepareTransaction, serializeTransaction } from './utils/prepare.js'; +import { + getChainId, + getNetworkClientId, + rpcRequest, +} from './utils/provider.js'; +import { getTransactionParamsWithIncreasedGasFee } from './utils/retry.js'; import { updatePostTransactionBalance, updateSwapsTransaction, -} from './utils/swaps'; -import { determineTransactionType } from './utils/transaction-type'; +} from './utils/swaps.js'; +import { determineTransactionType } from './utils/transaction-type.js'; import { normalizeTransactionParams, isEIP1559Transaction, @@ -189,12 +193,12 @@ import { normalizeTxError, normalizeGasFeeValues, setEnvelopeType, -} from './utils/utils'; +} from './utils/utils.js'; import { ErrorCode, validateTransactionOrigin, validateTxParams, -} from './utils/validation'; +} from './utils/validation.js'; /** * Metadata for the TransactionController state, describing how to "anonymize" @@ -1223,7 +1227,7 @@ export class TransactionController extends BaseController< } else { const newTransactionMeta = cloneDeep(addedTransactionMeta); - this.#updateGasProperties(newTransactionMeta) + void this.#updateGasProperties(newTransactionMeta) .then(() => { this.#updateTransactionInternal( { @@ -1259,7 +1263,7 @@ export class TransactionController extends BaseController< this.#addMetadata(addedTransactionMeta); - delegationAddressPromise + void delegationAddressPromise .then((delegationAddress) => { this.#updateTransactionInternal( { @@ -2351,13 +2355,12 @@ export class TransactionController extends BaseController< // object as predicate keys can be either. if (key in transaction.txParams) { // TODO: Replace `any` with type - // eslint-disable-next-line @typescript-eslint/no-explicit-any - if (predicate((transaction.txParams as any)[key]) === false) { + + if (predicate(transaction.txParams[key]) === false) { return false; } // TODO: Replace `any` with type - // eslint-disable-next-line @typescript-eslint/no-explicit-any - } else if (predicate((transaction as any)[key]) === false) { + } else if (predicate(transaction[key]) === false) { return false; } } diff --git a/packages/transaction-controller/src/TransactionControllerIntegration.test.ts b/packages/transaction-controller/src/TransactionControllerIntegration.test.ts index 6a577a314c4..1e23ab5b85e 100644 --- a/packages/transaction-controller/src/TransactionControllerIntegration.test.ts +++ b/packages/transaction-controller/src/TransactionControllerIntegration.test.ts @@ -35,14 +35,14 @@ import type { RemoteFeatureFlagControllerGetStateAction } from '@metamask/remote import assert from 'assert'; import { v4 as uuidV4 } from 'uuid'; -import { jestAdvanceTime } from '../../../tests/helpers'; -import { mockNetwork } from '../../../tests/mock-network'; +import { jestAdvanceTime } from '../../../tests/helpers.js'; +import { mockNetwork } from '../../../tests/mock-network.js'; import { buildAddNetworkFields, buildCustomNetworkClientConfiguration, buildUpdateNetworkCustomRpcEndpointFields, -} from '../../network-controller/tests/helpers'; -import { getDefaultRemoteFeatureFlagControllerState } from '../../remote-feature-flag-controller/src/remote-feature-flag-controller'; +} from '../../network-controller/tests/helpers.js'; +import { getDefaultRemoteFeatureFlagControllerState } from '../../remote-feature-flag-controller/src/remote-feature-flag-controller.js'; import { buildEthGasPriceRequestMock, buildEthBlockNumberRequestMock, @@ -53,14 +53,14 @@ import { buildEthGetBlockByHashRequestMock, buildEthSendRawTransactionRequestMock, buildEthGetTransactionReceiptRequestMock, -} from '../tests/JsonRpcRequestMocks'; +} from '../tests/JsonRpcRequestMocks.js'; import type { TransactionControllerMessenger, TransactionControllerOptions, -} from './TransactionController'; -import { TransactionController } from './TransactionController'; -import type { InternalAccount } from './types'; -import { TransactionStatus, TransactionType } from './types'; +} from './TransactionController.js'; +import { TransactionController } from './TransactionController.js'; +import type { InternalAccount } from './types.js'; +import { TransactionStatus, TransactionType } from './types.js'; jest.mock('uuid', () => { const actual = jest.requireActual('uuid'); @@ -1316,9 +1316,7 @@ describe('TransactionController Integration', () => { ]); expect(secondNonceLockIfAcquired).toBeNull(); - // TODO: Either fix this lint violation or explain why it's necessary to ignore. - // eslint-disable-next-line @typescript-eslint/await-thenable - await firstNonceLock.releaseLock(); + firstNonceLock.releaseLock(); await jestAdvanceTime({ duration: 1 }); secondNonceLockIfAcquired = await Promise.race([ @@ -1409,9 +1407,7 @@ describe('TransactionController Integration', () => { ]); expect(secondNonceLockIfAcquired).toBeNull(); - // TODO: Either fix this lint violation or explain why it's necessary to ignore. - // eslint-disable-next-line @typescript-eslint/await-thenable - await firstNonceLock.releaseLock(); + firstNonceLock.releaseLock(); await jestAdvanceTime({ duration: 1 }); secondNonceLockIfAcquired = await Promise.race([ diff --git a/packages/transaction-controller/src/api/accounts-api.test.ts b/packages/transaction-controller/src/api/accounts-api.test.ts index fbcc6fc196a..59d718df33a 100644 --- a/packages/transaction-controller/src/api/accounts-api.test.ts +++ b/packages/transaction-controller/src/api/accounts-api.test.ts @@ -1,8 +1,8 @@ import { successfulFetch } from '@metamask/controller-utils'; -import { FirstTimeInteractionError } from '../errors'; -import type { GetAccountAddressRelationshipRequest } from './accounts-api'; -import { getAccountAddressRelationship } from './accounts-api'; +import { FirstTimeInteractionError } from '../errors.js'; +import type { GetAccountAddressRelationshipRequest } from './accounts-api.js'; +import { getAccountAddressRelationship } from './accounts-api.js'; jest.mock('@metamask/controller-utils', () => ({ ...jest.requireActual('@metamask/controller-utils'), diff --git a/packages/transaction-controller/src/api/accounts-api.ts b/packages/transaction-controller/src/api/accounts-api.ts index 69fd3235112..4684955ece8 100644 --- a/packages/transaction-controller/src/api/accounts-api.ts +++ b/packages/transaction-controller/src/api/accounts-api.ts @@ -1,8 +1,8 @@ import { successfulFetch } from '@metamask/controller-utils'; import { createModuleLogger } from '@metamask/utils'; -import { FirstTimeInteractionError } from '../errors'; -import { projectLogger } from '../logger'; +import { FirstTimeInteractionError } from '../errors.js'; +import { projectLogger } from '../logger.js'; export type AccountAddressRelationshipResponse = { chainId?: number; diff --git a/packages/transaction-controller/src/api/simulation-api.test.ts b/packages/transaction-controller/src/api/simulation-api.test.ts index c70e5f2d527..8148c9bee08 100644 --- a/packages/transaction-controller/src/api/simulation-api.test.ts +++ b/packages/transaction-controller/src/api/simulation-api.test.ts @@ -1,10 +1,13 @@ import type { Hex } from '@metamask/utils'; -import { cloneDeep } from 'lodash'; +import { cloneDeep } from 'lodash-es'; import type { GetSimulationConfig } from 'src'; -import { CHAIN_IDS, DELEGATION_MANAGER_ADDRESSES } from '../constants'; -import type { SimulationRequest, SimulationResponse } from './simulation-api'; -import { simulateTransactions } from './simulation-api'; +import { CHAIN_IDS, DELEGATION_MANAGER_ADDRESSES } from '../constants.js'; +import type { + SimulationRequest, + SimulationResponse, +} from './simulation-api.js'; +import { simulateTransactions } from './simulation-api.js'; const CHAIN_ID_MOCK = '0x1'; const CHAIN_ID_MOCK_DECIMAL = 1; diff --git a/packages/transaction-controller/src/api/simulation-api.ts b/packages/transaction-controller/src/api/simulation-api.ts index 4cdd3bfa795..ff16cbbb050 100644 --- a/packages/transaction-controller/src/api/simulation-api.ts +++ b/packages/transaction-controller/src/api/simulation-api.ts @@ -1,15 +1,18 @@ import { convertHexToDecimal } from '@metamask/controller-utils'; import { createModuleLogger } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import { cloneDeep } from 'lodash'; +import { cloneDeep } from 'lodash-es'; import { CODE_DELEGATION_MANAGER_NO_SIGNATURE_ERRORS, DELEGATION_MANAGER_ADDRESSES, -} from '../constants'; -import { SimulationChainNotSupportedError, SimulationError } from '../errors'; -import { projectLogger } from '../logger'; -import type { GetSimulationConfig } from '../types'; +} from '../constants.js'; +import { + SimulationChainNotSupportedError, + SimulationError, +} from '../errors.js'; +import { projectLogger } from '../logger.js'; +import type { GetSimulationConfig } from '../types.js'; const log = createModuleLogger(projectLogger, 'simulation-api'); diff --git a/packages/transaction-controller/src/errors.ts b/packages/transaction-controller/src/errors.ts index 53f79810aa5..d4e83a8888c 100644 --- a/packages/transaction-controller/src/errors.ts +++ b/packages/transaction-controller/src/errors.ts @@ -1,6 +1,6 @@ import type { Hex } from '@metamask/utils'; -import { SimulationErrorCode } from './types'; +import { SimulationErrorCode } from './types.js'; export class SimulationError extends Error { code?: string | number; diff --git a/packages/transaction-controller/src/gas-flows/DefaultGasFeeFlow.test.ts b/packages/transaction-controller/src/gas-flows/DefaultGasFeeFlow.test.ts index 97bdcf42f48..b253d1438e1 100644 --- a/packages/transaction-controller/src/gas-flows/DefaultGasFeeFlow.test.ts +++ b/packages/transaction-controller/src/gas-flows/DefaultGasFeeFlow.test.ts @@ -6,15 +6,15 @@ import type { } from '@metamask/gas-fee-controller'; import { GAS_ESTIMATE_TYPES } from '@metamask/gas-fee-controller'; -import type { TransactionControllerMessenger } from '../TransactionController'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; import type { FeeMarketGasFeeEstimates, GasPriceGasFeeEstimates, LegacyGasFeeEstimates, TransactionMeta, -} from '../types'; -import { GasFeeEstimateType, TransactionStatus } from '../types'; -import { DefaultGasFeeFlow } from './DefaultGasFeeFlow'; +} from '../types.js'; +import { GasFeeEstimateType, TransactionStatus } from '../types.js'; +import { DefaultGasFeeFlow } from './DefaultGasFeeFlow.js'; const TRANSACTION_META_MOCK: TransactionMeta = { id: '1', diff --git a/packages/transaction-controller/src/gas-flows/DefaultGasFeeFlow.ts b/packages/transaction-controller/src/gas-flows/DefaultGasFeeFlow.ts index 1810023ec5a..c56223ef692 100644 --- a/packages/transaction-controller/src/gas-flows/DefaultGasFeeFlow.ts +++ b/packages/transaction-controller/src/gas-flows/DefaultGasFeeFlow.ts @@ -7,7 +7,7 @@ import { GAS_ESTIMATE_TYPES } from '@metamask/gas-fee-controller'; import type { Hex } from '@metamask/utils'; import { createModuleLogger } from '@metamask/utils'; -import { projectLogger } from '../logger'; +import { projectLogger } from '../logger.js'; import type { FeeMarketGasFeeEstimateForLevel, FeeMarketGasFeeEstimates, @@ -17,9 +17,9 @@ import type { GasFeeFlowResponse, GasPriceGasFeeEstimates, LegacyGasFeeEstimates, -} from '../types'; -import { GasFeeEstimateLevel, GasFeeEstimateType } from '../types'; -import { gweiDecimalToWeiHex } from '../utils/gas-fees'; +} from '../types.js'; +import { GasFeeEstimateLevel, GasFeeEstimateType } from '../types.js'; +import { gweiDecimalToWeiHex } from '../utils/gas-fees.js'; const log = createModuleLogger(projectLogger, 'default-gas-fee-flow'); @@ -62,12 +62,14 @@ export class DefaultGasFeeFlow implements GasFeeFlow { #getFeeMarkEstimates( gasFeeEstimates: FeeMarketGasPriceEstimate, ): FeeMarketGasFeeEstimates { - const levels = Object.values(GasFeeEstimateLevel).reduce( + const levels = Object.values(GasFeeEstimateLevel).reduce< + Omit + >( (result, level) => ({ ...result, [level]: this.#getFeeMarketLevel(gasFeeEstimates, level), }), - {} as Omit, + {}, ); return { @@ -79,12 +81,14 @@ export class DefaultGasFeeFlow implements GasFeeFlow { #getLegacyEstimates( gasFeeEstimates: LegacyGasPriceEstimate, ): LegacyGasFeeEstimates { - const levels = Object.values(GasFeeEstimateLevel).reduce( + const levels = Object.values(GasFeeEstimateLevel).reduce< + Omit + >( (result, level) => ({ ...result, [level]: this.#getLegacyLevel(gasFeeEstimates, level), }), - {} as Omit, + {}, ); return { diff --git a/packages/transaction-controller/src/gas-flows/LineaGasFeeFlow.test.ts b/packages/transaction-controller/src/gas-flows/LineaGasFeeFlow.test.ts index 2988ce3f262..7e35e21412a 100644 --- a/packages/transaction-controller/src/gas-flows/LineaGasFeeFlow.test.ts +++ b/packages/transaction-controller/src/gas-flows/LineaGasFeeFlow.test.ts @@ -1,22 +1,22 @@ import type { GasFeeState } from '@metamask/gas-fee-controller'; import { GAS_ESTIMATE_TYPES } from '@metamask/gas-fee-controller'; -import { CHAIN_IDS } from '../constants'; -import type { TransactionControllerMessenger } from '../TransactionController'; +import { CHAIN_IDS } from '../constants.js'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; import type { FeeMarketGasFeeEstimates, GasFeeFlowRequest, GasFeeFlowResponse, TransactionMeta, -} from '../types'; +} from '../types.js'; import { GasFeeEstimateLevel, GasFeeEstimateType, TransactionStatus, -} from '../types'; -import { rpcRequest } from '../utils/provider'; -import { DefaultGasFeeFlow } from './DefaultGasFeeFlow'; -import { LineaGasFeeFlow } from './LineaGasFeeFlow'; +} from '../types.js'; +import { rpcRequest } from '../utils/provider.js'; +import { DefaultGasFeeFlow } from './DefaultGasFeeFlow.js'; +import { LineaGasFeeFlow } from './LineaGasFeeFlow.js'; jest.mock('../utils/provider', () => ({ rpcRequest: jest.fn(), diff --git a/packages/transaction-controller/src/gas-flows/LineaGasFeeFlow.ts b/packages/transaction-controller/src/gas-flows/LineaGasFeeFlow.ts index fcdadaf94f5..004bfef53ed 100644 --- a/packages/transaction-controller/src/gas-flows/LineaGasFeeFlow.ts +++ b/packages/transaction-controller/src/gas-flows/LineaGasFeeFlow.ts @@ -4,18 +4,18 @@ import { createModuleLogger } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; import type BN from 'bn.js'; -import { projectLogger } from '../logger'; -import type { TransactionControllerMessenger } from '../TransactionController'; +import { projectLogger } from '../logger.js'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; import type { GasFeeEstimates, GasFeeFlow, GasFeeFlowRequest, GasFeeFlowResponse, TransactionMeta, -} from '../types'; -import { GasFeeEstimateLevel, GasFeeEstimateType } from '../types'; -import { rpcRequest } from '../utils/provider'; -import { DefaultGasFeeFlow } from './DefaultGasFeeFlow'; +} from '../types.js'; +import { GasFeeEstimateLevel, GasFeeEstimateType } from '../types.js'; +import { rpcRequest } from '../utils/provider.js'; +import { DefaultGasFeeFlow } from './DefaultGasFeeFlow.js'; type LineaEstimateGasResponse = { baseFeePerGas: Hex; @@ -102,7 +102,9 @@ export class LineaGasFeeFlow implements GasFeeFlow { log('Generated max fees', this.#feesToString(maxFees)); - const estimates = Object.values(GasFeeEstimateLevel).reduce( + const estimates = Object.values( + GasFeeEstimateLevel, + ).reduce( (result, level) => ({ ...result, [level]: { @@ -110,7 +112,7 @@ export class LineaGasFeeFlow implements GasFeeFlow { maxPriorityFeePerGas: toHex(priorityFees[level]), }, }), - { type: GasFeeEstimateType.FeeMarket } as GasFeeEstimates, + { type: GasFeeEstimateType.FeeMarket }, ); return { estimates }; diff --git a/packages/transaction-controller/src/gas-flows/MantleLayer1GasFeeFlow.test.ts b/packages/transaction-controller/src/gas-flows/MantleLayer1GasFeeFlow.test.ts index e6528702e90..cb302ef034e 100644 --- a/packages/transaction-controller/src/gas-flows/MantleLayer1GasFeeFlow.test.ts +++ b/packages/transaction-controller/src/gas-flows/MantleLayer1GasFeeFlow.test.ts @@ -6,12 +6,12 @@ import { add0x } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; import BN from 'bn.js'; -import { CHAIN_IDS } from '../constants'; -import type { TransactionControllerMessenger } from '../TransactionController'; -import { TransactionStatus } from '../types'; -import type { Layer1GasFeeFlowRequest, TransactionMeta } from '../types'; -import { bnFromHex, padHexToEvenLength } from '../utils/utils'; -import { MantleLayer1GasFeeFlow } from './MantleLayer1GasFeeFlow'; +import { CHAIN_IDS } from '../constants.js'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; +import { TransactionStatus } from '../types.js'; +import type { Layer1GasFeeFlowRequest, TransactionMeta } from '../types.js'; +import { bnFromHex, padHexToEvenLength } from '../utils/utils.js'; +import { MantleLayer1GasFeeFlow } from './MantleLayer1GasFeeFlow.js'; jest.mock('@ethersproject/contracts', () => ({ Contract: jest.fn(), diff --git a/packages/transaction-controller/src/gas-flows/MantleLayer1GasFeeFlow.ts b/packages/transaction-controller/src/gas-flows/MantleLayer1GasFeeFlow.ts index faae3cf5094..e9f05ece807 100644 --- a/packages/transaction-controller/src/gas-flows/MantleLayer1GasFeeFlow.ts +++ b/packages/transaction-controller/src/gas-flows/MantleLayer1GasFeeFlow.ts @@ -4,11 +4,11 @@ import type { ExternalProvider } from '@ethersproject/providers'; import type { Hex } from '@metamask/utils'; import type BN from 'bn.js'; -import { CHAIN_IDS } from '../constants'; -import type { TransactionControllerMessenger } from '../TransactionController'; -import type { Layer1GasFeeFlowRequest, TransactionMeta } from '../types'; -import { toBN } from '../utils/utils'; -import { OracleLayer1GasFeeFlow } from './OracleLayer1GasFeeFlow'; +import { CHAIN_IDS } from '../constants.js'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; +import type { Layer1GasFeeFlowRequest, TransactionMeta } from '../types.js'; +import { toBN } from '../utils/utils.js'; +import { OracleLayer1GasFeeFlow } from './OracleLayer1GasFeeFlow.js'; const MANTLE_CHAIN_IDS: Hex[] = [CHAIN_IDS.MANTLE, CHAIN_IDS.MANTLE_SEPOLIA]; diff --git a/packages/transaction-controller/src/gas-flows/OptimismLayer1GasFeeFlow.test.ts b/packages/transaction-controller/src/gas-flows/OptimismLayer1GasFeeFlow.test.ts index b8b078e1e9a..2f8c0d84459 100644 --- a/packages/transaction-controller/src/gas-flows/OptimismLayer1GasFeeFlow.test.ts +++ b/packages/transaction-controller/src/gas-flows/OptimismLayer1GasFeeFlow.test.ts @@ -2,11 +2,11 @@ import * as ControllerUtils from '@metamask/controller-utils'; import { hexToNumber } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import { CHAIN_IDS } from '../constants'; -import type { TransactionControllerMessenger } from '../TransactionController'; -import type { TransactionMeta } from '../types'; -import { TransactionStatus } from '../types'; -import { OptimismLayer1GasFeeFlow } from './OptimismLayer1GasFeeFlow'; +import { CHAIN_IDS } from '../constants.js'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; +import type { TransactionMeta } from '../types.js'; +import { TransactionStatus } from '../types.js'; +import { OptimismLayer1GasFeeFlow } from './OptimismLayer1GasFeeFlow.js'; jest.mock('@metamask/controller-utils', () => { const actual = jest.requireActual('@metamask/controller-utils'); diff --git a/packages/transaction-controller/src/gas-flows/OptimismLayer1GasFeeFlow.ts b/packages/transaction-controller/src/gas-flows/OptimismLayer1GasFeeFlow.ts index 5c5e6cd0151..8378bfcdf4b 100644 --- a/packages/transaction-controller/src/gas-flows/OptimismLayer1GasFeeFlow.ts +++ b/packages/transaction-controller/src/gas-flows/OptimismLayer1GasFeeFlow.ts @@ -2,10 +2,10 @@ import { handleFetch } from '@metamask/controller-utils'; import { hexToNumber } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import { CHAIN_IDS } from '../constants'; -import type { TransactionControllerMessenger } from '../TransactionController'; -import type { TransactionMeta } from '../types'; -import { OracleLayer1GasFeeFlow } from './OracleLayer1GasFeeFlow'; +import { CHAIN_IDS } from '../constants.js'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; +import type { TransactionMeta } from '../types.js'; +import { OracleLayer1GasFeeFlow } from './OracleLayer1GasFeeFlow.js'; const FALLBACK_OPTIMISM_STACK_CHAIN_IDS: Hex[] = [ CHAIN_IDS.OPTIMISM, diff --git a/packages/transaction-controller/src/gas-flows/OracleLayer1GasFeeFlow.test.ts b/packages/transaction-controller/src/gas-flows/OracleLayer1GasFeeFlow.test.ts index 53300918f4a..3a844d93185 100644 --- a/packages/transaction-controller/src/gas-flows/OracleLayer1GasFeeFlow.test.ts +++ b/packages/transaction-controller/src/gas-flows/OracleLayer1GasFeeFlow.test.ts @@ -6,12 +6,12 @@ import { add0x } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; import BN from 'bn.js'; -import { CHAIN_IDS } from '../constants'; -import type { TransactionControllerMessenger } from '../TransactionController'; -import { TransactionStatus } from '../types'; -import type { Layer1GasFeeFlowRequest, TransactionMeta } from '../types'; -import { bnFromHex, padHexToEvenLength } from '../utils/utils'; -import { OracleLayer1GasFeeFlow } from './OracleLayer1GasFeeFlow'; +import { CHAIN_IDS } from '../constants.js'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; +import { TransactionStatus } from '../types.js'; +import type { Layer1GasFeeFlowRequest, TransactionMeta } from '../types.js'; +import { bnFromHex, padHexToEvenLength } from '../utils/utils.js'; +import { OracleLayer1GasFeeFlow } from './OracleLayer1GasFeeFlow.js'; jest.mock('@ethersproject/contracts', () => ({ Contract: jest.fn(), diff --git a/packages/transaction-controller/src/gas-flows/OracleLayer1GasFeeFlow.ts b/packages/transaction-controller/src/gas-flows/OracleLayer1GasFeeFlow.ts index e76586b2a7b..be7ff8adb14 100644 --- a/packages/transaction-controller/src/gas-flows/OracleLayer1GasFeeFlow.ts +++ b/packages/transaction-controller/src/gas-flows/OracleLayer1GasFeeFlow.ts @@ -5,16 +5,16 @@ import type { Hex } from '@metamask/utils'; import { add0x, createModuleLogger } from '@metamask/utils'; import BN from 'bn.js'; -import { projectLogger } from '../logger'; -import type { TransactionControllerMessenger } from '../TransactionController'; +import { projectLogger } from '../logger.js'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; import type { Layer1GasFeeFlow, Layer1GasFeeFlowRequest, Layer1GasFeeFlowResponse, TransactionMeta, -} from '../types'; -import { prepareTransaction } from '../utils/prepare'; -import { padHexToEvenLength, toBN } from '../utils/utils'; +} from '../types.js'; +import { prepareTransaction } from '../utils/prepare.js'; +import { padHexToEvenLength, toBN } from '../utils/utils.js'; const log = createModuleLogger(projectLogger, 'oracle-layer1-gas-fee-flow'); diff --git a/packages/transaction-controller/src/gas-flows/RandomisedEstimationsGasFeeFlow.test.ts b/packages/transaction-controller/src/gas-flows/RandomisedEstimationsGasFeeFlow.test.ts index 184528d5d70..9c8ae5ec0a3 100644 --- a/packages/transaction-controller/src/gas-flows/RandomisedEstimationsGasFeeFlow.test.ts +++ b/packages/transaction-controller/src/gas-flows/RandomisedEstimationsGasFeeFlow.test.ts @@ -2,24 +2,24 @@ import { toHex } from '@metamask/controller-utils'; import { GAS_ESTIMATE_TYPES } from '@metamask/gas-fee-controller'; import type { GasFeeState } from '@metamask/gas-fee-controller'; -import type { TransactionControllerMessenger } from '../TransactionController'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; import type { FeeMarketGasFeeEstimates, GasPriceGasFeeEstimates, LegacyGasFeeEstimates, TransactionMeta, -} from '../types'; +} from '../types.js'; import { GasFeeEstimateLevel, GasFeeEstimateType, TransactionStatus, -} from '../types'; -import { getGasFeeRandomisation } from '../utils/feature-flags'; -import { DefaultGasFeeFlow } from './DefaultGasFeeFlow'; +} from '../types.js'; +import { getGasFeeRandomisation } from '../utils/feature-flags.js'; +import { DefaultGasFeeFlow } from './DefaultGasFeeFlow.js'; import { RandomisedEstimationsGasFeeFlow, randomiseDecimalGWEIAndConvertToHex, -} from './RandomisedEstimationsGasFeeFlow'; +} from './RandomisedEstimationsGasFeeFlow.js'; jest.mock('./DefaultGasFeeFlow'); jest.mock('../utils/feature-flags'); diff --git a/packages/transaction-controller/src/gas-flows/RandomisedEstimationsGasFeeFlow.ts b/packages/transaction-controller/src/gas-flows/RandomisedEstimationsGasFeeFlow.ts index 0b19594e78b..ac5bf4c5ee4 100644 --- a/packages/transaction-controller/src/gas-flows/RandomisedEstimationsGasFeeFlow.ts +++ b/packages/transaction-controller/src/gas-flows/RandomisedEstimationsGasFeeFlow.ts @@ -3,8 +3,8 @@ import { GAS_ESTIMATE_TYPES } from '@metamask/gas-fee-controller'; import { add0x, createModuleLogger } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import { projectLogger } from '../logger'; -import type { TransactionControllerMessenger } from '../TransactionController'; +import { projectLogger } from '../logger.js'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; import type { FeeMarketGasFeeEstimateForLevel, FeeMarketGasFeeEstimates, @@ -12,14 +12,14 @@ import type { GasFeeFlowRequest, GasFeeFlowResponse, TransactionMeta, -} from '../types'; -import { GasFeeEstimateLevel, GasFeeEstimateType } from '../types'; -import { getGasFeeRandomisation } from '../utils/feature-flags'; +} from '../types.js'; +import { GasFeeEstimateLevel, GasFeeEstimateType } from '../types.js'; +import { getGasFeeRandomisation } from '../utils/feature-flags.js'; import { gweiDecimalToWeiDecimal, gweiDecimalToWeiHex, -} from '../utils/gas-fees'; -import { DefaultGasFeeFlow } from './DefaultGasFeeFlow'; +} from '../utils/gas-fees.js'; +import { DefaultGasFeeFlow } from './DefaultGasFeeFlow.js'; const log = createModuleLogger( projectLogger, @@ -105,7 +105,9 @@ export class RandomisedEstimationsGasFeeFlow implements GasFeeFlow { lastNDigits: number, preservedNumberOfDigits: number, ): FeeMarketGasFeeEstimates { - const levels = Object.values(GasFeeEstimateLevel).reduce( + const levels = Object.values(GasFeeEstimateLevel).reduce< + Omit + >( (result, level) => ({ ...result, [level]: this.#getRandomisedFeeMarketLevel( @@ -115,7 +117,7 @@ export class RandomisedEstimationsGasFeeFlow implements GasFeeFlow { preservedNumberOfDigits, ), }), - {} as Omit, + {}, ); return { diff --git a/packages/transaction-controller/src/gas-flows/ScrollLayer1GasFeeFlow.test.ts b/packages/transaction-controller/src/gas-flows/ScrollLayer1GasFeeFlow.test.ts index afe58af2b74..c46ae5245f0 100644 --- a/packages/transaction-controller/src/gas-flows/ScrollLayer1GasFeeFlow.test.ts +++ b/packages/transaction-controller/src/gas-flows/ScrollLayer1GasFeeFlow.test.ts @@ -1,10 +1,10 @@ import type { Hex } from '@metamask/utils'; -import { CHAIN_IDS } from '../constants'; -import type { TransactionControllerMessenger } from '../TransactionController'; -import type { TransactionMeta } from '../types'; -import { TransactionStatus } from '../types'; -import { ScrollLayer1GasFeeFlow } from './ScrollLayer1GasFeeFlow'; +import { CHAIN_IDS } from '../constants.js'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; +import type { TransactionMeta } from '../types.js'; +import { TransactionStatus } from '../types.js'; +import { ScrollLayer1GasFeeFlow } from './ScrollLayer1GasFeeFlow.js'; const TRANSACTION_META_MOCK: TransactionMeta = { id: '1', diff --git a/packages/transaction-controller/src/gas-flows/ScrollLayer1GasFeeFlow.ts b/packages/transaction-controller/src/gas-flows/ScrollLayer1GasFeeFlow.ts index 6f1f3127406..25f98109121 100644 --- a/packages/transaction-controller/src/gas-flows/ScrollLayer1GasFeeFlow.ts +++ b/packages/transaction-controller/src/gas-flows/ScrollLayer1GasFeeFlow.ts @@ -1,9 +1,9 @@ import type { Hex } from '@metamask/utils'; -import { CHAIN_IDS } from '../constants'; -import type { TransactionControllerMessenger } from '../TransactionController'; -import type { TransactionMeta } from '../types'; -import { OracleLayer1GasFeeFlow } from './OracleLayer1GasFeeFlow'; +import { CHAIN_IDS } from '../constants.js'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; +import type { TransactionMeta } from '../types.js'; +import { OracleLayer1GasFeeFlow } from './OracleLayer1GasFeeFlow.js'; const SCROLL_CHAIN_IDS: Hex[] = [CHAIN_IDS.SCROLL, CHAIN_IDS.SCROLL_SEPOLIA]; diff --git a/packages/transaction-controller/src/gas-flows/TestGasFeeFlow.test.ts b/packages/transaction-controller/src/gas-flows/TestGasFeeFlow.test.ts index be03eda14b5..6267a52d1e4 100644 --- a/packages/transaction-controller/src/gas-flows/TestGasFeeFlow.test.ts +++ b/packages/transaction-controller/src/gas-flows/TestGasFeeFlow.test.ts @@ -1,6 +1,6 @@ -import { GasFeeEstimateType } from '../types'; -import type { GasFeeFlowRequest } from '../types'; -import { TestGasFeeFlow } from './TestGasFeeFlow'; +import { GasFeeEstimateType } from '../types.js'; +import type { GasFeeFlowRequest } from '../types.js'; +import { TestGasFeeFlow } from './TestGasFeeFlow.js'; describe('TestGasFeeFlow', () => { describe('matchesTransaction', () => { diff --git a/packages/transaction-controller/src/gas-flows/TestGasFeeFlow.ts b/packages/transaction-controller/src/gas-flows/TestGasFeeFlow.ts index 95bfb1212de..0659f76e95b 100644 --- a/packages/transaction-controller/src/gas-flows/TestGasFeeFlow.ts +++ b/packages/transaction-controller/src/gas-flows/TestGasFeeFlow.ts @@ -1,12 +1,12 @@ import { toHex } from '@metamask/controller-utils'; import type { Hex } from '@metamask/utils'; -import { GasFeeEstimateType } from '../types'; +import { GasFeeEstimateType } from '../types.js'; import type { GasFeeFlow, GasFeeFlowRequest, GasFeeFlowResponse, -} from '../types'; +} from '../types.js'; const INCREMENT = 1e15; // 0.001 ETH const LEVEL_DIFFERENCE = 0.5; diff --git a/packages/transaction-controller/src/helpers/GasFeePoller.test.ts b/packages/transaction-controller/src/helpers/GasFeePoller.test.ts index eb9971571bc..29f2195a4d4 100644 --- a/packages/transaction-controller/src/helpers/GasFeePoller.test.ts +++ b/packages/transaction-controller/src/helpers/GasFeePoller.test.ts @@ -1,28 +1,28 @@ /* eslint-disable no-new */ import type { Hex } from '@metamask/utils'; -import { flushPromises } from '../../../../tests/helpers'; -import { DefaultGasFeeFlow } from '../gas-flows/DefaultGasFeeFlow'; -import type { TransactionControllerMessenger } from '../TransactionController'; +import { flushPromises } from '../../../../tests/helpers.js'; +import { DefaultGasFeeFlow } from '../gas-flows/DefaultGasFeeFlow.js'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; import { GasFeeEstimateLevel, GasFeeEstimateType, TransactionEnvelopeType, TransactionStatus, UserFeeLevel, -} from '../types'; +} from '../types.js'; import type { GasFeeFlowResponse, Layer1GasFeeFlow, TransactionBatchMeta, -} from '../types'; -import type { GasFeeFlow, GasFeeEstimates, TransactionMeta } from '../types'; -import { getTransactionLayer1GasFee } from '../utils/layer1-gas-fee-flow'; +} from '../types.js'; +import type { GasFeeFlow, GasFeeEstimates, TransactionMeta } from '../types.js'; +import { getTransactionLayer1GasFee } from '../utils/layer1-gas-fee-flow.js'; import { GasFeePoller, updateTransactionGasProperties, updateTransactionGasEstimates, -} from './GasFeePoller'; +} from './GasFeePoller.js'; jest.mock('../utils/feature-flags'); jest.mock('../utils/layer1-gas-fee-flow', () => ({ diff --git a/packages/transaction-controller/src/helpers/GasFeePoller.ts b/packages/transaction-controller/src/helpers/GasFeePoller.ts index 06ff0c1fd3a..38218478a16 100644 --- a/packages/transaction-controller/src/helpers/GasFeePoller.ts +++ b/packages/transaction-controller/src/helpers/GasFeePoller.ts @@ -9,9 +9,9 @@ import { createModuleLogger } from '@metamask/utils'; // eslint-disable-next-line import-x/no-nodejs-modules import EventEmitter from 'events'; -import { DefaultGasFeeFlow } from '../gas-flows/DefaultGasFeeFlow'; -import { projectLogger } from '../logger'; -import type { TransactionControllerMessenger } from '../TransactionController'; +import { DefaultGasFeeFlow } from '../gas-flows/DefaultGasFeeFlow.js'; +import { projectLogger } from '../logger.js'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; import type { GasFeeEstimates, GasFeeFlow, @@ -20,16 +20,16 @@ import type { TransactionMeta, TransactionParams, TransactionBatchMeta, -} from '../types'; +} from '../types.js'; import { GasFeeEstimateLevel, GasFeeEstimateType, TransactionStatus, TransactionEnvelopeType, -} from '../types'; -import { getGasFeeFlow } from '../utils/gas-flow'; -import { getTransactionLayer1GasFee } from '../utils/layer1-gas-fee-flow'; -import { getNetworkClientId } from '../utils/provider'; +} from '../types.js'; +import { getGasFeeFlow } from '../utils/gas-flow.js'; +import { getTransactionLayer1GasFee } from '../utils/layer1-gas-fee-flow.js'; +import { getNetworkClientId } from '../utils/provider.js'; const log = createModuleLogger(projectLogger, 'gas-fee-poller'); diff --git a/packages/transaction-controller/src/helpers/MethodDataHelper.test.ts b/packages/transaction-controller/src/helpers/MethodDataHelper.test.ts index 728bb4e9c75..3989d36cf1a 100644 --- a/packages/transaction-controller/src/helpers/MethodDataHelper.test.ts +++ b/packages/transaction-controller/src/helpers/MethodDataHelper.test.ts @@ -3,9 +3,9 @@ import { MethodRegistry } from 'eth-method-registry'; import type { MethodData, TransactionControllerMessenger, -} from '../TransactionController'; -import { getProvider } from '../utils/provider'; -import { MethodDataHelper } from './MethodDataHelper'; +} from '../TransactionController.js'; +import { getProvider } from '../utils/provider.js'; +import { MethodDataHelper } from './MethodDataHelper.js'; jest.mock('eth-method-registry'); diff --git a/packages/transaction-controller/src/helpers/MethodDataHelper.ts b/packages/transaction-controller/src/helpers/MethodDataHelper.ts index 15608fcc9ad..ef352dee207 100644 --- a/packages/transaction-controller/src/helpers/MethodDataHelper.ts +++ b/packages/transaction-controller/src/helpers/MethodDataHelper.ts @@ -6,12 +6,12 @@ import { MethodRegistry } from 'eth-method-registry'; // eslint-disable-next-line import-x/no-nodejs-modules import EventEmitter from 'events'; -import { projectLogger } from '../logger'; +import { projectLogger } from '../logger.js'; import type { MethodData, TransactionControllerMessenger, -} from '../TransactionController'; -import { getProvider } from '../utils/provider'; +} from '../TransactionController.js'; +import { getProvider } from '../utils/provider.js'; const log = createModuleLogger(projectLogger, 'method-data'); diff --git a/packages/transaction-controller/src/helpers/MultichainTrackingHelper.test.ts b/packages/transaction-controller/src/helpers/MultichainTrackingHelper.test.ts index 95d42992e9e..495001174a5 100644 --- a/packages/transaction-controller/src/helpers/MultichainTrackingHelper.test.ts +++ b/packages/transaction-controller/src/helpers/MultichainTrackingHelper.test.ts @@ -7,12 +7,12 @@ import type { import type { NonceTracker } from '@metamask/nonce-tracker'; import type { Hex } from '@metamask/utils'; -import { jestAdvanceTime } from '../../../../tests/helpers'; +import { jestAdvanceTime } from '../../../../tests/helpers.js'; import { MultichainTrackingHelper, MultichainTrackingHelperOptions, -} from './MultichainTrackingHelper'; -import type { PendingTransactionTracker } from './PendingTransactionTracker'; +} from './MultichainTrackingHelper.js'; +import type { PendingTransactionTracker } from './PendingTransactionTracker.js'; jest.mock( '@metamask/eth-query', @@ -513,9 +513,7 @@ describe('MultichainTrackingHelper', () => { ]); expect(secondReleaseLockIfAcquired).toBeNull(); - // TODO: Either fix this lint violation or explain why it's necessary to ignore. - // eslint-disable-next-line @typescript-eslint/await-thenable - await firstReleaseLock(); + firstReleaseLock(); await jestAdvanceTime({ duration: 1 }); secondReleaseLockIfAcquired = await Promise.race([ diff --git a/packages/transaction-controller/src/helpers/MultichainTrackingHelper.ts b/packages/transaction-controller/src/helpers/MultichainTrackingHelper.ts index 5b884376c19..8c432ad4bb1 100644 --- a/packages/transaction-controller/src/helpers/MultichainTrackingHelper.ts +++ b/packages/transaction-controller/src/helpers/MultichainTrackingHelper.ts @@ -10,8 +10,8 @@ import type { NonceLock, NonceTracker } from '@metamask/nonce-tracker'; import type { Hex } from '@metamask/utils'; import { Mutex } from 'async-mutex'; -import { createModuleLogger, projectLogger } from '../logger'; -import type { PendingTransactionTracker } from './PendingTransactionTracker'; +import { createModuleLogger, projectLogger } from '../logger.js'; +import type { PendingTransactionTracker } from './PendingTransactionTracker.js'; /** * Registry of network clients provided by the NetworkController diff --git a/packages/transaction-controller/src/helpers/PendingTransactionTracker.test.ts b/packages/transaction-controller/src/helpers/PendingTransactionTracker.test.ts index 4744e5e0032..105ab87dfa0 100644 --- a/packages/transaction-controller/src/helpers/PendingTransactionTracker.test.ts +++ b/packages/transaction-controller/src/helpers/PendingTransactionTracker.test.ts @@ -2,12 +2,12 @@ import type { BlockTracker } from '@metamask/network-controller'; import { Json } from '@metamask/utils'; import { freeze } from 'immer'; -import type { TransactionControllerMessenger } from '../TransactionController'; -import type { TransactionMeta } from '../types'; -import { TransactionStatus } from '../types'; -import { rpcRequest } from '../utils/provider'; -import { PendingTransactionTracker } from './PendingTransactionTracker'; -import { TransactionPoller } from './TransactionPoller'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; +import type { TransactionMeta } from '../types.js'; +import { TransactionStatus } from '../types.js'; +import { rpcRequest } from '../utils/provider.js'; +import { PendingTransactionTracker } from './PendingTransactionTracker.js'; +import { TransactionPoller } from './TransactionPoller.js'; const ID_MOCK = 'testId'; const CHAIN_ID_MOCK = '0x1'; diff --git a/packages/transaction-controller/src/helpers/PendingTransactionTracker.ts b/packages/transaction-controller/src/helpers/PendingTransactionTracker.ts index 691f2290332..80b0918635c 100644 --- a/packages/transaction-controller/src/helpers/PendingTransactionTracker.ts +++ b/packages/transaction-controller/src/helpers/PendingTransactionTracker.ts @@ -6,19 +6,19 @@ import type { Json } from '@metamask/utils'; // This package purposefully relies on Node's EventEmitter module. // eslint-disable-next-line import-x/no-nodejs-modules import EventEmitter from 'events'; -import { cloneDeep } from 'lodash'; +import { cloneDeep } from 'lodash-es'; -import { createModuleLogger, projectLogger } from '../logger'; -import type { TransactionControllerMessenger } from '../TransactionController'; -import type { TransactionMeta, TransactionReceipt } from '../types'; -import { TransactionStatus, TransactionType } from '../types'; +import { createModuleLogger, projectLogger } from '../logger.js'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; +import type { TransactionMeta, TransactionReceipt } from '../types.js'; +import { TransactionStatus, TransactionType } from '../types.js'; import { getAcceleratedPollingParams, getTimeoutAttempts, -} from '../utils/feature-flags'; -import { getChainId, rpcRequest } from '../utils/provider'; -import { extractRevert, OnChainFailureError } from '../utils/revert-reason'; -import { TransactionPoller } from './TransactionPoller'; +} from '../utils/feature-flags.js'; +import { getChainId, rpcRequest } from '../utils/provider.js'; +import { extractRevert, OnChainFailureError } from '../utils/revert-reason.js'; +import { TransactionPoller } from './TransactionPoller.js'; /** * We wait this many blocks before emitting a 'transaction-dropped' event diff --git a/packages/transaction-controller/src/helpers/ResimulateHelper.test.ts b/packages/transaction-controller/src/helpers/ResimulateHelper.test.ts index 8884491ebab..01cd3a9c155 100644 --- a/packages/transaction-controller/src/helpers/ResimulateHelper.test.ts +++ b/packages/transaction-controller/src/helpers/ResimulateHelper.test.ts @@ -2,15 +2,15 @@ import { NetworkType } from '@metamask/controller-utils'; import type { NetworkClientId } from '@metamask/network-controller'; import { BN } from 'bn.js'; -import { CHAIN_IDS } from '../constants'; +import { CHAIN_IDS } from '../constants.js'; import type { TransactionMeta, SecurityAlertResponse, SimulationData, SimulationTokenBalanceChange, -} from '../types'; -import { TransactionStatus, SimulationTokenStandard } from '../types'; -import { getPercentageChange } from '../utils/utils'; +} from '../types.js'; +import { TransactionStatus, SimulationTokenStandard } from '../types.js'; +import { getPercentageChange } from '../utils/utils.js'; import { ResimulateHelper, BLOCK_TIME_ADDITIONAL_SECONDS, @@ -20,8 +20,8 @@ import { shouldResimulate, VALUE_COMPARISON_PERCENT_THRESHOLD, RESIMULATE_INTERVAL_MS, -} from './ResimulateHelper'; -import type { ResimulateHelperOptions } from './ResimulateHelper'; +} from './ResimulateHelper.js'; +import type { ResimulateHelperOptions } from './ResimulateHelper.js'; const CURRENT_TIME_MOCK = 1234567890; const CURRENT_TIME_SECONDS_MOCK = 1234567; diff --git a/packages/transaction-controller/src/helpers/ResimulateHelper.ts b/packages/transaction-controller/src/helpers/ResimulateHelper.ts index debff05c48d..ee4a1d0e7f8 100644 --- a/packages/transaction-controller/src/helpers/ResimulateHelper.ts +++ b/packages/transaction-controller/src/helpers/ResimulateHelper.ts @@ -1,17 +1,17 @@ import type { Hex } from '@metamask/utils'; import { remove0x } from '@metamask/utils'; import { BN } from 'bn.js'; -import { isEqual } from 'lodash'; +import { isEqual } from 'lodash-es'; -import { createModuleLogger, projectLogger } from '../logger'; -import { TransactionStatus } from '../types'; +import { createModuleLogger, projectLogger } from '../logger.js'; +import { TransactionStatus } from '../types.js'; import type { SimulationBalanceChange, SimulationData, TransactionMeta, TransactionParams, -} from '../types'; -import { getPercentageChange } from '../utils/utils'; +} from '../types.js'; +import { getPercentageChange } from '../utils/utils.js'; const log = createModuleLogger(projectLogger, 'resimulate-helper'); diff --git a/packages/transaction-controller/src/helpers/TransactionPoller.test.ts b/packages/transaction-controller/src/helpers/TransactionPoller.test.ts index 6f9131de50a..8826eb7209f 100644 --- a/packages/transaction-controller/src/helpers/TransactionPoller.test.ts +++ b/packages/transaction-controller/src/helpers/TransactionPoller.test.ts @@ -1,10 +1,10 @@ import type { Transaction } from '@metamask/core-backend'; import type { BlockTracker } from '@metamask/network-controller'; -import { flushPromises } from '../../../../tests/helpers'; -import type { TransactionControllerMessenger } from '../TransactionController'; -import type { TransactionMeta } from '../types'; -import { TransactionPoller } from './TransactionPoller'; +import { flushPromises } from '../../../../tests/helpers.js'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; +import type { TransactionMeta } from '../types.js'; +import { TransactionPoller } from './TransactionPoller.js'; jest.useFakeTimers(); diff --git a/packages/transaction-controller/src/helpers/TransactionPoller.ts b/packages/transaction-controller/src/helpers/TransactionPoller.ts index b5f10bc3431..0c87c10b4a3 100644 --- a/packages/transaction-controller/src/helpers/TransactionPoller.ts +++ b/packages/transaction-controller/src/helpers/TransactionPoller.ts @@ -2,12 +2,12 @@ import type { Transaction } from '@metamask/core-backend'; import type { BlockTracker } from '@metamask/network-controller'; import { createModuleLogger } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import { isEqual } from 'lodash'; +import { isEqual } from 'lodash-es'; -import { projectLogger } from '../logger'; -import type { TransactionControllerMessenger } from '../TransactionController'; -import type { TransactionMeta } from '../types'; -import { getAcceleratedPollingParams } from '../utils/feature-flags'; +import { projectLogger } from '../logger.js'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; +import type { TransactionMeta } from '../types.js'; +import { getAcceleratedPollingParams } from '../utils/feature-flags.js'; const log = createModuleLogger(projectLogger, 'transaction-poller'); diff --git a/packages/transaction-controller/src/hooks/CollectPublishHook.test.ts b/packages/transaction-controller/src/hooks/CollectPublishHook.test.ts index 75a27c4ba6f..2d375c674ec 100644 --- a/packages/transaction-controller/src/hooks/CollectPublishHook.test.ts +++ b/packages/transaction-controller/src/hooks/CollectPublishHook.test.ts @@ -1,8 +1,8 @@ -import { noop } from 'lodash'; +import { noop } from 'lodash-es'; -import type { TransactionMeta } from '..'; -import { flushPromises } from '../../../../tests/helpers'; -import { CollectPublishHook } from './CollectPublishHook'; +import { flushPromises } from '../../../../tests/helpers.js'; +import type { TransactionMeta } from './...js'; +import { CollectPublishHook } from './CollectPublishHook.js'; const SIGNED_TX_MOCK = '0x123'; const SIGNED_TX_2_MOCK = '0x456'; @@ -30,8 +30,8 @@ describe('CollectPublishHook', () => { const collectHook = new CollectPublishHook(2); const publishHook = collectHook.getHook(); - publishHook(TRANSACTION_META_MOCK, SIGNED_TX_MOCK).catch(noop); - publishHook(TRANSACTION_META_2_MOCK, SIGNED_TX_2_MOCK).catch(noop); + void publishHook(TRANSACTION_META_MOCK, SIGNED_TX_MOCK).catch(noop); + void publishHook(TRANSACTION_META_2_MOCK, SIGNED_TX_2_MOCK).catch(noop); await flushPromises(); @@ -47,8 +47,8 @@ describe('CollectPublishHook', () => { const collectHook = new CollectPublishHook(2); const publishHook = collectHook.getHook(); - publishHook(TRANSACTION_META_2_MOCK, SIGNED_TX_2_MOCK).catch(noop); - publishHook(TRANSACTION_META_MOCK, SIGNED_TX_MOCK).catch(noop); + void publishHook(TRANSACTION_META_2_MOCK, SIGNED_TX_2_MOCK).catch(noop); + void publishHook(TRANSACTION_META_MOCK, SIGNED_TX_MOCK).catch(noop); await flushPromises(); diff --git a/packages/transaction-controller/src/hooks/CollectPublishHook.ts b/packages/transaction-controller/src/hooks/CollectPublishHook.ts index 4fcd31602a7..5e15e8fd4b9 100644 --- a/packages/transaction-controller/src/hooks/CollectPublishHook.ts +++ b/packages/transaction-controller/src/hooks/CollectPublishHook.ts @@ -1,9 +1,13 @@ import type { DeferredPromise, Hex } from '@metamask/utils'; import { createDeferredPromise, createModuleLogger } from '@metamask/utils'; -import { sortBy } from 'lodash'; - -import { projectLogger } from '../logger'; -import type { PublishHook, PublishHookResult, TransactionMeta } from '../types'; +import { sortBy } from 'lodash-es'; + +import { projectLogger } from '../logger.js'; +import type { + PublishHook, + PublishHookResult, + TransactionMeta, +} from '../types.js'; const log = createModuleLogger(projectLogger, 'collect-publish-hook'); diff --git a/packages/transaction-controller/src/hooks/ExtraTransactionsPublishHook.test.ts b/packages/transaction-controller/src/hooks/ExtraTransactionsPublishHook.test.ts index e950de03df5..78cb2da5b9b 100644 --- a/packages/transaction-controller/src/hooks/ExtraTransactionsPublishHook.test.ts +++ b/packages/transaction-controller/src/hooks/ExtraTransactionsPublishHook.test.ts @@ -1,13 +1,13 @@ import type { Hex } from '@metamask/utils'; +import type { BatchTransaction } from '../types.js'; +import { TransactionType } from '../types.js'; import type { BatchTransactionParams, TransactionController, TransactionMeta, -} from '..'; -import type { BatchTransaction } from '../types'; -import { TransactionType } from '../types'; -import { ExtraTransactionsPublishHook } from './ExtraTransactionsPublishHook'; +} from './...js'; +import { ExtraTransactionsPublishHook } from './ExtraTransactionsPublishHook.js'; const SIGNED_TRANSACTION_MOCK = '0xffe'; const SIGNED_TRANSACTION_2_MOCK = '0xfff' as Hex; diff --git a/packages/transaction-controller/src/hooks/ExtraTransactionsPublishHook.ts b/packages/transaction-controller/src/hooks/ExtraTransactionsPublishHook.ts index 3c1e240634c..30fe1844fc7 100644 --- a/packages/transaction-controller/src/hooks/ExtraTransactionsPublishHook.ts +++ b/packages/transaction-controller/src/hooks/ExtraTransactionsPublishHook.ts @@ -1,15 +1,15 @@ import { createDeferredPromise, createModuleLogger } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import type { TransactionController } from '..'; -import { projectLogger } from '../logger'; +import { projectLogger } from '../logger.js'; import type { BatchTransactionParams, PublishHook, PublishHookResult, TransactionBatchSingleRequest, TransactionMeta, -} from '../types'; +} from '../types.js'; +import type { TransactionController } from './...js'; const log = createModuleLogger( projectLogger, diff --git a/packages/transaction-controller/src/hooks/SequentialPublishBatchHook.test.ts b/packages/transaction-controller/src/hooks/SequentialPublishBatchHook.test.ts index e43d4fd4ef8..06bf99c9e5c 100644 --- a/packages/transaction-controller/src/hooks/SequentialPublishBatchHook.test.ts +++ b/packages/transaction-controller/src/hooks/SequentialPublishBatchHook.test.ts @@ -1,9 +1,9 @@ import type { Hex } from '@metamask/utils'; -import { flushPromises } from '../../../../tests/helpers'; -import type { PendingTransactionTracker } from '../helpers/PendingTransactionTracker'; -import type { PublishBatchHookTransaction, TransactionMeta } from '../types'; -import { SequentialPublishBatchHook } from './SequentialPublishBatchHook'; +import { flushPromises } from '../../../../tests/helpers.js'; +import type { PendingTransactionTracker } from '../helpers/PendingTransactionTracker.js'; +import type { PublishBatchHookTransaction, TransactionMeta } from '../types.js'; +import { SequentialPublishBatchHook } from './SequentialPublishBatchHook.js'; const TRANSACTION_HASH_MOCK = '0x123'; const TRANSACTION_HASH_2_MOCK = '0x456'; diff --git a/packages/transaction-controller/src/hooks/SequentialPublishBatchHook.ts b/packages/transaction-controller/src/hooks/SequentialPublishBatchHook.ts index ee703029558..761b9172e86 100644 --- a/packages/transaction-controller/src/hooks/SequentialPublishBatchHook.ts +++ b/packages/transaction-controller/src/hooks/SequentialPublishBatchHook.ts @@ -2,14 +2,14 @@ import { rpcErrors } from '@metamask/rpc-errors'; import { createModuleLogger } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import type { PendingTransactionTracker } from '../helpers/PendingTransactionTracker'; -import { projectLogger } from '../logger'; +import type { PendingTransactionTracker } from '../helpers/PendingTransactionTracker.js'; +import { projectLogger } from '../logger.js'; import type { PublishBatchHook, PublishBatchHookRequest, PublishBatchHookResult, TransactionMeta, -} from '../types'; +} from '../types.js'; const log = createModuleLogger(projectLogger, 'sequential-publish-batch-hook'); diff --git a/packages/transaction-controller/src/index.ts b/packages/transaction-controller/src/index.ts index 9dbc08c9841..699bf103d24 100644 --- a/packages/transaction-controller/src/index.ts +++ b/packages/transaction-controller/src/index.ts @@ -22,7 +22,7 @@ export type { TransactionControllerUnapprovedTransactionAddedEvent, TransactionControllerMessenger, TransactionControllerOptions, -} from './TransactionController'; +} from './TransactionController.js'; export type { TransactionControllerAddTransactionAction, TransactionControllerAddTransactionBatchAction, @@ -56,12 +56,12 @@ export type { TransactionControllerUpdatePreviousGasParamsAction, TransactionControllerUpdateSelectedGasFeeTokenAction, TransactionControllerUpdateRequiredTransactionIdsAction, -} from './TransactionController-method-action-types'; +} from './TransactionController-method-action-types.js'; export { CANCEL_RATE, SPEED_UP_RATE, TransactionController, -} from './TransactionController'; +} from './TransactionController.js'; export type { AddTransactionOptions, AfterAddHook, @@ -115,7 +115,7 @@ export type { TransactionParams, TransactionReceipt, ValidateSecurityRequest, -} from './types'; +} from './types.js'; export { GasFeeEstimateLevel, GasFeeEstimateType, @@ -127,21 +127,21 @@ export { TransactionType, UserFeeLevel, WalletDevice, -} from './types'; -export { mergeGasFeeEstimates } from './utils/gas-flow'; +} from './types.js'; +export { mergeGasFeeEstimates } from './utils/gas-flow.js'; export { decodeAuthorizationSignature, generateEIP7702BatchTransaction, -} from './utils/eip7702'; +} from './utils/eip7702.js'; export { isEIP1559Transaction, normalizeTransactionParams, -} from './utils/utils'; -export { CHAIN_IDS } from './constants'; -export { HARDFORK } from './utils/prepare'; -export { getAccountAddressRelationship } from './api/accounts-api'; +} from './utils/utils.js'; +export { CHAIN_IDS } from './constants.js'; +export { HARDFORK } from './utils/prepare.js'; +export { getAccountAddressRelationship } from './api/accounts-api.js'; export type { GetAccountAddressRelationshipRequest, AccountAddressRelationshipResult, -} from './api/accounts-api'; -export { generateBatchId } from './utils/batch'; +} from './api/accounts-api.js'; +export { generateBatchId } from './utils/batch.js'; diff --git a/packages/transaction-controller/src/types.ts b/packages/transaction-controller/src/types.ts index 7fa97cdcc32..158c2f0db32 100644 --- a/packages/transaction-controller/src/types.ts +++ b/packages/transaction-controller/src/types.ts @@ -7,7 +7,7 @@ import type { NetworkClientId, Provider } from '@metamask/network-controller'; import type { Hex, Json } from '@metamask/utils'; import type { Operation } from 'fast-json-patch'; -import type { TransactionControllerMessenger } from './TransactionController'; +import type { TransactionControllerMessenger } from './TransactionController.js'; /** * Given a record, ensures that each property matches the `Json` type. diff --git a/packages/transaction-controller/src/utils/balance-changes.test.ts b/packages/transaction-controller/src/utils/balance-changes.test.ts index 5013029f065..91948e6eadf 100644 --- a/packages/transaction-controller/src/utils/balance-changes.test.ts +++ b/packages/transaction-controller/src/utils/balance-changes.test.ts @@ -3,22 +3,22 @@ import { Interface } from '@ethersproject/abi'; import type { NetworkClientId } from '@metamask/network-controller'; import type { Hex } from '@metamask/utils'; -import { simulateTransactions } from '../api/simulation-api'; +import { simulateTransactions } from '../api/simulation-api.js'; import type { SimulationResponseLog, SimulationResponseTransaction, -} from '../api/simulation-api'; -import type { SimulationResponse } from '../api/simulation-api'; +} from '../api/simulation-api.js'; +import type { SimulationResponse } from '../api/simulation-api.js'; import { SimulationInvalidResponseError, SimulationRevertedError, -} from '../errors'; -import type { TransactionControllerMessenger } from '../TransactionController'; -import type { GetSimulationConfig } from '../types'; -import { SimulationErrorCode, SimulationTokenStandard } from '../types'; -import type { GetBalanceChangesRequest } from './balance-changes'; -import { getBalanceChanges, SupportedToken } from './balance-changes'; -import { rpcRequest } from './provider'; +} from '../errors.js'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; +import type { GetSimulationConfig } from '../types.js'; +import { SimulationErrorCode, SimulationTokenStandard } from '../types.js'; +import type { GetBalanceChangesRequest } from './balance-changes.js'; +import { getBalanceChanges, SupportedToken } from './balance-changes.js'; +import { rpcRequest } from './provider.js'; jest.mock('../api/simulation-api'); diff --git a/packages/transaction-controller/src/utils/balance-changes.ts b/packages/transaction-controller/src/utils/balance-changes.ts index ba3ed0fe1e4..b366a75ba53 100644 --- a/packages/transaction-controller/src/utils/balance-changes.ts +++ b/packages/transaction-controller/src/utils/balance-changes.ts @@ -7,7 +7,7 @@ import { createModuleLogger } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; import BN from 'bn.js'; -import { simulateTransactions } from '../api/simulation-api'; +import { simulateTransactions } from '../api/simulation-api.js'; import type { SimulationResponseLog, SimulationRequestTransaction, @@ -15,18 +15,18 @@ import type { SimulationResponseCallTrace, SimulationResponseTransaction, SimulationRequest, -} from '../api/simulation-api'; +} from '../api/simulation-api.js'; import { ABI_SIMULATION_ERC20_WRAPPED, ABI_SIMULATION_ERC721_LEGACY, -} from '../constants'; +} from '../constants.js'; import { SimulationError, SimulationInvalidResponseError, SimulationRevertedError, -} from '../errors'; -import { projectLogger } from '../logger'; -import type { TransactionControllerMessenger } from '../TransactionController'; +} from '../errors.js'; +import { projectLogger } from '../logger.js'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; import type { Revert, SimulationBalanceChange, @@ -36,10 +36,10 @@ import type { TransactionParams, NestedTransactionMetadata, GetSimulationConfig, -} from '../types'; -import { SimulationTokenStandard } from '../types'; -import { getNativeBalance } from './balance'; -import { decodeRevert } from './revert-reason'; +} from '../types.js'; +import { SimulationTokenStandard } from '../types.js'; +import { getNativeBalance } from './balance.js'; +import { decodeRevert } from './revert-reason.js'; export enum SupportedToken { ERC20 = 'erc20', diff --git a/packages/transaction-controller/src/utils/balance.test.ts b/packages/transaction-controller/src/utils/balance.test.ts index cbe32171f6a..a3fbd2eae57 100644 --- a/packages/transaction-controller/src/utils/balance.test.ts +++ b/packages/transaction-controller/src/utils/balance.test.ts @@ -1,10 +1,13 @@ import { toHex } from '@metamask/controller-utils'; import type { NetworkClientId } from '@metamask/network-controller'; -import type { TransactionMeta } from '..'; -import type { TransactionControllerMessenger } from '../TransactionController'; -import { getNativeBalance, isNativeBalanceSufficientForGas } from './balance'; -import { rpcRequest } from './provider'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; +import type { TransactionMeta } from './...js'; +import { + getNativeBalance, + isNativeBalanceSufficientForGas, +} from './balance.js'; +import { rpcRequest } from './provider.js'; jest.mock('./provider', () => ({ rpcRequest: jest.fn(), diff --git a/packages/transaction-controller/src/utils/balance.ts b/packages/transaction-controller/src/utils/balance.ts index 1f44f37ba7a..38975bafa5b 100644 --- a/packages/transaction-controller/src/utils/balance.ts +++ b/packages/transaction-controller/src/utils/balance.ts @@ -2,9 +2,9 @@ import type { NetworkClientId } from '@metamask/network-controller'; import type { Hex } from '@metamask/utils'; import { BigNumber } from 'bignumber.js'; -import type { TransactionMeta } from '..'; -import type { TransactionControllerMessenger } from '../TransactionController'; -import { rpcRequest } from './provider'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; +import type { TransactionMeta } from './...js'; +import { rpcRequest } from './provider.js'; /** * Get the native balance for an address. diff --git a/packages/transaction-controller/src/utils/batch.test.ts b/packages/transaction-controller/src/utils/batch.test.ts index d0bdf8c06eb..78b82652f5e 100644 --- a/packages/transaction-controller/src/utils/batch.test.ts +++ b/packages/transaction-controller/src/utils/batch.test.ts @@ -2,48 +2,48 @@ import { ORIGIN_METAMASK } from '@metamask/approval-controller'; import type { AddResult } from '@metamask/approval-controller'; import { ApprovalType } from '@metamask/controller-utils'; import { rpcErrors, errorCodes } from '@metamask/rpc-errors'; -import { cloneDeep } from 'lodash'; +import { cloneDeep } from 'lodash-es'; +import { flushPromises } from '../../../../tests/helpers.js'; +import { DefaultGasFeeFlow } from '../gas-flows/DefaultGasFeeFlow.js'; +import { SequentialPublishBatchHook } from '../hooks/SequentialPublishBatchHook.js'; +import type { + GasFeeFlow, + PublishBatchHook, + RequiredAsset, + TransactionBatchSingleRequest, +} from '../types.js'; import { TransactionEnvelopeType, TransactionType, GasFeeEstimateLevel, GasFeeEstimateType, TransactionStatus, -} from '..'; +} from './...js'; import type { TransactionControllerMessenger, TransactionControllerState, TransactionMeta, -} from '..'; -import { flushPromises } from '../../../../tests/helpers'; -import { DefaultGasFeeFlow } from '../gas-flows/DefaultGasFeeFlow'; -import { SequentialPublishBatchHook } from '../hooks/SequentialPublishBatchHook'; -import type { - GasFeeFlow, - PublishBatchHook, - RequiredAsset, - TransactionBatchSingleRequest, -} from '../types'; +} from './...js'; import { ERROR_MESSAGE_NO_UPGRADE_CONTRACT, addTransactionBatch, isAtomicBatchSupported, -} from './batch'; +} from './batch.js'; import { ERROR_MESSGE_PUBLIC_KEY, doesAccountSupportEIP7702, doesChainSupportEIP7702, generateEIP7702BatchTransaction, isAccountUpgradedToEIP7702, -} from './eip7702'; +} from './eip7702.js'; import { getEIP7702SupportedChains, getEIP7702UpgradeContractAddress, -} from './feature-flags'; -import { simulateGasBatch } from './gas'; -import { determineTransactionType } from './transaction-type'; -import { validateBatchRequest } from './validation'; +} from './feature-flags.js'; +import { simulateGasBatch } from './gas.js'; +import { determineTransactionType } from './transaction-type.js'; +import { validateBatchRequest } from './validation.js'; jest.mock('./eip7702'); jest.mock('./feature-flags'); diff --git a/packages/transaction-controller/src/utils/batch.ts b/packages/transaction-controller/src/utils/batch.ts index 26592ff0572..36c9bc53549 100644 --- a/packages/transaction-controller/src/utils/batch.ts +++ b/packages/transaction-controller/src/utils/batch.ts @@ -18,23 +18,13 @@ import { bytesToHex, createModuleLogger } from '@metamask/utils'; import type { WritableDraft } from 'immer/dist/internal.js'; import { parse, v4 } from 'uuid'; -import { GasFeeEstimateLevel, TransactionStatus } from '..'; -import type { - BatchTransactionParams, - GetSimulationConfig, - PublishBatchHookRequest, - TransactionController, - TransactionControllerMessenger, - TransactionControllerState, - TransactionMeta, -} from '..'; -import { DefaultGasFeeFlow } from '../gas-flows/DefaultGasFeeFlow'; -import { updateTransactionGasEstimates } from '../helpers/GasFeePoller'; -import type { PendingTransactionTracker } from '../helpers/PendingTransactionTracker'; -import { CollectPublishHook } from '../hooks/CollectPublishHook'; -import { SequentialPublishBatchHook } from '../hooks/SequentialPublishBatchHook'; -import { projectLogger } from '../logger'; -import { TransactionEnvelopeType, TransactionType } from '../types'; +import { DefaultGasFeeFlow } from '../gas-flows/DefaultGasFeeFlow.js'; +import { updateTransactionGasEstimates } from '../helpers/GasFeePoller.js'; +import type { PendingTransactionTracker } from '../helpers/PendingTransactionTracker.js'; +import { CollectPublishHook } from '../hooks/CollectPublishHook.js'; +import { SequentialPublishBatchHook } from '../hooks/SequentialPublishBatchHook.js'; +import { projectLogger } from '../logger.js'; +import { TransactionEnvelopeType, TransactionType } from '../types.js'; import type { NestedTransactionMetadata, SecurityAlertResponse, @@ -47,24 +37,34 @@ import type { IsAtomicBatchSupportedResult, IsAtomicBatchSupportedResultEntry, TransactionBatchMeta, -} from '../types'; -import type { TransactionBatchResult, TransactionParams } from '../types'; +} from '../types.js'; +import type { TransactionBatchResult, TransactionParams } from '../types.js'; +import { GasFeeEstimateLevel, TransactionStatus } from './...js'; +import type { + BatchTransactionParams, + GetSimulationConfig, + PublishBatchHookRequest, + TransactionController, + TransactionControllerMessenger, + TransactionControllerState, + TransactionMeta, +} from './...js'; import { ERROR_MESSGE_PUBLIC_KEY, doesAccountSupportEIP7702, doesChainSupportEIP7702, generateEIP7702BatchTransaction, isAccountUpgradedToEIP7702, -} from './eip7702'; +} from './eip7702.js'; import { getBatchSizeLimit, getEIP7702SupportedChains, getEIP7702UpgradeContractAddress, -} from './feature-flags'; -import { simulateGasBatch } from './gas'; -import { getChainId } from './provider'; -import { determineTransactionType } from './transaction-type'; -import { validateBatchRequest } from './validation'; +} from './feature-flags.js'; +import { simulateGasBatch } from './gas.js'; +import { getChainId } from './provider.js'; +import { determineTransactionType } from './transaction-type.js'; +import { validateBatchRequest } from './validation.js'; type UpdateStateCallback = ( callback: ( diff --git a/packages/transaction-controller/src/utils/eip7702.test.ts b/packages/transaction-controller/src/utils/eip7702.test.ts index 155eb007ee1..f7cf8232440 100644 --- a/packages/transaction-controller/src/utils/eip7702.test.ts +++ b/packages/transaction-controller/src/utils/eip7702.test.ts @@ -11,11 +11,11 @@ import { remove0x } from '@metamask/utils'; import type { KeyringControllerGetStateAction, KeyringControllerSignEip7702AuthorizationAction, -} from '../../../keyring-controller/src'; -import type { TransactionControllerMessenger } from '../TransactionController'; -import { TransactionStatus } from '../types'; -import type { AuthorizationList } from '../types'; -import type { TransactionMeta } from '../types'; +} from '../../../keyring-controller/src.js'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; +import { TransactionStatus } from '../types.js'; +import type { AuthorizationList } from '../types.js'; +import type { TransactionMeta } from '../types.js'; import { DELEGATION_PREFIX, decodeAuthorizationSignature, @@ -25,12 +25,12 @@ import { getDelegationAddress, isAccountUpgradedToEIP7702, signAuthorizationList, -} from './eip7702'; +} from './eip7702.js'; import { getEIP7702ContractAddresses, getEIP7702SupportedChains, -} from './feature-flags'; -import { rpcRequest } from './provider'; +} from './feature-flags.js'; +import { rpcRequest } from './provider.js'; jest.mock('../utils/feature-flags'); diff --git a/packages/transaction-controller/src/utils/eip7702.ts b/packages/transaction-controller/src/utils/eip7702.ts index 91b39c390de..ea7f03792ac 100644 --- a/packages/transaction-controller/src/utils/eip7702.ts +++ b/packages/transaction-controller/src/utils/eip7702.ts @@ -5,20 +5,20 @@ import type { NetworkClientId } from '@metamask/network-controller'; import { createModuleLogger, add0x } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import { ABI_IERC7821 } from '../constants'; -import { projectLogger } from '../logger'; -import type { TransactionControllerMessenger } from '../TransactionController'; +import { ABI_IERC7821 } from '../constants.js'; +import { projectLogger } from '../logger.js'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; import type { BatchTransactionParams, Authorization, AuthorizationList, TransactionMeta, -} from '../types'; +} from '../types.js'; import { getEIP7702ContractAddresses, getEIP7702SupportedChains, -} from './feature-flags'; -import { rpcRequest } from './provider'; +} from './feature-flags.js'; +import { rpcRequest } from './provider.js'; export const DELEGATION_PREFIX = '0xef0100'; export const BATCH_FUNCTION_NAME = 'execute'; diff --git a/packages/transaction-controller/src/utils/external-transactions.test.ts b/packages/transaction-controller/src/utils/external-transactions.test.ts index 7fe874e62ef..6093f6b62ed 100644 --- a/packages/transaction-controller/src/utils/external-transactions.test.ts +++ b/packages/transaction-controller/src/utils/external-transactions.test.ts @@ -1,8 +1,8 @@ import { rpcErrors } from '@metamask/rpc-errors'; -import type { TransactionMeta } from '../types'; -import { TransactionStatus } from '../types'; -import { validateConfirmedExternalTransaction } from './external-transactions'; +import type { TransactionMeta } from '../types.js'; +import { TransactionStatus } from '../types.js'; +import { validateConfirmedExternalTransaction } from './external-transactions.js'; describe('validateConfirmedExternalTransaction', () => { const mockTransactionMeta = ( diff --git a/packages/transaction-controller/src/utils/external-transactions.ts b/packages/transaction-controller/src/utils/external-transactions.ts index c7174764e21..cf4f5d2b666 100644 --- a/packages/transaction-controller/src/utils/external-transactions.ts +++ b/packages/transaction-controller/src/utils/external-transactions.ts @@ -1,8 +1,8 @@ // These utility functions are exclusively used by `confirmExternalTransaction` method in controller import { rpcErrors } from '@metamask/rpc-errors'; -import { TransactionStatus } from '../types'; -import type { TransactionMeta } from '../types'; +import { TransactionStatus } from '../types.js'; +import type { TransactionMeta } from '../types.js'; /** * Validates the external provided transaction meta. diff --git a/packages/transaction-controller/src/utils/feature-flags.test.ts b/packages/transaction-controller/src/utils/feature-flags.test.ts index 405008c10b6..a018fbc52d6 100644 --- a/packages/transaction-controller/src/utils/feature-flags.test.ts +++ b/packages/transaction-controller/src/utils/feature-flags.test.ts @@ -7,8 +7,8 @@ import type { import type { RemoteFeatureFlagControllerGetStateAction } from '@metamask/remote-feature-flag-controller'; import type { Hex } from '@metamask/utils'; -import type { TransactionControllerMessenger } from '..'; -import type { TransactionControllerFeatureFlags } from './feature-flags'; +import type { TransactionControllerMessenger } from './...js'; +import type { TransactionControllerFeatureFlags } from './feature-flags.js'; import { getAcceleratedPollingParams, getBatchSizeLimit, @@ -22,8 +22,8 @@ import { getTransactionHistoryLimit, FeatureFlag, getTimeoutAttempts, -} from './feature-flags'; -import { isValidSignature } from './signature'; +} from './feature-flags.js'; +import { isValidSignature } from './signature.js'; jest.mock('./signature'); diff --git a/packages/transaction-controller/src/utils/feature-flags.ts b/packages/transaction-controller/src/utils/feature-flags.ts index 128e5844cf0..d7bf191c5e0 100644 --- a/packages/transaction-controller/src/utils/feature-flags.ts +++ b/packages/transaction-controller/src/utils/feature-flags.ts @@ -1,10 +1,10 @@ import { createModuleLogger } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import { projectLogger } from '../logger'; -import type { TransactionControllerMessenger } from '../TransactionController'; -import { isValidSignature } from './signature'; -import { padHexToEvenLength } from './utils'; +import { projectLogger } from '../logger.js'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; +import { isValidSignature } from './signature.js'; +import { padHexToEvenLength } from './utils.js'; const DEFAULT_BATCH_SIZE_LIMIT = 10; const DEFAULT_ACCELERATED_POLLING_COUNT_MAX = 10; diff --git a/packages/transaction-controller/src/utils/first-time-interaction.test.ts b/packages/transaction-controller/src/utils/first-time-interaction.test.ts index 208141f6ee7..5cf7329e3f3 100644 --- a/packages/transaction-controller/src/utils/first-time-interaction.test.ts +++ b/packages/transaction-controller/src/utils/first-time-interaction.test.ts @@ -1,11 +1,11 @@ import type { TraceContext } from '@metamask/controller-utils'; -import { getAccountAddressRelationship } from '../api/accounts-api'; -import type { TransactionMeta } from '../types'; -import { TransactionStatus, TransactionType } from '../types'; -import { updateFirstTimeInteraction } from './first-time-interaction'; -import { decodeTransactionData } from './transaction-type'; -import { validateParamTo } from './validation'; +import { getAccountAddressRelationship } from '../api/accounts-api.js'; +import type { TransactionMeta } from '../types.js'; +import { TransactionStatus, TransactionType } from '../types.js'; +import { updateFirstTimeInteraction } from './first-time-interaction.js'; +import { decodeTransactionData } from './transaction-type.js'; +import { validateParamTo } from './validation.js'; jest.mock('./transaction-type'); jest.mock('./validation'); diff --git a/packages/transaction-controller/src/utils/first-time-interaction.ts b/packages/transaction-controller/src/utils/first-time-interaction.ts index 85ba6cfbcf0..f6d20c95393 100644 --- a/packages/transaction-controller/src/utils/first-time-interaction.ts +++ b/packages/transaction-controller/src/utils/first-time-interaction.ts @@ -2,13 +2,13 @@ import type { TransactionDescription } from '@ethersproject/abi'; import type { TraceContext, TraceCallback } from '@metamask/controller-utils'; import { hexToNumber } from '@metamask/utils'; -import { getAccountAddressRelationship } from '../api/accounts-api'; -import type { GetAccountAddressRelationshipRequest } from '../api/accounts-api'; -import { projectLogger as log } from '../logger'; -import { TransactionType } from '../types'; -import type { TransactionMeta } from '../types'; -import { decodeTransactionData } from './transaction-type'; -import { validateParamTo } from './validation'; +import { getAccountAddressRelationship } from '../api/accounts-api.js'; +import type { GetAccountAddressRelationshipRequest } from '../api/accounts-api.js'; +import { projectLogger as log } from '../logger.js'; +import { TransactionType } from '../types.js'; +import type { TransactionMeta } from '../types.js'; +import { decodeTransactionData } from './transaction-type.js'; +import { validateParamTo } from './validation.js'; const TOKEN_TRANSFER_TYPES = [ TransactionType.tokenMethodTransfer, diff --git a/packages/transaction-controller/src/utils/gas-fee-tokens.test.ts b/packages/transaction-controller/src/utils/gas-fee-tokens.test.ts index 8a6418375d4..22e09923c31 100644 --- a/packages/transaction-controller/src/utils/gas-fee-tokens.test.ts +++ b/packages/transaction-controller/src/utils/gas-fee-tokens.test.ts @@ -1,21 +1,21 @@ import type { Hex } from '@metamask/utils'; -import { cloneDeep } from 'lodash'; +import { cloneDeep } from 'lodash-es'; +import { simulateTransactions } from '../api/simulation-api.js'; import type { GasFeeToken, GetSimulationConfig, TransactionControllerMessenger, TransactionMeta, -} from '..'; -import { simulateTransactions } from '../api/simulation-api'; -import { isNativeBalanceSufficientForGas } from './balance'; -import { doesChainSupportEIP7702 } from './eip7702'; -import { getEIP7702UpgradeContractAddress } from './feature-flags'; -import type { GetGasFeeTokensRequest } from './gas-fee-tokens'; +} from './...js'; +import { isNativeBalanceSufficientForGas } from './balance.js'; +import { doesChainSupportEIP7702 } from './eip7702.js'; +import { getEIP7702UpgradeContractAddress } from './feature-flags.js'; +import type { GetGasFeeTokensRequest } from './gas-fee-tokens.js'; import { checkGasFeeTokenBeforePublish, getGasFeeTokens, -} from './gas-fee-tokens'; +} from './gas-fee-tokens.js'; jest.mock('../api/simulation-api'); jest.mock('./eip7702'); diff --git a/packages/transaction-controller/src/utils/gas-fee-tokens.ts b/packages/transaction-controller/src/utils/gas-fee-tokens.ts index ce4205aa188..2e92f6a621e 100644 --- a/packages/transaction-controller/src/utils/gas-fee-tokens.ts +++ b/packages/transaction-controller/src/utils/gas-fee-tokens.ts @@ -3,23 +3,23 @@ import { rpcErrors } from '@metamask/rpc-errors'; import type { Hex } from '@metamask/utils'; import { createModuleLogger } from '@metamask/utils'; +import { simulateTransactions } from '../api/simulation-api.js'; +import type { SimulationRequestTransaction } from '../api/simulation-api.js'; +import type { + SimulationResponse, + SimulationResponseTransaction, +} from '../api/simulation-api.js'; +import { projectLogger } from '../logger.js'; +import type { GetSimulationConfig } from '../types.js'; import type { GasFeeToken, TransactionControllerMessenger, TransactionMeta, -} from '..'; -import { simulateTransactions } from '../api/simulation-api'; -import type { SimulationRequestTransaction } from '../api/simulation-api'; -import type { - SimulationResponse, - SimulationResponseTransaction, -} from '../api/simulation-api'; -import { projectLogger } from '../logger'; -import type { GetSimulationConfig } from '../types'; -import { isNativeBalanceSufficientForGas } from './balance'; -import { ERROR_MESSAGE_NO_UPGRADE_CONTRACT } from './batch'; -import { ERROR_MESSGE_PUBLIC_KEY, doesChainSupportEIP7702 } from './eip7702'; -import { getEIP7702UpgradeContractAddress } from './feature-flags'; +} from './...js'; +import { isNativeBalanceSufficientForGas } from './balance.js'; +import { ERROR_MESSAGE_NO_UPGRADE_CONTRACT } from './batch.js'; +import { ERROR_MESSGE_PUBLIC_KEY, doesChainSupportEIP7702 } from './eip7702.js'; +import { getEIP7702UpgradeContractAddress } from './feature-flags.js'; const log = createModuleLogger(projectLogger, 'gas-fee-tokens'); diff --git a/packages/transaction-controller/src/utils/gas-fees.test.ts b/packages/transaction-controller/src/utils/gas-fees.test.ts index 0885e3dad40..55deb04f5fb 100644 --- a/packages/transaction-controller/src/utils/gas-fees.test.ts +++ b/packages/transaction-controller/src/utils/gas-fees.test.ts @@ -1,16 +1,16 @@ import type { NetworkClientId } from '@metamask/network-controller'; -import type { TransactionControllerMessenger } from '../TransactionController'; -import type { GasFeeFlow, GasFeeFlowResponse } from '../types'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; +import type { GasFeeFlow, GasFeeFlowResponse } from '../types.js'; import { GasFeeEstimateLevel, GasFeeEstimateType, TransactionType, UserFeeLevel, -} from '../types'; -import type { UpdateGasFeesRequest } from './gas-fees'; -import { gweiDecimalToWeiDecimal, updateGasFees } from './gas-fees'; -import { rpcRequest } from './provider'; +} from '../types.js'; +import type { UpdateGasFeesRequest } from './gas-fees.js'; +import { gweiDecimalToWeiDecimal, updateGasFees } from './gas-fees.js'; +import { rpcRequest } from './provider.js'; jest.mock('./provider', () => ({ rpcRequest: jest.fn(), diff --git a/packages/transaction-controller/src/utils/gas-fees.ts b/packages/transaction-controller/src/utils/gas-fees.ts index 33f12cf9878..66660547a2b 100644 --- a/packages/transaction-controller/src/utils/gas-fees.ts +++ b/packages/transaction-controller/src/utils/gas-fees.ts @@ -6,21 +6,21 @@ import type { import type { Hex } from '@metamask/utils'; import { add0x, createModuleLogger } from '@metamask/utils'; -import { projectLogger } from '../logger'; -import type { TransactionControllerMessenger } from '../TransactionController'; +import { projectLogger } from '../logger.js'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; import type { SavedGasFees, TransactionParams, TransactionMeta, GasFeeFlow, -} from '../types'; +} from '../types.js'; import { GasFeeEstimateLevel, GasFeeEstimateType, UserFeeLevel, -} from '../types'; -import { getGasFeeFlow } from './gas-flow'; -import { rpcRequest } from './provider'; +} from '../types.js'; +import { getGasFeeFlow } from './gas-flow.js'; +import { rpcRequest } from './provider.js'; export type UpdateGasFeesRequest = { eip1559: boolean; @@ -437,9 +437,7 @@ async function getSuggestedGasFees( }; default: throw new Error( - // TODO: Either fix this lint violation or explain why it's necessary to ignore. - // eslint-disable-next-line @typescript-eslint/restrict-template-expressions - `Unsupported gas fee estimate type returned from flow: ${gasFeeEstimateType}`, + `Unsupported gas fee estimate type returned from flow: ${String(gasFeeEstimateType)}`, ); } } catch (error) { diff --git a/packages/transaction-controller/src/utils/gas-flow.test.ts b/packages/transaction-controller/src/utils/gas-flow.test.ts index 7e80fa5f8f2..cb6405ff87e 100644 --- a/packages/transaction-controller/src/utils/gas-flow.test.ts +++ b/packages/transaction-controller/src/utils/gas-flow.test.ts @@ -1,15 +1,15 @@ import type { GasFeeEstimates as GasFeeControllerEstimates } from '@metamask/gas-fee-controller'; -import type { TransactionControllerMessenger } from '../TransactionController'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; import type { FeeMarketGasFeeEstimates, GasFeeFlow, GasPriceGasFeeEstimates, LegacyGasFeeEstimates, TransactionMeta, -} from '../types'; -import { GasFeeEstimateType, TransactionStatus } from '../types'; -import { getGasFeeFlow, mergeGasFeeEstimates } from './gas-flow'; +} from '../types.js'; +import { GasFeeEstimateType, TransactionStatus } from '../types.js'; +import { getGasFeeFlow, mergeGasFeeEstimates } from './gas-flow.js'; const TRANSACTION_META_MOCK: TransactionMeta = { id: '1', diff --git a/packages/transaction-controller/src/utils/gas-flow.ts b/packages/transaction-controller/src/utils/gas-flow.ts index 94e21e5e579..48d57211f71 100644 --- a/packages/transaction-controller/src/utils/gas-flow.ts +++ b/packages/transaction-controller/src/utils/gas-flow.ts @@ -7,18 +7,18 @@ import type { } from '@metamask/gas-fee-controller'; import type { GasFeeState } from '@metamask/gas-fee-controller'; -import type { TransactionControllerMessenger } from '../TransactionController'; -import { GasFeeEstimateLevel, GasFeeEstimateType } from '../types'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; +import { GasFeeEstimateLevel, GasFeeEstimateType } from '../types.js'; import type { FeeMarketGasFeeEstimates, GasPriceGasFeeEstimates, LegacyGasFeeEstimates, -} from '../types'; +} from '../types.js'; import type { GasFeeFlow, TransactionMeta, FeeMarketGasFeeEstimateForLevel, -} from '../types'; +} from '../types.js'; type MergeGasFeeEstimatesRequest = { gasFeeControllerEstimates: @@ -64,7 +64,7 @@ export function mergeGasFeeEstimates({ const transactionEstimateType = transactionGasFeeEstimates.type; if (transactionEstimateType === GasFeeEstimateType.FeeMarket) { - return Object.values(GasFeeEstimateLevel).reduce( + return Object.values(GasFeeEstimateLevel).reduce( (result, level) => ({ ...result, [level]: mergeFeeMarketEstimate( @@ -72,17 +72,17 @@ export function mergeGasFeeEstimates({ transactionGasFeeEstimates[level], ), }), - { ...gasFeeControllerEstimates } as GasFeeEstimates, + { ...gasFeeControllerEstimates }, ); } if (transactionEstimateType === GasFeeEstimateType.Legacy) { - return Object.values(GasFeeEstimateLevel).reduce( + return Object.values(GasFeeEstimateLevel).reduce( (result, level) => ({ ...result, [level]: getLegacyEstimate(transactionGasFeeEstimates, level), }), - {} as LegacyGasPriceEstimate, + {}, ); } diff --git a/packages/transaction-controller/src/utils/gas.test.ts b/packages/transaction-controller/src/utils/gas.test.ts index a54716235e5..9f55da92535 100644 --- a/packages/transaction-controller/src/utils/gas.test.ts +++ b/packages/transaction-controller/src/utils/gas.test.ts @@ -1,24 +1,30 @@ import type { NetworkClientId } from '@metamask/network-controller'; import { remove0x } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import { cloneDeep } from 'lodash'; +import { cloneDeep } from 'lodash-es'; import type { SimulationResponse, SimulationResponseTransaction, -} from '../api/simulation-api'; -import { simulateTransactions } from '../api/simulation-api'; -import type { TransactionControllerMessenger } from '../TransactionController'; -import { TransactionEnvelopeType } from '../types'; -import type { TransactionMeta } from '../types'; +} from '../api/simulation-api.js'; +import { simulateTransactions } from '../api/simulation-api.js'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; +import { TransactionEnvelopeType } from '../types.js'; +import type { TransactionMeta } from '../types.js'; import type { AuthorizationList, BatchTransactionParams, TransactionBatchSingleRequest, -} from '../types'; -import { DELEGATION_PREFIX, generateEIP7702BatchTransaction } from './eip7702'; -import { getGasEstimateBuffer, getGasEstimateFallback } from './feature-flags'; -import type { UpdateGasRequest } from './gas'; +} from '../types.js'; +import { + DELEGATION_PREFIX, + generateEIP7702BatchTransaction, +} from './eip7702.js'; +import { + getGasEstimateBuffer, + getGasEstimateFallback, +} from './feature-flags.js'; +import type { UpdateGasRequest } from './gas.js'; import { addGasBuffer, estimateGas, @@ -31,8 +37,8 @@ import { INTRINSIC_GAS, DUMMY_AUTHORIZATION_SIGNATURE, simulateGasBatch, -} from './gas'; -import { rpcRequest } from './provider'; +} from './gas.js'; +import { rpcRequest } from './provider.js'; jest.mock('./provider', () => ({ ...jest.requireActual('./provider'), diff --git a/packages/transaction-controller/src/utils/gas.ts b/packages/transaction-controller/src/utils/gas.ts index f04568a6a91..bc2fd95d260 100644 --- a/packages/transaction-controller/src/utils/gas.ts +++ b/packages/transaction-controller/src/utils/gas.ts @@ -9,10 +9,10 @@ import type { Hex, Json } from '@metamask/utils'; import { add0x, createModuleLogger, remove0x } from '@metamask/utils'; import { BigNumber } from 'bignumber.js'; -import { simulateTransactions } from '../api/simulation-api'; -import { projectLogger } from '../logger'; -import type { TransactionControllerMessenger } from '../TransactionController'; -import { TransactionEnvelopeType } from '../types'; +import { simulateTransactions } from '../api/simulation-api.js'; +import { projectLogger } from '../logger.js'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; +import { TransactionEnvelopeType } from '../types.js'; import type { AuthorizationList, BatchTransactionParams, @@ -23,15 +23,18 @@ import type { TransactionBatchSingleRequest, TransactionMeta, TransactionParams, -} from '../types'; +} from '../types.js'; import { DELEGATION_PREFIX, doesAccountSupportEIP7702, generateEIP7702BatchTransaction, -} from './eip7702'; -import { getGasEstimateBuffer, getGasEstimateFallback } from './feature-flags'; -import { getChainId, rpcRequest } from './provider'; -import { decodeRevert } from './revert-reason'; +} from './eip7702.js'; +import { + getGasEstimateBuffer, + getGasEstimateFallback, +} from './feature-flags.js'; +import { getChainId, rpcRequest } from './provider.js'; +import { decodeRevert } from './revert-reason.js'; export type UpdateGasRequest = { isCustomNetwork: boolean; diff --git a/packages/transaction-controller/src/utils/layer1-gas-fee-flow.test.ts b/packages/transaction-controller/src/utils/layer1-gas-fee-flow.test.ts index 87ececc2424..b8b952bfcf5 100644 --- a/packages/transaction-controller/src/utils/layer1-gas-fee-flow.test.ts +++ b/packages/transaction-controller/src/utils/layer1-gas-fee-flow.test.ts @@ -1,11 +1,11 @@ import type { Provider } from '@metamask/network-controller'; import type { Hex } from '@metamask/utils'; -import type { TransactionControllerMessenger } from '../TransactionController'; -import { TransactionStatus } from '../types'; -import type { Layer1GasFeeFlow, TransactionMeta } from '../types'; -import { updateTransactionLayer1GasFee } from './layer1-gas-fee-flow'; -import { getProvider } from './provider'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; +import { TransactionStatus } from '../types.js'; +import type { Layer1GasFeeFlow, TransactionMeta } from '../types.js'; +import { updateTransactionLayer1GasFee } from './layer1-gas-fee-flow.js'; +import { getProvider } from './provider.js'; jest.mock('@metamask/controller-utils', () => ({ ...jest.requireActual('@metamask/controller-utils'), diff --git a/packages/transaction-controller/src/utils/layer1-gas-fee-flow.ts b/packages/transaction-controller/src/utils/layer1-gas-fee-flow.ts index f1deca85048..11f0f554d21 100644 --- a/packages/transaction-controller/src/utils/layer1-gas-fee-flow.ts +++ b/packages/transaction-controller/src/utils/layer1-gas-fee-flow.ts @@ -1,10 +1,10 @@ import { createModuleLogger } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import { projectLogger } from '../logger'; -import type { TransactionControllerMessenger } from '../TransactionController'; -import type { Layer1GasFeeFlow, TransactionMeta } from '../types'; -import { getProvider } from './provider'; +import { projectLogger } from '../logger.js'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; +import type { Layer1GasFeeFlow, TransactionMeta } from '../types.js'; +import { getProvider } from './provider.js'; const log = createModuleLogger(projectLogger, 'layer-1-gas-fee-flow'); diff --git a/packages/transaction-controller/src/utils/nonce.test.ts b/packages/transaction-controller/src/utils/nonce.test.ts index a9563c8cad4..f1355aaa51e 100644 --- a/packages/transaction-controller/src/utils/nonce.test.ts +++ b/packages/transaction-controller/src/utils/nonce.test.ts @@ -3,9 +3,12 @@ import type { Transaction as NonceTrackerTransaction, } from '@metamask/nonce-tracker'; -import type { TransactionMeta } from '../types'; -import { TransactionStatus } from '../types'; -import { getAndFormatTransactionsForNonceTracker, getNextNonce } from './nonce'; +import type { TransactionMeta } from '../types.js'; +import { TransactionStatus } from '../types.js'; +import { + getAndFormatTransactionsForNonceTracker, + getNextNonce, +} from './nonce.js'; const TRANSACTION_META_MOCK: TransactionMeta = { chainId: '0x1', diff --git a/packages/transaction-controller/src/utils/nonce.ts b/packages/transaction-controller/src/utils/nonce.ts index 8c17ee5c12a..49c65bf336f 100644 --- a/packages/transaction-controller/src/utils/nonce.ts +++ b/packages/transaction-controller/src/utils/nonce.ts @@ -4,8 +4,8 @@ import type { Transaction as NonceTrackerTransaction, } from '@metamask/nonce-tracker'; -import { createModuleLogger, projectLogger } from '../logger'; -import type { TransactionMeta, TransactionStatus } from '../types'; +import { createModuleLogger, projectLogger } from '../logger.js'; +import type { TransactionMeta, TransactionStatus } from '../types.js'; const log = createModuleLogger(projectLogger, 'nonce'); diff --git a/packages/transaction-controller/src/utils/prepare.test.ts b/packages/transaction-controller/src/utils/prepare.test.ts index c714afb0f47..a109bc13897 100644 --- a/packages/transaction-controller/src/utils/prepare.test.ts +++ b/packages/transaction-controller/src/utils/prepare.test.ts @@ -4,9 +4,9 @@ import { EOACodeEIP7702Transaction, } from '@ethereumjs/tx'; -import { TransactionEnvelopeType } from '../types'; -import type { Authorization, TransactionParams } from '../types'; -import { prepareTransaction, serializeTransaction } from './prepare'; +import { TransactionEnvelopeType } from '../types.js'; +import type { Authorization, TransactionParams } from '../types.js'; +import { prepareTransaction, serializeTransaction } from './prepare.js'; const CHAIN_ID_MOCK = '0x123'; diff --git a/packages/transaction-controller/src/utils/prepare.ts b/packages/transaction-controller/src/utils/prepare.ts index 2ec62c1b645..1586f750984 100644 --- a/packages/transaction-controller/src/utils/prepare.ts +++ b/packages/transaction-controller/src/utils/prepare.ts @@ -4,9 +4,9 @@ import type { TypedTransaction, TypedTxData } from '@ethereumjs/tx'; import { TransactionFactory } from '@ethereumjs/tx'; import { bytesToHex } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import { cloneDeep } from 'lodash'; +import { cloneDeep } from 'lodash-es'; -import type { AuthorizationList, TransactionParams } from '../types'; +import type { AuthorizationList, TransactionParams } from '../types.js'; export const HARDFORK = Hardfork.Prague; diff --git a/packages/transaction-controller/src/utils/provider.test.ts b/packages/transaction-controller/src/utils/provider.test.ts index 248124da355..4c9df1cf674 100644 --- a/packages/transaction-controller/src/utils/provider.test.ts +++ b/packages/transaction-controller/src/utils/provider.test.ts @@ -3,8 +3,8 @@ import { NetworkClientType } from '@metamask/network-controller'; import { RpcEndpointType } from '@metamask/network-controller'; import type { Hex } from '@metamask/utils'; -import type { TransactionControllerMessenger } from '../TransactionController'; -import { getProvider, rpcRequest } from './provider'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; +import { getProvider, rpcRequest } from './provider.js'; describe('provider utils', () => { const requestMock = jest.fn(); diff --git a/packages/transaction-controller/src/utils/provider.ts b/packages/transaction-controller/src/utils/provider.ts index 0187a158524..ffa95c133b2 100644 --- a/packages/transaction-controller/src/utils/provider.ts +++ b/packages/transaction-controller/src/utils/provider.ts @@ -6,8 +6,8 @@ import type { import { NetworkClientType } from '@metamask/network-controller'; import type { Hex } from '@metamask/utils'; -import { createModuleLogger, projectLogger } from '../logger'; -import type { TransactionControllerMessenger } from '../TransactionController'; +import { createModuleLogger, projectLogger } from '../logger.js'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; const log = createModuleLogger(projectLogger, 'provider'); diff --git a/packages/transaction-controller/src/utils/retry.test.ts b/packages/transaction-controller/src/utils/retry.test.ts index 48a04bc13f4..5897730741a 100644 --- a/packages/transaction-controller/src/utils/retry.test.ts +++ b/packages/transaction-controller/src/utils/retry.test.ts @@ -1,5 +1,5 @@ -import type { TransactionParams } from '../types'; -import { getTransactionParamsWithIncreasedGasFee } from './retry'; +import type { TransactionParams } from '../types.js'; +import { getTransactionParamsWithIncreasedGasFee } from './retry.js'; const RATE_MOCK = 16; const VALUE_MOCK = '0x111'; diff --git a/packages/transaction-controller/src/utils/retry.ts b/packages/transaction-controller/src/utils/retry.ts index 9ab1e28aed3..61f37280986 100644 --- a/packages/transaction-controller/src/utils/retry.ts +++ b/packages/transaction-controller/src/utils/retry.ts @@ -6,7 +6,7 @@ import type { FeeMarketEIP1559Values, GasPriceValue, TransactionParams, -} from '../types'; +} from '../types.js'; /** * Returns new transaction parameters with increased gas fees. diff --git a/packages/transaction-controller/src/utils/revert-reason.test.ts b/packages/transaction-controller/src/utils/revert-reason.test.ts index 4133c8902e2..14aee347388 100644 --- a/packages/transaction-controller/src/utils/revert-reason.test.ts +++ b/packages/transaction-controller/src/utils/revert-reason.test.ts @@ -1,11 +1,11 @@ -import type { TransactionControllerMessenger } from '../TransactionController'; -import type { TransactionMeta } from '../types'; -import { rpcRequest } from './provider'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; +import type { TransactionMeta } from '../types.js'; +import { rpcRequest } from './provider.js'; import { decodeRevert, extractRevert, OnChainFailureError, -} from './revert-reason'; +} from './revert-reason.js'; jest.mock('./provider', () => ({ ...jest.requireActual('./provider'), diff --git a/packages/transaction-controller/src/utils/revert-reason.ts b/packages/transaction-controller/src/utils/revert-reason.ts index 9079b4badeb..6c04c74b9ec 100644 --- a/packages/transaction-controller/src/utils/revert-reason.ts +++ b/packages/transaction-controller/src/utils/revert-reason.ts @@ -2,10 +2,10 @@ import { defaultAbiCoder } from '@ethersproject/abi'; import type { NetworkClientId } from '@metamask/network-controller'; import type { Hex } from '@metamask/utils'; -import { createModuleLogger, projectLogger } from '../logger'; -import type { TransactionControllerMessenger } from '../TransactionController'; -import type { Revert, TransactionParams } from '../types'; -import { rpcRequest } from './provider'; +import { createModuleLogger, projectLogger } from '../logger.js'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; +import type { Revert, TransactionParams } from '../types.js'; +import { rpcRequest } from './provider.js'; const log = createModuleLogger(projectLogger, 'revert-reason'); diff --git a/packages/transaction-controller/src/utils/signature.test.ts b/packages/transaction-controller/src/utils/signature.test.ts index c07e25fce5c..346c1ae45a8 100644 --- a/packages/transaction-controller/src/utils/signature.test.ts +++ b/packages/transaction-controller/src/utils/signature.test.ts @@ -1,4 +1,4 @@ -import { isValidSignature } from './signature'; +import { isValidSignature } from './signature.js'; const VALUE_1_MOCK = '0x12345678'; const VALUE_2_MOCK = '0xabcabcabcabcabcabcabcabc'; diff --git a/packages/transaction-controller/src/utils/swaps.test.ts b/packages/transaction-controller/src/utils/swaps.test.ts index 39d34351008..dc10956a7cc 100644 --- a/packages/transaction-controller/src/utils/swaps.test.ts +++ b/packages/transaction-controller/src/utils/swaps.test.ts @@ -6,18 +6,18 @@ import type { } from '@metamask/messenger'; import type { NetworkClientId } from '@metamask/network-controller'; -import { flushPromises } from '../../../../tests/helpers'; -import { CHAIN_IDS } from '../constants'; -import type { TransactionControllerMessenger } from '../TransactionController'; -import type { TransactionMeta } from '../types'; -import { TransactionType, TransactionStatus } from '../types'; -import { rpcRequest } from './provider'; +import { flushPromises } from '../../../../tests/helpers.js'; +import { CHAIN_IDS } from '../constants.js'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; +import type { TransactionMeta } from '../types.js'; +import { TransactionType, TransactionStatus } from '../types.js'; +import { rpcRequest } from './provider.js'; import { updateSwapsTransaction, updatePostTransactionBalance, UPDATE_POST_TX_BALANCE_ATTEMPTS, SWAPS_CHAINID_DEFAULT_TOKEN_MAP, -} from './swaps'; +} from './swaps.js'; jest.mock('./provider', () => ({ rpcRequest: jest.fn(), diff --git a/packages/transaction-controller/src/utils/swaps.ts b/packages/transaction-controller/src/utils/swaps.ts index d6c8755b97a..04e5cfd38e9 100644 --- a/packages/transaction-controller/src/utils/swaps.ts +++ b/packages/transaction-controller/src/utils/swaps.ts @@ -1,13 +1,13 @@ import type { NetworkClientId } from '@metamask/network-controller'; -import { merge, pickBy } from 'lodash'; - -import { CHAIN_IDS } from '../constants'; -import { createModuleLogger, projectLogger } from '../logger'; -import type { TransactionControllerMessenger } from '../TransactionController'; -import type { TransactionMeta } from '../types'; -import { TransactionType } from '../types'; -import { rpcRequest } from './provider'; -import { validateIfTransactionUnapproved } from './utils'; +import { merge, pickBy } from 'lodash-es'; + +import { CHAIN_IDS } from '../constants.js'; +import { createModuleLogger, projectLogger } from '../logger.js'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; +import type { TransactionMeta } from '../types.js'; +import { TransactionType } from '../types.js'; +import { rpcRequest } from './provider.js'; +import { validateIfTransactionUnapproved } from './utils.js'; const log = createModuleLogger(projectLogger, 'swaps'); diff --git a/packages/transaction-controller/src/utils/transaction-type.test.ts b/packages/transaction-controller/src/utils/transaction-type.test.ts index 2b6b57bee3e..79df204feed 100644 --- a/packages/transaction-controller/src/utils/transaction-type.test.ts +++ b/packages/transaction-controller/src/utils/transaction-type.test.ts @@ -8,14 +8,14 @@ import { } from '@metamask/metamask-eth-abis'; import type { NetworkClientId } from '@metamask/network-controller'; -import type { TransactionControllerMessenger } from '../TransactionController'; -import { TransactionType } from '../types'; -import { DELEGATION_PREFIX } from './eip7702'; -import { rpcRequest } from './provider'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; +import { TransactionType } from '../types.js'; +import { DELEGATION_PREFIX } from './eip7702.js'; +import { rpcRequest } from './provider.js'; import { decodeTransactionData, determineTransactionType, -} from './transaction-type'; +} from './transaction-type.js'; jest.mock('./provider', () => ({ rpcRequest: jest.fn(), diff --git a/packages/transaction-controller/src/utils/transaction-type.ts b/packages/transaction-controller/src/utils/transaction-type.ts index 85ccad46cc6..6a258c26fe2 100644 --- a/packages/transaction-controller/src/utils/transaction-type.ts +++ b/packages/transaction-controller/src/utils/transaction-type.ts @@ -8,11 +8,14 @@ import { } from '@metamask/metamask-eth-abis'; import type { NetworkClientId } from '@metamask/network-controller'; -import type { TransactionControllerMessenger } from '../TransactionController'; -import type { InferTransactionTypeResult, TransactionParams } from '../types'; -import { TransactionType } from '../types'; -import { DELEGATION_PREFIX } from './eip7702'; -import { rpcRequest } from './provider'; +import type { TransactionControllerMessenger } from '../TransactionController.js'; +import type { + InferTransactionTypeResult, + TransactionParams, +} from '../types.js'; +import { TransactionType } from '../types.js'; +import { DELEGATION_PREFIX } from './eip7702.js'; +import { rpcRequest } from './provider.js'; export const ESTIMATE_GAS_ERROR = 'eth_estimateGas rpc method error'; diff --git a/packages/transaction-controller/src/utils/utils.test.ts b/packages/transaction-controller/src/utils/utils.test.ts index 64ddcc7d005..c0a9d2a6f2e 100644 --- a/packages/transaction-controller/src/utils/utils.test.ts +++ b/packages/transaction-controller/src/utils/utils.test.ts @@ -5,9 +5,9 @@ import type { FeeMarketEIP1559Values, GasPriceValue, TransactionParams, -} from '../types'; -import { TransactionStatus } from '../types'; -import * as util from './utils'; +} from '../types.js'; +import { TransactionStatus } from '../types.js'; +import * as util from './utils.js'; const MAX_FEE_PER_GAS = 'maxFeePerGas'; const MAX_PRIORITY_FEE_PER_GAS = 'maxPriorityFeePerGas'; diff --git a/packages/transaction-controller/src/utils/utils.ts b/packages/transaction-controller/src/utils/utils.ts index 553bd2cec22..5b662c675a5 100644 --- a/packages/transaction-controller/src/utils/utils.ts +++ b/packages/transaction-controller/src/utils/utils.ts @@ -16,8 +16,8 @@ import type { TransactionError, TransactionMeta, TransactionParams, -} from '../types'; -import { TransactionEnvelopeType, TransactionStatus } from '../types'; +} from '../types.js'; +import { TransactionEnvelopeType, TransactionStatus } from '../types.js'; export const ESTIMATE_GAS_ERROR = 'eth_estimateGas rpc method error'; @@ -90,8 +90,8 @@ export const validateGasValues = ( ): void => { Object.keys(gasValues).forEach((key) => { // TODO: Replace `any` with type - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const value = (gasValues as any)[key]; + + const value = gasValues[key]; if (typeof value !== 'string' || !isStrictHexString(value)) { throw new TypeError( `expected hex string for ${key} but received: ${value}`, diff --git a/packages/transaction-controller/src/utils/validation.test.ts b/packages/transaction-controller/src/utils/validation.test.ts index f9bc98e7644..ab2c78cc6f1 100644 --- a/packages/transaction-controller/src/utils/validation.test.ts +++ b/packages/transaction-controller/src/utils/validation.test.ts @@ -1,14 +1,14 @@ import { rpcErrors } from '@metamask/rpc-errors'; import type { Hex } from '@metamask/utils'; -import { TransactionEnvelopeType, TransactionType } from '../types'; -import type { TransactionParams } from '../types'; +import { TransactionEnvelopeType, TransactionType } from '../types.js'; +import type { TransactionParams } from '../types.js'; import { validateBatchRequest, validateParamTo, validateTransactionOrigin, validateTxParams, -} from './validation'; +} from './validation.js'; const DATA_MOCK = '0x12345678'; const FROM_MOCK: Hex = '0x1678a085c290ebd122dc42cba69373b5953b831d'; diff --git a/packages/transaction-controller/src/utils/validation.ts b/packages/transaction-controller/src/utils/validation.ts index c3421bf2028..5617a377b23 100644 --- a/packages/transaction-controller/src/utils/validation.ts +++ b/packages/transaction-controller/src/utils/validation.ts @@ -5,13 +5,13 @@ import { JsonRpcError, providerErrors, rpcErrors } from '@metamask/rpc-errors'; import type { Hex } from '@metamask/utils'; import { isStrictHexString, remove0x } from '@metamask/utils'; -import { TransactionEnvelopeType, TransactionType } from '../types'; +import { TransactionEnvelopeType, TransactionType } from '../types.js'; import type { Authorization, TransactionBatchRequest, TransactionParams, -} from '../types'; -import { isEIP1559Transaction } from './utils'; +} from '../types.js'; +import { isEIP1559Transaction } from './utils.js'; export enum ErrorCode { DuplicateBundleId = 5720, diff --git a/packages/transaction-controller/tests/JsonRpcRequestMocks.ts b/packages/transaction-controller/tests/JsonRpcRequestMocks.ts index 6d211e1af58..64d0b8116fe 100644 --- a/packages/transaction-controller/tests/JsonRpcRequestMocks.ts +++ b/packages/transaction-controller/tests/JsonRpcRequestMocks.ts @@ -1,6 +1,6 @@ import type { Hex } from '@metamask/utils'; -import type { JsonRpcRequestMock } from '../../../tests/mock-network'; +import type { JsonRpcRequestMock } from '../../../tests/mock-network.js'; /** * Builds mock eth_gasPrice request. From 886d4125199c3aedf41382915397341cb6eb18f3 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:48:40 +0200 Subject: [PATCH 079/136] ESLint fix and `jest` global import for assets-controller --- packages/assets-controller/package.json | 2 +- .../AssetsController-method-action-types.ts | 2 +- .../src/AssetsController.test.ts | 20 +++--- .../assets-controller/src/AssetsController.ts | 68 +++++++++---------- .../MockAssetControllerMessenger.ts | 4 +- .../data-sources/AbstractDataSource.test.ts | 6 +- .../src/data-sources/AbstractDataSource.ts | 2 +- .../AccountsApiDataSource.test.ts | 6 +- .../src/data-sources/AccountsApiDataSource.ts | 12 ++-- .../BackendWebsocketDataSource.test.ts | 8 +-- .../BackendWebsocketDataSource.ts | 12 ++-- .../src/data-sources/PriceDataSource.test.ts | 8 +-- .../src/data-sources/PriceDataSource.ts | 14 ++-- .../src/data-sources/RpcDataSource.test.ts | 20 +++--- .../src/data-sources/RpcDataSource.ts | 22 +++--- .../src/data-sources/SnapDataSource.test.ts | 8 +-- .../src/data-sources/SnapDataSource.ts | 13 ++-- .../StakedBalanceDataSource.test.ts | 10 +-- .../data-sources/StakedBalanceDataSource.ts | 14 ++-- .../src/data-sources/TokenDataSource.test.ts | 8 +-- .../src/data-sources/TokenDataSource.ts | 12 ++-- .../clients/MulticallClient.test.ts | 4 +- .../clients/MulticallClient.ts | 6 +- .../clients/TokensApiClient.test.ts | 6 +- .../clients/TokensApiClient.ts | 2 +- .../evm-rpc-services/clients/index.ts | 6 +- .../data-sources/evm-rpc-services/index.ts | 8 +-- .../services/BalanceFetcher.test.ts | 8 +-- .../services/BalanceFetcher.ts | 8 +-- .../services/StakedBalanceFetcher.test.ts | 4 +- .../services/StakedBalanceFetcher.ts | 4 +- .../services/TokenDetector.test.ts | 10 +-- .../services/TokenDetector.ts | 10 +-- .../evm-rpc-services/services/index.ts | 6 +- .../evm-rpc-services/types/assets.ts | 2 +- .../evm-rpc-services/types/config.ts | 2 +- .../evm-rpc-services/types/index.ts | 12 ++-- .../evm-rpc-services/types/multicall.ts | 2 +- .../evm-rpc-services/types/services.ts | 4 +- .../evm-rpc-services/types/state.ts | 2 +- .../evm-rpc-services/utils/batch.test.ts | 2 +- .../evm-rpc-services/utils/index.ts | 6 +- .../evm-rpc-services/utils/parsing.test.ts | 2 +- .../evm-rpc-services/utils/parsing.ts | 2 +- .../src/data-sources/index.ts | 16 ++--- packages/assets-controller/src/defaults.ts | 2 +- packages/assets-controller/src/index.ts | 50 +++++++------- .../CustomAssetGraduationMiddleware.test.ts | 4 +- .../CustomAssetGraduationMiddleware.ts | 8 +-- .../middlewares/DetectionMiddleware.test.ts | 6 +- .../src/middlewares/DetectionMiddleware.ts | 8 +-- .../middlewares/ParallelMiddleware.test.ts | 6 +- .../src/middlewares/ParallelMiddleware.ts | 2 +- .../middlewares/RpcFallbackMiddleware.test.ts | 4 +- .../src/middlewares/RpcFallbackMiddleware.ts | 8 +-- .../src/middlewares/index.ts | 16 ++--- .../migrations/healAssetsInfoMetadata.test.ts | 6 +- .../src/migrations/healAssetsInfoMetadata.ts | 6 +- .../src/selectors/balance.test.ts | 8 +-- .../src/selectors/balance.ts | 4 +- .../utils/customAssetsRpcSupplement.test.ts | 4 +- .../src/utils/customAssetsRpcSupplement.ts | 2 +- .../src/utils/fetchWithTimeout.test.ts | 2 +- .../formatExchangeRatesForBridge.test.ts | 4 +- .../src/utils/formatExchangeRatesForBridge.ts | 6 +- .../formatStateForTransactionPay.test.ts | 8 ++- .../src/utils/formatStateForTransactionPay.ts | 6 +- packages/assets-controller/src/utils/index.ts | 16 ++--- .../src/utils/native-assets.test.ts | 4 +- .../src/utils/native-assets.ts | 4 +- .../src/utils/normalizeAmountString.test.ts | 2 +- .../src/utils/normalizeAssetId.ts | 2 +- ...ocessAccountActivityBalanceUpdates.test.ts | 4 +- .../processAccountActivityBalanceUpdates.ts | 2 +- 74 files changed, 304 insertions(+), 305 deletions(-) diff --git a/packages/assets-controller/package.json b/packages/assets-controller/package.json index b8fd45d0122..4d5a52c46f2 100644 --- a/packages/assets-controller/package.json +++ b/packages/assets-controller/package.json @@ -76,7 +76,7 @@ "@metamask/utils": "^11.11.0", "async-mutex": "^0.5.0", "bignumber.js": "^9.1.2", - "lodash": "^4.17.21", + "lodash-es": "^4.17.21", "p-limit": "^3.1.0" }, "devDependencies": { diff --git a/packages/assets-controller/src/AssetsController-method-action-types.ts b/packages/assets-controller/src/AssetsController-method-action-types.ts index f886b37b4d4..53d4c5a1074 100644 --- a/packages/assets-controller/src/AssetsController-method-action-types.ts +++ b/packages/assets-controller/src/AssetsController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { AssetsController } from './AssetsController'; +import type { AssetsController } from './AssetsController.js'; export type AssetsControllerGetAssetsAction = { type: `AssetsController:getAssets`; diff --git a/packages/assets-controller/src/AssetsController.test.ts b/packages/assets-controller/src/AssetsController.test.ts index 6916fd97a9b..24a7d1564ed 100644 --- a/packages/assets-controller/src/AssetsController.test.ts +++ b/packages/assets-controller/src/AssetsController.test.ts @@ -13,25 +13,25 @@ import type { NetworkState } from '@metamask/network-controller'; import { AssetsController, getDefaultAssetsControllerState, -} from './AssetsController'; +} from './AssetsController.js'; import type { AssetsControllerMessenger, AssetsControllerState, -} from './AssetsController'; -import type { AccountsApiDataSourceConfig } from './data-sources/AccountsApiDataSource'; -import type { PriceDataSourceConfig } from './data-sources/PriceDataSource'; -import { PriceDataSource } from './data-sources/PriceDataSource'; -import { TokenDataSource } from './data-sources/TokenDataSource'; -import { buildDefaultAssetsInfo } from './defaults'; -import type { Assets3346MigrationState } from './migrations/healAssetsInfoMetadata'; +} from './AssetsController.js'; +import type { AccountsApiDataSourceConfig } from './data-sources/AccountsApiDataSource.js'; +import type { PriceDataSourceConfig } from './data-sources/PriceDataSource.js'; +import { PriceDataSource } from './data-sources/PriceDataSource.js'; +import { TokenDataSource } from './data-sources/TokenDataSource.js'; +import { buildDefaultAssetsInfo } from './defaults.js'; +import type { Assets3346MigrationState } from './migrations/healAssetsInfoMetadata.js'; import type { Caip19AssetId, AccountId, DataRequest, DataResponse, FungibleAssetMetadata, -} from './types'; -import { formatExchangeRatesForBridge, normalizeAssetId } from './utils'; +} from './types.js'; +import { formatExchangeRatesForBridge, normalizeAssetId } from './utils.js'; jest.mock('./utils', () => { const actual = jest.requireActual('./utils'); diff --git a/packages/assets-controller/src/AssetsController.ts b/packages/assets-controller/src/AssetsController.ts index 0ed051dcce9..bf314aa0a9e 100644 --- a/packages/assets-controller/src/AssetsController.ts +++ b/packages/assets-controller/src/AssetsController.ts @@ -68,47 +68,47 @@ import { } from '@metamask/utils'; import { Mutex } from 'async-mutex'; import BigNumberJS from 'bignumber.js'; -import { isEqual } from 'lodash'; +import { isEqual } from 'lodash-es'; -import type { AssetsControllerMethodActions } from './AssetsController-method-action-types'; +import type { AssetsControllerMethodActions } from './AssetsController-method-action-types.js'; import type { AbstractDataSource, DataSourceState, SubscriptionRequest, -} from './data-sources/AbstractDataSource'; -import type { AccountsApiDataSourceConfig } from './data-sources/AccountsApiDataSource'; -import { AccountsApiDataSource } from './data-sources/AccountsApiDataSource'; -import { BackendWebsocketDataSource } from './data-sources/BackendWebsocketDataSource'; -import { shouldSkipNativeForCaipChainId } from './data-sources/evm-rpc-services/utils/assets'; -import type { PriceDataSourceConfig } from './data-sources/PriceDataSource'; -import { PriceDataSource } from './data-sources/PriceDataSource'; -import type { RpcDataSourceConfig } from './data-sources/RpcDataSource'; -import { RpcDataSource } from './data-sources/RpcDataSource'; -import type { AccountsControllerAccountBalancesUpdatedEvent } from './data-sources/SnapDataSource'; -import { SnapDataSource } from './data-sources/SnapDataSource'; -import type { StakedBalanceDataSourceConfig } from './data-sources/StakedBalanceDataSource'; -import { StakedBalanceDataSource } from './data-sources/StakedBalanceDataSource'; +} from './data-sources/AbstractDataSource.js'; +import type { AccountsApiDataSourceConfig } from './data-sources/AccountsApiDataSource.js'; +import { AccountsApiDataSource } from './data-sources/AccountsApiDataSource.js'; +import { BackendWebsocketDataSource } from './data-sources/BackendWebsocketDataSource.js'; +import { shouldSkipNativeForCaipChainId } from './data-sources/evm-rpc-services/utils/assets.js'; +import type { PriceDataSourceConfig } from './data-sources/PriceDataSource.js'; +import { PriceDataSource } from './data-sources/PriceDataSource.js'; +import type { RpcDataSourceConfig } from './data-sources/RpcDataSource.js'; +import { RpcDataSource } from './data-sources/RpcDataSource.js'; +import type { AccountsControllerAccountBalancesUpdatedEvent } from './data-sources/SnapDataSource.js'; +import { SnapDataSource } from './data-sources/SnapDataSource.js'; +import type { StakedBalanceDataSourceConfig } from './data-sources/StakedBalanceDataSource.js'; +import { StakedBalanceDataSource } from './data-sources/StakedBalanceDataSource.js'; import { CaipAssetNamespace, TokenDataSource, -} from './data-sources/TokenDataSource'; +} from './data-sources/TokenDataSource.js'; import { CHAINS_WITH_DEFAULT_TRACKED_ASSETS, DEFAULT_TRACKED_ASSETS_BY_CHAIN, buildDefaultAssetsInfo, getDefaultAssetMetadata, -} from './defaults'; -import { AssetsDataSourceError } from './errors'; -import { projectLogger, createModuleLogger } from './logger'; -import { CustomAssetGraduationMiddleware } from './middlewares/CustomAssetGraduationMiddleware'; -import { DetectionMiddleware } from './middlewares/DetectionMiddleware'; +} from './defaults.js'; +import { AssetsDataSourceError } from './errors.js'; +import { projectLogger, createModuleLogger } from './logger.js'; +import { CustomAssetGraduationMiddleware } from './middlewares/CustomAssetGraduationMiddleware.js'; +import { DetectionMiddleware } from './middlewares/DetectionMiddleware.js'; import { createParallelBalanceMiddleware, createParallelMiddleware, -} from './middlewares/ParallelMiddleware'; -import { RpcFallbackMiddleware } from './middlewares/RpcFallbackMiddleware'; -import type { Assets3346MigrationState } from './migrations/healAssetsInfoMetadata'; -import { tempHealAssetsInfoMetadata } from './migrations/healAssetsInfoMetadata'; +} from './middlewares/ParallelMiddleware.js'; +import { RpcFallbackMiddleware } from './middlewares/RpcFallbackMiddleware.js'; +import type { Assets3346MigrationState } from './migrations/healAssetsInfoMetadata.js'; +import { tempHealAssetsInfoMetadata } from './migrations/healAssetsInfoMetadata.js'; import type { AccountId, AssetPreferences, @@ -132,7 +132,7 @@ import type { Middleware, SubscriptionResponse, Asset, -} from './types'; +} from './types.js'; import { normalizeAmountString, normalizeAssetId, @@ -140,14 +140,14 @@ import { formatStateForTransactionPay, buildNativeAssetsFromConstant, buildNativeAssetsFromApi, -} from './utils'; +} from './utils.js'; import type { BridgeExchangeRatesFormat, TransactionPayLegacyFormat, -} from './utils'; -import { ZERO_ADDRESS } from './utils/constants'; -import { pickRpcCustomAssetsSupplement } from './utils/customAssetsRpcSupplement'; -import { processAccountActivityBalanceUpdates } from './utils/processAccountActivityBalanceUpdates'; +} from './utils.js'; +import { ZERO_ADDRESS } from './utils/constants.js'; +import { pickRpcCustomAssetsSupplement } from './utils/customAssetsRpcSupplement.js'; +import { processAccountActivityBalanceUpdates } from './utils/processAccountActivityBalanceUpdates.js'; const NATIVE_ASSETS_QUERY_KEY = ['nativeAssets']; @@ -2051,9 +2051,7 @@ export class AssetsController extends BaseController< log('Hiding asset', { assetId: normalizedAssetId }); this.update((state) => { - if (!state.assetPreferences[normalizedAssetId]) { - state.assetPreferences[normalizedAssetId] = {}; - } + state.assetPreferences[normalizedAssetId] ??= {}; state.assetPreferences[normalizedAssetId].hidden = true; }); } @@ -2845,7 +2843,7 @@ export class AssetsController extends BaseController< // Compute fiat value using BigNumber for precision // Note: balance.amount is already in human-readable format (e.g., "1" for 1 ETH) // so we do NOT divide by 10^decimals here - const balanceAmount = new BigNumberJS(balance.amount || '0'); + const balanceAmount = new BigNumberJS(balance.amount ?? '0'); const fiatValue = balanceAmount.multipliedBy(price.price || 0).toNumber(); return { diff --git a/packages/assets-controller/src/__fixtures__/MockAssetControllerMessenger.ts b/packages/assets-controller/src/__fixtures__/MockAssetControllerMessenger.ts index 2652534783a..4866eb25d5f 100644 --- a/packages/assets-controller/src/__fixtures__/MockAssetControllerMessenger.ts +++ b/packages/assets-controller/src/__fixtures__/MockAssetControllerMessenger.ts @@ -17,8 +17,8 @@ import { import { AssetsControllerMessenger, getDefaultAssetsControllerState, -} from '../AssetsController'; -import { STAKING_INTERFACE } from '../data-sources/evm-rpc-services/services/StakedBalanceFetcher'; +} from '../AssetsController.js'; +import { STAKING_INTERFACE } from '../data-sources/evm-rpc-services/services/StakedBalanceFetcher.js'; // Test escape hatch for mocking areas that do not need explicit types // eslint-disable-next-line @typescript-eslint/no-explicit-any diff --git a/packages/assets-controller/src/data-sources/AbstractDataSource.test.ts b/packages/assets-controller/src/data-sources/AbstractDataSource.test.ts index a1d5ca677f3..98c5262e8e6 100644 --- a/packages/assets-controller/src/data-sources/AbstractDataSource.test.ts +++ b/packages/assets-controller/src/data-sources/AbstractDataSource.test.ts @@ -1,10 +1,10 @@ -import type { ChainId } from '../types'; +import type { ChainId } from '../types.js'; import type { ActiveSubscription, DataSourceState, SubscriptionRequest, -} from './AbstractDataSource'; -import { AbstractDataSource } from './AbstractDataSource'; +} from './AbstractDataSource.js'; +import { AbstractDataSource } from './AbstractDataSource.js'; const CHAIN_MAINNET = 'eip155:1' as ChainId; const CHAIN_POLYGON = 'eip155:137' as ChainId; diff --git a/packages/assets-controller/src/data-sources/AbstractDataSource.ts b/packages/assets-controller/src/data-sources/AbstractDataSource.ts index a1d29de5ce7..a669700e101 100644 --- a/packages/assets-controller/src/data-sources/AbstractDataSource.ts +++ b/packages/assets-controller/src/data-sources/AbstractDataSource.ts @@ -3,7 +3,7 @@ import type { DataRequest, DataResponse, AssetsControllerStateInternal, -} from '../types'; +} from '../types.js'; // ============================================================================ // DATA SOURCE BASE TYPES diff --git a/packages/assets-controller/src/data-sources/AccountsApiDataSource.test.ts b/packages/assets-controller/src/data-sources/AccountsApiDataSource.test.ts index f01829bf159..fc833a402db 100644 --- a/packages/assets-controller/src/data-sources/AccountsApiDataSource.test.ts +++ b/packages/assets-controller/src/data-sources/AccountsApiDataSource.test.ts @@ -14,15 +14,15 @@ import type { DataRequest, Context, AssetsControllerStateInternal, -} from '../types'; +} from '../types.js'; import type { AccountsApiDataSourceOptions, AccountsApiDataSourceAllowedActions, -} from './AccountsApiDataSource'; +} from './AccountsApiDataSource.js'; import { AccountsApiDataSource, filterResponseToKnownAssets, -} from './AccountsApiDataSource'; +} from './AccountsApiDataSource.js'; type AllActions = AccountsApiDataSourceAllowedActions; type AllEvents = never; diff --git a/packages/assets-controller/src/data-sources/AccountsApiDataSource.ts b/packages/assets-controller/src/data-sources/AccountsApiDataSource.ts index 6ac6167b0e4..d15827d51e2 100644 --- a/packages/assets-controller/src/data-sources/AccountsApiDataSource.ts +++ b/packages/assets-controller/src/data-sources/AccountsApiDataSource.ts @@ -10,8 +10,8 @@ import { toCaipChainId, } from '@metamask/utils'; -import type { AssetsControllerMessenger } from '../AssetsController'; -import { projectLogger, createModuleLogger } from '../logger'; +import type { AssetsControllerMessenger } from '../AssetsController.js'; +import { projectLogger, createModuleLogger } from '../logger.js'; import type { ChainId, Caip19AssetId, @@ -20,13 +20,13 @@ import type { DataResponse, Middleware, AssetsControllerStateInternal, -} from '../types'; -import { fetchWithTimeout, normalizeAssetId } from '../utils'; +} from '../types.js'; +import { fetchWithTimeout, normalizeAssetId } from '../utils.js'; import type { DataSourceState, SubscriptionRequest, -} from './AbstractDataSource'; -import { AbstractDataSource } from './AbstractDataSource'; +} from './AbstractDataSource.js'; +import { AbstractDataSource } from './AbstractDataSource.js'; // ============================================================================ // CONSTANTS diff --git a/packages/assets-controller/src/data-sources/BackendWebsocketDataSource.test.ts b/packages/assets-controller/src/data-sources/BackendWebsocketDataSource.test.ts index b2d5af59586..5f6887deba5 100644 --- a/packages/assets-controller/src/data-sources/BackendWebsocketDataSource.test.ts +++ b/packages/assets-controller/src/data-sources/BackendWebsocketDataSource.test.ts @@ -9,16 +9,16 @@ import type { InternalAccount } from '@metamask/keyring-internal-api'; import { Messenger, MOCK_ANY_NAMESPACE } from '@metamask/messenger'; import type { MockAnyNamespace } from '@metamask/messenger'; -import type { AssetsControllerMessenger } from '../AssetsController'; -import type { Caip19AssetId, ChainId, DataRequest } from '../types'; +import type { AssetsControllerMessenger } from '../AssetsController.js'; +import type { Caip19AssetId, ChainId, DataRequest } from '../types.js'; import { BackendWebsocketDataSource, createBackendWebsocketDataSource, -} from './BackendWebsocketDataSource'; +} from './BackendWebsocketDataSource.js'; import type { BackendWebsocketDataSourceAllowedActions, BackendWebsocketDataSourceAllowedEvents, -} from './BackendWebsocketDataSource'; +} from './BackendWebsocketDataSource.js'; type AllActions = BackendWebsocketDataSourceAllowedActions; type AllEvents = BackendWebsocketDataSourceAllowedEvents; diff --git a/packages/assets-controller/src/data-sources/BackendWebsocketDataSource.ts b/packages/assets-controller/src/data-sources/BackendWebsocketDataSource.ts index b0349b297be..e15290bedb2 100644 --- a/packages/assets-controller/src/data-sources/BackendWebsocketDataSource.ts +++ b/packages/assets-controller/src/data-sources/BackendWebsocketDataSource.ts @@ -14,15 +14,15 @@ import { toCaipChainId, } from '@metamask/utils'; -import type { AssetsControllerMessenger } from '../AssetsController'; -import { projectLogger, createModuleLogger } from '../logger'; -import type { ChainId, Caip19AssetId, DataResponse } from '../types'; -import { processAccountActivityBalanceUpdates } from '../utils/processAccountActivityBalanceUpdates'; -import { AbstractDataSource } from './AbstractDataSource'; +import type { AssetsControllerMessenger } from '../AssetsController.js'; +import { projectLogger, createModuleLogger } from '../logger.js'; +import type { ChainId, Caip19AssetId, DataResponse } from '../types.js'; +import { processAccountActivityBalanceUpdates } from '../utils/processAccountActivityBalanceUpdates.js'; +import { AbstractDataSource } from './AbstractDataSource.js'; import type { DataSourceState, SubscriptionRequest, -} from './AbstractDataSource'; +} from './AbstractDataSource.js'; // ============================================================================ // CONSTANTS diff --git a/packages/assets-controller/src/data-sources/PriceDataSource.test.ts b/packages/assets-controller/src/data-sources/PriceDataSource.test.ts index d0842543e31..69612678810 100644 --- a/packages/assets-controller/src/data-sources/PriceDataSource.test.ts +++ b/packages/assets-controller/src/data-sources/PriceDataSource.test.ts @@ -7,10 +7,10 @@ import type { Context, Caip19AssetId, AssetsControllerStateInternal, -} from '../types'; -import { normalizeAssetId } from '../utils'; -import type { PriceDataSourceOptions } from './PriceDataSource'; -import { PriceDataSource } from './PriceDataSource'; +} from '../types.js'; +import { normalizeAssetId } from '../utils.js'; +import type { PriceDataSourceOptions } from './PriceDataSource.js'; +import { PriceDataSource } from './PriceDataSource.js'; jest.useFakeTimers(); diff --git a/packages/assets-controller/src/data-sources/PriceDataSource.ts b/packages/assets-controller/src/data-sources/PriceDataSource.ts index 4b0a45c3bd0..6a015d295a8 100644 --- a/packages/assets-controller/src/data-sources/PriceDataSource.ts +++ b/packages/assets-controller/src/data-sources/PriceDataSource.ts @@ -5,8 +5,8 @@ import type { import { ApiPlatformClient } from '@metamask/core-backend'; import { parseCaipAssetType } from '@metamask/utils'; -import { projectLogger, createModuleLogger } from '../logger'; -import { forDataTypes } from '../types'; +import { projectLogger, createModuleLogger } from '../logger.js'; +import { forDataTypes } from '../types.js'; import type { Caip19AssetId, DataRequest, @@ -14,11 +14,11 @@ import type { FungibleAssetPrice, Middleware, AssetsControllerStateInternal, -} from '../types'; -import { fetchWithTimeout, normalizeAssetId } from '../utils'; -import { DedupingBatchFetcher } from '../utils/dedupingBatchFetcher'; -import type { SubscriptionRequest } from './AbstractDataSource'; -import { reduceInBatchesSerially } from './evm-rpc-services'; +} from '../types.js'; +import { fetchWithTimeout, normalizeAssetId } from '../utils.js'; +import { DedupingBatchFetcher } from '../utils/dedupingBatchFetcher.js'; +import type { SubscriptionRequest } from './AbstractDataSource.js'; +import { reduceInBatchesSerially } from './evm-rpc-services.js'; // ============================================================================ // CONSTANTS diff --git a/packages/assets-controller/src/data-sources/RpcDataSource.test.ts b/packages/assets-controller/src/data-sources/RpcDataSource.test.ts index c2ff9044d13..4ed2c8b5079 100644 --- a/packages/assets-controller/src/data-sources/RpcDataSource.test.ts +++ b/packages/assets-controller/src/data-sources/RpcDataSource.test.ts @@ -8,24 +8,24 @@ import { createMockAssetControllerMessenger, MockRootMessenger, registerRpcDataSourceActions, -} from '../__fixtures__/MockAssetControllerMessenger'; -import { getDefaultAssetsControllerState } from '../AssetsController'; -import type { AssetsControllerMessenger } from '../AssetsController'; -import type { Caip19AssetId, ChainId, DataRequest, Context } from '../types'; -import { normalizeAssetId } from '../utils'; -import { BalanceFetcher, TokenDetector } from './evm-rpc-services'; +} from '../__fixtures__/MockAssetControllerMessenger.js'; +import { getDefaultAssetsControllerState } from '../AssetsController.js'; +import type { AssetsControllerMessenger } from '../AssetsController.js'; +import type { Caip19AssetId, ChainId, DataRequest, Context } from '../types.js'; +import { normalizeAssetId } from '../utils.js'; +import { BalanceFetcher, TokenDetector } from './evm-rpc-services.js'; import type { Address, BalanceFetchResult, TokenDetectionResult, -} from './evm-rpc-services'; -import { shouldSkipNativeForCaipChainId } from './evm-rpc-services/utils/assets'; -import type { RpcDataSourceOptions } from './RpcDataSource'; +} from './evm-rpc-services.js'; +import { shouldSkipNativeForCaipChainId } from './evm-rpc-services/utils/assets.js'; +import type { RpcDataSourceOptions } from './RpcDataSource.js'; import { RpcDataSource, caipChainIdToHex, createRpcDataSource, -} from './RpcDataSource'; +} from './RpcDataSource.js'; const MOCK_CHAIN_ID_HEX = '0x1'; const MOCK_CHAIN_ID_CAIP = 'eip155:1' as ChainId; diff --git a/packages/assets-controller/src/data-sources/RpcDataSource.ts b/packages/assets-controller/src/data-sources/RpcDataSource.ts index d28af6e3fda..153dd1a7878 100644 --- a/packages/assets-controller/src/data-sources/RpcDataSource.ts +++ b/packages/assets-controller/src/data-sources/RpcDataSource.ts @@ -24,8 +24,8 @@ import BigNumberJS from 'bignumber.js'; import type { AssetsControllerGetStateAction, AssetsControllerMessenger, -} from '../AssetsController'; -import { projectLogger, createModuleLogger } from '../logger'; +} from '../AssetsController.js'; +import { projectLogger, createModuleLogger } from '../logger.js'; import type { ChainId, Caip19AssetId, @@ -34,33 +34,33 @@ import type { DataRequest, DataResponse, Middleware, -} from '../types'; -import { normalizeAssetId } from '../utils'; -import { ZERO_ADDRESS } from '../utils/constants'; -import { AbstractDataSource } from './AbstractDataSource'; +} from '../types.js'; +import { normalizeAssetId } from '../utils.js'; +import { ZERO_ADDRESS } from '../utils/constants.js'; +import { AbstractDataSource } from './AbstractDataSource.js'; import type { DataSourceState, SubscriptionRequest, -} from './AbstractDataSource'; +} from './AbstractDataSource.js'; import { BalanceFetcher, MulticallClient, TokenDetector, TokensApiClient, -} from './evm-rpc-services'; +} from './evm-rpc-services.js'; import type { BalancePollingInput, DetectionPollingInput, TokenListQueryClient, -} from './evm-rpc-services'; +} from './evm-rpc-services.js'; import type { Address, AssetFetchEntry, Provider as RpcProvider, BalanceFetchResult, TokenDetectionResult, -} from './evm-rpc-services/types'; -import { shouldSkipNativeForCaipChainId } from './evm-rpc-services/utils/assets'; +} from './evm-rpc-services/types.js'; +import { shouldSkipNativeForCaipChainId } from './evm-rpc-services/utils/assets.js'; const CONTROLLER_NAME = 'RpcDataSource'; const DEFAULT_BALANCE_INTERVAL = 30_000; // 30 seconds diff --git a/packages/assets-controller/src/data-sources/SnapDataSource.test.ts b/packages/assets-controller/src/data-sources/SnapDataSource.test.ts index 8518b3d694d..00d517cee91 100644 --- a/packages/assets-controller/src/data-sources/SnapDataSource.test.ts +++ b/packages/assets-controller/src/data-sources/SnapDataSource.test.ts @@ -7,14 +7,14 @@ import type { SubjectPermissions, } from '@metamask/permission-controller'; -import type { AssetsControllerMessenger } from '../AssetsController'; -import type { ChainId, DataRequest, Context, Caip19AssetId } from '../types'; +import type { AssetsControllerMessenger } from '../AssetsController.js'; +import type { ChainId, DataRequest, Context, Caip19AssetId } from '../types.js'; import type { SnapDataSourceOptions, AccountBalancesUpdatedEventPayload, SnapDataSourceAllowedActions, SnapDataSourceAllowedEvents, -} from './SnapDataSource'; +} from './SnapDataSource.js'; import { SnapDataSource, createSnapDataSource, @@ -22,7 +22,7 @@ import { getChainIdsCaveat, KEYRING_PERMISSION, ASSETS_PERMISSION, -} from './SnapDataSource'; +} from './SnapDataSource.js'; // Test chain IDs const SOLANA_MAINNET = 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp' as ChainId; diff --git a/packages/assets-controller/src/data-sources/SnapDataSource.ts b/packages/assets-controller/src/data-sources/SnapDataSource.ts index 17da7b0b5e3..dec5e6b1159 100644 --- a/packages/assets-controller/src/data-sources/SnapDataSource.ts +++ b/packages/assets-controller/src/data-sources/SnapDataSource.ts @@ -1,7 +1,6 @@ import type { Balance, CaipAssetType } from '@metamask/keyring-api'; import { KeyringClient } from '@metamask/keyring-snap-client'; import type { - Caveat, GetPermissions, PermissionConstraint, PermissionControllerStateChange, @@ -17,8 +16,8 @@ import { HandlerType, SnapCaveatType } from '@metamask/snaps-utils'; import { parseCaipAssetType } from '@metamask/utils'; import type { Json, JsonRpcRequest } from '@metamask/utils'; -import type { AssetsControllerMessenger } from '../AssetsController'; -import { projectLogger, createModuleLogger } from '../logger'; +import type { AssetsControllerMessenger } from '../AssetsController.js'; +import { projectLogger, createModuleLogger } from '../logger.js'; import type { AssetBalance, ChainId, @@ -26,12 +25,12 @@ import type { DataRequest, DataResponse, Middleware, -} from '../types'; -import { AbstractDataSource } from './AbstractDataSource'; +} from '../types.js'; +import { AbstractDataSource } from './AbstractDataSource.js'; import type { DataSourceState, SubscriptionRequest, -} from './AbstractDataSource'; +} from './AbstractDataSource.js'; // ============================================================================ // SNAP KEYRING EVENT TYPES @@ -97,7 +96,7 @@ export function getChainIdsCaveat( const caveat = permission.caveats.find( (permCaveat) => permCaveat.type === SnapCaveatType.ChainIds, - ) as Caveat | undefined; + ); return caveat ? (caveat.value as ChainId[]) : null; } diff --git a/packages/assets-controller/src/data-sources/StakedBalanceDataSource.test.ts b/packages/assets-controller/src/data-sources/StakedBalanceDataSource.test.ts index 358dcbc534d..ec928eb6a0e 100644 --- a/packages/assets-controller/src/data-sources/StakedBalanceDataSource.test.ts +++ b/packages/assets-controller/src/data-sources/StakedBalanceDataSource.test.ts @@ -6,16 +6,16 @@ import { createMockAssetControllerMessenger, createMockWeb3Provider, registerStakedMessengerActions, -} from '../__fixtures__/MockAssetControllerMessenger'; -import type { AssetsControllerMessenger } from '../AssetsController'; +} from '../__fixtures__/MockAssetControllerMessenger.js'; +import type { AssetsControllerMessenger } from '../AssetsController.js'; import type { AssetsControllerStateInternal, ChainId, Context, DataRequest, -} from '../types'; -import type { StakedBalanceDataSourceOptions } from './StakedBalanceDataSource'; -import { StakedBalanceDataSource } from './StakedBalanceDataSource'; +} from '../types.js'; +import type { StakedBalanceDataSourceOptions } from './StakedBalanceDataSource.js'; +import { StakedBalanceDataSource } from './StakedBalanceDataSource.js'; const MAINNET_CHAIN_ID_HEX = '0x1'; const MAINNET_CHAIN_ID_CAIP = 'eip155:1' as ChainId; diff --git a/packages/assets-controller/src/data-sources/StakedBalanceDataSource.ts b/packages/assets-controller/src/data-sources/StakedBalanceDataSource.ts index df747c54955..e0e571cd402 100644 --- a/packages/assets-controller/src/data-sources/StakedBalanceDataSource.ts +++ b/packages/assets-controller/src/data-sources/StakedBalanceDataSource.ts @@ -10,8 +10,8 @@ import { } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import type { AssetsControllerMessenger } from '../AssetsController'; -import { projectLogger, createModuleLogger } from '../logger'; +import type { AssetsControllerMessenger } from '../AssetsController.js'; +import { projectLogger, createModuleLogger } from '../logger.js'; import type { AccountId, ChainId, @@ -21,21 +21,21 @@ import type { DataRequest, DataResponse, Middleware, -} from '../types'; +} from '../types.js'; import type { DataSourceState, SubscriptionRequest, -} from './AbstractDataSource'; -import { AbstractDataSource } from './AbstractDataSource'; +} from './AbstractDataSource.js'; +import { AbstractDataSource } from './AbstractDataSource.js'; import type { StakedBalancePollingInput, StakedBalanceFetchResult, -} from './evm-rpc-services'; +} from './evm-rpc-services.js'; import { StakedBalanceFetcher, getStakingContractAddress, getSupportedStakingChainIds, -} from './evm-rpc-services'; +} from './evm-rpc-services.js'; const CONTROLLER_NAME = 'StakedBalanceDataSource'; const DEFAULT_POLL_INTERVAL = 180_000; // 3 minutes diff --git a/packages/assets-controller/src/data-sources/TokenDataSource.test.ts b/packages/assets-controller/src/data-sources/TokenDataSource.test.ts index c4de66e06f8..88e5f6edeb6 100644 --- a/packages/assets-controller/src/data-sources/TokenDataSource.test.ts +++ b/packages/assets-controller/src/data-sources/TokenDataSource.test.ts @@ -7,10 +7,10 @@ import type { } from '@metamask/phishing-controller'; import { TokenScanResultType } from '@metamask/phishing-controller'; -import type { AssetsControllerMessenger } from '../AssetsController'; -import type { Context, DataRequest, Caip19AssetId, ChainId } from '../types'; -import type { TokenDataSourceOptions } from './TokenDataSource'; -import { TokenDataSource } from './TokenDataSource'; +import type { AssetsControllerMessenger } from '../AssetsController.js'; +import type { Context, DataRequest, Caip19AssetId, ChainId } from '../types.js'; +import type { TokenDataSourceOptions } from './TokenDataSource.js'; +import { TokenDataSource } from './TokenDataSource.js'; type AllActions = PhishingControllerBulkScanTokensAction; type AllEvents = never; diff --git a/packages/assets-controller/src/data-sources/TokenDataSource.ts b/packages/assets-controller/src/data-sources/TokenDataSource.ts index 836e26bc3ef..0e52a37c71c 100644 --- a/packages/assets-controller/src/data-sources/TokenDataSource.ts +++ b/packages/assets-controller/src/data-sources/TokenDataSource.ts @@ -8,20 +8,20 @@ import { TokenScanResultType } from '@metamask/phishing-controller'; import { KnownCaipNamespace, parseCaipAssetType } from '@metamask/utils'; import type { CaipAssetType } from '@metamask/utils'; -import type { AssetsControllerMessenger } from '../AssetsController'; -import { projectLogger, createModuleLogger } from '../logger'; -import { forDataTypes } from '../types'; +import type { AssetsControllerMessenger } from '../AssetsController.js'; +import { projectLogger, createModuleLogger } from '../logger.js'; +import { forDataTypes } from '../types.js'; import type { Caip19AssetId, AssetMetadata, Middleware, FungibleAssetMetadata, -} from '../types'; -import { fetchWithTimeout } from '../utils'; +} from '../types.js'; +import { fetchWithTimeout } from '../utils.js'; import { isStakingContractAssetId, reduceInBatchesSerially, -} from './evm-rpc-services'; +} from './evm-rpc-services.js'; // ============================================================================ // CONSTANTS diff --git a/packages/assets-controller/src/data-sources/evm-rpc-services/clients/MulticallClient.test.ts b/packages/assets-controller/src/data-sources/evm-rpc-services/clients/MulticallClient.test.ts index 01528dbdee1..0f7a9394c47 100644 --- a/packages/assets-controller/src/data-sources/evm-rpc-services/clients/MulticallClient.test.ts +++ b/packages/assets-controller/src/data-sources/evm-rpc-services/clients/MulticallClient.test.ts @@ -2,12 +2,12 @@ import { defaultAbiCoder, Interface } from '@ethersproject/abi'; import * as controllerUtils from '@metamask/controller-utils'; import type { Hex } from '@metamask/utils'; -import type { Address, BalanceOfRequest, ChainId, Provider } from '../types'; +import type { Address, BalanceOfRequest, ChainId, Provider } from '../types.js'; import { decodeAggregate3Response, encodeAggregate3, MulticallClient, -} from './MulticallClient'; +} from './MulticallClient.js'; // ============================================================================= // MOCK PROVIDER diff --git a/packages/assets-controller/src/data-sources/evm-rpc-services/clients/MulticallClient.ts b/packages/assets-controller/src/data-sources/evm-rpc-services/clients/MulticallClient.ts index 3f9079d9ac2..1a2f0dcca4b 100644 --- a/packages/assets-controller/src/data-sources/evm-rpc-services/clients/MulticallClient.ts +++ b/packages/assets-controller/src/data-sources/evm-rpc-services/clients/MulticallClient.ts @@ -5,7 +5,7 @@ import { } from '@metamask/controller-utils'; import type { Hex } from '@metamask/utils'; -import { ZERO_ADDRESS } from '../../../utils/constants'; +import { ZERO_ADDRESS } from '../../../utils/constants.js'; import type { Address, BalanceOfRequest, @@ -13,8 +13,8 @@ import type { ChainId, GetProviderFunction, Provider, -} from '../types'; -import { reduceInBatchesSerially } from '../utils'; +} from '../types.js'; +import { reduceInBatchesSerially } from '../utils.js'; // ============================================================================= // ABI DEFINITIONS diff --git a/packages/assets-controller/src/data-sources/evm-rpc-services/clients/TokensApiClient.test.ts b/packages/assets-controller/src/data-sources/evm-rpc-services/clients/TokensApiClient.test.ts index 83a16c13e6c..0c56eb77e62 100644 --- a/packages/assets-controller/src/data-sources/evm-rpc-services/clients/TokensApiClient.test.ts +++ b/packages/assets-controller/src/data-sources/evm-rpc-services/clients/TokensApiClient.test.ts @@ -1,9 +1,9 @@ -import type { ChainId } from '../types'; -import { TokensApiClient } from './TokensApiClient'; +import type { ChainId } from '../types.js'; +import { TokensApiClient } from './TokensApiClient.js'; import type { TokensApiClientConfig, TokenListQueryClient, -} from './TokensApiClient'; +} from './TokensApiClient.js'; // ============================================================================= // CONSTANTS diff --git a/packages/assets-controller/src/data-sources/evm-rpc-services/clients/TokensApiClient.ts b/packages/assets-controller/src/data-sources/evm-rpc-services/clients/TokensApiClient.ts index 57522b30759..078605a1598 100644 --- a/packages/assets-controller/src/data-sources/evm-rpc-services/clients/TokensApiClient.ts +++ b/packages/assets-controller/src/data-sources/evm-rpc-services/clients/TokensApiClient.ts @@ -3,7 +3,7 @@ import { convertHexToDecimal, } from '@metamask/controller-utils'; -import type { ChainId, TokenListEntry } from '../types'; +import type { ChainId, TokenListEntry } from '../types.js'; /** * Same host + path that `TokenListController` (assets-controllers) uses diff --git a/packages/assets-controller/src/data-sources/evm-rpc-services/clients/index.ts b/packages/assets-controller/src/data-sources/evm-rpc-services/clients/index.ts index 59afaabeb0b..b1b742f4aca 100644 --- a/packages/assets-controller/src/data-sources/evm-rpc-services/clients/index.ts +++ b/packages/assets-controller/src/data-sources/evm-rpc-services/clients/index.ts @@ -3,13 +3,13 @@ export { encodeAggregate3, MulticallClient, type MulticallClientConfig, -} from './MulticallClient'; +} from './MulticallClient.js'; export { TokensApiClient, type TokensApiClientConfig, type TokenListQueryClient, -} from './TokensApiClient'; +} from './TokensApiClient.js'; // Re-export provider types from types module -export type { GetProviderFunction, Provider } from '../types'; +export type { GetProviderFunction, Provider } from '../types.js'; diff --git a/packages/assets-controller/src/data-sources/evm-rpc-services/index.ts b/packages/assets-controller/src/data-sources/evm-rpc-services/index.ts index f193260d185..82022c752ca 100644 --- a/packages/assets-controller/src/data-sources/evm-rpc-services/index.ts +++ b/packages/assets-controller/src/data-sources/evm-rpc-services/index.ts @@ -10,14 +10,14 @@ export type { TokenListState, BalanceFetchResult, TokenDetectionResult, -} from './types'; +} from './types.js'; export { MulticallClient, type MulticallClientConfig, TokensApiClient, type TokensApiClientConfig, type TokenListQueryClient, -} from './clients'; +} from './clients.js'; export { BalanceFetcher, TokenDetector, @@ -32,5 +32,5 @@ export { type OnBalanceUpdateCallback, type OnDetectionUpdateCallback, type OnStakedBalanceUpdateCallback, -} from './services'; -export { divideIntoBatches, reduceInBatchesSerially } from './utils'; +} from './services.js'; +export { divideIntoBatches, reduceInBatchesSerially } from './utils.js'; diff --git a/packages/assets-controller/src/data-sources/evm-rpc-services/services/BalanceFetcher.test.ts b/packages/assets-controller/src/data-sources/evm-rpc-services/services/BalanceFetcher.test.ts index d4476a988e3..cc788192d96 100644 --- a/packages/assets-controller/src/data-sources/evm-rpc-services/services/BalanceFetcher.test.ts +++ b/packages/assets-controller/src/data-sources/evm-rpc-services/services/BalanceFetcher.test.ts @@ -1,19 +1,19 @@ import type { CaipAssetType } from '@metamask/utils'; -import type { MulticallClient } from '../clients'; +import type { MulticallClient } from '../clients.js'; import type { Address, AssetFetchEntry, AssetsBalanceState, BalanceOfResponse, ChainId, -} from '../types'; -import { BalanceFetcher } from './BalanceFetcher'; +} from '../types.js'; +import { BalanceFetcher } from './BalanceFetcher.js'; import type { BalanceFetcherConfig, BalanceFetcherMessenger, BalancePollingInput, -} from './BalanceFetcher'; +} from './BalanceFetcher.js'; // ============================================================================= // CONSTANTS diff --git a/packages/assets-controller/src/data-sources/evm-rpc-services/services/BalanceFetcher.ts b/packages/assets-controller/src/data-sources/evm-rpc-services/services/BalanceFetcher.ts index 43c9b16736c..b069b79bbe8 100644 --- a/packages/assets-controller/src/data-sources/evm-rpc-services/services/BalanceFetcher.ts +++ b/packages/assets-controller/src/data-sources/evm-rpc-services/services/BalanceFetcher.ts @@ -1,8 +1,8 @@ import { StaticIntervalPollingControllerOnly } from '@metamask/polling-controller'; import { parseCaipAssetType } from '@metamask/utils'; -import { ZERO_ADDRESS } from '../../../utils/constants'; -import type { MulticallClient } from '../clients'; +import { ZERO_ADDRESS } from '../../../utils/constants.js'; +import type { MulticallClient } from '../clients.js'; import type { AccountId, Address, @@ -14,8 +14,8 @@ import type { BalanceOfResponse, CaipAssetType, ChainId, -} from '../types'; -import { reduceInBatchesSerially } from '../utils'; +} from '../types.js'; +import { reduceInBatchesSerially } from '../utils.js'; const DEFAULT_BALANCE_INTERVAL = 30_000; // 30 seconds diff --git a/packages/assets-controller/src/data-sources/evm-rpc-services/services/StakedBalanceFetcher.test.ts b/packages/assets-controller/src/data-sources/evm-rpc-services/services/StakedBalanceFetcher.test.ts index d63b9ba8070..f9adb99d851 100644 --- a/packages/assets-controller/src/data-sources/evm-rpc-services/services/StakedBalanceFetcher.test.ts +++ b/packages/assets-controller/src/data-sources/evm-rpc-services/services/StakedBalanceFetcher.test.ts @@ -4,11 +4,11 @@ import type { Web3Provider } from '@ethersproject/providers'; import type { StakedBalanceFetcherConfig, StakedBalancePollingInput, -} from './StakedBalanceFetcher'; +} from './StakedBalanceFetcher.js'; import { StakedBalanceFetcher, isStakingContractAssetId, -} from './StakedBalanceFetcher'; +} from './StakedBalanceFetcher.js'; const TEST_ADDRESS = '0x9bed78535d6a03a955f1504aadba974d9a29e292'; const MAINNET_CHAIN_ID = '0x1'; diff --git a/packages/assets-controller/src/data-sources/evm-rpc-services/services/StakedBalanceFetcher.ts b/packages/assets-controller/src/data-sources/evm-rpc-services/services/StakedBalanceFetcher.ts index 035c160b18f..c6460d0d14d 100644 --- a/packages/assets-controller/src/data-sources/evm-rpc-services/services/StakedBalanceFetcher.ts +++ b/packages/assets-controller/src/data-sources/evm-rpc-services/services/StakedBalanceFetcher.ts @@ -2,13 +2,13 @@ import { Interface } from '@ethersproject/abi'; import { Web3Provider } from '@ethersproject/providers'; import { StaticIntervalPollingControllerOnly } from '@metamask/polling-controller'; -import type { Address, AccountId, ChainId } from '../types'; +import type { Address, AccountId, ChainId } from '../types.js'; import { getStakingContractAddress, getSupportedStakingChainIds, isStakingContractAssetId, weiToHumanReadable, -} from '../utils'; +} from '../utils.js'; export { getStakingContractAddress, diff --git a/packages/assets-controller/src/data-sources/evm-rpc-services/services/TokenDetector.test.ts b/packages/assets-controller/src/data-sources/evm-rpc-services/services/TokenDetector.test.ts index 05a45a5ab7f..39bb017aca6 100644 --- a/packages/assets-controller/src/data-sources/evm-rpc-services/services/TokenDetector.test.ts +++ b/packages/assets-controller/src/data-sources/evm-rpc-services/services/TokenDetector.test.ts @@ -1,16 +1,16 @@ -import type { MulticallClient } from '../clients'; -import type { TokensApiClient } from '../clients/TokensApiClient'; +import type { MulticallClient } from '../clients.js'; +import type { TokensApiClient } from '../clients/TokensApiClient.js'; import type { Address, BalanceOfResponse, ChainId, TokenListEntry, -} from '../types'; -import { TokenDetector } from './TokenDetector'; +} from '../types.js'; +import { TokenDetector } from './TokenDetector.js'; import type { TokenDetectorConfig, DetectionPollingInput, -} from './TokenDetector'; +} from './TokenDetector.js'; // ============================================================================= // CONSTANTS diff --git a/packages/assets-controller/src/data-sources/evm-rpc-services/services/TokenDetector.ts b/packages/assets-controller/src/data-sources/evm-rpc-services/services/TokenDetector.ts index e63a907f37e..1a9121448ea 100644 --- a/packages/assets-controller/src/data-sources/evm-rpc-services/services/TokenDetector.ts +++ b/packages/assets-controller/src/data-sources/evm-rpc-services/services/TokenDetector.ts @@ -1,9 +1,9 @@ import { StaticIntervalPollingControllerOnly } from '@metamask/polling-controller'; import type { CaipAssetType } from '@metamask/utils'; -import { projectLogger, createModuleLogger } from '../../../logger'; -import type { MulticallClient } from '../clients'; -import type { TokensApiClient } from '../clients/TokensApiClient'; +import { projectLogger, createModuleLogger } from '../../../logger.js'; +import type { MulticallClient } from '../clients.js'; +import type { TokensApiClient } from '../clients/TokensApiClient.js'; import type { AccountId, Address, @@ -15,8 +15,8 @@ import type { TokenDetectionOptions, TokenDetectionResult, TokenListEntry, -} from '../types'; -import { reduceInBatchesSerially } from '../utils'; +} from '../types.js'; +import { reduceInBatchesSerially } from '../utils.js'; const log = createModuleLogger(projectLogger, 'TokenDetector'); diff --git a/packages/assets-controller/src/data-sources/evm-rpc-services/services/index.ts b/packages/assets-controller/src/data-sources/evm-rpc-services/services/index.ts index 1eded823b02..8e6d21d8acf 100644 --- a/packages/assets-controller/src/data-sources/evm-rpc-services/services/index.ts +++ b/packages/assets-controller/src/data-sources/evm-rpc-services/services/index.ts @@ -3,14 +3,14 @@ export { type TokenDetectorConfig, type DetectionPollingInput, type OnDetectionUpdateCallback, -} from './TokenDetector'; +} from './TokenDetector.js'; export { BalanceFetcher, type BalanceFetcherConfig, type BalanceFetcherMessenger, type BalancePollingInput, type OnBalanceUpdateCallback, -} from './BalanceFetcher'; +} from './BalanceFetcher.js'; export { StakedBalanceFetcher, getSupportedStakingChainIds, @@ -20,4 +20,4 @@ export { type StakedBalancePollingInput, type StakedBalanceFetchResult, type OnStakedBalanceUpdateCallback, -} from './StakedBalanceFetcher'; +} from './StakedBalanceFetcher.js'; diff --git a/packages/assets-controller/src/data-sources/evm-rpc-services/types/assets.ts b/packages/assets-controller/src/data-sources/evm-rpc-services/types/assets.ts index 5ca8f1ea496..511cd88e701 100644 --- a/packages/assets-controller/src/data-sources/evm-rpc-services/types/assets.ts +++ b/packages/assets-controller/src/data-sources/evm-rpc-services/types/assets.ts @@ -1,6 +1,6 @@ import type { CaipAssetType } from '@metamask/utils'; -import type { AccountId, Address, AssetType, ChainId } from './core'; +import type { AccountId, Address, AssetType, ChainId } from './core.js'; /** * Core asset definition. diff --git a/packages/assets-controller/src/data-sources/evm-rpc-services/types/config.ts b/packages/assets-controller/src/data-sources/evm-rpc-services/types/config.ts index dbf583c910c..64225226761 100644 --- a/packages/assets-controller/src/data-sources/evm-rpc-services/types/config.ts +++ b/packages/assets-controller/src/data-sources/evm-rpc-services/types/config.ts @@ -1,4 +1,4 @@ -import type { ChainId } from './core'; +import type { ChainId } from './core.js'; /** * Minimal provider interface for RPC calls. diff --git a/packages/assets-controller/src/data-sources/evm-rpc-services/types/index.ts b/packages/assets-controller/src/data-sources/evm-rpc-services/types/index.ts index ac9a8989041..8286fe3341e 100644 --- a/packages/assets-controller/src/data-sources/evm-rpc-services/types/index.ts +++ b/packages/assets-controller/src/data-sources/evm-rpc-services/types/index.ts @@ -5,10 +5,10 @@ export type { AssetType, CaipAssetType, ChainId, -} from './core'; +} from './core.js'; // Asset types -export type { Asset, AssetBalance } from './assets'; +export type { Asset, AssetBalance } from './assets.js'; // State types export type { @@ -16,13 +16,13 @@ export type { TokenChainsCacheEntry, TokenListEntry, TokenListState, -} from './state'; +} from './state.js'; // Config types -export type { GetProviderFunction, Provider } from './config'; +export type { GetProviderFunction, Provider } from './config.js'; // Multicall types -export type { BalanceOfRequest, BalanceOfResponse } from './multicall'; +export type { BalanceOfRequest, BalanceOfResponse } from './multicall.js'; // Service types export type { @@ -30,4 +30,4 @@ export type { BalanceFetchResult, TokenDetectionOptions, TokenDetectionResult, -} from './services'; +} from './services.js'; diff --git a/packages/assets-controller/src/data-sources/evm-rpc-services/types/multicall.ts b/packages/assets-controller/src/data-sources/evm-rpc-services/types/multicall.ts index 7f56d538e27..bd19640ebeb 100644 --- a/packages/assets-controller/src/data-sources/evm-rpc-services/types/multicall.ts +++ b/packages/assets-controller/src/data-sources/evm-rpc-services/types/multicall.ts @@ -1,4 +1,4 @@ -import type { Address } from './core'; +import type { Address } from './core.js'; /** * Balance request for batch balance fetching. diff --git a/packages/assets-controller/src/data-sources/evm-rpc-services/types/services.ts b/packages/assets-controller/src/data-sources/evm-rpc-services/types/services.ts index ab5a89dd6a2..14859e5254d 100644 --- a/packages/assets-controller/src/data-sources/evm-rpc-services/types/services.ts +++ b/packages/assets-controller/src/data-sources/evm-rpc-services/types/services.ts @@ -1,5 +1,5 @@ -import type { Asset, AssetBalance } from './assets'; -import type { AccountId, Address, CaipAssetType, ChainId } from './core'; +import type { Asset, AssetBalance } from './assets.js'; +import type { AccountId, Address, CaipAssetType, ChainId } from './core.js'; /** * Token detection result. diff --git a/packages/assets-controller/src/data-sources/evm-rpc-services/types/state.ts b/packages/assets-controller/src/data-sources/evm-rpc-services/types/state.ts index 9ea14a2951f..af114458eaf 100644 --- a/packages/assets-controller/src/data-sources/evm-rpc-services/types/state.ts +++ b/packages/assets-controller/src/data-sources/evm-rpc-services/types/state.ts @@ -1,4 +1,4 @@ -import type { ChainId } from './core'; +import type { ChainId } from './core.js'; /** * Single token entry from token list. diff --git a/packages/assets-controller/src/data-sources/evm-rpc-services/utils/batch.test.ts b/packages/assets-controller/src/data-sources/evm-rpc-services/utils/batch.test.ts index 9501555edf4..24f945dbb6f 100644 --- a/packages/assets-controller/src/data-sources/evm-rpc-services/utils/batch.test.ts +++ b/packages/assets-controller/src/data-sources/evm-rpc-services/utils/batch.test.ts @@ -1,4 +1,4 @@ -import { divideIntoBatches, reduceInBatchesSerially } from './batch'; +import { divideIntoBatches, reduceInBatchesSerially } from './batch.js'; describe('batch utilities', () => { describe('divideIntoBatches', () => { diff --git a/packages/assets-controller/src/data-sources/evm-rpc-services/utils/index.ts b/packages/assets-controller/src/data-sources/evm-rpc-services/utils/index.ts index 8a9129363d1..55367744a83 100644 --- a/packages/assets-controller/src/data-sources/evm-rpc-services/utils/index.ts +++ b/packages/assets-controller/src/data-sources/evm-rpc-services/utils/index.ts @@ -1,8 +1,8 @@ -export { divideIntoBatches, reduceInBatchesSerially } from './batch'; -export { chainIdToHex, weiToHumanReadable } from './parsing'; +export { divideIntoBatches, reduceInBatchesSerially } from './batch.js'; +export { chainIdToHex, weiToHumanReadable } from './parsing.js'; export { getStakingContractAddress, getSupportedStakingChainIds, isStakingContractAssetId, STAKING_CONTRACT_ADDRESS_BY_CHAINID, -} from './staking-contracts'; +} from './staking-contracts.js'; diff --git a/packages/assets-controller/src/data-sources/evm-rpc-services/utils/parsing.test.ts b/packages/assets-controller/src/data-sources/evm-rpc-services/utils/parsing.test.ts index 21a14f53671..6429d2b7577 100644 --- a/packages/assets-controller/src/data-sources/evm-rpc-services/utils/parsing.test.ts +++ b/packages/assets-controller/src/data-sources/evm-rpc-services/utils/parsing.test.ts @@ -1,4 +1,4 @@ -import { chainIdToHex, weiToHumanReadable } from './parsing'; +import { chainIdToHex, weiToHumanReadable } from './parsing.js'; describe('parsing utilities', () => { describe('weiToHumanReadable', () => { diff --git a/packages/assets-controller/src/data-sources/evm-rpc-services/utils/parsing.ts b/packages/assets-controller/src/data-sources/evm-rpc-services/utils/parsing.ts index 7a2a5c32c65..718d71efcee 100644 --- a/packages/assets-controller/src/data-sources/evm-rpc-services/utils/parsing.ts +++ b/packages/assets-controller/src/data-sources/evm-rpc-services/utils/parsing.ts @@ -7,7 +7,7 @@ import { import type { CaipChainId, Hex } from '@metamask/utils'; import BigNumberJS from 'bignumber.js'; -import type { ChainId } from '../types'; +import type { ChainId } from '../types.js'; /** * Convert wei to human-readable amount with decimals, trim trailing zeros. diff --git a/packages/assets-controller/src/data-sources/index.ts b/packages/assets-controller/src/data-sources/index.ts index 47cb7c5734c..be96ba70d72 100644 --- a/packages/assets-controller/src/data-sources/index.ts +++ b/packages/assets-controller/src/data-sources/index.ts @@ -2,7 +2,7 @@ export { AbstractDataSource, type DataSourceState, type SubscriptionRequest, -} from './AbstractDataSource'; +} from './AbstractDataSource.js'; export { AccountsApiDataSource, @@ -10,7 +10,7 @@ export { type AccountsApiDataSourceOptions, type AccountsApiDataSourceState, type AccountsApiDataSourceAllowedActions, -} from './AccountsApiDataSource'; +} from './AccountsApiDataSource.js'; export { BackendWebsocketDataSource, @@ -19,7 +19,7 @@ export { type BackendWebsocketDataSourceState, type BackendWebsocketDataSourceAllowedActions, type BackendWebsocketDataSourceAllowedEvents, -} from './BackendWebsocketDataSource'; +} from './BackendWebsocketDataSource.js'; export { RpcDataSource, @@ -30,19 +30,19 @@ export { type RpcDataSourceAllowedActions, type RpcDataSourceAllowedEvents, type ChainStatus, -} from './RpcDataSource'; +} from './RpcDataSource.js'; export { TokenDataSource, type TokenDataSourceOptions, type TokenDataSourceAllowedActions, -} from './TokenDataSource'; +} from './TokenDataSource.js'; export { PriceDataSource, type PriceDataSourceConfig, type PriceDataSourceOptions, -} from './PriceDataSource'; +} from './PriceDataSource.js'; // Unified Snap Data Source (dynamically discovers keyring snaps via PermissionController) export { @@ -59,10 +59,10 @@ export { type SnapDataSourceOptions, type SnapDataSourceAllowedActions, type SnapDataSourceAllowedEvents, -} from './SnapDataSource'; +} from './SnapDataSource.js'; export { StakedBalanceDataSource, type StakedBalanceDataSourceConfig, type StakedBalanceDataSourceOptions, -} from './StakedBalanceDataSource'; +} from './StakedBalanceDataSource.js'; diff --git a/packages/assets-controller/src/defaults.ts b/packages/assets-controller/src/defaults.ts index 97e30970ca9..6c587cddf85 100644 --- a/packages/assets-controller/src/defaults.ts +++ b/packages/assets-controller/src/defaults.ts @@ -3,7 +3,7 @@ import type { Caip19AssetId, ChainId, FungibleAssetMetadata, -} from './types'; +} from './types.js'; /** * EIP-55 checksummed address of MetaMask USD (mUSD) — same canonical contract diff --git a/packages/assets-controller/src/index.ts b/packages/assets-controller/src/index.ts index 4f69c989517..20661f0ba13 100644 --- a/packages/assets-controller/src/index.ts +++ b/packages/assets-controller/src/index.ts @@ -2,8 +2,8 @@ export { AssetsController, getDefaultAssetsControllerState, -} from './AssetsController'; -export { AssetsDataSourceError } from './errors'; +} from './AssetsController.js'; +export { AssetsDataSourceError } from './errors.js'; export { DEFAULT_TRACKED_ASSETS_BY_CHAIN, CHAINS_WITH_DEFAULT_TRACKED_ASSETS, @@ -11,8 +11,8 @@ export { buildDefaultAssetsInfo, getDefaultTrackedAssetsForChain, getDefaultAssetMetadata, -} from './defaults'; -export type { PendingTokenMetadata } from './AssetsController'; +} from './defaults.js'; +export type { PendingTokenMetadata } from './AssetsController.js'; // State and messenger types export type { @@ -26,7 +26,7 @@ export type { AssetsControllerPriceChangedEvent, AssetsControllerAssetsDetectedEvent, AssetsControllerEvents, -} from './AssetsController'; +} from './AssetsController.js'; export type { AssetsControllerGetAssetsAction, AssetsControllerGetAssetsBalanceAction, @@ -41,7 +41,7 @@ export type { AssetsControllerGetExchangeRatesForBridgeAction, AssetsControllerGetStateForTransactionPayAction, AssetsControllerSetSelectedCurrencyAction, -} from './AssetsController-method-action-types'; +} from './AssetsController-method-action-types.js'; // Core types export type { @@ -95,42 +95,42 @@ export type { PriceChangeEvent, MetadataChangeEvent, AssetsDetectedEvent, -} from './types'; +} from './types.js'; // Data sources - base class and types -export { AbstractDataSource } from './data-sources'; +export { AbstractDataSource } from './data-sources.js'; -export type { DataSourceState, SubscriptionRequest } from './data-sources'; +export type { DataSourceState, SubscriptionRequest } from './data-sources.js'; // Data sources - AccountsApi -export { AccountsApiDataSource } from './data-sources'; +export { AccountsApiDataSource } from './data-sources.js'; export type { AccountsApiDataSourceConfig, AccountsApiDataSourceOptions, AccountsApiDataSourceState, -} from './data-sources'; +} from './data-sources.js'; // Data sources - BackendWebsocket export { BackendWebsocketDataSource, createBackendWebsocketDataSource, -} from './data-sources'; +} from './data-sources.js'; export type { BackendWebsocketDataSourceOptions, BackendWebsocketDataSourceState, -} from './data-sources'; +} from './data-sources.js'; // Data sources - RPC -export { RpcDataSource, createRpcDataSource } from './data-sources'; +export { RpcDataSource, createRpcDataSource } from './data-sources.js'; export type { RpcDataSourceConfig, RpcDataSourceOptions, RpcDataSourceState, ChainStatus, -} from './data-sources'; +} from './data-sources.js'; // Data sources - Unified Snap Data Source (dynamically discovers keyring snaps) export { @@ -142,45 +142,45 @@ export { // Utility functions getChainIdsCaveat, extractChainFromAssetId, -} from './data-sources'; +} from './data-sources.js'; export type { SnapDataSourceState, SnapDataSourceOptions, -} from './data-sources'; +} from './data-sources.js'; // Enrichment data sources -export { TokenDataSource, PriceDataSource } from './data-sources'; +export { TokenDataSource, PriceDataSource } from './data-sources.js'; export type { TokenDataSourceOptions, PriceDataSourceConfig, PriceDataSourceOptions, -} from './data-sources'; +} from './data-sources.js'; // Middlewares export { CustomAssetGraduationMiddleware, DetectionMiddleware, RpcFallbackMiddleware, -} from './middlewares'; +} from './middlewares.js'; export type { CustomAssetGraduationMiddlewareOptions, RpcFallbackMiddlewareOptions, -} from './middlewares'; +} from './middlewares.js'; // Utilities export { normalizeAssetId, formatExchangeRatesForBridge, formatStateForTransactionPay, -} from './utils'; +} from './utils.js'; export type { AccountForLegacyFormat, BridgeExchangeRatesFormat, LegacyToken, TransactionPayLegacyFormat, -} from './utils'; +} from './utils.js'; // Selectors export { @@ -189,7 +189,7 @@ export { getAggregatedBalanceForAccount, getGroupIdForAccount, getInternalAccountsForGroup, -} from './selectors/balance'; +} from './selectors/balance.js'; export type { AccountGroupBalance, @@ -201,4 +201,4 @@ export type { BalanceChangeResult, EnabledNetworkMap, WalletBalance, -} from './selectors/balance'; +} from './selectors/balance.js'; diff --git a/packages/assets-controller/src/middlewares/CustomAssetGraduationMiddleware.test.ts b/packages/assets-controller/src/middlewares/CustomAssetGraduationMiddleware.test.ts index 02331161e93..2fdcb05d5f6 100644 --- a/packages/assets-controller/src/middlewares/CustomAssetGraduationMiddleware.test.ts +++ b/packages/assets-controller/src/middlewares/CustomAssetGraduationMiddleware.test.ts @@ -5,8 +5,8 @@ import type { Caip19AssetId, Context, DataRequest, -} from '../types'; -import { CustomAssetGraduationMiddleware } from './CustomAssetGraduationMiddleware'; +} from '../types.js'; +import { CustomAssetGraduationMiddleware } from './CustomAssetGraduationMiddleware.js'; const MOCK_ACCOUNT_ID = 'mock-account-id'; const OTHER_ACCOUNT_ID = 'other-account-id'; diff --git a/packages/assets-controller/src/middlewares/CustomAssetGraduationMiddleware.ts b/packages/assets-controller/src/middlewares/CustomAssetGraduationMiddleware.ts index 3fec59bcce5..942cc2c546a 100644 --- a/packages/assets-controller/src/middlewares/CustomAssetGraduationMiddleware.ts +++ b/packages/assets-controller/src/middlewares/CustomAssetGraduationMiddleware.ts @@ -1,14 +1,14 @@ import { KnownCaipNamespace } from '@metamask/utils'; -import { projectLogger, createModuleLogger } from '../logger'; -import { forDataTypes } from '../types'; +import { projectLogger, createModuleLogger } from '../logger.js'; +import { forDataTypes } from '../types.js'; import type { AccountId, AssetBalance, Caip19AssetId, Middleware, -} from '../types'; -import { normalizeAssetId } from '../utils'; +} from '../types.js'; +import { normalizeAssetId } from '../utils.js'; const CONTROLLER_NAME = 'CustomAssetGraduationMiddleware'; diff --git a/packages/assets-controller/src/middlewares/DetectionMiddleware.test.ts b/packages/assets-controller/src/middlewares/DetectionMiddleware.test.ts index 4d471c0bb0a..0a42e23d926 100644 --- a/packages/assets-controller/src/middlewares/DetectionMiddleware.test.ts +++ b/packages/assets-controller/src/middlewares/DetectionMiddleware.test.ts @@ -6,9 +6,9 @@ import type { DataRequest, Caip19AssetId, AssetsControllerStateInternal, -} from '../types'; -import { normalizeAssetId } from '../utils'; -import { DetectionMiddleware } from './DetectionMiddleware'; +} from '../types.js'; +import { normalizeAssetId } from '../utils.js'; +import { DetectionMiddleware } from './DetectionMiddleware.js'; const MOCK_ADDRESS = '0x1234567890123456789012345678901234567890'; const MOCK_ACCOUNT_ID = 'mock-account-id'; diff --git a/packages/assets-controller/src/middlewares/DetectionMiddleware.ts b/packages/assets-controller/src/middlewares/DetectionMiddleware.ts index 2fe4b1dcf8f..fa43e776a80 100644 --- a/packages/assets-controller/src/middlewares/DetectionMiddleware.ts +++ b/packages/assets-controller/src/middlewares/DetectionMiddleware.ts @@ -1,7 +1,7 @@ -import { projectLogger, createModuleLogger } from '../logger'; -import { forDataTypes } from '../types'; -import type { AccountId, Caip19AssetId, Middleware } from '../types'; -import { normalizeAssetId } from '../utils'; +import { projectLogger, createModuleLogger } from '../logger.js'; +import { forDataTypes } from '../types.js'; +import type { AccountId, Caip19AssetId, Middleware } from '../types.js'; +import { normalizeAssetId } from '../utils.js'; // ============================================================================ // CONSTANTS diff --git a/packages/assets-controller/src/middlewares/ParallelMiddleware.test.ts b/packages/assets-controller/src/middlewares/ParallelMiddleware.test.ts index a20712b6567..9fbf852067f 100644 --- a/packages/assets-controller/src/middlewares/ParallelMiddleware.test.ts +++ b/packages/assets-controller/src/middlewares/ParallelMiddleware.test.ts @@ -1,6 +1,6 @@ -import type { AssetsDataSource } from '../types'; -import type { Context, DataResponse } from '../types'; -import { createParallelMiddleware } from './ParallelMiddleware'; +import type { AssetsDataSource } from '../types.js'; +import type { Context, DataResponse } from '../types.js'; +import { createParallelMiddleware } from './ParallelMiddleware.js'; const MOCK_ASSET = 'eip155:1/erc20:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'; diff --git a/packages/assets-controller/src/middlewares/ParallelMiddleware.ts b/packages/assets-controller/src/middlewares/ParallelMiddleware.ts index 7d67c83308e..8b6fceed491 100644 --- a/packages/assets-controller/src/middlewares/ParallelMiddleware.ts +++ b/packages/assets-controller/src/middlewares/ParallelMiddleware.ts @@ -7,7 +7,7 @@ import type { DataResponse, Middleware, AssetsDataSource, -} from '../types'; +} from '../types.js'; // ============================================================================ // MERGE HELPER diff --git a/packages/assets-controller/src/middlewares/RpcFallbackMiddleware.test.ts b/packages/assets-controller/src/middlewares/RpcFallbackMiddleware.test.ts index bcd82f65d19..4bcbbc472f4 100644 --- a/packages/assets-controller/src/middlewares/RpcFallbackMiddleware.test.ts +++ b/packages/assets-controller/src/middlewares/RpcFallbackMiddleware.test.ts @@ -7,8 +7,8 @@ import type { Context, DataRequest, DataResponse, -} from '../types'; -import { RpcFallbackMiddleware } from './RpcFallbackMiddleware'; +} from '../types.js'; +import { RpcFallbackMiddleware } from './RpcFallbackMiddleware.js'; const MOCK_ACCOUNT_ID = 'mock-account-id'; const MOCK_ASSET_MAINNET = 'eip155:1/slip44:60' as Caip19AssetId; diff --git a/packages/assets-controller/src/middlewares/RpcFallbackMiddleware.ts b/packages/assets-controller/src/middlewares/RpcFallbackMiddleware.ts index b91da7490a3..fb164a89126 100644 --- a/packages/assets-controller/src/middlewares/RpcFallbackMiddleware.ts +++ b/packages/assets-controller/src/middlewares/RpcFallbackMiddleware.ts @@ -1,12 +1,12 @@ -import { projectLogger, createModuleLogger } from '../logger'; -import { forDataTypes } from '../types'; +import { projectLogger, createModuleLogger } from '../logger.js'; +import { forDataTypes } from '../types.js'; import type { AssetsDataSource, ChainId, DataResponse, Middleware, -} from '../types'; -import { mergeDataResponses } from './ParallelMiddleware'; +} from '../types.js'; +import { mergeDataResponses } from './ParallelMiddleware.js'; const CONTROLLER_NAME = 'RpcFallbackMiddleware'; diff --git a/packages/assets-controller/src/middlewares/index.ts b/packages/assets-controller/src/middlewares/index.ts index 15a26613b99..d6796382aa3 100644 --- a/packages/assets-controller/src/middlewares/index.ts +++ b/packages/assets-controller/src/middlewares/index.ts @@ -1,12 +1,12 @@ -export { CustomAssetGraduationMiddleware } from './CustomAssetGraduationMiddleware'; -export type { CustomAssetGraduationMiddlewareOptions } from './CustomAssetGraduationMiddleware'; -export { DetectionMiddleware } from './DetectionMiddleware'; -export { RpcFallbackMiddleware } from './RpcFallbackMiddleware'; -export type { RpcFallbackMiddlewareOptions } from './RpcFallbackMiddleware'; +export { CustomAssetGraduationMiddleware } from './CustomAssetGraduationMiddleware.js'; +export type { CustomAssetGraduationMiddlewareOptions } from './CustomAssetGraduationMiddleware.js'; +export { DetectionMiddleware } from './DetectionMiddleware.js'; +export { RpcFallbackMiddleware } from './RpcFallbackMiddleware.js'; +export type { RpcFallbackMiddlewareOptions } from './RpcFallbackMiddleware.js'; export { createParallelBalanceMiddleware, createParallelMiddleware, mergeDataResponses, -} from './ParallelMiddleware'; -export type { BalanceSource } from './ParallelMiddleware'; -export type { AssetsDataSource } from '../types'; +} from './ParallelMiddleware.js'; +export type { BalanceSource } from './ParallelMiddleware.js'; +export type { AssetsDataSource } from '../types.js'; diff --git a/packages/assets-controller/src/migrations/healAssetsInfoMetadata.test.ts b/packages/assets-controller/src/migrations/healAssetsInfoMetadata.test.ts index 98202bb31be..d4fa0785d8c 100644 --- a/packages/assets-controller/src/migrations/healAssetsInfoMetadata.test.ts +++ b/packages/assets-controller/src/migrations/healAssetsInfoMetadata.test.ts @@ -1,9 +1,9 @@ -import type { AssetsControllerStateInternal, Caip19AssetId } from '../types'; -import type { CurrentAssetsState } from './healAssetsInfoMetadata'; +import type { AssetsControllerStateInternal, Caip19AssetId } from '../types.js'; +import type { CurrentAssetsState } from './healAssetsInfoMetadata.js'; import { healAssetsInfoMetadata, tempHealAssetsInfoMetadata, -} from './healAssetsInfoMetadata'; +} from './healAssetsInfoMetadata.js'; const ACCOUNT_ID = 'account-uuid-1'; const ACCOUNT_ADDRESS = '0x1111111111111111111111111111111111111111'; diff --git a/packages/assets-controller/src/migrations/healAssetsInfoMetadata.ts b/packages/assets-controller/src/migrations/healAssetsInfoMetadata.ts index fc34bc32855..e3f75f6fbb5 100644 --- a/packages/assets-controller/src/migrations/healAssetsInfoMetadata.ts +++ b/packages/assets-controller/src/migrations/healAssetsInfoMetadata.ts @@ -7,15 +7,15 @@ import { hasProperty, isObject, } from '@metamask/utils'; -import { cloneDeep } from 'lodash'; +import { cloneDeep } from 'lodash-es'; -import { createModuleLogger, projectLogger } from '../logger'; +import { createModuleLogger, projectLogger } from '../logger.js'; import type { AccountId, Caip19AssetId, FungibleAssetMetadata, AssetsControllerStateInternal, -} from '../types'; +} from '../types.js'; /** * TEMPORARY MODULE — remove in a future release. diff --git a/packages/assets-controller/src/selectors/balance.test.ts b/packages/assets-controller/src/selectors/balance.test.ts index 61fcc2b9ddc..facc9a9af5b 100644 --- a/packages/assets-controller/src/selectors/balance.test.ts +++ b/packages/assets-controller/src/selectors/balance.test.ts @@ -1,9 +1,9 @@ import type { AccountTreeControllerState } from '@metamask/account-tree-controller'; import type { InternalAccount } from '@metamask/keyring-internal-api'; -import type { AssetsControllerState } from '../AssetsController'; -import type { Caip19AssetId } from '../types'; -import type { AccountsById, EnabledNetworkMap } from './balance'; +import type { AssetsControllerState } from '../AssetsController.js'; +import type { Caip19AssetId } from '../types.js'; +import type { AccountsById, EnabledNetworkMap } from './balance.js'; import { calculateBalanceChangeForAccountGroup, calculateBalanceForAllWallets, @@ -12,7 +12,7 @@ import { getAggregatedBalanceForAccountIds, getGroupIdForAccount, getInternalAccountsForGroup, -} from './balance'; +} from './balance.js'; describe('balance selectors', () => { const accountId1 = 'account-id-1'; diff --git a/packages/assets-controller/src/selectors/balance.ts b/packages/assets-controller/src/selectors/balance.ts index bd354714ff7..c993af84e4e 100644 --- a/packages/assets-controller/src/selectors/balance.ts +++ b/packages/assets-controller/src/selectors/balance.ts @@ -11,14 +11,14 @@ import { } from '@metamask/utils'; import BigNumberJS from 'bignumber.js'; -import type { AssetsControllerState } from '../AssetsController'; +import type { AssetsControllerState } from '../AssetsController.js'; import type { AccountId, AssetBalance, AssetMetadata, AssetPreferences, Caip19AssetId, -} from '../types'; +} from '../types.js'; // ============================================================================ // TRACE NAMES — used in Sentry spans (search these strings in Discover) diff --git a/packages/assets-controller/src/utils/customAssetsRpcSupplement.test.ts b/packages/assets-controller/src/utils/customAssetsRpcSupplement.test.ts index c7bfe631747..597a6e541b5 100644 --- a/packages/assets-controller/src/utils/customAssetsRpcSupplement.test.ts +++ b/packages/assets-controller/src/utils/customAssetsRpcSupplement.test.ts @@ -1,5 +1,5 @@ -import type { Caip19AssetId, ChainId } from '../types'; -import { pickRpcCustomAssetsSupplement } from './customAssetsRpcSupplement'; +import type { Caip19AssetId, ChainId } from '../types.js'; +import { pickRpcCustomAssetsSupplement } from './customAssetsRpcSupplement.js'; const MAINNET = 'eip155:1' as ChainId; const POLYGON = 'eip155:137' as ChainId; diff --git a/packages/assets-controller/src/utils/customAssetsRpcSupplement.ts b/packages/assets-controller/src/utils/customAssetsRpcSupplement.ts index 3e202535bc5..3703a5f9fc9 100644 --- a/packages/assets-controller/src/utils/customAssetsRpcSupplement.ts +++ b/packages/assets-controller/src/utils/customAssetsRpcSupplement.ts @@ -1,6 +1,6 @@ import { parseCaipAssetType } from '@metamask/utils'; -import type { Caip19AssetId, ChainId } from '../types'; +import type { Caip19AssetId, ChainId } from '../types.js'; /** * Inputs needed to decide whether `RpcDataSource` should run a supplemental diff --git a/packages/assets-controller/src/utils/fetchWithTimeout.test.ts b/packages/assets-controller/src/utils/fetchWithTimeout.test.ts index 65c3f20ae2a..89b773fa4ee 100644 --- a/packages/assets-controller/src/utils/fetchWithTimeout.test.ts +++ b/packages/assets-controller/src/utils/fetchWithTimeout.test.ts @@ -1,4 +1,4 @@ -import { fetchWithTimeout } from './fetchWithTimeout'; +import { fetchWithTimeout } from './fetchWithTimeout.js'; describe('fetchWithTimeout', () => { it('resolves with the task value when it settles in time', async () => { diff --git a/packages/assets-controller/src/utils/formatExchangeRatesForBridge.test.ts b/packages/assets-controller/src/utils/formatExchangeRatesForBridge.test.ts index 40cacaec833..6ca041632fc 100644 --- a/packages/assets-controller/src/utils/formatExchangeRatesForBridge.test.ts +++ b/packages/assets-controller/src/utils/formatExchangeRatesForBridge.test.ts @@ -1,5 +1,5 @@ -import type { AssetMetadata, FungibleAssetPrice } from '../types'; -import { formatExchangeRatesForBridge } from './formatExchangeRatesForBridge'; +import type { AssetMetadata, FungibleAssetPrice } from '../types.js'; +import { formatExchangeRatesForBridge } from './formatExchangeRatesForBridge.js'; /** * Builds minimal AssetPrice for tests. Defaults usdPrice to the same diff --git a/packages/assets-controller/src/utils/formatExchangeRatesForBridge.ts b/packages/assets-controller/src/utils/formatExchangeRatesForBridge.ts index db306600322..156349c7dce 100644 --- a/packages/assets-controller/src/utils/formatExchangeRatesForBridge.ts +++ b/packages/assets-controller/src/utils/formatExchangeRatesForBridge.ts @@ -15,7 +15,7 @@ import type { AssetPrice, FungibleAssetPrice, Caip19AssetId, -} from '../types'; +} from '../types.js'; /** * Exchange rates in the format expected by the bridge controller: @@ -128,9 +128,7 @@ export function formatExchangeRatesForBridge(params: { if (tokenAddress) { const priceInNative = nativeAssetUsdPrice > 0 ? usdPrice / nativeAssetUsdPrice : usdPrice; - if (!marketData[chainIdHex]) { - marketData[chainIdHex] = {}; - } + marketData[chainIdHex] ??= {}; marketData[chainIdHex][tokenAddress] = { ...priceData, price: priceInNative, diff --git a/packages/assets-controller/src/utils/formatStateForTransactionPay.test.ts b/packages/assets-controller/src/utils/formatStateForTransactionPay.test.ts index d906273061e..94c099feb50 100644 --- a/packages/assets-controller/src/utils/formatStateForTransactionPay.test.ts +++ b/packages/assets-controller/src/utils/formatStateForTransactionPay.test.ts @@ -1,8 +1,12 @@ -import type { AssetBalance, AssetMetadata, FungibleAssetPrice } from '../types'; +import type { + AssetBalance, + AssetMetadata, + FungibleAssetPrice, +} from '../types.js'; import { formatStateForTransactionPay, AccountForLegacyFormat, -} from './formatStateForTransactionPay'; +} from './formatStateForTransactionPay.js'; function price( overrides: Partial & { price: number }, diff --git a/packages/assets-controller/src/utils/formatStateForTransactionPay.ts b/packages/assets-controller/src/utils/formatStateForTransactionPay.ts index eeeba30c893..c0538a1d07b 100644 --- a/packages/assets-controller/src/utils/formatStateForTransactionPay.ts +++ b/packages/assets-controller/src/utils/formatStateForTransactionPay.ts @@ -8,9 +8,9 @@ import type { AssetMetadata, AssetPrice, Caip19AssetId, -} from '../types'; -import { formatExchangeRatesForBridge } from './formatExchangeRatesForBridge'; -import type { BridgeExchangeRatesFormat } from './formatExchangeRatesForBridge'; +} from '../types.js'; +import { formatExchangeRatesForBridge } from './formatExchangeRatesForBridge.js'; +import type { BridgeExchangeRatesFormat } from './formatExchangeRatesForBridge.js'; /** Account with id and address for mapping state to legacy format. */ export type AccountForLegacyFormat = { id: string; address: string }; diff --git a/packages/assets-controller/src/utils/index.ts b/packages/assets-controller/src/utils/index.ts index 408f745261d..daff68bcaec 100644 --- a/packages/assets-controller/src/utils/index.ts +++ b/packages/assets-controller/src/utils/index.ts @@ -1,15 +1,15 @@ -export { fetchWithTimeout } from './fetchWithTimeout'; -export { normalizeAmountString } from './normalizeAmountString'; -export { normalizeAssetId } from './normalizeAssetId'; -export { formatExchangeRatesForBridge } from './formatExchangeRatesForBridge'; -export { formatStateForTransactionPay } from './formatStateForTransactionPay'; -export type { BridgeExchangeRatesFormat } from './formatExchangeRatesForBridge'; +export { fetchWithTimeout } from './fetchWithTimeout.js'; +export { normalizeAmountString } from './normalizeAmountString.js'; +export { normalizeAssetId } from './normalizeAssetId.js'; +export { formatExchangeRatesForBridge } from './formatExchangeRatesForBridge.js'; +export { formatStateForTransactionPay } from './formatStateForTransactionPay.js'; +export type { BridgeExchangeRatesFormat } from './formatExchangeRatesForBridge.js'; export type { AccountForLegacyFormat, LegacyToken, TransactionPayLegacyFormat, -} from './formatStateForTransactionPay'; +} from './formatStateForTransactionPay.js'; export { buildNativeAssetsFromConstant, buildNativeAssetsFromApi, -} from './native-assets'; +} from './native-assets.js'; diff --git a/packages/assets-controller/src/utils/native-assets.test.ts b/packages/assets-controller/src/utils/native-assets.test.ts index e63df1bd83a..b82cedfdeb9 100644 --- a/packages/assets-controller/src/utils/native-assets.test.ts +++ b/packages/assets-controller/src/utils/native-assets.test.ts @@ -4,8 +4,8 @@ import { fetchWithErrorHandling } from '@metamask/controller-utils'; import { buildNativeAssetsFromConstant, buildNativeAssetsFromApi, -} from './native-assets'; -import { normalizeAssetId } from './normalizeAssetId'; +} from './native-assets.js'; +import { normalizeAssetId } from './normalizeAssetId.js'; jest.mock('@metamask/controller-utils', () => ({ ...jest.requireActual('@metamask/controller-utils'), diff --git a/packages/assets-controller/src/utils/native-assets.ts b/packages/assets-controller/src/utils/native-assets.ts index 2693daae520..5cf251974aa 100644 --- a/packages/assets-controller/src/utils/native-assets.ts +++ b/packages/assets-controller/src/utils/native-assets.ts @@ -2,8 +2,8 @@ import { SPOT_PRICES_SUPPORT_INFO } from '@metamask/assets-controllers'; import { fetchWithErrorHandling } from '@metamask/controller-utils'; import { parseCaipAssetType } from '@metamask/utils'; -import type { Caip19AssetId, ChainId } from '../types'; -import { normalizeAssetId } from './normalizeAssetId'; +import type { Caip19AssetId, ChainId } from '../types.js'; +import { normalizeAssetId } from './normalizeAssetId.js'; const CHAINID_NETWORK_URL = 'https://chainid.network/chains.json'; diff --git a/packages/assets-controller/src/utils/normalizeAmountString.test.ts b/packages/assets-controller/src/utils/normalizeAmountString.test.ts index eb21ca68d38..da1af7da45b 100644 --- a/packages/assets-controller/src/utils/normalizeAmountString.test.ts +++ b/packages/assets-controller/src/utils/normalizeAmountString.test.ts @@ -1,4 +1,4 @@ -import { normalizeAmountString } from './normalizeAmountString'; +import { normalizeAmountString } from './normalizeAmountString.js'; describe('normalizeAmountString', () => { describe('with decimals=18 (e.g. ETH/most ERC20)', () => { diff --git a/packages/assets-controller/src/utils/normalizeAssetId.ts b/packages/assets-controller/src/utils/normalizeAssetId.ts index 76632a54813..ecdbc4f03e1 100644 --- a/packages/assets-controller/src/utils/normalizeAssetId.ts +++ b/packages/assets-controller/src/utils/normalizeAssetId.ts @@ -1,7 +1,7 @@ import { toChecksumAddress } from '@ethereumjs/util'; import { parseCaipAssetType, parseCaipChainId } from '@metamask/utils'; -import type { Caip19AssetId } from '../types'; +import type { Caip19AssetId } from '../types.js'; /** * Normalizes a CAIP-19 asset ID by checksumming EVM addresses. diff --git a/packages/assets-controller/src/utils/processAccountActivityBalanceUpdates.test.ts b/packages/assets-controller/src/utils/processAccountActivityBalanceUpdates.test.ts index 6f4f09e58c9..01f1d82b47a 100644 --- a/packages/assets-controller/src/utils/processAccountActivityBalanceUpdates.test.ts +++ b/packages/assets-controller/src/utils/processAccountActivityBalanceUpdates.test.ts @@ -1,7 +1,7 @@ import type { BalanceUpdate } from '@metamask/core-backend'; -import type { Caip19AssetId } from '../types'; -import { processAccountActivityBalanceUpdates } from './processAccountActivityBalanceUpdates'; +import type { Caip19AssetId } from '../types.js'; +import { processAccountActivityBalanceUpdates } from './processAccountActivityBalanceUpdates.js'; describe('processAccountActivityBalanceUpdates', () => { it('converts hex postBalance to human-readable amount', () => { diff --git a/packages/assets-controller/src/utils/processAccountActivityBalanceUpdates.ts b/packages/assets-controller/src/utils/processAccountActivityBalanceUpdates.ts index 16c3844ce3c..b6367ff9b15 100644 --- a/packages/assets-controller/src/utils/processAccountActivityBalanceUpdates.ts +++ b/packages/assets-controller/src/utils/processAccountActivityBalanceUpdates.ts @@ -6,7 +6,7 @@ import type { AssetMetadata, Caip19AssetId, DataResponse, -} from '../types'; +} from '../types.js'; /** * Convert AccountActivityMessage balance updates into a {@link DataResponse} From ca8d79cbba39c7a6b848aeb5a04d99b161b7761a Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:48:41 +0200 Subject: [PATCH 080/136] ESLint fix and `jest` global import for assets-controllers --- packages/assets-controllers/package.json | 2 +- ...ntTrackerController-method-action-types.ts | 2 +- .../src/AccountTrackerController.test.ts | 16 +-- .../src/AccountTrackerController.ts | 24 ++-- ...sContractController-method-action-types.ts | 2 +- .../src/AssetsContractController.test.ts | 12 +- .../src/AssetsContractController.ts | 14 +-- ...tractControllerWithNetworkClientId.test.ts | 2 +- ...rencyRateController-method-action-types.ts | 2 +- .../src/CurrencyRateController.test.ts | 8 +- .../src/CurrencyRateController.ts | 6 +- .../DeFiPositionsController.test.ts | 16 +-- .../DeFiPositionsController.ts | 10 +- .../__fixtures__/mock-responses.ts | 2 +- .../__fixtures__/mock-result.ts | 2 +- .../calculate-defi-metrics.test.ts | 4 +- .../calculate-defi-metrics.ts | 2 +- .../fetch-positions.test.ts | 2 +- .../fetch-positions.ts | 2 +- .../group-defi-positions.test.ts | 6 +- .../group-defi-positions.ts | 2 +- ...ainAssetsController-method-action-types.ts | 2 +- .../MultichainAssetsController.test.ts | 6 +- .../MultichainAssetsController.ts | 26 ++--- .../src/MultichainAssetsController/index.ts | 6 +- .../src/MultichainAssetsController/utils.ts | 7 +- ...setsRatesController-method-action-types.ts | 2 +- .../MultichainAssetsRatesController.test.ts | 6 +- .../MultichainAssetsRatesController.ts | 12 +- .../MultichainAssetsRatesController/index.ts | 8 +- .../MultichainBalancesController.test.ts | 6 +- .../MultichainBalancesController.ts | 6 +- .../src/MultichainBalancesController/index.ts | 4 +- .../src/NftController.test.ts | 32 ++--- .../assets-controllers/src/NftController.ts | 55 +++++---- .../src/NftDetectionController.test.ts | 18 +-- .../src/NftDetectionController.ts | 4 +- .../RatesController/RatesController.test.ts | 11 +- .../src/RatesController/RatesController.ts | 4 +- .../src/RatesController/index.ts | 4 +- .../src/RatesController/types.ts | 4 +- .../src/Standards/ERC20Standard.test.ts | 2 +- .../src/Standards/ERC20Standard.ts | 2 +- .../ERC1155/ERC1155Standard.test.ts | 2 +- .../NftStandards/ERC1155/ERC1155Standard.ts | 5 +- .../ERC721/ERC721Standard.test.ts | 2 +- .../NftStandards/ERC721/ERC721Standard.ts | 2 +- ...nBalancesController-method-action-types.ts | 2 +- .../src/TokenBalancesController.test.ts | 22 ++-- .../src/TokenBalancesController.ts | 26 ++--- ...DetectionController-method-action-types.ts | 2 +- .../src/TokenDetectionController.test.ts | 28 ++--- .../src/TokenDetectionController.ts | 18 +-- .../src/TokenListController.test.ts | 14 +-- .../src/TokenListController.ts | 6 +- .../src/TokenListService.test.ts | 8 +- .../src/TokenListService.ts | 6 +- .../src/TokenRatesController.test.ts | 22 ++-- .../src/TokenRatesController.ts | 19 +-- ...TokenSearchDiscoveryDataController.test.ts | 15 ++- .../TokenSearchDiscoveryDataController.ts | 12 +- .../index.ts | 4 +- .../types.ts | 4 +- .../TokensController-method-action-types.ts | 2 +- .../src/TokensController.test.ts | 26 ++--- .../src/TokensController.ts | 31 ++--- .../assets-controllers/src/assetsUtil.test.ts | 12 +- packages/assets-controllers/src/assetsUtil.ts | 10 +- .../assets-controllers/src/balances.test.ts | 6 +- packages/assets-controllers/src/balances.ts | 26 ++--- .../crypto-compare.test.ts | 2 +- .../crypto-compare-service/crypto-compare.ts | 2 +- .../src/crypto-compare-service/index.ts | 2 +- packages/assets-controllers/src/index.ts | 109 +++++++++--------- .../api-balance-fetcher.test.ts | 12 +- .../api-balance-fetcher.ts | 10 +- .../src/multi-chain-accounts-service/index.ts | 4 +- .../mocks/mock-get-balances.test.ts | 2 +- .../mocks/mock-get-balances.ts | 2 +- .../mocks/mock-get-supported-networks.ts | 2 +- .../multi-chain-accounts.test.ts | 6 +- .../multi-chain-accounts.ts | 2 +- .../assets-controllers/src/multicall.test.ts | 4 +- packages/assets-controllers/src/multicall.ts | 4 +- .../rpc-service/rpc-balance-fetcher.test.ts | 8 +- .../src/rpc-service/rpc-balance-fetcher.ts | 14 +-- .../src/selectors/stringify-balance.test.ts | 2 +- .../src/selectors/token-selectors.test.ts | 24 ++-- .../src/selectors/token-selectors.ts | 27 +++-- .../abstract-token-prices-service.ts | 2 +- .../token-prices-service/codefi-v2.test.ts | 2 +- .../src/token-prices-service/codefi-v2.ts | 22 ++-- .../src/token-prices-service/index.test.ts | 2 +- .../src/token-prices-service/index.ts | 4 +- .../src/token-service.test.ts | 4 +- .../assets-controllers/src/token-service.ts | 2 +- .../src/utils/create-batch-handler.test.ts | 2 +- .../src/utils/create-batch-handler.ts | 4 +- .../src/utils/formatters.test.ts | 2 +- .../src/utils/timeout-with-retry.test.ts | 4 +- 100 files changed, 495 insertions(+), 490 deletions(-) diff --git a/packages/assets-controllers/package.json b/packages/assets-controllers/package.json index e252beaefd5..fa341ed3cd2 100644 --- a/packages/assets-controllers/package.json +++ b/packages/assets-controllers/package.json @@ -89,7 +89,7 @@ "bitcoin-address-validation": "^2.2.3", "bn.js": "^5.2.1", "immer": "^9.0.6", - "lodash": "^4.17.21", + "lodash-es": "^4.17.21", "multiformats": "^9.9.0", "reselect": "^5.1.1", "single-call-balance-checker-abi": "^1.0.0", diff --git a/packages/assets-controllers/src/AccountTrackerController-method-action-types.ts b/packages/assets-controllers/src/AccountTrackerController-method-action-types.ts index 38794c00d96..e9eab07a2eb 100644 --- a/packages/assets-controllers/src/AccountTrackerController-method-action-types.ts +++ b/packages/assets-controllers/src/AccountTrackerController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { AccountTrackerController } from './AccountTrackerController'; +import type { AccountTrackerController } from './AccountTrackerController.js'; /** * Refreshes the balances of the accounts depending on the multi-account setting. diff --git a/packages/assets-controllers/src/AccountTrackerController.test.ts b/packages/assets-controllers/src/AccountTrackerController.test.ts index 3e18da317dd..0f4efc6fae6 100644 --- a/packages/assets-controllers/src/AccountTrackerController.test.ts +++ b/packages/assets-controllers/src/AccountTrackerController.test.ts @@ -19,17 +19,17 @@ import type { TransactionMeta } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; import BN from 'bn.js'; -import { FakeProvider } from '../../../tests/fake-provider'; -import { jestAdvanceTime } from '../../../tests/helpers'; -import { createMockInternalAccount } from '../../accounts-controller/tests/mocks'; +import { FakeProvider } from '../../../tests/fake-provider.js'; +import { jestAdvanceTime } from '../../../tests/helpers.js'; +import { createMockInternalAccount } from '../../accounts-controller/tests/mocks.js'; import { buildCustomNetworkClientConfiguration, buildMockGetNetworkClientById, -} from '../../network-controller/tests/helpers'; -import type { AccountTrackerControllerMessenger } from './AccountTrackerController'; -import { AccountTrackerController } from './AccountTrackerController'; -import { AccountsApiBalanceFetcher } from './multi-chain-accounts-service/api-balance-fetcher'; -import { getTokenBalancesForMultipleAddresses } from './multicall'; +} from '../../network-controller/tests/helpers.js'; +import type { AccountTrackerControllerMessenger } from './AccountTrackerController.js'; +import { AccountTrackerController } from './AccountTrackerController.js'; +import { AccountsApiBalanceFetcher } from './multi-chain-accounts-service/api-balance-fetcher.js'; +import { getTokenBalancesForMultipleAddresses } from './multicall.js'; type AllAccountTrackerControllerActions = MessengerActions; diff --git a/packages/assets-controllers/src/AccountTrackerController.ts b/packages/assets-controllers/src/AccountTrackerController.ts index 264e40ba353..f319460af18 100644 --- a/packages/assets-controllers/src/AccountTrackerController.ts +++ b/packages/assets-controllers/src/AccountTrackerController.ts @@ -42,22 +42,22 @@ import type { import { assert, KnownCaipNamespace } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; import { Mutex } from 'async-mutex'; -import { cloneDeep, isEqual } from 'lodash'; +import { cloneDeep, isEqual } from 'lodash-es'; -import type { AccountTrackerControllerMethodActions } from './AccountTrackerController-method-action-types'; -import { STAKING_CONTRACT_ADDRESS_BY_CHAINID } from './AssetsContractController'; +import type { AccountTrackerControllerMethodActions } from './AccountTrackerController-method-action-types.js'; +import { STAKING_CONTRACT_ADDRESS_BY_CHAINID } from './AssetsContractController.js'; import type { AssetsContractController, StakedBalance, -} from './AssetsContractController'; -import { shouldIncludeNativeToken } from './constants'; -import { AccountsApiBalanceFetcher } from './multi-chain-accounts-service/api-balance-fetcher'; +} from './AssetsContractController.js'; +import { shouldIncludeNativeToken } from './constants.js'; +import { AccountsApiBalanceFetcher } from './multi-chain-accounts-service/api-balance-fetcher.js'; import type { BalanceFetcher, BalanceFetchResult, ProcessedBalance, -} from './multi-chain-accounts-service/api-balance-fetcher'; -import { RpcBalanceFetcher } from './rpc-service/rpc-balance-fetcher'; +} from './multi-chain-accounts-service/api-balance-fetcher.js'; +import { RpcBalanceFetcher } from './rpc-service/rpc-balance-fetcher.js'; /** * The name of the {@link AccountTrackerController}. @@ -506,11 +506,9 @@ export class AccountTrackerController extends StaticIntervalPollingController { newAddresses.forEach((address) => { - if (!accountsByChainId[chainId][address]) { - accountsByChainId[chainId][address] = { - balance: '0x0', - }; - } + accountsByChainId[chainId][address] ??= { + balance: '0x0', + }; }); }); diff --git a/packages/assets-controllers/src/AssetsContractController-method-action-types.ts b/packages/assets-controllers/src/AssetsContractController-method-action-types.ts index 73f709e8793..2801517c446 100644 --- a/packages/assets-controllers/src/AssetsContractController-method-action-types.ts +++ b/packages/assets-controllers/src/AssetsContractController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { AssetsContractController } from './AssetsContractController'; +import type { AssetsContractController } from './AssetsContractController.js'; /** * Get a ERC20Standard instance using the relevant provider instance. diff --git a/packages/assets-controllers/src/AssetsContractController.test.ts b/packages/assets-controllers/src/AssetsContractController.test.ts index a9c893b7139..8033c412094 100644 --- a/packages/assets-controllers/src/AssetsContractController.test.ts +++ b/packages/assets-controllers/src/AssetsContractController.test.ts @@ -27,15 +27,15 @@ import type { PreferencesState } from '@metamask/preferences-controller'; import { getDefaultPreferencesState } from '@metamask/preferences-controller'; import assert from 'assert'; -import { SECONDS } from '../../../tests/constants'; -import { mockNetwork } from '../../../tests/mock-network'; -import { buildInfuraNetworkClientConfiguration } from '../../network-controller/tests/helpers'; -import type { AssetsContractControllerMessenger } from './AssetsContractController'; +import { SECONDS } from '../../../tests/constants.js'; +import { mockNetwork } from '../../../tests/mock-network.js'; +import { buildInfuraNetworkClientConfiguration } from '../../network-controller/tests/helpers.js'; +import type { AssetsContractControllerMessenger } from './AssetsContractController.js'; import { AssetsContractController, MISSING_PROVIDER_ERROR, -} from './AssetsContractController'; -import { SupportedTokenDetectionNetworks } from './assetsUtil'; +} from './AssetsContractController.js'; +import { SupportedTokenDetectionNetworks } from './assetsUtil.js'; type AllAssetsContractControllerActions = MessengerActions; diff --git a/packages/assets-controllers/src/AssetsContractController.ts b/packages/assets-controllers/src/AssetsContractController.ts index ff33a0a2cf0..c25c085a906 100644 --- a/packages/assets-controllers/src/AssetsContractController.ts +++ b/packages/assets-controllers/src/AssetsContractController.ts @@ -18,16 +18,16 @@ import type { Hex } from '@metamask/utils'; import type BN from 'bn.js'; import abiSingleCallBalancesContract from 'single-call-balance-checker-abi'; -import type { AssetsContractControllerMethodActions } from './AssetsContractController-method-action-types'; +import type { AssetsContractControllerMethodActions } from './AssetsContractController-method-action-types.js'; import { SupportedStakedBalanceNetworks, SupportedTokenDetectionNetworks, -} from './assetsUtil'; -import type { Call } from './multicall'; -import { multicallOrFallback } from './multicall'; -import { ERC20Standard } from './Standards/ERC20Standard'; -import { ERC721Standard } from './Standards/NftStandards/ERC721/ERC721Standard'; -import { ERC1155Standard } from './Standards/NftStandards/ERC1155/ERC1155Standard'; +} from './assetsUtil.js'; +import type { Call } from './multicall.js'; +import { multicallOrFallback } from './multicall.js'; +import { ERC20Standard } from './Standards/ERC20Standard.js'; +import { ERC721Standard } from './Standards/NftStandards/ERC721/ERC721Standard.js'; +import { ERC1155Standard } from './Standards/NftStandards/ERC1155/ERC1155Standard.js'; /** * Check if token detection is enabled for certain networks diff --git a/packages/assets-controllers/src/AssetsContractControllerWithNetworkClientId.test.ts b/packages/assets-controllers/src/AssetsContractControllerWithNetworkClientId.test.ts index cd5ffe1a18b..87428c42bd6 100644 --- a/packages/assets-controllers/src/AssetsContractControllerWithNetworkClientId.test.ts +++ b/packages/assets-controllers/src/AssetsContractControllerWithNetworkClientId.test.ts @@ -2,7 +2,7 @@ import { BigNumber } from '@ethersproject/bignumber'; import { BUILT_IN_NETWORKS } from '@metamask/controller-utils'; import { NetworkClientType } from '@metamask/network-controller'; -import { SECONDS } from '../../../tests/constants'; +import { SECONDS } from '../../../tests/constants.js'; import { setupAssetContractControllers, mockNetworkWithDefaultChainId, diff --git a/packages/assets-controllers/src/CurrencyRateController-method-action-types.ts b/packages/assets-controllers/src/CurrencyRateController-method-action-types.ts index d8a71ecc84e..673ce8964c5 100644 --- a/packages/assets-controllers/src/CurrencyRateController-method-action-types.ts +++ b/packages/assets-controllers/src/CurrencyRateController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { CurrencyRateController } from './CurrencyRateController'; +import type { CurrencyRateController } from './CurrencyRateController.js'; /** * Sets a currency to track. diff --git a/packages/assets-controllers/src/CurrencyRateController.test.ts b/packages/assets-controllers/src/CurrencyRateController.test.ts index 38c8a689a13..411e37c1a4f 100644 --- a/packages/assets-controllers/src/CurrencyRateController.test.ts +++ b/packages/assets-controllers/src/CurrencyRateController.test.ts @@ -13,10 +13,10 @@ import type { import type { NetworkConfiguration } from '@metamask/network-controller'; import type { Hex } from '@metamask/utils'; -import { jestAdvanceTime } from '../../../tests/helpers'; -import type { CurrencyRateMessenger } from './CurrencyRateController'; -import { CurrencyRateController } from './CurrencyRateController'; -import type { AbstractTokenPricesService } from './token-prices-service'; +import { jestAdvanceTime } from '../../../tests/helpers.js'; +import type { CurrencyRateMessenger } from './CurrencyRateController.js'; +import { CurrencyRateController } from './CurrencyRateController.js'; +import type { AbstractTokenPricesService } from './token-prices-service.js'; const namespace = 'CurrencyRateController'; diff --git a/packages/assets-controllers/src/CurrencyRateController.ts b/packages/assets-controllers/src/CurrencyRateController.ts index 52a35f2de77..5c4ac92587a 100644 --- a/packages/assets-controllers/src/CurrencyRateController.ts +++ b/packages/assets-controllers/src/CurrencyRateController.ts @@ -17,9 +17,9 @@ import { StaticIntervalPollingController } from '@metamask/polling-controller'; import type { Hex } from '@metamask/utils'; import { Mutex } from 'async-mutex'; -import type { CurrencyRateControllerMethodActions } from './CurrencyRateController-method-action-types'; -import type { AbstractTokenPricesService } from './token-prices-service/abstract-token-prices-service'; -import { getNativeTokenAddress } from './token-prices-service/codefi-v2'; +import type { CurrencyRateControllerMethodActions } from './CurrencyRateController-method-action-types.js'; +import type { AbstractTokenPricesService } from './token-prices-service/abstract-token-prices-service.js'; +import { getNativeTokenAddress } from './token-prices-service/codefi-v2.js'; /** * currencyRates - Object keyed by native currency diff --git a/packages/assets-controllers/src/DeFiPositionsController/DeFiPositionsController.test.ts b/packages/assets-controllers/src/DeFiPositionsController/DeFiPositionsController.test.ts index b045d1891b2..68dd28693ed 100644 --- a/packages/assets-controllers/src/DeFiPositionsController/DeFiPositionsController.test.ts +++ b/packages/assets-controllers/src/DeFiPositionsController/DeFiPositionsController.test.ts @@ -7,20 +7,20 @@ import type { MockAnyNamespace, } from '@metamask/messenger'; -import { flushPromises } from '../../../../tests/helpers'; -import { createMockInternalAccount } from '../../../accounts-controller/tests/mocks'; +import { flushPromises } from '../../../../tests/helpers.js'; +import { createMockInternalAccount } from '../../../accounts-controller/tests/mocks.js'; import type { InternalAccount, TransactionMeta, -} from '../../../transaction-controller/src/types'; -import * as calculateDefiMetrics from './calculate-defi-metrics'; -import type { DeFiPositionsControllerMessenger } from './DeFiPositionsController'; +} from '../../../transaction-controller/src/types.js'; +import * as calculateDefiMetrics from './calculate-defi-metrics.js'; +import type { DeFiPositionsControllerMessenger } from './DeFiPositionsController.js'; import { DeFiPositionsController, getDefaultDefiPositionsControllerState, -} from './DeFiPositionsController'; -import * as fetchPositions from './fetch-positions'; -import * as groupDeFiPositions from './group-defi-positions'; +} from './DeFiPositionsController.js'; +import * as fetchPositions from './fetch-positions.js'; +import * as groupDeFiPositions from './group-defi-positions.js'; const GROUP_ACCOUNTS = [ createMockInternalAccount({ diff --git a/packages/assets-controllers/src/DeFiPositionsController/DeFiPositionsController.ts b/packages/assets-controllers/src/DeFiPositionsController/DeFiPositionsController.ts index 33b33ecc7df..9642fd52a44 100644 --- a/packages/assets-controllers/src/DeFiPositionsController/DeFiPositionsController.ts +++ b/packages/assets-controllers/src/DeFiPositionsController/DeFiPositionsController.ts @@ -15,11 +15,11 @@ import { StaticIntervalPollingController } from '@metamask/polling-controller'; import type { TransactionControllerTransactionConfirmedEvent } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; -import { calculateDeFiPositionMetrics } from './calculate-defi-metrics'; -import type { DefiPositionResponse } from './fetch-positions'; -import { buildPositionFetcher } from './fetch-positions'; -import { groupDeFiPositions } from './group-defi-positions'; -import type { GroupedDeFiPositions } from './group-defi-positions'; +import { calculateDeFiPositionMetrics } from './calculate-defi-metrics.js'; +import type { DefiPositionResponse } from './fetch-positions.js'; +import { buildPositionFetcher } from './fetch-positions.js'; +import { groupDeFiPositions } from './group-defi-positions.js'; +import type { GroupedDeFiPositions } from './group-defi-positions.js'; const TEN_MINUTES_IN_MS = 600_000; diff --git a/packages/assets-controllers/src/DeFiPositionsController/__fixtures__/mock-responses.ts b/packages/assets-controllers/src/DeFiPositionsController/__fixtures__/mock-responses.ts index 18b41466da5..94cfdbbeef5 100644 --- a/packages/assets-controllers/src/DeFiPositionsController/__fixtures__/mock-responses.ts +++ b/packages/assets-controllers/src/DeFiPositionsController/__fixtures__/mock-responses.ts @@ -1,4 +1,4 @@ -import type { DefiPositionResponse } from '../fetch-positions'; +import type { DefiPositionResponse } from '../fetch-positions.js'; /** * Entries are from different chains diff --git a/packages/assets-controllers/src/DeFiPositionsController/__fixtures__/mock-result.ts b/packages/assets-controllers/src/DeFiPositionsController/__fixtures__/mock-result.ts index 4daf1df0744..3be5588f6f8 100644 --- a/packages/assets-controllers/src/DeFiPositionsController/__fixtures__/mock-result.ts +++ b/packages/assets-controllers/src/DeFiPositionsController/__fixtures__/mock-result.ts @@ -1,6 +1,6 @@ import type { Hex } from '@metamask/utils'; -import type { GroupedDeFiPositions } from '../group-defi-positions'; +import type { GroupedDeFiPositions } from '../group-defi-positions.js'; export const MOCK_EXPECTED_RESULT: { [key: Hex]: GroupedDeFiPositions } = { '0x1': { diff --git a/packages/assets-controllers/src/DeFiPositionsController/calculate-defi-metrics.test.ts b/packages/assets-controllers/src/DeFiPositionsController/calculate-defi-metrics.test.ts index 807ca125a0a..cb83e91b9c4 100644 --- a/packages/assets-controllers/src/DeFiPositionsController/calculate-defi-metrics.test.ts +++ b/packages/assets-controllers/src/DeFiPositionsController/calculate-defi-metrics.test.ts @@ -1,5 +1,5 @@ -import { MOCK_EXPECTED_RESULT } from './__fixtures__/mock-result'; -import { calculateDeFiPositionMetrics } from './calculate-defi-metrics'; +import { MOCK_EXPECTED_RESULT } from './__fixtures__/mock-result.js'; +import { calculateDeFiPositionMetrics } from './calculate-defi-metrics.js'; describe('groupDeFiPositions', () => { it('verifies that the resulting object is valid', () => { diff --git a/packages/assets-controllers/src/DeFiPositionsController/calculate-defi-metrics.ts b/packages/assets-controllers/src/DeFiPositionsController/calculate-defi-metrics.ts index e01d854db99..82b81752b76 100644 --- a/packages/assets-controllers/src/DeFiPositionsController/calculate-defi-metrics.ts +++ b/packages/assets-controllers/src/DeFiPositionsController/calculate-defi-metrics.ts @@ -3,7 +3,7 @@ import type { Hex } from '@metamask/utils'; import type { GroupedDeFiPositionsPerChain, TrackingEventPayload, -} from './DeFiPositionsController'; +} from './DeFiPositionsController.js'; /** * Calculates the total market value and total positions for a given account diff --git a/packages/assets-controllers/src/DeFiPositionsController/fetch-positions.test.ts b/packages/assets-controllers/src/DeFiPositionsController/fetch-positions.test.ts index e9228a070a8..c5ace0d5412 100644 --- a/packages/assets-controllers/src/DeFiPositionsController/fetch-positions.test.ts +++ b/packages/assets-controllers/src/DeFiPositionsController/fetch-positions.test.ts @@ -3,7 +3,7 @@ import nock from 'nock'; import { DEFI_POSITIONS_API_URL, buildPositionFetcher, -} from './fetch-positions'; +} from './fetch-positions.js'; describe('fetchPositions', () => { const mockAccountAddress = '0x1234567890123456789012345678901234567890'; diff --git a/packages/assets-controllers/src/DeFiPositionsController/fetch-positions.ts b/packages/assets-controllers/src/DeFiPositionsController/fetch-positions.ts index 427ca587081..a6a47b622fc 100644 --- a/packages/assets-controllers/src/DeFiPositionsController/fetch-positions.ts +++ b/packages/assets-controllers/src/DeFiPositionsController/fetch-positions.ts @@ -1,4 +1,4 @@ -import { timeoutWithRetry } from '../utils/timeout-with-retry'; +import { timeoutWithRetry } from '../utils/timeout-with-retry.js'; export type DefiPositionResponse = AdapterResponse<{ tokens: ProtocolToken[]; diff --git a/packages/assets-controllers/src/DeFiPositionsController/group-defi-positions.test.ts b/packages/assets-controllers/src/DeFiPositionsController/group-defi-positions.test.ts index ab3ade89e54..213e705eba5 100644 --- a/packages/assets-controllers/src/DeFiPositionsController/group-defi-positions.test.ts +++ b/packages/assets-controllers/src/DeFiPositionsController/group-defi-positions.test.ts @@ -6,9 +6,9 @@ import { MOCK_DEFI_RESPONSE_FAILED_ENTRY, MOCK_DEFI_RESPONSE_MULTI_CHAIN, MOCK_DEFI_RESPONSE_NO_PRICES, -} from './__fixtures__/mock-responses'; -import { MOCK_EXPECTED_RESULT } from './__fixtures__/mock-result'; -import { groupDeFiPositions } from './group-defi-positions'; +} from './__fixtures__/mock-responses.js'; +import { MOCK_EXPECTED_RESULT } from './__fixtures__/mock-result.js'; +import { groupDeFiPositions } from './group-defi-positions.js'; describe('groupDeFiPositions', () => { it('groups multiple chains', () => { diff --git a/packages/assets-controllers/src/DeFiPositionsController/group-defi-positions.ts b/packages/assets-controllers/src/DeFiPositionsController/group-defi-positions.ts index 16b13b45396..dfef9acc50c 100644 --- a/packages/assets-controllers/src/DeFiPositionsController/group-defi-positions.ts +++ b/packages/assets-controllers/src/DeFiPositionsController/group-defi-positions.ts @@ -7,7 +7,7 @@ import type { ProtocolToken, Underlying, Balance, -} from './fetch-positions'; +} from './fetch-positions.js'; export type GroupedDeFiPositions = { aggregatedMarketValue: number; diff --git a/packages/assets-controllers/src/MultichainAssetsController/MultichainAssetsController-method-action-types.ts b/packages/assets-controllers/src/MultichainAssetsController/MultichainAssetsController-method-action-types.ts index b7c48e83db8..a61cfdcd3e0 100644 --- a/packages/assets-controllers/src/MultichainAssetsController/MultichainAssetsController-method-action-types.ts +++ b/packages/assets-controllers/src/MultichainAssetsController/MultichainAssetsController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { MultichainAssetsController } from './MultichainAssetsController'; +import type { MultichainAssetsController } from './MultichainAssetsController.js'; /** * Returns the metadata for the given asset diff --git a/packages/assets-controllers/src/MultichainAssetsController/MultichainAssetsController.test.ts b/packages/assets-controllers/src/MultichainAssetsController/MultichainAssetsController.test.ts index f1bcd86cece..0e9e9dc506e 100644 --- a/packages/assets-controllers/src/MultichainAssetsController/MultichainAssetsController.test.ts +++ b/packages/assets-controllers/src/MultichainAssetsController/MultichainAssetsController.test.ts @@ -25,16 +25,16 @@ import { TokenScanResultType } from '@metamask/phishing-controller'; import type { Snap } from '@metamask/snaps-utils'; import { v4 as uuidv4 } from 'uuid'; +import { jestAdvanceTime } from '../../../../tests/helpers.js'; import { getDefaultMultichainAssetsControllerState, MultichainAssetsController, -} from '.'; -import { jestAdvanceTime } from '../../../../tests/helpers'; +} from './..js'; import type { AssetMetadataResponse, MultichainAssetsControllerMessenger, MultichainAssetsControllerState, -} from './MultichainAssetsController'; +} from './MultichainAssetsController.js'; const mockSolanaAccount: InternalAccount = { type: 'solana:data-account', diff --git a/packages/assets-controllers/src/MultichainAssetsController/MultichainAssetsController.ts b/packages/assets-controllers/src/MultichainAssetsController/MultichainAssetsController.ts index 3bd5ee7e12f..df803ad83f1 100644 --- a/packages/assets-controllers/src/MultichainAssetsController/MultichainAssetsController.ts +++ b/packages/assets-controllers/src/MultichainAssetsController/MultichainAssetsController.ts @@ -41,8 +41,8 @@ import type { Json, JsonRpcRequest } from '@metamask/utils'; import type { MutexInterface } from 'async-mutex'; import { Mutex } from 'async-mutex'; -import type { MultichainAssetsControllerMethodActions } from './MultichainAssetsController-method-action-types'; -import { getChainIdsCaveat } from './utils'; +import type { MultichainAssetsControllerMethodActions } from './MultichainAssetsController-method-action-types.js'; +import { getChainIdsCaveat } from './utils.js'; const controllerName = 'MultichainAssetsController'; @@ -241,17 +241,17 @@ export class MultichainAssetsController extends StaticIntervalPollingController< this.messenger.subscribe( 'AccountsController:accountAdded', - // eslint-disable-next-line @typescript-eslint/no-misused-promises + async (account) => await this.#handleOnAccountAddedEvent(account), ); this.messenger.subscribe( 'AccountsController:accountRemoved', - // eslint-disable-next-line @typescript-eslint/no-misused-promises + async (account) => await this.#handleOnAccountRemovedEvent(account), ); this.messenger.subscribe( 'AccountsController:accountAssetListUpdated', - // eslint-disable-next-line @typescript-eslint/no-misused-promises + async (event) => await this.#handleAccountAssetListUpdatedEvent(event), ); @@ -341,9 +341,7 @@ export class MultichainAssetsController extends StaticIntervalPollingController< ].filter((asset) => !assetsToIgnore.includes(asset)); } - if (!state.allIgnoredAssets[accountId]) { - state.allIgnoredAssets[accountId] = []; - } + state.allIgnoredAssets[accountId] ??= []; const newIgnoredAssets = assetsToIgnore.filter( (asset) => !state.allIgnoredAssets[accountId].includes(asset), @@ -366,7 +364,7 @@ export class MultichainAssetsController extends StaticIntervalPollingController< accountId: string, ): Promise { if (assetIds.length === 0) { - return this.state.accountsAssets[accountId] || []; + return this.state.accountsAssets[accountId] ?? []; } // Validate that all assets are from the same chain @@ -387,9 +385,7 @@ export class MultichainAssetsController extends StaticIntervalPollingController< this.update((state) => { // Initialize account assets if it doesn't exist - if (!state.accountsAssets[accountId]) { - state.accountsAssets[accountId] = []; - } + state.accountsAssets[accountId] ??= []; // Add assets if they don't already exist for (const assetId of assetIds) { @@ -424,7 +420,7 @@ export class MultichainAssetsController extends StaticIntervalPollingController< }); } - return this.state.accountsAssets[accountId] || []; + return this.state.accountsAssets[accountId] ?? []; }); } @@ -457,7 +453,7 @@ export class MultichainAssetsController extends StaticIntervalPollingController< event.assets, )) { if (added.length > 0 || removed.length > 0) { - const existing = this.state.accountsAssets[accountId] || []; + const existing = this.state.accountsAssets[accountId] ?? []; // In case accountsAndAssetsToUpdate event is fired with "added" assets that already exist, we don't want to add them again // Also filter out ignored assets @@ -504,7 +500,7 @@ export class MultichainAssetsController extends StaticIntervalPollingController< accountsAndAssetsToUpdate, )) { const assets = new Set([ - ...(state.accountsAssets[accountId] || []), + ...(state.accountsAssets[accountId] ?? []), ...added, ]); for (const asset of removed) { diff --git a/packages/assets-controllers/src/MultichainAssetsController/index.ts b/packages/assets-controllers/src/MultichainAssetsController/index.ts index 2ad53646897..ed9c95ea52b 100644 --- a/packages/assets-controllers/src/MultichainAssetsController/index.ts +++ b/packages/assets-controllers/src/MultichainAssetsController/index.ts @@ -1,7 +1,7 @@ export { MultichainAssetsController, getDefaultMultichainAssetsControllerState, -} from './MultichainAssetsController'; +} from './MultichainAssetsController.js'; export type { MultichainAssetsControllerState, @@ -11,9 +11,9 @@ export type { MultichainAssetsControllerMessenger, MultichainAssetsControllerAccountAssetListUpdatedEvent, MultichainAssetsControllerEvents, -} from './MultichainAssetsController'; +} from './MultichainAssetsController.js'; export type { MultichainAssetsControllerGetAssetMetadataAction, MultichainAssetsControllerIgnoreAssetsAction, MultichainAssetsControllerAddAssetsAction, -} from './MultichainAssetsController-method-action-types'; +} from './MultichainAssetsController-method-action-types.js'; diff --git a/packages/assets-controllers/src/MultichainAssetsController/utils.ts b/packages/assets-controllers/src/MultichainAssetsController/utils.ts index 1b7e2323341..57199fdd213 100644 --- a/packages/assets-controllers/src/MultichainAssetsController/utils.ts +++ b/packages/assets-controllers/src/MultichainAssetsController/utils.ts @@ -1,7 +1,4 @@ -import type { - Caveat, - PermissionConstraint, -} from '@metamask/permission-controller'; +import type { PermissionConstraint } from '@metamask/permission-controller'; import { SnapCaveatType } from '@metamask/snaps-utils'; // TODO: this is a duplicate of https://github.com/MetaMask/snaps/blob/362208e725db18baed550ade99087d44e7b537ed/packages/snaps-rpc-methods/src/endowments/name-lookup.ts#L151 @@ -26,7 +23,7 @@ export function getChainIdsCaveat( const caveat = permission.caveats.find( (permCaveat) => permCaveat.type === SnapCaveatType.ChainIds, - ) as Caveat | undefined; + ); return caveat ? caveat.value : null; } diff --git a/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController-method-action-types.ts b/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController-method-action-types.ts index 2d79438d0d2..1da91b94023 100644 --- a/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController-method-action-types.ts +++ b/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { MultichainAssetsRatesController } from './MultichainAssetsRatesController'; +import type { MultichainAssetsRatesController } from './MultichainAssetsRatesController.js'; /** * Updates token conversion rates for each non-EVM account. diff --git a/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController.test.ts b/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController.test.ts index e95dab33774..527f3bcb884 100644 --- a/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController.test.ts +++ b/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController.test.ts @@ -15,9 +15,9 @@ import type { import type { OnAssetHistoricalPriceResponse } from '@metamask/snaps-sdk'; import { v4 as uuidv4 } from 'uuid'; -import { MultichainAssetsRatesController } from '.'; -import { jestAdvanceTime } from '../../../../tests/helpers'; -import type { MultichainAssetsRatesControllerMessenger } from './MultichainAssetsRatesController'; +import { jestAdvanceTime } from '../../../../tests/helpers.js'; +import { MultichainAssetsRatesController } from './..js'; +import type { MultichainAssetsRatesControllerMessenger } from './MultichainAssetsRatesController.js'; type AllMultichainAssetsRateControllerActions = MessengerActions; diff --git a/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController.ts b/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController.ts index 5e75427b48d..60104383350 100644 --- a/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController.ts +++ b/packages/assets-controllers/src/MultichainAssetsRatesController/MultichainAssetsRatesController.ts @@ -38,13 +38,13 @@ import type { CurrencyRateState, CurrencyRateStateChange, CurrencyRateControllerGetStateAction, -} from '../CurrencyRateController'; +} from '../CurrencyRateController.js'; import type { MultichainAssetsControllerGetStateAction, MultichainAssetsControllerAccountAssetListUpdatedEvent, -} from '../MultichainAssetsController'; -import { MAP_CAIP_CURRENCIES } from './constant'; -import type { MultichainAssetsRatesControllerMethodActions } from './MultichainAssetsRatesController-method-action-types'; +} from '../MultichainAssetsController.js'; +import { MAP_CAIP_CURRENCIES } from './constant.js'; +import type { MultichainAssetsRatesControllerMethodActions } from './MultichainAssetsRatesController-method-action-types.js'; /** * The name of the MultichainAssetsRatesController. @@ -263,7 +263,7 @@ export class MultichainAssetsRatesController extends StaticIntervalPollingContro this.messenger.subscribe( 'CurrencyRateController:stateChange', - // eslint-disable-next-line @typescript-eslint/no-misused-promises + async (currentCurrency: string) => { if (this.#isDeprecated()) { this.#enforceDisabledState(); @@ -278,7 +278,7 @@ export class MultichainAssetsRatesController extends StaticIntervalPollingContro this.messenger.subscribe( 'MultichainAssetsController:accountAssetListUpdated', - // eslint-disable-next-line @typescript-eslint/no-misused-promises + async ({ assets }) => { if (this.#isDeprecated()) { this.#enforceDisabledState(); diff --git a/packages/assets-controllers/src/MultichainAssetsRatesController/index.ts b/packages/assets-controllers/src/MultichainAssetsRatesController/index.ts index c285191f15f..ea14145b845 100644 --- a/packages/assets-controllers/src/MultichainAssetsRatesController/index.ts +++ b/packages/assets-controllers/src/MultichainAssetsRatesController/index.ts @@ -5,14 +5,14 @@ export type { MultichainAssetsRatesControllerGetStateAction, MultichainAssetsRatesControllerStateChange, MultichainAssetsRatesControllerMessenger, -} from './MultichainAssetsRatesController'; +} from './MultichainAssetsRatesController.js'; export type { MultichainAssetsRatesControllerUpdateAssetsRatesAction, MultichainAssetsRatesControllerFetchHistoricalPricesForAssetAction, -} from './MultichainAssetsRatesController-method-action-types'; +} from './MultichainAssetsRatesController-method-action-types.js'; export { MultichainAssetsRatesController, getDefaultMultichainAssetsRatesControllerState, -} from './MultichainAssetsRatesController'; -export { MAP_CAIP_CURRENCIES } from './constant'; +} from './MultichainAssetsRatesController.js'; +export { MAP_CAIP_CURRENCIES } from './constant.js'; diff --git a/packages/assets-controllers/src/MultichainBalancesController/MultichainBalancesController.test.ts b/packages/assets-controllers/src/MultichainBalancesController/MultichainBalancesController.test.ts index d49b10494ec..4e13a4f5ff6 100644 --- a/packages/assets-controllers/src/MultichainBalancesController/MultichainBalancesController.test.ts +++ b/packages/assets-controllers/src/MultichainBalancesController/MultichainBalancesController.test.ts @@ -21,12 +21,12 @@ import type { } from '@metamask/messenger'; import { v4 as uuidv4 } from 'uuid'; -import { MultichainBalancesController } from '.'; +import { MultichainBalancesController } from './..js'; import type { MultichainBalancesControllerMessenger, MultichainBalancesControllerState, -} from '.'; -import { getDefaultMultichainBalancesControllerState } from './MultichainBalancesController'; +} from './..js'; +import { getDefaultMultichainBalancesControllerState } from './MultichainBalancesController.js'; const mockBtcAccount = { address: 'bc1qssdcp5kvwh6nghzg9tuk99xsflwkdv4hgvq58q', diff --git a/packages/assets-controllers/src/MultichainBalancesController/MultichainBalancesController.ts b/packages/assets-controllers/src/MultichainBalancesController/MultichainBalancesController.ts index 6887d98c235..5f79d0e89f6 100644 --- a/packages/assets-controllers/src/MultichainBalancesController/MultichainBalancesController.ts +++ b/packages/assets-controllers/src/MultichainBalancesController/MultichainBalancesController.ts @@ -29,7 +29,7 @@ import type { Draft } from 'immer'; import type { MultichainAssetsControllerGetStateAction, MultichainAssetsControllerAccountAssetListUpdatedEvent, -} from '../MultichainAssetsController'; +} from '../MultichainAssetsController.js'; const controllerName = 'MultichainBalancesController'; @@ -183,7 +183,7 @@ export class MultichainBalancesController extends BaseController< // Fetch initial balances for all non-EVM accounts for (const account of this.#listAccounts()) { // Fetching the balance is asynchronous and we cannot use `await` here. - // eslint-disable-next-line no-void + void this.updateBalance(account.id); } } @@ -200,7 +200,7 @@ export class MultichainBalancesController extends BaseController< this.messenger.subscribe( 'MultichainAssetsController:accountAssetListUpdated', - // eslint-disable-next-line @typescript-eslint/no-misused-promises + async ({ assets }) => { const updatedAccountAssets = Object.entries(assets).map( ([accountId, { added, removed }]) => ({ diff --git a/packages/assets-controllers/src/MultichainBalancesController/index.ts b/packages/assets-controllers/src/MultichainBalancesController/index.ts index 7e7b30a0950..174fb14bc87 100644 --- a/packages/assets-controllers/src/MultichainBalancesController/index.ts +++ b/packages/assets-controllers/src/MultichainBalancesController/index.ts @@ -1,4 +1,4 @@ -export { MultichainBalancesController } from './MultichainBalancesController'; +export { MultichainBalancesController } from './MultichainBalancesController.js'; export type { MultichainBalancesControllerState, MultichainBalancesControllerGetStateAction, @@ -6,4 +6,4 @@ export type { MultichainBalancesControllerActions, MultichainBalancesControllerEvents, MultichainBalancesControllerMessenger, -} from './MultichainBalancesController'; +} from './MultichainBalancesController.js'; diff --git a/packages/assets-controllers/src/NftController.test.ts b/packages/assets-controllers/src/NftController.test.ts index 633d2faa894..1b27a1a0248 100644 --- a/packages/assets-controllers/src/NftController.test.ts +++ b/packages/assets-controllers/src/NftController.test.ts @@ -40,31 +40,31 @@ import type { Hex } from '@metamask/utils'; import nock from 'nock'; import { v4 } from 'uuid'; -import { createMockInternalAccount } from '../../accounts-controller/tests/mocks'; +import { createMockInternalAccount } from '../../accounts-controller/tests/mocks.js'; import { buildCustomNetworkClientConfiguration, buildMockFindNetworkClientIdByChainId, buildMockGetNetworkClientById, -} from '../../network-controller/tests/helpers'; +} from '../../network-controller/tests/helpers.js'; import type { AssetsContractControllerGetERC1155TokenURIAction, AssetsContractControllerGetERC721AssetNameAction, AssetsContractControllerGetERC721AssetSymbolAction, AssetsContractControllerGetERC721TokenURIAction, -} from './AssetsContractController'; -import { getFormattedIpfsUrl } from './assetsUtil'; -import { Source } from './constants'; -import type { NftOwnershipResult } from './multicall'; -import { getNftOwnershipForMultipleNfts } from './multicall'; +} from './AssetsContractController.js'; +import { getFormattedIpfsUrl } from './assetsUtil.js'; +import { Source } from './constants.js'; +import type { NftOwnershipResult } from './multicall.js'; +import { getNftOwnershipForMultipleNfts } from './multicall.js'; import type { Nft, NftControllerState, NftControllerMessenger, NFTStandardType, NftMetadata, -} from './NftController'; -import { NftController } from './NftController'; -import type { Collection } from './NftDetectionController'; +} from './NftController.js'; +import { NftController } from './NftController.js'; +import type { Collection } from './NftDetectionController.js'; type AllActions = | MessengerActions @@ -1183,8 +1183,8 @@ describe('NftController', () => { }); // TODO: Either fix this lint violation or explain why it's necessary to ignore. - // eslint-disable-next-line @typescript-eslint/no-floating-promises - nftController.watchNft( + + void nftController.watchNft( ERC721_NFT, ERC721, 'https://etherscan.io', @@ -1198,7 +1198,7 @@ describe('NftController', () => { // now accept the request // TODO: Either fix this lint violation or explain why it's necessary to ignore. - // eslint-disable-next-line @typescript-eslint/no-floating-promises + approvalController.acceptRequest(requestId); await acceptedRequest; @@ -1289,8 +1289,8 @@ describe('NftController', () => { }); // TODO: Either fix this lint violation or explain why it's necessary to ignore. - // eslint-disable-next-line @typescript-eslint/no-floating-promises - nftController.watchNft( + + void nftController.watchNft( ERC721_NFT, ERC721, 'https://etherscan.io', @@ -1310,7 +1310,7 @@ describe('NftController', () => { }); // now accept the request // TODO: Either fix this lint violation or explain why it's necessary to ignore. - // eslint-disable-next-line @typescript-eslint/no-floating-promises + approvalController.acceptRequest(requestId); await acceptedRequest; diff --git a/packages/assets-controllers/src/NftController.ts b/packages/assets-controllers/src/NftController.ts index 5c4e9649b75..76523cd8bad 100644 --- a/packages/assets-controllers/src/NftController.ts +++ b/packages/assets-controllers/src/NftController.ts @@ -49,16 +49,16 @@ import type { AssetsContractControllerGetERC721AssetNameAction, AssetsContractControllerGetERC721AssetSymbolAction, AssetsContractControllerGetERC721TokenURIAction, -} from './AssetsContractController-method-action-types'; +} from './AssetsContractController-method-action-types.js'; import { compareNftMetadata, getFormattedIpfsUrl, hasNewCollectionFields, reduceInBatchesSerially, -} from './assetsUtil'; -import { Source } from './constants'; -import { getNftOwnershipForMultipleNfts } from './multicall'; -import type { NftOwnershipResult } from './multicall'; +} from './assetsUtil.js'; +import { Source } from './constants.js'; +import { getNftOwnershipForMultipleNfts } from './multicall.js'; +import type { NftOwnershipResult } from './multicall.js'; import type { ApiNftContract, ReservoirResponse, @@ -66,7 +66,7 @@ import type { Attributes, LastSale, TopBid, -} from './NftDetectionController'; +} from './NftDetectionController.js'; export type NFTStandardType = 'ERC721' | 'ERC1155'; @@ -458,7 +458,7 @@ export class NftController extends BaseController< ); this.#selectedAccountId = selectedAccount.id; - const newDisplayNftMedia = Boolean(displayNftMedia || openSeaEnabled); + const newDisplayNftMedia = Boolean(displayNftMedia ?? openSeaEnabled); // Get current state values if ( @@ -529,7 +529,7 @@ export class NftController extends BaseController< this.update((state) => { const oldState = state[baseStateKey]; - const addressState = oldState[userAddress] || {}; + const addressState = oldState[userAddress] ?? {}; const newAddressState = { ...addressState, [chainId]: newCollection, @@ -603,9 +603,9 @@ export class NftController extends BaseController< /* istanbul ignore next */ const nftMetadata: NftMetadata = Object.assign( {}, - { name: name || null }, - { description: description || null }, - { image: image || null }, + { name: name ?? null }, + { description: description ?? null }, + { image: image ?? null }, collection?.creator && { creator: collection.creator }, imageOriginal && { imageOriginal }, imageSmall && { imageThumbnail: imageSmall }, @@ -886,7 +886,7 @@ export class NftController extends BaseController< const releaseLock = await this.#mutex.acquire(); try { const { allNfts } = this.state; - const allNftsForUser = allNfts[userAddress] || {}; + const allNftsForUser = allNfts[userAddress] ?? {}; const allNftsForUserPerChain: { [chainId: `0x${string}`]: Nft[]; } = {}; @@ -1015,7 +1015,7 @@ export class NftController extends BaseController< const releaseLock = await this.#mutex.acquire(); try { const { allNftContracts } = this.state; - const allNftContractsForUser = allNftContracts[userAddress] || {}; + const allNftContractsForUser = allNftContracts[userAddress] ?? {}; const nftContractsForUserPerChain: { [chainId: `0x${string}`]: NftContract[]; } = {}; @@ -1149,7 +1149,7 @@ export class NftController extends BaseController< const checksumHexAddress = toChecksumHexAddress(address); const { allNfts, ignoredNfts } = this.state; const newIgnoredNfts = [...ignoredNfts]; - const nfts = allNfts[userAddress]?.[chainId] || []; + const nfts = allNfts[userAddress]?.[chainId] ?? []; const newNfts = nfts.filter((nft) => { if ( nft.address.toLowerCase() === checksumHexAddress.toLowerCase() && @@ -1190,7 +1190,7 @@ export class NftController extends BaseController< ): void { const checksumHexAddress = toChecksumHexAddress(address); const { allNfts } = this.state; - const nfts = allNfts[userAddress]?.[chainId] || []; + const nfts = allNfts[userAddress]?.[chainId] ?? []; const newNfts = nfts.filter( (nft) => !( @@ -1219,7 +1219,7 @@ export class NftController extends BaseController< ): NftContract[] { const checksumHexAddress = toChecksumHexAddress(address); const { allNftContracts } = this.state; - const nftContracts = allNftContracts[userAddress]?.[chainId] || []; + const nftContracts = allNftContracts[userAddress]?.[chainId] ?? []; const newNftContracts = nftContracts.filter( (nftContract) => @@ -1250,7 +1250,6 @@ export class NftController extends BaseController< if (type !== ERC721 && type !== ERC1155) { throw rpcErrors.invalidParams( - // eslint-disable-next-line @typescript-eslint/restrict-template-expressions `Non NFT asset type ${type} not supported by watchNft`, ); } @@ -1526,9 +1525,7 @@ export class NftController extends BaseController< // This is the case when the NFT is added manually and not detected automatically // TODO: An improvement would be to make the chainId a required field and return it when getting the NFT information - if (!nftMetadata.chainId) { - nftMetadata.chainId = convertHexToDecimal(chainId); - } + nftMetadata.chainId ??= convertHexToDecimal(chainId); if (nftContract) { await this.#addMultipleNfts(addressToSearch, [ @@ -1796,7 +1793,7 @@ export class NftController extends BaseController< userAddress: addressToSearch, }); const { allNfts } = this.state; - const nfts = allNfts[addressToSearch]?.[chainId] || []; + const nfts = allNfts[addressToSearch]?.[chainId] ?? []; const remainingNft = nfts.find( (nft) => nft.address.toLowerCase() === checksumHexAddress.toLowerCase(), ); @@ -1837,7 +1834,7 @@ export class NftController extends BaseController< userAddress: addressToSearch, }); const { allNfts } = this.state; - const nfts = allNfts[addressToSearch]?.[chainId] || []; + const nfts = allNfts[addressToSearch]?.[chainId] ?? []; const remainingNft = nfts.find( (nft) => nft.address.toLowerCase() === checksumHexAddress.toLowerCase(), ); @@ -1944,7 +1941,7 @@ export class NftController extends BaseController< ); const { chainId } = client.configuration; const { allNfts } = this.state; - const nfts = allNfts[addressToSearch]?.[chainId] || []; + const nfts = allNfts[addressToSearch]?.[chainId] ?? []; if (nfts.length === 0) { return; @@ -2008,7 +2005,7 @@ export class NftController extends BaseController< networkClientId, ); const { allNfts } = this.state; - const nfts = [...(allNfts[addressToSearch]?.[chainId] || [])]; + const nfts = [...(allNfts[addressToSearch]?.[chainId] ?? [])]; const index: number = nfts.findIndex( (nft) => nft.address === address && nft.tokenId === tokenId, ); @@ -2047,7 +2044,7 @@ export class NftController extends BaseController< chainId: Hex, ): { nft: Nft; index: number } | null { const { allNfts } = this.state; - const nfts = allNfts[selectedAddress]?.[chainId] || []; + const nfts = allNfts[selectedAddress]?.[chainId] ?? []; const index: number = nfts.findIndex( (nft) => nft.address.toLowerCase() === address.toLowerCase() && @@ -2076,7 +2073,7 @@ export class NftController extends BaseController< chainId: Hex, ): void { const { allNfts } = this.state; - const nfts = allNfts[selectedAddress]?.[chainId] || []; + const nfts = allNfts[selectedAddress]?.[chainId] ?? []; const nftInfo = this.findNftByAddressAndTokenId( nft.address, nft.tokenId, @@ -2118,7 +2115,7 @@ export class NftController extends BaseController< chainId: Hex, ): boolean { const { allNfts } = this.state; - const nfts = allNfts[selectedAddress]?.[chainId] || []; + const nfts = allNfts[selectedAddress]?.[chainId] ?? []; const index: number = nfts.findIndex( (nft) => nft.transactionId === transactionId, ); @@ -2179,7 +2176,7 @@ export class NftController extends BaseController< 'AccountsController:getAccount', this.#selectedAccountId, ); - return selectedAccount?.address || ''; + return selectedAccount?.address ?? ''; } /** @@ -2191,7 +2188,7 @@ export class NftController extends BaseController< async #updateNftUpdateForAccount(account: InternalAccount): Promise { // get all nfts for the account for all chains const nfts: Nft[] = Object.values( - this.state.allNfts[account.address] || {}, + this.state.allNfts[account.address] ?? {}, ).flat(); // Filter only nfts diff --git a/packages/assets-controllers/src/NftDetectionController.test.ts b/packages/assets-controllers/src/NftDetectionController.test.ts index d5320438001..b6514c37863 100644 --- a/packages/assets-controllers/src/NftDetectionController.test.ts +++ b/packages/assets-controllers/src/NftDetectionController.test.ts @@ -25,21 +25,21 @@ import { getDefaultPreferencesState } from '@metamask/preferences-controller'; import type { PreferencesState } from '@metamask/preferences-controller'; import nock from 'nock'; -import { FakeBlockTracker } from '../../../tests/fake-block-tracker'; -import { FakeProvider } from '../../../tests/fake-provider'; -import { jestAdvanceTime } from '../../../tests/helpers'; -import { createMockInternalAccount } from '../../accounts-controller/tests/mocks'; +import { FakeBlockTracker } from '../../../tests/fake-block-tracker.js'; +import { FakeProvider } from '../../../tests/fake-provider.js'; +import { jestAdvanceTime } from '../../../tests/helpers.js'; +import { createMockInternalAccount } from '../../accounts-controller/tests/mocks.js'; import { buildMockFindNetworkClientIdByChainId, buildMockGetNetworkClientById, -} from '../../network-controller/tests/helpers'; -import { Source } from './constants'; -import { getDefaultNftControllerState } from './NftController'; +} from '../../network-controller/tests/helpers.js'; +import { Source } from './constants.js'; +import { getDefaultNftControllerState } from './NftController.js'; import { NftDetectionController, BlockaidResultType, -} from './NftDetectionController'; -import type { NftDetectionControllerMessenger } from './NftDetectionController'; +} from './NftDetectionController.js'; +import type { NftDetectionControllerMessenger } from './NftDetectionController.js'; type AllActions = MessengerActions; diff --git a/packages/assets-controllers/src/NftDetectionController.ts b/packages/assets-controllers/src/NftDetectionController.ts index bb67ab5d562..a2c508d221a 100644 --- a/packages/assets-controllers/src/NftDetectionController.ts +++ b/packages/assets-controllers/src/NftDetectionController.ts @@ -29,12 +29,12 @@ import type { import { createDeferredPromise } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import { Source } from './constants'; +import { Source } from './constants.js'; import type { NftController, NftControllerState, NftMetadata, -} from './NftController'; +} from './NftController.js'; const controllerName = 'NftDetectionController'; diff --git a/packages/assets-controllers/src/RatesController/RatesController.test.ts b/packages/assets-controllers/src/RatesController/RatesController.test.ts index e7d4d007058..3d73a4bbfb9 100644 --- a/packages/assets-controllers/src/RatesController/RatesController.test.ts +++ b/packages/assets-controllers/src/RatesController/RatesController.test.ts @@ -6,14 +6,17 @@ import type { MockAnyNamespace, } from '@metamask/messenger'; -import { jestAdvanceTime } from '../../../../tests/helpers'; -import type { fetchMultiExchangeRate as defaultFetchExchangeRate } from '../crypto-compare-service'; +import { jestAdvanceTime } from '../../../../tests/helpers.js'; +import type { fetchMultiExchangeRate as defaultFetchExchangeRate } from '../crypto-compare-service.js'; import { Cryptocurrency, RatesController, name as ratesControllerName, -} from './RatesController'; -import type { RatesControllerMessenger, RatesControllerState } from './types'; +} from './RatesController.js'; +import type { + RatesControllerMessenger, + RatesControllerState, +} from './types.js'; type AllActions = MessengerActions; diff --git a/packages/assets-controllers/src/RatesController/RatesController.ts b/packages/assets-controllers/src/RatesController/RatesController.ts index 20da17925b8..dbf0dea6df5 100644 --- a/packages/assets-controllers/src/RatesController/RatesController.ts +++ b/packages/assets-controllers/src/RatesController/RatesController.ts @@ -3,13 +3,13 @@ import type { StateMetadata } from '@metamask/base-controller'; import { Mutex } from 'async-mutex'; import type { Draft } from 'immer'; -import { fetchMultiExchangeRate as defaultFetchExchangeRate } from '../crypto-compare-service'; +import { fetchMultiExchangeRate as defaultFetchExchangeRate } from '../crypto-compare-service.js'; import type { ConversionRates, RatesControllerState, RatesControllerOptions, RatesControllerMessenger, -} from './types'; +} from './types.js'; export const name = 'RatesController'; diff --git a/packages/assets-controllers/src/RatesController/index.ts b/packages/assets-controllers/src/RatesController/index.ts index bf1a078eb2e..2b4e42f5636 100644 --- a/packages/assets-controllers/src/RatesController/index.ts +++ b/packages/assets-controllers/src/RatesController/index.ts @@ -1,4 +1,4 @@ -export { RatesController, Cryptocurrency } from './RatesController'; +export { RatesController, Cryptocurrency } from './RatesController.js'; export type { RatesControllerState, RatesControllerEvents, @@ -8,4 +8,4 @@ export type { RatesControllerStateChangeEvent, RatesControllerPollingStartedEvent, RatesControllerPollingStoppedEvent, -} from './types'; +} from './types.js'; diff --git a/packages/assets-controllers/src/RatesController/types.ts b/packages/assets-controllers/src/RatesController/types.ts index 49c5515391b..6b61c0faf4b 100644 --- a/packages/assets-controllers/src/RatesController/types.ts +++ b/packages/assets-controllers/src/RatesController/types.ts @@ -4,11 +4,11 @@ import type { } from '@metamask/base-controller'; import type { Messenger } from '@metamask/messenger'; -import type { fetchMultiExchangeRate as defaultFetchExchangeRate } from '../crypto-compare-service'; +import type { fetchMultiExchangeRate as defaultFetchExchangeRate } from '../crypto-compare-service.js'; import type { name as ratesControllerName, Cryptocurrency, -} from './RatesController'; +} from './RatesController.js'; /** * Represents the conversion rates from one currency to others, including the conversion date. diff --git a/packages/assets-controllers/src/Standards/ERC20Standard.test.ts b/packages/assets-controllers/src/Standards/ERC20Standard.test.ts index db16b75fba0..a681dc9350e 100644 --- a/packages/assets-controllers/src/Standards/ERC20Standard.test.ts +++ b/packages/assets-controllers/src/Standards/ERC20Standard.test.ts @@ -3,7 +3,7 @@ import HttpProvider from '@metamask/ethjs-provider-http'; import BN from 'bn.js'; import nock from 'nock'; -import { ERC20Standard } from './ERC20Standard'; +import { ERC20Standard } from './ERC20Standard.js'; const MAINNET_PROVIDER_HTTP = new HttpProvider( 'https://mainnet.infura.io/v3/341eacb578dd44a1a049cbc5f6fd4035', diff --git a/packages/assets-controllers/src/Standards/ERC20Standard.ts b/packages/assets-controllers/src/Standards/ERC20Standard.ts index 05df1933f12..b33e37ea823 100644 --- a/packages/assets-controllers/src/Standards/ERC20Standard.ts +++ b/packages/assets-controllers/src/Standards/ERC20Standard.ts @@ -7,7 +7,7 @@ import { abiERC20 } from '@metamask/metamask-eth-abis'; import { assertIsStrictHexString, hexToBytes } from '@metamask/utils'; import type BN from 'bn.js'; -import { ethersBigNumberToBN } from '../assetsUtil'; +import { ethersBigNumberToBN } from '../assetsUtil.js'; export class ERC20Standard { private readonly provider: Web3Provider; diff --git a/packages/assets-controllers/src/Standards/NftStandards/ERC1155/ERC1155Standard.test.ts b/packages/assets-controllers/src/Standards/NftStandards/ERC1155/ERC1155Standard.test.ts index d35857522a2..d5d5429118c 100644 --- a/packages/assets-controllers/src/Standards/NftStandards/ERC1155/ERC1155Standard.test.ts +++ b/packages/assets-controllers/src/Standards/NftStandards/ERC1155/ERC1155Standard.test.ts @@ -2,7 +2,7 @@ import { Web3Provider } from '@ethersproject/providers'; import HttpProvider from '@metamask/ethjs-provider-http'; import nock from 'nock'; -import { ERC1155Standard } from './ERC1155Standard'; +import { ERC1155Standard } from './ERC1155Standard.js'; const MAINNET_PROVIDER_HTTP = new HttpProvider( 'https://mainnet.infura.io/v3/341eacb578dd44a1a049cbc5f6fd4035', diff --git a/packages/assets-controllers/src/Standards/NftStandards/ERC1155/ERC1155Standard.ts b/packages/assets-controllers/src/Standards/NftStandards/ERC1155/ERC1155Standard.ts index d11b7eb84a4..1961a3498ce 100644 --- a/packages/assets-controllers/src/Standards/NftStandards/ERC1155/ERC1155Standard.ts +++ b/packages/assets-controllers/src/Standards/NftStandards/ERC1155/ERC1155Standard.ts @@ -11,7 +11,10 @@ import { import { abiERC1155 } from '@metamask/metamask-eth-abis'; import type * as BN from 'bn.js'; -import { getFormattedIpfsUrl, ethersBigNumberToBN } from '../../../assetsUtil'; +import { + getFormattedIpfsUrl, + ethersBigNumberToBN, +} from '../../../assetsUtil.js'; export class ERC1155Standard { private readonly provider: Web3Provider; diff --git a/packages/assets-controllers/src/Standards/NftStandards/ERC721/ERC721Standard.test.ts b/packages/assets-controllers/src/Standards/NftStandards/ERC721/ERC721Standard.test.ts index 19fe58346f2..b2c171a8a69 100644 --- a/packages/assets-controllers/src/Standards/NftStandards/ERC721/ERC721Standard.test.ts +++ b/packages/assets-controllers/src/Standards/NftStandards/ERC721/ERC721Standard.test.ts @@ -3,7 +3,7 @@ import { IPFS_DEFAULT_GATEWAY_URL } from '@metamask/controller-utils'; import HttpProvider from '@metamask/ethjs-provider-http'; import nock from 'nock'; -import { ERC721Standard } from './ERC721Standard'; +import { ERC721Standard } from './ERC721Standard.js'; const MAINNET_PROVIDER_HTTP = new HttpProvider( 'https://mainnet.infura.io/v3/341eacb578dd44a1a049cbc5f6fd4035', diff --git a/packages/assets-controllers/src/Standards/NftStandards/ERC721/ERC721Standard.ts b/packages/assets-controllers/src/Standards/NftStandards/ERC721/ERC721Standard.ts index 48b84612a69..e9fbd51c607 100644 --- a/packages/assets-controllers/src/Standards/NftStandards/ERC721/ERC721Standard.ts +++ b/packages/assets-controllers/src/Standards/NftStandards/ERC721/ERC721Standard.ts @@ -10,7 +10,7 @@ import { } from '@metamask/controller-utils'; import { abiERC721 } from '@metamask/metamask-eth-abis'; -import { getFormattedIpfsUrl } from '../../../assetsUtil'; +import { getFormattedIpfsUrl } from '../../../assetsUtil.js'; export class ERC721Standard { private readonly provider: Web3Provider; diff --git a/packages/assets-controllers/src/TokenBalancesController-method-action-types.ts b/packages/assets-controllers/src/TokenBalancesController-method-action-types.ts index e554dc72771..c6e79d8c62a 100644 --- a/packages/assets-controllers/src/TokenBalancesController-method-action-types.ts +++ b/packages/assets-controllers/src/TokenBalancesController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { TokenBalancesController } from './TokenBalancesController'; +import type { TokenBalancesController } from './TokenBalancesController.js'; export type TokenBalancesControllerGetChainPollingConfigAction = { type: `TokenBalancesController:getChainPollingConfig`; diff --git a/packages/assets-controllers/src/TokenBalancesController.test.ts b/packages/assets-controllers/src/TokenBalancesController.test.ts index 56656ee144c..424c5018245 100644 --- a/packages/assets-controllers/src/TokenBalancesController.test.ts +++ b/packages/assets-controllers/src/TokenBalancesController.test.ts @@ -16,14 +16,14 @@ import type { Hex } from '@metamask/utils'; import BN from 'bn.js'; import type nock from 'nock'; -import { jestAdvanceTime, flushPromises } from '../../../tests/helpers'; -import { createMockInternalAccount } from '../../accounts-controller/tests/mocks'; -import type { RpcEndpoint } from '../../network-controller/src/NetworkController'; -import { mockAPI_accountsAPI_MultichainAccountBalances as mockAPIAccountsAPIMultichainAccountBalancesCamelCase } from './__fixtures__/account-api-v4-mocks'; -import { waitFor } from './__fixtures__/test-utils'; -import { AccountsApiBalanceFetcher } from './multi-chain-accounts-service/api-balance-fetcher'; -import * as multicall from './multicall'; -import { RpcBalanceFetcher } from './rpc-service/rpc-balance-fetcher'; +import { jestAdvanceTime, flushPromises } from '../../../tests/helpers.js'; +import { createMockInternalAccount } from '../../accounts-controller/tests/mocks.js'; +import type { RpcEndpoint } from '../../network-controller/src/NetworkController.js'; +import { mockAPI_accountsAPI_MultichainAccountBalances as mockAPIAccountsAPIMultichainAccountBalancesCamelCase } from './__fixtures__/account-api-v4-mocks.js'; +import { waitFor } from './__fixtures__/test-utils.js'; +import { AccountsApiBalanceFetcher } from './multi-chain-accounts-service/api-balance-fetcher.js'; +import * as multicall from './multicall.js'; +import { RpcBalanceFetcher } from './rpc-service/rpc-balance-fetcher.js'; import type { ChainIdHex, TokenBalancesControllerMessenger, @@ -31,15 +31,15 @@ import type { TokenBalancesControllerState, TokenBalances, UpdateBalancesOptions, -} from './TokenBalancesController'; +} from './TokenBalancesController.js'; import { TokenBalancesController, UPDATE_BALANCES_BATCH_MS, caipChainIdToHex, mergeUpdateBalancesOptions, parseAssetType, -} from './TokenBalancesController'; -import type { TokensControllerState } from './TokensController'; +} from './TokenBalancesController.js'; +import type { TokensControllerState } from './TokensController.js'; type AllTokenBalancesControllerActions = MessengerActions; diff --git a/packages/assets-controllers/src/TokenBalancesController.ts b/packages/assets-controllers/src/TokenBalancesController.ts index f04e5d7fc87..c72529d9769 100644 --- a/packages/assets-controllers/src/TokenBalancesController.ts +++ b/packages/assets-controllers/src/TokenBalancesController.ts @@ -52,37 +52,37 @@ import { parseCaipChainId, } from '@metamask/utils'; import { produce } from 'immer'; -import { isEqual, union } from 'lodash'; +import { isEqual, union } from 'lodash-es'; -import type { AccountTrackerControllerGetStateAction } from './AccountTrackerController'; import type { AccountTrackerControllerUpdateNativeBalancesAction, AccountTrackerControllerUpdateStakedBalancesAction, -} from './AccountTrackerController-method-action-types'; -import { STAKING_CONTRACT_ADDRESS_BY_CHAINID } from './AssetsContractController'; +} from './AccountTrackerController-method-action-types.js'; +import type { AccountTrackerControllerGetStateAction } from './AccountTrackerController.js'; +import { STAKING_CONTRACT_ADDRESS_BY_CHAINID } from './AssetsContractController.js'; import { MUSD_ERC20_ADDRESS_LOWER, MUSD_TOKEN_DETECTION_CHAIN_IDS, -} from './constants'; -import { AccountsApiBalanceFetcher } from './multi-chain-accounts-service/api-balance-fetcher'; +} from './constants.js'; +import { AccountsApiBalanceFetcher } from './multi-chain-accounts-service/api-balance-fetcher.js'; import type { BalanceFetcher, ProcessedBalance, UnprocessedTokens, -} from './multi-chain-accounts-service/api-balance-fetcher'; -import { RpcBalanceFetcher } from './rpc-service/rpc-balance-fetcher'; -import type { TokenBalancesControllerMethodActions } from './TokenBalancesController-method-action-types'; +} from './multi-chain-accounts-service/api-balance-fetcher.js'; +import { RpcBalanceFetcher } from './rpc-service/rpc-balance-fetcher.js'; +import type { TokenBalancesControllerMethodActions } from './TokenBalancesController-method-action-types.js'; import type { TokenDetectionControllerAddDetectedTokensViaPollingAction, TokenDetectionControllerAddDetectedTokensViaWsAction, TokenDetectionControllerDetectTokensAction, -} from './TokenDetectionController-method-action-types'; +} from './TokenDetectionController-method-action-types.js'; import type { TokensControllerGetStateAction, TokensControllerState, TokensControllerStateChangeEvent, -} from './TokensController'; -import { createBatchedHandler } from './utils/create-batch-handler'; +} from './TokensController.js'; +import { createBatchedHandler } from './utils/create-batch-handler.js'; const MUSD_IMPORT_CHAIN_ID_SET = new Set(MUSD_TOKEN_DETECTION_CHAIN_IDS); @@ -1388,7 +1388,7 @@ export class TokenBalancesController extends StaticIntervalPollingController<{ for (const address of Object.keys(this.state.tokenBalances)) { const addressKey = address as ChecksumAddress; for (const network of Object.keys( - this.state.tokenBalances[addressKey] || {}, + this.state.tokenBalances[addressKey] ?? {}, )) { networksWithBalances.add(network); } diff --git a/packages/assets-controllers/src/TokenDetectionController-method-action-types.ts b/packages/assets-controllers/src/TokenDetectionController-method-action-types.ts index 80ac0965841..b3279a49707 100644 --- a/packages/assets-controllers/src/TokenDetectionController-method-action-types.ts +++ b/packages/assets-controllers/src/TokenDetectionController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { TokenDetectionController } from './TokenDetectionController'; +import type { TokenDetectionController } from './TokenDetectionController.js'; /** * Allows controller to make active and passive polling requests diff --git a/packages/assets-controllers/src/TokenDetectionController.test.ts b/packages/assets-controllers/src/TokenDetectionController.test.ts index 33b19d453ea..34d7912dfbe 100644 --- a/packages/assets-controllers/src/TokenDetectionController.test.ts +++ b/packages/assets-controllers/src/TokenDetectionController.test.ts @@ -31,33 +31,33 @@ import type { Hex } from '@metamask/utils'; import BN from 'bn.js'; import nock from 'nock'; -import { jestAdvanceTime } from '../../../tests/helpers'; -import { createMockInternalAccount } from '../../accounts-controller/tests/mocks'; +import { jestAdvanceTime } from '../../../tests/helpers.js'; +import { createMockInternalAccount } from '../../accounts-controller/tests/mocks.js'; import { buildCustomRpcEndpoint, buildInfuraNetworkConfiguration, -} from '../../network-controller/tests/helpers'; -import { formatAggregatorNames } from './assetsUtil'; -import { MUSD_ERC20_ADDRESS_LOWER } from './constants'; -import { TOKEN_END_POINT_API } from './token-service'; -import type { TokenDetectionControllerMessenger } from './TokenDetectionController'; +} from '../../network-controller/tests/helpers.js'; +import { formatAggregatorNames } from './assetsUtil.js'; +import { MUSD_ERC20_ADDRESS_LOWER } from './constants.js'; +import { TOKEN_END_POINT_API } from './token-service.js'; +import type { TokenDetectionControllerMessenger } from './TokenDetectionController.js'; import { TokenDetectionController, controllerName, -} from './TokenDetectionController'; -import { getDefaultTokenListState } from './TokenListController'; +} from './TokenDetectionController.js'; +import { getDefaultTokenListState } from './TokenListController.js'; import type { TokenListMap, TokenListState, TokenListToken, -} from './TokenListController'; -import type { TokenListService } from './TokenListService'; -import type { Token } from './TokenRatesController'; +} from './TokenListController.js'; +import type { TokenListService } from './TokenListService.js'; +import type { Token } from './TokenRatesController.js'; import type { TokensController, TokensControllerState, -} from './TokensController'; -import { getDefaultTokensState } from './TokensController'; +} from './TokensController.js'; +import { getDefaultTokensState } from './TokensController.js'; const DEFAULT_INTERVAL = 180000; diff --git a/packages/assets-controllers/src/TokenDetectionController.ts b/packages/assets-controllers/src/TokenDetectionController.ts index 0baf8a33311..0ee9cd31303 100644 --- a/packages/assets-controllers/src/TokenDetectionController.ts +++ b/packages/assets-controllers/src/TokenDetectionController.ts @@ -40,30 +40,30 @@ import type { AuthenticationController } from '@metamask/profile-sync-controller import type { TransactionControllerTransactionConfirmedEvent } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; -import type { AssetsContractController } from './AssetsContractController'; +import type { AssetsContractController } from './AssetsContractController.js'; import { formatIconUrlWithProxy, isTokenDetectionSupportedForNetwork, -} from './assetsUtil'; +} from './assetsUtil.js'; import { MUSD_ERC20_ADDRESS_LOWER, MUSD_TOKEN_DETECTION_CHAIN_IDS, MUSD_TOKEN_METADATA_BY_CHAIN, SUPPORTED_NETWORKS_ACCOUNTS_API_V4, -} from './constants'; -import type { TokenDetectionControllerMethodActions } from './TokenDetectionController-method-action-types'; +} from './constants.js'; +import type { TokenDetectionControllerMethodActions } from './TokenDetectionController-method-action-types.js'; import type { TokenListMap, TokenListToken, TokensChainsCache, -} from './TokenListController'; -import type { TokenListService } from './TokenListService'; -import type { Token } from './TokenRatesController'; -import type { TokensControllerGetStateAction } from './TokensController'; +} from './TokenListController.js'; +import type { TokenListService } from './TokenListService.js'; +import type { Token } from './TokenRatesController.js'; import type { TokensControllerAddDetectedTokensAction, TokensControllerAddTokensAction, -} from './TokensController-method-action-types'; +} from './TokensController-method-action-types.js'; +import type { TokensControllerGetStateAction } from './TokensController.js'; const DEFAULT_INTERVAL = 180000; diff --git a/packages/assets-controllers/src/TokenListController.test.ts b/packages/assets-controllers/src/TokenListController.test.ts index 2f34c93d81f..d6a1589dea7 100644 --- a/packages/assets-controllers/src/TokenListController.test.ts +++ b/packages/assets-controllers/src/TokenListController.test.ts @@ -17,20 +17,20 @@ import { StorageGetResult } from '@metamask/storage-service'; import type { Hex } from '@metamask/utils'; import nock from 'nock'; -import { jestAdvanceTime } from '../../../tests/helpers'; +import { jestAdvanceTime } from '../../../tests/helpers.js'; import { buildCustomNetworkClientConfiguration, buildInfuraNetworkClientConfiguration, buildMockGetNetworkClientById, -} from '../../network-controller/tests/helpers'; -import * as tokenService from './token-service'; +} from '../../network-controller/tests/helpers.js'; +import * as tokenService from './token-service.js'; import type { TokenListMap, TokenListState, TokenListControllerMessenger, DataCache, -} from './TokenListController'; -import { TokenListController } from './TokenListController'; +} from './TokenListController.js'; +import { TokenListController } from './TokenListController.js'; const namespace = 'TokenListController'; const timestamp = Date.now(); @@ -669,8 +669,8 @@ describe('TokenListController', () => { messenger: restrictedMessenger, }); // TODO: Either fix this lint violation or explain why it's necessary to ignore. - // eslint-disable-next-line @typescript-eslint/no-floating-promises - controller.start(); + + void controller.start(); await new Promise((resolve) => setTimeout(() => resolve(), 150)); onNetworkStateChangeCallback({ selectedNetworkClientId, diff --git a/packages/assets-controllers/src/TokenListController.ts b/packages/assets-controllers/src/TokenListController.ts index 066a24d2a29..2635e6f26e1 100644 --- a/packages/assets-controllers/src/TokenListController.ts +++ b/packages/assets-controllers/src/TokenListController.ts @@ -22,8 +22,8 @@ import { isTokenListSupportedForNetwork, formatAggregatorNames, formatIconUrlWithProxy, -} from './assetsUtil'; -import { TokenRwaData, fetchTokenListByChainId } from './token-service'; +} from './assetsUtil.js'; +import { TokenRwaData, fetchTokenListByChainId } from './token-service.js'; // 4 Hour Interval Cache Refresh Threshold const DEFAULT_INTERVAL = 4 * 60 * 60 * 1000; @@ -234,7 +234,7 @@ export class TokenListController extends StaticIntervalPollingController { await this.#onNetworkControllerStateChange(networkControllerState); }, diff --git a/packages/assets-controllers/src/TokenListService.test.ts b/packages/assets-controllers/src/TokenListService.test.ts index 11854f7ec5f..5a411ed482a 100644 --- a/packages/assets-controllers/src/TokenListService.test.ts +++ b/packages/assets-controllers/src/TokenListService.test.ts @@ -1,9 +1,9 @@ import type { Hex } from '@metamask/utils'; -import * as assetsUtil from './assetsUtil'; -import { fetchTokenListByChainId } from './token-service'; -import type { TokenListToken } from './TokenListController'; -import { buildTokenListMap, TokenListService } from './TokenListService'; +import * as assetsUtil from './assetsUtil.js'; +import { fetchTokenListByChainId } from './token-service.js'; +import type { TokenListToken } from './TokenListController.js'; +import { buildTokenListMap, TokenListService } from './TokenListService.js'; jest.mock('./token-service', () => ({ fetchTokenListByChainId: jest.fn(), diff --git a/packages/assets-controllers/src/TokenListService.ts b/packages/assets-controllers/src/TokenListService.ts index 4f6db1a0159..372d6d17c31 100644 --- a/packages/assets-controllers/src/TokenListService.ts +++ b/packages/assets-controllers/src/TokenListService.ts @@ -1,9 +1,9 @@ import type { Hex } from '@metamask/utils'; import { QueryClient } from '@tanstack/query-core'; -import { formatAggregatorNames, formatIconUrlWithProxy } from './assetsUtil'; -import { fetchTokenListByChainId } from './token-service'; -import type { TokenListMap, TokenListToken } from './TokenListController'; +import { formatAggregatorNames, formatIconUrlWithProxy } from './assetsUtil.js'; +import { fetchTokenListByChainId } from './token-service.js'; +import type { TokenListMap, TokenListToken } from './TokenListController.js'; // 4 hours — mirrors TokenListController's DEFAULT_THRESHOLD const FOUR_HOURS_MS = 4 * 60 * 60 * 1000; diff --git a/packages/assets-controllers/src/TokenRatesController.test.ts b/packages/assets-controllers/src/TokenRatesController.test.ts index c16908bf586..cb3908c19df 100644 --- a/packages/assets-controllers/src/TokenRatesController.test.ts +++ b/packages/assets-controllers/src/TokenRatesController.test.ts @@ -17,22 +17,25 @@ import type { CaipAssetType, Hex } from '@metamask/utils'; import { add0x, KnownCaipNamespace } from '@metamask/utils'; import type { Patch } from 'immer'; -import { flushPromises } from '../../../tests/helpers'; -import { TOKEN_PRICES_BATCH_SIZE } from './assetsUtil'; +import { flushPromises } from '../../../tests/helpers.js'; +import { TOKEN_PRICES_BATCH_SIZE } from './assetsUtil.js'; import type { AbstractTokenPricesService, EvmAssetWithMarketData, -} from './token-prices-service/abstract-token-prices-service'; -import { ZERO_ADDRESS } from './token-prices-service/codefi-v2'; -import { controllerName, TokenRatesController } from './TokenRatesController'; +} from './token-prices-service/abstract-token-prices-service.js'; +import { ZERO_ADDRESS } from './token-prices-service/codefi-v2.js'; +import { + controllerName, + TokenRatesController, +} from './TokenRatesController.js'; import type { MarketDataDetails, Token, TokenRatesControllerMessenger, TokenRatesControllerState, -} from './TokenRatesController'; -import { getDefaultTokensState } from './TokensController'; -import type { TokensControllerState } from './TokensController'; +} from './TokenRatesController.js'; +import { getDefaultTokensState } from './TokensController.js'; +import type { TokensControllerState } from './TokensController.js'; const defaultSelectedAddress = '0x1111111111111111111111111111111111111111'; @@ -112,8 +115,7 @@ describe('TokenRatesController', () => { it('should not fail if tokenPricesService does not have setNativeAssetIdentifiers', async () => { const tokenPricesService = buildMockTokenPricesService(); // Explicitly remove setNativeAssetIdentifiers to simulate an old service - delete (tokenPricesService as Partial) - .setNativeAssetIdentifiers; + delete tokenPricesService.setNativeAssetIdentifiers; await withController( { diff --git a/packages/assets-controllers/src/TokenRatesController.ts b/packages/assets-controllers/src/TokenRatesController.ts index e8a98880b14..58dad4f5299 100644 --- a/packages/assets-controllers/src/TokenRatesController.ts +++ b/packages/assets-controllers/src/TokenRatesController.ts @@ -12,17 +12,20 @@ import type { import type { NetworkEnablementControllerGetStateAction } from '@metamask/network-enablement-controller'; import { StaticIntervalPollingController } from '@metamask/polling-controller'; import type { Hex } from '@metamask/utils'; -import { isEqual } from 'lodash'; - -import { reduceInBatchesSerially, TOKEN_PRICES_BATCH_SIZE } from './assetsUtil'; -import type { AbstractTokenPricesService } from './token-prices-service/abstract-token-prices-service'; -import { getNativeTokenAddress } from './token-prices-service/codefi-v2'; -import { TokenRwaData } from './token-service'; +import { isEqual } from 'lodash-es'; + +import { + reduceInBatchesSerially, + TOKEN_PRICES_BATCH_SIZE, +} from './assetsUtil.js'; +import type { AbstractTokenPricesService } from './token-prices-service/abstract-token-prices-service.js'; +import { getNativeTokenAddress } from './token-prices-service/codefi-v2.js'; +import { TokenRwaData } from './token-service.js'; import type { TokensControllerGetStateAction, TokensControllerStateChangeEvent, TokensControllerState, -} from './TokensController'; +} from './TokensController.js'; /** * @type Token @@ -280,7 +283,7 @@ export class TokenRatesController extends StaticIntervalPollingController { if (this.#isDeprecated()) { this.#enforceDisabledState(); diff --git a/packages/assets-controllers/src/TokenSearchDiscoveryDataController/TokenSearchDiscoveryDataController.test.ts b/packages/assets-controllers/src/TokenSearchDiscoveryDataController/TokenSearchDiscoveryDataController.test.ts index 05a1530aa88..eda72fd2383 100644 --- a/packages/assets-controllers/src/TokenSearchDiscoveryDataController/TokenSearchDiscoveryDataController.test.ts +++ b/packages/assets-controllers/src/TokenSearchDiscoveryDataController/TokenSearchDiscoveryDataController.test.ts @@ -12,20 +12,23 @@ import assert from 'assert'; import type { AbstractTokenPricesService, EvmAssetWithMarketData, -} from '../token-prices-service/abstract-token-prices-service'; -import { fetchTokenMetadata } from '../token-service'; -import type { Token } from '../TokenRatesController'; +} from '../token-prices-service/abstract-token-prices-service.js'; +import { fetchTokenMetadata } from '../token-service.js'; +import type { Token } from '../TokenRatesController.js'; import { getDefaultTokenSearchDiscoveryDataControllerState, TokenSearchDiscoveryDataController, controllerName, MAX_TOKEN_DISPLAY_DATA_LENGTH, -} from './TokenSearchDiscoveryDataController'; +} from './TokenSearchDiscoveryDataController.js'; import type { TokenSearchDiscoveryDataControllerMessenger, TokenSearchDiscoveryDataControllerState, -} from './TokenSearchDiscoveryDataController'; -import type { NotFoundTokenDisplayData, FoundTokenDisplayData } from './types'; +} from './TokenSearchDiscoveryDataController.js'; +import type { + NotFoundTokenDisplayData, + FoundTokenDisplayData, +} from './types.js'; jest.mock('../token-service', () => { const mockFetchTokenMetadata = jest.fn(); diff --git a/packages/assets-controllers/src/TokenSearchDiscoveryDataController/TokenSearchDiscoveryDataController.ts b/packages/assets-controllers/src/TokenSearchDiscoveryDataController/TokenSearchDiscoveryDataController.ts index 5f3617c57eb..71ec634756f 100644 --- a/packages/assets-controllers/src/TokenSearchDiscoveryDataController/TokenSearchDiscoveryDataController.ts +++ b/packages/assets-controllers/src/TokenSearchDiscoveryDataController/TokenSearchDiscoveryDataController.ts @@ -7,15 +7,15 @@ import type { import type { Messenger } from '@metamask/messenger'; import type { Hex } from '@metamask/utils'; -import { formatIconUrlWithProxy } from '../assetsUtil'; -import type { CurrencyRateControllerGetStateAction } from '../CurrencyRateController'; -import type { AbstractTokenPricesService } from '../token-prices-service'; +import { formatIconUrlWithProxy } from '../assetsUtil.js'; +import type { CurrencyRateControllerGetStateAction } from '../CurrencyRateController.js'; +import type { AbstractTokenPricesService } from '../token-prices-service.js'; import { fetchTokenMetadata, TOKEN_METADATA_NO_SUPPORT_ERROR, -} from '../token-service'; -import type { TokenListToken } from '../TokenListController'; -import type { TokenDisplayData } from './types'; +} from '../token-service.js'; +import type { TokenListToken } from '../TokenListController.js'; +import type { TokenDisplayData } from './types.js'; // === GENERAL === diff --git a/packages/assets-controllers/src/TokenSearchDiscoveryDataController/index.ts b/packages/assets-controllers/src/TokenSearchDiscoveryDataController/index.ts index e2f6c06eb59..033f1c5cf90 100644 --- a/packages/assets-controllers/src/TokenSearchDiscoveryDataController/index.ts +++ b/packages/assets-controllers/src/TokenSearchDiscoveryDataController/index.ts @@ -1,2 +1,2 @@ -export * from './TokenSearchDiscoveryDataController'; -export type * from './types'; +export * from './TokenSearchDiscoveryDataController.js'; +export type * from './types.js'; diff --git a/packages/assets-controllers/src/TokenSearchDiscoveryDataController/types.ts b/packages/assets-controllers/src/TokenSearchDiscoveryDataController/types.ts index 26b482ef141..694f65c2738 100644 --- a/packages/assets-controllers/src/TokenSearchDiscoveryDataController/types.ts +++ b/packages/assets-controllers/src/TokenSearchDiscoveryDataController/types.ts @@ -1,7 +1,7 @@ import type { Hex } from '@metamask/utils'; -import type { EvmAssetWithMarketData } from '../token-prices-service/abstract-token-prices-service'; -import type { Token } from '../TokenRatesController'; +import type { EvmAssetWithMarketData } from '../token-prices-service/abstract-token-prices-service.js'; +import type { Token } from '../TokenRatesController.js'; export type NotFoundTokenDisplayData = { found: false; diff --git a/packages/assets-controllers/src/TokensController-method-action-types.ts b/packages/assets-controllers/src/TokensController-method-action-types.ts index 7488df8e132..3aba1259bed 100644 --- a/packages/assets-controllers/src/TokensController-method-action-types.ts +++ b/packages/assets-controllers/src/TokensController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { TokensController } from './TokensController'; +import type { TokensController } from './TokensController.js'; /** * Adds a token to the stored token list. diff --git a/packages/assets-controllers/src/TokensController.test.ts b/packages/assets-controllers/src/TokensController.test.ts index e88f0eb588e..c4142b25176 100644 --- a/packages/assets-controllers/src/TokensController.test.ts +++ b/packages/assets-controllers/src/TokensController.test.ts @@ -30,22 +30,22 @@ import type { Patch } from 'immer'; import nock from 'nock'; import { v1 as uuidV1 } from 'uuid'; -import { FakeProvider } from '../../../tests/fake-provider'; -import { createMockInternalAccount } from '../../accounts-controller/tests/mocks'; +import { FakeProvider } from '../../../tests/fake-provider.js'; +import { createMockInternalAccount } from '../../accounts-controller/tests/mocks.js'; import { buildCustomNetworkClientConfiguration, buildMockGetNetworkClientById, -} from '../../network-controller/tests/helpers'; -import { ERC20Standard } from './Standards/ERC20Standard'; -import { ERC1155Standard } from './Standards/NftStandards/ERC1155/ERC1155Standard'; -import { TOKEN_END_POINT_API } from './token-service'; -import type { TokenRwaData } from './token-service'; -import type { Token } from './TokenRatesController'; -import { TokensController } from './TokensController'; +} from '../../network-controller/tests/helpers.js'; +import { ERC20Standard } from './Standards/ERC20Standard.js'; +import { ERC1155Standard } from './Standards/NftStandards/ERC1155/ERC1155Standard.js'; +import { TOKEN_END_POINT_API } from './token-service.js'; +import type { TokenRwaData } from './token-service.js'; +import type { Token } from './TokenRatesController.js'; +import { TokensController } from './TokensController.js'; import type { TokensControllerMessenger, TokensControllerState, -} from './TokensController'; +} from './TokensController.js'; jest.mock('@ethersproject/contracts'); jest.mock('uuid', () => ({ @@ -2785,16 +2785,14 @@ describe('TokensController', () => { messenger.subscribe('ApprovalController:stateChange', listener); }); - // eslint-disable-next-line @typescript-eslint/no-floating-promises - controller.watchAsset({ + void controller.watchAsset({ asset, type: 'ERC20', interactingAddress, networkClientId: 'goerli', }); - // eslint-disable-next-line @typescript-eslint/no-floating-promises - controller.watchAsset({ + void controller.watchAsset({ asset: anotherAsset, type: 'ERC20', interactingAddress, diff --git a/packages/assets-controllers/src/TokensController.ts b/packages/assets-controllers/src/TokensController.ts index f528a12b52b..51de66e3eeb 100644 --- a/packages/assets-controllers/src/TokensController.ts +++ b/packages/assets-controllers/src/TokensController.ts @@ -42,21 +42,21 @@ import { isStrictHexString } from '@metamask/utils'; import type { Hex, Json } from '@metamask/utils'; import { Mutex } from 'async-mutex'; import type { Patch } from 'immer'; -import { cloneDeep } from 'lodash'; +import { cloneDeep } from 'lodash-es'; import { v1 as random } from 'uuid'; -import { formatAggregatorNames, formatIconUrlWithProxy } from './assetsUtil'; -import { ERC20Standard } from './Standards/ERC20Standard'; -import { ERC1155Standard } from './Standards/NftStandards/ERC1155/ERC1155Standard'; +import { formatAggregatorNames, formatIconUrlWithProxy } from './assetsUtil.js'; +import { ERC20Standard } from './Standards/ERC20Standard.js'; +import { ERC1155Standard } from './Standards/NftStandards/ERC1155/ERC1155Standard.js'; import { fetchTokenMetadata, TOKEN_METADATA_NO_SUPPORT_ERROR, TokenRwaData, -} from './token-service'; -import type { TokenListMap, TokenListToken } from './TokenListController'; -import type { TokenListService } from './TokenListService'; -import type { Token } from './TokenRatesController'; -import type { TokensControllerMethodActions } from './TokensController-method-action-types'; +} from './token-service.js'; +import type { TokenListMap, TokenListToken } from './TokenListController.js'; +import type { TokenListService } from './TokenListService.js'; +import type { Token } from './TokenRatesController.js'; +import type { TokensControllerMethodActions } from './TokensController-method-action-types.js'; /** * @type SuggestedAssetMeta @@ -1133,10 +1133,7 @@ export class TokensController extends BaseController< let newAllTokens = allTokens; if ( newTokens?.length || - (newTokens && - allTokens && - allTokens[interactingChainId] && - allTokens[interactingChainId][userAddressToAddTokens]) + (newTokens && allTokens?.[interactingChainId]?.[userAddressToAddTokens]) ) { const networkTokens = allTokens[interactingChainId]; const newNetworkTokens = { @@ -1153,9 +1150,7 @@ export class TokensController extends BaseController< if ( newIgnoredTokens?.length || (newIgnoredTokens && - allIgnoredTokens && - allIgnoredTokens[interactingChainId] && - allIgnoredTokens[interactingChainId][userAddressToAddTokens]) + allIgnoredTokens?.[interactingChainId]?.[userAddressToAddTokens]) ) { const networkIgnoredTokens = allIgnoredTokens[interactingChainId]; const newIgnoredNetworkTokens = { @@ -1172,9 +1167,7 @@ export class TokensController extends BaseController< if ( newDetectedTokens?.length || (newDetectedTokens && - allDetectedTokens && - allDetectedTokens[interactingChainId] && - allDetectedTokens[interactingChainId][userAddressToAddTokens]) + allDetectedTokens?.[interactingChainId]?.[userAddressToAddTokens]) ) { const networkDetectedTokens = allDetectedTokens[interactingChainId]; const newDetectedNetworkTokens = { diff --git a/packages/assets-controllers/src/assetsUtil.test.ts b/packages/assets-controllers/src/assetsUtil.test.ts index 634444e04b2..300231d9c59 100644 --- a/packages/assets-controllers/src/assetsUtil.test.ts +++ b/packages/assets-controllers/src/assetsUtil.test.ts @@ -8,12 +8,12 @@ import { import { add0x } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import * as assetsUtil from './assetsUtil'; -import { TOKEN_PRICES_BATCH_SIZE } from './assetsUtil'; -import type { Nft, NftMetadata } from './NftController'; -import { getNativeTokenAddress } from './token-prices-service'; -import type { AbstractTokenPricesService } from './token-prices-service'; -import { EvmAssetWithMarketData } from './token-prices-service/abstract-token-prices-service'; +import * as assetsUtil from './assetsUtil.js'; +import { TOKEN_PRICES_BATCH_SIZE } from './assetsUtil.js'; +import type { Nft, NftMetadata } from './NftController.js'; +import { getNativeTokenAddress } from './token-prices-service.js'; +import type { AbstractTokenPricesService } from './token-prices-service.js'; +import { EvmAssetWithMarketData } from './token-prices-service/abstract-token-prices-service.js'; const DEFAULT_IPFS_URL_FORMAT = 'ipfs://'; const ALTERNATIVE_IPFS_URL_FORMAT = 'ipfs://ipfs/'; diff --git a/packages/assets-controllers/src/assetsUtil.ts b/packages/assets-controllers/src/assetsUtil.ts index f481151e870..0575ef5aa0d 100644 --- a/packages/assets-controllers/src/assetsUtil.ts +++ b/packages/assets-controllers/src/assetsUtil.ts @@ -13,14 +13,14 @@ import { import BN from 'bn.js'; import { CID } from 'multiformats/cid'; -import type { Nft, NftMetadata } from './NftController'; -import { getNativeTokenAddress } from './token-prices-service'; -import type { AbstractTokenPricesService } from './token-prices-service'; -import type { EvmAssetWithMarketData } from './token-prices-service/abstract-token-prices-service'; +import type { Nft, NftMetadata } from './NftController.js'; +import { getNativeTokenAddress } from './token-prices-service.js'; +import type { AbstractTokenPricesService } from './token-prices-service.js'; +import type { EvmAssetWithMarketData } from './token-prices-service/abstract-token-prices-service.js'; import type { ContractExchangeRates, ContractMarketData, -} from './TokenRatesController'; +} from './TokenRatesController.js'; /** * The maximum number of token addresses that should be sent to the Price API in diff --git a/packages/assets-controllers/src/balances.test.ts b/packages/assets-controllers/src/balances.test.ts index 3237f025972..6327d98264a 100644 --- a/packages/assets-controllers/src/balances.test.ts +++ b/packages/assets-controllers/src/balances.test.ts @@ -1,13 +1,13 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import { AccountWalletType, AccountGroupType } from '@metamask/account-api'; -import { STAKING_CONTRACT_ADDRESS_BY_CHAINID } from './AssetsContractController'; +import { STAKING_CONTRACT_ADDRESS_BY_CHAINID } from './AssetsContractController.js'; import { calculateBalanceForAllWallets, calculateBalanceChangeForAllWallets, calculateBalanceChangeForAccountGroup, -} from './balances'; -import { getNativeTokenAddress } from './token-prices-service/codefi-v2'; +} from './balances.js'; +import { getNativeTokenAddress } from './token-prices-service/codefi-v2.js'; const createBaseMockState = (userCurrency = 'USD') => ({ AccountTreeController: { diff --git a/packages/assets-controllers/src/balances.ts b/packages/assets-controllers/src/balances.ts index 41a9ae5a1b9..27b692e03fc 100644 --- a/packages/assets-controllers/src/balances.ts +++ b/packages/assets-controllers/src/balances.ts @@ -13,15 +13,15 @@ import { isStrictHexString, } from '@metamask/utils'; -import { STAKING_CONTRACT_ADDRESS_BY_CHAINID } from './AssetsContractController'; -import type { CurrencyRateState } from './CurrencyRateController'; -import type { MultichainAssetsControllerState } from './MultichainAssetsController'; -import type { MultichainAssetsRatesControllerState } from './MultichainAssetsRatesController'; -import type { MultichainBalancesControllerState } from './MultichainBalancesController'; -import { getNativeTokenAddress } from './token-prices-service/codefi-v2'; -import type { TokenBalancesControllerState } from './TokenBalancesController'; -import type { TokenRatesControllerState } from './TokenRatesController'; -import type { TokensControllerState } from './TokensController'; +import { STAKING_CONTRACT_ADDRESS_BY_CHAINID } from './AssetsContractController.js'; +import type { CurrencyRateState } from './CurrencyRateController.js'; +import type { MultichainAssetsControllerState } from './MultichainAssetsController.js'; +import type { MultichainAssetsRatesControllerState } from './MultichainAssetsRatesController.js'; +import type { MultichainBalancesControllerState } from './MultichainBalancesController.js'; +import { getNativeTokenAddress } from './token-prices-service/codefi-v2.js'; +import type { TokenBalancesControllerState } from './TokenBalancesController.js'; +import type { TokenRatesControllerState } from './TokenRatesController.js'; +import type { TokensControllerState } from './TokensController.js'; export type AccountGroupBalance = { walletId: string; @@ -260,7 +260,7 @@ function getNonEvmAssetBalances( ) { const accountBalances = multichainBalancesState.balances[account.id] ?? {}; const ignoredAssets = - multichainAssetsState.allIgnoredAssets[account.id] || []; + multichainAssetsState.allIgnoredAssets[account.id] ?? []; return Object.entries(accountBalances) .filter( @@ -423,7 +423,7 @@ export function calculateBalanceForAllWallets( const getFlatAccountBalances = () => Object.entries(accountTreeState.accountTree.wallets ?? {}) .flatMap(([walletId, wallet]) => - Object.keys(wallet?.groups || {}).flatMap((groupId) => { + Object.keys(wallet?.groups ?? {}).flatMap((groupId) => { const accounts = getInternalAccountsForGroup( accountTreeState, accountsState, @@ -490,7 +490,7 @@ export function calculateBalanceForAllWallets( return; } wallets[walletId] ??= defaultWalletBalance(walletId); - Object.keys(wallet.groups || {}).forEach((groupId) => { + Object.keys(wallet.groups ?? {}).forEach((groupId) => { wallets[walletId].groups[groupId] ??= defaultGroupBalance( walletId, groupId, @@ -582,7 +582,7 @@ export function calculateBalanceChangeForAllWallets( const getFlatAccountChanges = () => Object.entries(accountTreeState.accountTree.wallets ?? {}) .flatMap(([walletId, wallet]) => - Object.keys(wallet?.groups || {}).flatMap((groupId) => { + Object.keys(wallet?.groups ?? {}).flatMap((groupId) => { const accounts = getInternalAccountsForGroup( accountTreeState, accountsState, diff --git a/packages/assets-controllers/src/crypto-compare-service/crypto-compare.test.ts b/packages/assets-controllers/src/crypto-compare-service/crypto-compare.test.ts index 0c42dacf1d6..f69bb44bcd5 100644 --- a/packages/assets-controllers/src/crypto-compare-service/crypto-compare.test.ts +++ b/packages/assets-controllers/src/crypto-compare-service/crypto-compare.test.ts @@ -1,6 +1,6 @@ import nock from 'nock'; -import { fetchExchangeRate, fetchMultiExchangeRate } from './crypto-compare'; +import { fetchExchangeRate, fetchMultiExchangeRate } from './crypto-compare.js'; const cryptoCompareHost = 'https://min-api.cryptocompare.com'; diff --git a/packages/assets-controllers/src/crypto-compare-service/crypto-compare.ts b/packages/assets-controllers/src/crypto-compare-service/crypto-compare.ts index 5af6f3869d3..cb030c07391 100644 --- a/packages/assets-controllers/src/crypto-compare-service/crypto-compare.ts +++ b/packages/assets-controllers/src/crypto-compare-service/crypto-compare.ts @@ -1,6 +1,6 @@ import { handleFetch } from '@metamask/controller-utils'; -import { getKeyByValue } from '../assetsUtil'; +import { getKeyByValue } from '../assetsUtil.js'; /** * A map from native currency symbol to CryptoCompare identifier. diff --git a/packages/assets-controllers/src/crypto-compare-service/index.ts b/packages/assets-controllers/src/crypto-compare-service/index.ts index 33646741118..c33d3e11b9d 100644 --- a/packages/assets-controllers/src/crypto-compare-service/index.ts +++ b/packages/assets-controllers/src/crypto-compare-service/index.ts @@ -1 +1 @@ -export { fetchExchangeRate, fetchMultiExchangeRate } from './crypto-compare'; +export { fetchExchangeRate, fetchMultiExchangeRate } from './crypto-compare.js'; diff --git a/packages/assets-controllers/src/index.ts b/packages/assets-controllers/src/index.ts index a005d08481b..357f8a1b739 100644 --- a/packages/assets-controllers/src/index.ts +++ b/packages/assets-controllers/src/index.ts @@ -6,20 +6,20 @@ export type { AccountTrackerControllerGetStateAction, AccountTrackerControllerStateChangeEvent, AccountTrackerControllerEvents, -} from './AccountTrackerController'; -export { AccountTrackerController } from './AccountTrackerController'; +} from './AccountTrackerController.js'; +export { AccountTrackerController } from './AccountTrackerController.js'; export type { AccountTrackerControllerUpdateNativeBalancesAction, AccountTrackerControllerUpdateStakedBalancesAction, AccountTrackerControllerRefreshAction, AccountTrackerControllerSyncBalanceWithAddressesAction, -} from './AccountTrackerController-method-action-types'; +} from './AccountTrackerController-method-action-types.js'; export type { AssetsContractControllerActions, AssetsContractControllerEvents, AssetsContractControllerMessenger, BalanceMap, -} from './AssetsContractController'; +} from './AssetsContractController.js'; export type { AssetsContractControllerGetERC20StandardAction, AssetsContractControllerGetERC721StandardAction, @@ -38,16 +38,16 @@ export type { AssetsContractControllerGetTokenStandardAndDetailsAction, AssetsContractControllerGetBalancesInSingleCallAction, AssetsContractControllerGetStakedBalanceForChainAction, -} from './AssetsContractController-method-action-types'; +} from './AssetsContractController-method-action-types.js'; export { SINGLE_CALL_BALANCES_ADDRESS_BY_CHAINID, AssetsContractController, -} from './AssetsContractController'; -export * from './CurrencyRateController'; +} from './AssetsContractController.js'; +export * from './CurrencyRateController.js'; export type { CurrencyRateControllerSetCurrentCurrencyAction, CurrencyRateControllerUpdateExchangeRateAction, -} from './CurrencyRateController-method-action-types'; +} from './CurrencyRateController-method-action-types.js'; export type { NftControllerState, NftControllerMessenger, @@ -58,8 +58,11 @@ export type { Nft, NftContract, NftMetadata, -} from './NftController'; -export { getDefaultNftControllerState, NftController } from './NftController'; +} from './NftController.js'; +export { + getDefaultNftControllerState, + NftController, +} from './NftController.js'; export type { NftDetectionControllerMessenger, ApiNft, @@ -82,8 +85,8 @@ export type { FloorAsk, Price, Metadata, -} from './NftDetectionController'; -export { NftDetectionController } from './NftDetectionController'; +} from './NftDetectionController.js'; +export { NftDetectionController } from './NftDetectionController.js'; export type { TokenBalancesControllerActions, TokenBalancesControllerGetStateAction, @@ -92,21 +95,21 @@ export type { TokenBalancesControllerOptions, TokenBalancesControllerStateChangeEvent, TokenBalancesControllerState, -} from './TokenBalancesController'; -export { TokenBalancesController } from './TokenBalancesController'; +} from './TokenBalancesController.js'; +export { TokenBalancesController } from './TokenBalancesController.js'; export type { TokenBalancesControllerUpdateChainPollingConfigsAction, TokenBalancesControllerGetChainPollingConfigAction, TokenBalancesControllerUpdateBalancesAction, TokenBalancesControllerResetStateAction, -} from './TokenBalancesController-method-action-types'; +} from './TokenBalancesController-method-action-types.js'; export type { TokenDetectionControllerMessenger, TokenDetectionControllerActions, TokenDetectionControllerGetStateAction, TokenDetectionControllerEvents, TokenDetectionControllerStateChangeEvent, -} from './TokenDetectionController'; +} from './TokenDetectionController.js'; export type { TokenDetectionControllerEnableAction, TokenDetectionControllerDisableAction, @@ -115,8 +118,8 @@ export type { TokenDetectionControllerDetectTokensAction, TokenDetectionControllerAddDetectedTokensViaWsAction, TokenDetectionControllerAddDetectedTokensViaPollingAction, -} from './TokenDetectionController-method-action-types'; -export { TokenDetectionController } from './TokenDetectionController'; +} from './TokenDetectionController-method-action-types.js'; +export { TokenDetectionController } from './TokenDetectionController.js'; export type { TokenListState, TokenListToken, @@ -126,9 +129,9 @@ export type { GetTokenListState, TokenListControllerActions, TokenListControllerMessenger, -} from './TokenListController'; -export { TokenListController } from './TokenListController'; -export { TokenListService, buildTokenListMap } from './TokenListService'; +} from './TokenListController.js'; +export { TokenListController } from './TokenListController.js'; +export { TokenListService, buildTokenListMap } from './TokenListService.js'; export type { ContractExchangeRates, ContractMarketData, @@ -140,11 +143,11 @@ export type { TokenRatesControllerState, TokenRatesControllerStateChangeEvent, MarketDataDetails, -} from './TokenRatesController'; +} from './TokenRatesController.js'; export { getDefaultTokenRatesControllerState, TokenRatesController, -} from './TokenRatesController'; +} from './TokenRatesController.js'; export type { TokensControllerState, TokensControllerActions, @@ -152,7 +155,7 @@ export type { TokensControllerEvents, TokensControllerStateChangeEvent, TokensControllerMessenger, -} from './TokensController'; +} from './TokensController.js'; export type { TokensControllerAddTokenAction, TokensControllerAddTokensAction, @@ -162,29 +165,29 @@ export type { TokensControllerWatchAssetAction, TokensControllerClearIgnoredTokensAction, TokensControllerResetStateAction, -} from './TokensController-method-action-types'; -export { TokensController } from './TokensController'; +} from './TokensController-method-action-types.js'; +export { TokensController } from './TokensController.js'; export { isTokenDetectionSupportedForNetwork, formatIconUrlWithProxy, getFormattedIpfsUrl, fetchTokenContractExchangeRates, getKeyByValue, -} from './assetsUtil'; +} from './assetsUtil.js'; export { CodefiTokenPricesServiceV2, SUPPORTED_CHAIN_IDS, getNativeTokenAddress, SPOT_PRICES_SUPPORT_INFO, getAssetId, -} from './token-prices-service'; +} from './token-prices-service.js'; export { fetchRwas, searchTokens, getTrendingTokens, fetchTokenAssets, -} from './token-service'; -export { RatesController, Cryptocurrency } from './RatesController'; +} from './token-service.js'; +export { RatesController, Cryptocurrency } from './RatesController.js'; export type { RatesControllerState, RatesControllerEvents, @@ -194,8 +197,8 @@ export type { RatesControllerStateChangeEvent, RatesControllerPollingStartedEvent, RatesControllerPollingStoppedEvent, -} from './RatesController'; -export { MultichainBalancesController } from './MultichainBalancesController'; +} from './RatesController.js'; +export { MultichainBalancesController } from './MultichainBalancesController.js'; export type { MultichainBalancesControllerState, MultichainBalancesControllerGetStateAction, @@ -203,12 +206,12 @@ export type { MultichainBalancesControllerActions, MultichainBalancesControllerEvents, MultichainBalancesControllerMessenger, -} from './MultichainBalancesController'; +} from './MultichainBalancesController.js'; export { MultichainAssetsController, getDefaultMultichainAssetsControllerState, -} from './MultichainAssetsController'; +} from './MultichainAssetsController.js'; export type { MultichainAssetsControllerState, @@ -218,18 +221,18 @@ export type { MultichainAssetsControllerEvents, MultichainAssetsControllerAccountAssetListUpdatedEvent, MultichainAssetsControllerMessenger, -} from './MultichainAssetsController'; +} from './MultichainAssetsController.js'; export type { MultichainAssetsControllerGetAssetMetadataAction, MultichainAssetsControllerIgnoreAssetsAction, MultichainAssetsControllerAddAssetsAction, -} from './MultichainAssetsController/MultichainAssetsController-method-action-types'; +} from './MultichainAssetsController/MultichainAssetsController-method-action-types.js'; export { MultichainAssetsRatesController, getDefaultMultichainAssetsRatesControllerState, -} from './MultichainAssetsRatesController'; -export { MAP_CAIP_CURRENCIES } from './MultichainAssetsRatesController'; +} from './MultichainAssetsRatesController.js'; +export { MAP_CAIP_CURRENCIES } from './MultichainAssetsRatesController.js'; export type { MultichainAssetsRatesControllerState, @@ -238,14 +241,14 @@ export type { MultichainAssetsRatesControllerGetStateAction, MultichainAssetsRatesControllerStateChange, MultichainAssetsRatesControllerMessenger, -} from './MultichainAssetsRatesController'; +} from './MultichainAssetsRatesController.js'; export type { MultichainAssetsRatesControllerUpdateAssetsRatesAction, MultichainAssetsRatesControllerFetchHistoricalPricesForAssetAction, -} from './MultichainAssetsRatesController/MultichainAssetsRatesController-method-action-types'; +} from './MultichainAssetsRatesController/MultichainAssetsRatesController-method-action-types.js'; -export { TokenSearchDiscoveryDataController } from './TokenSearchDiscoveryDataController'; +export { TokenSearchDiscoveryDataController } from './TokenSearchDiscoveryDataController.js'; export type { TokenDisplayData, TokenSearchDiscoveryDataControllerState, @@ -254,8 +257,8 @@ export type { TokenSearchDiscoveryDataControllerStateChangeEvent, TokenSearchDiscoveryDataControllerActions, TokenSearchDiscoveryDataControllerMessenger, -} from './TokenSearchDiscoveryDataController'; -export { DeFiPositionsController } from './DeFiPositionsController/DeFiPositionsController'; +} from './TokenSearchDiscoveryDataController.js'; +export { DeFiPositionsController } from './DeFiPositionsController/DeFiPositionsController.js'; export type { DeFiPositionsControllerState, DeFiPositionsControllerActions, @@ -263,34 +266,34 @@ export type { DeFiPositionsControllerGetStateAction, DeFiPositionsControllerStateChangeEvent, DeFiPositionsControllerMessenger, -} from './DeFiPositionsController/DeFiPositionsController'; -export type { GroupedDeFiPositions } from './DeFiPositionsController/group-defi-positions'; +} from './DeFiPositionsController/DeFiPositionsController.js'; +export type { GroupedDeFiPositions } from './DeFiPositionsController/group-defi-positions.js'; export type { AccountGroupBalance, WalletBalance, AllWalletsBalance, -} from './balances'; -export { calculateBalanceForAllWallets } from './balances'; +} from './balances.js'; +export { calculateBalanceForAllWallets } from './balances.js'; export type { BalanceChangePeriod, BalanceChangeResult, NetworkConfigurationNativeCurrency, -} from './balances'; +} from './balances.js'; export { calculateBalanceChangeForAllWallets, calculateBalanceChangeForAccountGroup, -} from './balances'; +} from './balances.js'; export type { AssetsByAccountGroup, AccountGroupAssets, Asset, AssetListState, -} from './selectors/token-selectors'; +} from './selectors/token-selectors.js'; export { selectAssetsBySelectedAccountGroup, selectAllAssets, -} from './selectors/token-selectors'; -export { createFormatters } from './utils/formatters'; +} from './selectors/token-selectors.js'; +export { createFormatters } from './utils/formatters.js'; export type { SortTrendingBy, TrendingAsset, @@ -312,4 +315,4 @@ export type { RwasResponse, RwaSortBy, FetchRwasParams, -} from './token-service'; +} from './token-service.js'; diff --git a/packages/assets-controllers/src/multi-chain-accounts-service/api-balance-fetcher.test.ts b/packages/assets-controllers/src/multi-chain-accounts-service/api-balance-fetcher.test.ts index a117e40022a..d6ab34e40cd 100644 --- a/packages/assets-controllers/src/multi-chain-accounts-service/api-balance-fetcher.test.ts +++ b/packages/assets-controllers/src/multi-chain-accounts-service/api-balance-fetcher.test.ts @@ -1,12 +1,12 @@ import type { InternalAccount } from '@metamask/keyring-internal-api'; import BN from 'bn.js'; -import { createMockInternalAccount } from '../../../accounts-controller/tests/mocks'; -import { SUPPORTED_NETWORKS_ACCOUNTS_API_V4 } from '../constants'; -import * as ConstantsModule from '../constants'; -import { AccountsApiBalanceFetcher } from './api-balance-fetcher'; -import type { ChainIdHex, ChecksumAddress } from './api-balance-fetcher'; -import type { GetBalancesResponse } from './types'; +import { createMockInternalAccount } from '../../../accounts-controller/tests/mocks.js'; +import { SUPPORTED_NETWORKS_ACCOUNTS_API_V4 } from '../constants.js'; +import * as ConstantsModule from '../constants.js'; +import { AccountsApiBalanceFetcher } from './api-balance-fetcher.js'; +import type { ChainIdHex, ChecksumAddress } from './api-balance-fetcher.js'; +import type { GetBalancesResponse } from './types.js'; // Mock dependencies that cause import issues jest.mock('../AssetsContractController', () => ({ diff --git a/packages/assets-controllers/src/multi-chain-accounts-service/api-balance-fetcher.ts b/packages/assets-controllers/src/multi-chain-accounts-service/api-balance-fetcher.ts index 9f1a53708d2..3e52a5336b6 100644 --- a/packages/assets-controllers/src/multi-chain-accounts-service/api-balance-fetcher.ts +++ b/packages/assets-controllers/src/multi-chain-accounts-service/api-balance-fetcher.ts @@ -12,15 +12,15 @@ import type { CaipAccountAddress, CaipChainId, Hex } from '@metamask/utils'; import { parseCaipChainId } from '@metamask/utils'; import BN from 'bn.js'; -import { STAKING_CONTRACT_ADDRESS_BY_CHAINID } from '../AssetsContractController'; +import { STAKING_CONTRACT_ADDRESS_BY_CHAINID } from '../AssetsContractController.js'; import { accountAddressToCaipReference, reduceInBatchesSerially, SupportedStakedBalanceNetworks, -} from '../assetsUtil'; -import { SUPPORTED_NETWORKS_ACCOUNTS_API_V4 } from '../constants'; -import { fetchMultiChainBalancesV4 } from './multi-chain-accounts'; -import type { GetBalancesResponse } from './types'; +} from '../assetsUtil.js'; +import { SUPPORTED_NETWORKS_ACCOUNTS_API_V4 } from '../constants.js'; +import { fetchMultiChainBalancesV4 } from './multi-chain-accounts.js'; +import type { GetBalancesResponse } from './types.js'; // Maximum number of account addresses that can be sent to the accounts API in a single request const ACCOUNTS_API_BATCH_SIZE = 20; diff --git a/packages/assets-controllers/src/multi-chain-accounts-service/index.ts b/packages/assets-controllers/src/multi-chain-accounts-service/index.ts index 13cdd73ca5f..15361688b45 100644 --- a/packages/assets-controllers/src/multi-chain-accounts-service/index.ts +++ b/packages/assets-controllers/src/multi-chain-accounts-service/index.ts @@ -1,9 +1,9 @@ export type { GetBalancesResponse, GetSupportedNetworksResponse, -} from './types'; +} from './types.js'; export { fetchMultiChainBalances, fetchSupportedNetworks, -} from './multi-chain-accounts'; +} from './multi-chain-accounts.js'; diff --git a/packages/assets-controllers/src/multi-chain-accounts-service/mocks/mock-get-balances.test.ts b/packages/assets-controllers/src/multi-chain-accounts-service/mocks/mock-get-balances.test.ts index 3fe96f75cfd..af0acef7bd0 100644 --- a/packages/assets-controllers/src/multi-chain-accounts-service/mocks/mock-get-balances.test.ts +++ b/packages/assets-controllers/src/multi-chain-accounts-service/mocks/mock-get-balances.test.ts @@ -1,7 +1,7 @@ import { MOCK_GET_BALANCES_RESPONSE, createMockGetBalancesResponse, -} from './mock-get-balances'; +} from './mock-get-balances.js'; describe('mock-get-balances', () => { describe('MOCK_GET_BALANCES_RESPONSE', () => { diff --git a/packages/assets-controllers/src/multi-chain-accounts-service/mocks/mock-get-balances.ts b/packages/assets-controllers/src/multi-chain-accounts-service/mocks/mock-get-balances.ts index 3ac5f716970..6de434c4d82 100644 --- a/packages/assets-controllers/src/multi-chain-accounts-service/mocks/mock-get-balances.ts +++ b/packages/assets-controllers/src/multi-chain-accounts-service/mocks/mock-get-balances.ts @@ -1,4 +1,4 @@ -import type { GetBalancesResponse } from '../types'; +import type { GetBalancesResponse } from '../types.js'; export const MOCK_GET_BALANCES_RESPONSE: GetBalancesResponse = { count: 6, diff --git a/packages/assets-controllers/src/multi-chain-accounts-service/mocks/mock-get-supported-networks.ts b/packages/assets-controllers/src/multi-chain-accounts-service/mocks/mock-get-supported-networks.ts index 73370150728..094928d9a10 100644 --- a/packages/assets-controllers/src/multi-chain-accounts-service/mocks/mock-get-supported-networks.ts +++ b/packages/assets-controllers/src/multi-chain-accounts-service/mocks/mock-get-supported-networks.ts @@ -1,4 +1,4 @@ -import type { GetSupportedNetworksResponse } from '../types'; +import type { GetSupportedNetworksResponse } from '../types.js'; export const MOCK_GET_SUPPORTED_NETWORKS_RESPONSE: GetSupportedNetworksResponse = { diff --git a/packages/assets-controllers/src/multi-chain-accounts-service/multi-chain-accounts.test.ts b/packages/assets-controllers/src/multi-chain-accounts-service/multi-chain-accounts.test.ts index 184b06c6934..13ed68205bf 100644 --- a/packages/assets-controllers/src/multi-chain-accounts-service/multi-chain-accounts.test.ts +++ b/packages/assets-controllers/src/multi-chain-accounts-service/multi-chain-accounts.test.ts @@ -1,13 +1,13 @@ import nock from 'nock'; -import { MOCK_GET_BALANCES_RESPONSE } from './mocks/mock-get-balances'; -import { MOCK_GET_SUPPORTED_NETWORKS_RESPONSE } from './mocks/mock-get-supported-networks'; +import { MOCK_GET_BALANCES_RESPONSE } from './mocks/mock-get-balances.js'; +import { MOCK_GET_SUPPORTED_NETWORKS_RESPONSE } from './mocks/mock-get-supported-networks.js'; import { MULTICHAIN_ACCOUNTS_DOMAIN, fetchMultiChainBalances, fetchMultiChainBalancesV4, fetchSupportedNetworks, -} from './multi-chain-accounts'; +} from './multi-chain-accounts.js'; const MOCK_ADDRESS = '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045'; const MOCK_CAIP_ADDRESSES = [ diff --git a/packages/assets-controllers/src/multi-chain-accounts-service/multi-chain-accounts.ts b/packages/assets-controllers/src/multi-chain-accounts-service/multi-chain-accounts.ts index 14c52d44823..5f72dd51692 100644 --- a/packages/assets-controllers/src/multi-chain-accounts-service/multi-chain-accounts.ts +++ b/packages/assets-controllers/src/multi-chain-accounts-service/multi-chain-accounts.ts @@ -6,7 +6,7 @@ import type { GetBalancesQueryParamsV4, GetBalancesResponse, GetSupportedNetworksResponse, -} from './types'; +} from './types.js'; export const MULTICHAIN_ACCOUNTS_DOMAIN = 'https://accounts.api.cx.metamask.io'; diff --git a/packages/assets-controllers/src/multicall.test.ts b/packages/assets-controllers/src/multicall.test.ts index 78b4bb2e97e..b225b24cc5c 100644 --- a/packages/assets-controllers/src/multicall.test.ts +++ b/packages/assets-controllers/src/multicall.test.ts @@ -11,8 +11,8 @@ import { getTokenBalancesForMultipleAddresses, getStakedBalancesForAddresses, getNftOwnershipForMultipleNfts, -} from './multicall'; -import type { Aggregate3Call, NftOwnershipQuery } from './multicall'; +} from './multicall.js'; +import type { Aggregate3Call, NftOwnershipQuery } from './multicall.js'; const provider = new Web3Provider(jest.fn()); diff --git a/packages/assets-controllers/src/multicall.ts b/packages/assets-controllers/src/multicall.ts index cd3907e9082..65f728e3f1a 100644 --- a/packages/assets-controllers/src/multicall.ts +++ b/packages/assets-controllers/src/multicall.ts @@ -3,8 +3,8 @@ import type { Web3Provider } from '@ethersproject/providers'; import type { Hex } from '@metamask/utils'; import BN from 'bn.js'; -import { STAKING_CONTRACT_ADDRESS_BY_CHAINID } from './AssetsContractController'; -import { reduceInBatchesSerially } from './assetsUtil'; +import { STAKING_CONTRACT_ADDRESS_BY_CHAINID } from './AssetsContractController.js'; +import { reduceInBatchesSerially } from './assetsUtil.js'; // https://github.com/mds1/multicall/blob/main/deployments.json const MULTICALL_CONTRACT_BY_CHAINID = { diff --git a/packages/assets-controllers/src/rpc-service/rpc-balance-fetcher.test.ts b/packages/assets-controllers/src/rpc-service/rpc-balance-fetcher.test.ts index a38c3a66c0e..8bf6cd2ac1f 100644 --- a/packages/assets-controllers/src/rpc-service/rpc-balance-fetcher.test.ts +++ b/packages/assets-controllers/src/rpc-service/rpc-balance-fetcher.test.ts @@ -3,10 +3,10 @@ import type { InternalAccount } from '@metamask/keyring-internal-api'; import type { NetworkClient } from '@metamask/network-controller'; import BN from 'bn.js'; -import type { UnprocessedTokens } from '../multi-chain-accounts-service/api-balance-fetcher'; -import type { TokensControllerState } from '../TokensController'; -import { RpcBalanceFetcher } from './rpc-balance-fetcher'; -import type { ChainIdHex, ChecksumAddress } from './rpc-balance-fetcher'; +import type { UnprocessedTokens } from '../multi-chain-accounts-service/api-balance-fetcher.js'; +import type { TokensControllerState } from '../TokensController.js'; +import { RpcBalanceFetcher } from './rpc-balance-fetcher.js'; +import type { ChainIdHex, ChecksumAddress } from './rpc-balance-fetcher.js'; const MOCK_ADDRESS_1 = '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045'; const MOCK_ADDRESS_2 = '0x742d35cc6675c4f17f41140100aa83a4b1fa4c82'; diff --git a/packages/assets-controllers/src/rpc-service/rpc-balance-fetcher.ts b/packages/assets-controllers/src/rpc-service/rpc-balance-fetcher.ts index 327c644d117..f0d6d56cffd 100644 --- a/packages/assets-controllers/src/rpc-service/rpc-balance-fetcher.ts +++ b/packages/assets-controllers/src/rpc-service/rpc-balance-fetcher.ts @@ -8,11 +8,11 @@ import type { NetworkClient } from '@metamask/network-controller'; import type { Hex } from '@metamask/utils'; import BN from 'bn.js'; -import { STAKING_CONTRACT_ADDRESS_BY_CHAINID } from '../AssetsContractController'; -import { shouldIncludeNativeToken } from '../constants'; -import type { UnprocessedTokens } from '../multi-chain-accounts-service/api-balance-fetcher'; -import { getTokenBalancesForMultipleAddresses } from '../multicall'; -import type { TokensControllerState } from '../TokensController'; +import { STAKING_CONTRACT_ADDRESS_BY_CHAINID } from '../AssetsContractController.js'; +import { shouldIncludeNativeToken } from '../constants.js'; +import type { UnprocessedTokens } from '../multi-chain-accounts-service/api-balance-fetcher.js'; +import { getTokenBalancesForMultipleAddresses } from '../multicall.js'; +import type { TokensControllerState } from '../TokensController.js'; const RPC_TIMEOUT_MS = 30000; @@ -162,10 +162,10 @@ export class RpcBalanceFetcher implements BalanceFetcher { // Ensure native token entries exist for all addresses allAddressesForNative.forEach((address) => { - const nativeBalance = tokenBalances[ZERO_ADDRESS]?.[address] || null; + const nativeBalance = tokenBalances[ZERO_ADDRESS]?.[address] ?? null; chainResults.push({ success: true, - value: nativeBalance || new BN('0'), + value: nativeBalance ?? new BN('0'), account: address as ChecksumAddress, token: ZERO_ADDRESS, chainId, diff --git a/packages/assets-controllers/src/selectors/stringify-balance.test.ts b/packages/assets-controllers/src/selectors/stringify-balance.test.ts index 7cf8c0b216b..5ba6d2e805b 100644 --- a/packages/assets-controllers/src/selectors/stringify-balance.test.ts +++ b/packages/assets-controllers/src/selectors/stringify-balance.test.ts @@ -3,7 +3,7 @@ import { bigIntToHex } from '@metamask/utils'; import { stringifyBalanceWithDecimals, parseBalanceWithDecimals, -} from './stringify-balance'; +} from './stringify-balance.js'; describe('stringifyBalanceWithDecimals', () => { it('returns the balance early if it is 0', () => { diff --git a/packages/assets-controllers/src/selectors/token-selectors.test.ts b/packages/assets-controllers/src/selectors/token-selectors.test.ts index ccbac2f2d21..4071eef7862 100644 --- a/packages/assets-controllers/src/selectors/token-selectors.test.ts +++ b/packages/assets-controllers/src/selectors/token-selectors.test.ts @@ -8,18 +8,18 @@ import type { AccountsControllerState } from '@metamask/accounts-controller'; import { TrxScope } from '@metamask/keyring-api'; import type { NetworkState } from '@metamask/network-controller'; import type { Hex } from '@metamask/utils'; -import { cloneDeep } from 'lodash'; - -import type { AccountGroupMultichainAccountObject } from '../../../account-tree-controller/src/group'; -import type { CurrencyRateState } from '../CurrencyRateController'; -import type { MultichainAssetsControllerState } from '../MultichainAssetsController'; -import type { MultichainAssetsRatesControllerState } from '../MultichainAssetsRatesController'; -import type { MultichainBalancesControllerState } from '../MultichainBalancesController'; -import type { TokenBalancesControllerState } from '../TokenBalancesController'; -import type { TokenRatesControllerState } from '../TokenRatesController'; -import type { TokensControllerState } from '../TokensController'; -import { MOCK_TRON_TOKENS } from './__fixtures__/arrange-tron-state'; -import { selectAssetsBySelectedAccountGroup } from './token-selectors'; +import { cloneDeep } from 'lodash-es'; + +import type { AccountGroupMultichainAccountObject } from '../../../account-tree-controller/src/group.js'; +import type { CurrencyRateState } from '../CurrencyRateController.js'; +import type { MultichainAssetsControllerState } from '../MultichainAssetsController.js'; +import type { MultichainAssetsRatesControllerState } from '../MultichainAssetsRatesController.js'; +import type { MultichainBalancesControllerState } from '../MultichainBalancesController.js'; +import type { TokenBalancesControllerState } from '../TokenBalancesController.js'; +import type { TokenRatesControllerState } from '../TokenRatesController.js'; +import type { TokensControllerState } from '../TokensController.js'; +import { MOCK_TRON_TOKENS } from './__fixtures__/arrange-tron-state.js'; +import { selectAssetsBySelectedAccountGroup } from './token-selectors.js'; const mockTokensControllerState: TokensControllerState = { allTokens: { diff --git a/packages/assets-controllers/src/selectors/token-selectors.ts b/packages/assets-controllers/src/selectors/token-selectors.ts index 4b6e7dc2b7d..0a8c5ab1317 100644 --- a/packages/assets-controllers/src/selectors/token-selectors.ts +++ b/packages/assets-controllers/src/selectors/token-selectors.ts @@ -10,19 +10,22 @@ import type { Hex } from '@metamask/utils'; import { createSelector, weakMapMemoize } from 'reselect'; import { TokenRwaData } from 'src/token-service'; -import { shouldIncludeNativeToken } from '../constants'; -import type { CurrencyRateState } from '../CurrencyRateController'; -import type { MultichainAssetsControllerState } from '../MultichainAssetsController'; -import type { MultichainAssetsRatesControllerState } from '../MultichainAssetsRatesController'; -import type { MultichainBalancesControllerState } from '../MultichainBalancesController'; -import { getNativeTokenAddress } from '../token-prices-service/codefi-v2'; -import type { TokenBalancesControllerState } from '../TokenBalancesController'; -import type { Token, TokenRatesControllerState } from '../TokenRatesController'; -import type { TokensControllerState } from '../TokensController'; +import { shouldIncludeNativeToken } from '../constants.js'; +import type { CurrencyRateState } from '../CurrencyRateController.js'; +import type { MultichainAssetsControllerState } from '../MultichainAssetsController.js'; +import type { MultichainAssetsRatesControllerState } from '../MultichainAssetsRatesController.js'; +import type { MultichainBalancesControllerState } from '../MultichainBalancesController.js'; +import { getNativeTokenAddress } from '../token-prices-service/codefi-v2.js'; +import type { TokenBalancesControllerState } from '../TokenBalancesController.js'; +import type { + Token, + TokenRatesControllerState, +} from '../TokenRatesController.js'; +import type { TokensControllerState } from '../TokensController.js'; import { parseBalanceWithDecimals, stringifyBalanceWithDecimals, -} from './stringify-balance'; +} from './stringify-balance.js'; // Asset Tron Filters export const TRON_RESOURCE = { @@ -200,10 +203,10 @@ const selectAllEvmAccountNativeBalances = createAssetListSelector( const groupChainAssets = groupAssets[accountGroupId][chainId]; // If a native balance is missing, we still want to show it as 0 - const rawBalance = accountBalance.balance || '0x0'; + const rawBalance = accountBalance.balance ?? '0x0'; const nativeCurrency = - networkConfigurationsByChainId[chainId]?.nativeCurrency || 'NATIVE'; + networkConfigurationsByChainId[chainId]?.nativeCurrency ?? 'NATIVE'; const nativeToken = { address: getNativeTokenAddress(chainId), diff --git a/packages/assets-controllers/src/token-prices-service/abstract-token-prices-service.ts b/packages/assets-controllers/src/token-prices-service/abstract-token-prices-service.ts index 8c6ad9c9c85..23376d97955 100644 --- a/packages/assets-controllers/src/token-prices-service/abstract-token-prices-service.ts +++ b/packages/assets-controllers/src/token-prices-service/abstract-token-prices-service.ts @@ -1,7 +1,7 @@ import type { ServicePolicy } from '@metamask/controller-utils'; import type { CaipAssetType, CaipChainId, Hex } from '@metamask/utils'; -import type { MarketDataDetails } from '../TokenRatesController'; +import type { MarketDataDetails } from '../TokenRatesController.js'; /** * A map of CAIP-2 chain IDs to their native asset identifiers (CAIP-19 format). diff --git a/packages/assets-controllers/src/token-prices-service/codefi-v2.test.ts b/packages/assets-controllers/src/token-prices-service/codefi-v2.test.ts index 47aec3556fb..f81cf6879e7 100644 --- a/packages/assets-controllers/src/token-prices-service/codefi-v2.test.ts +++ b/packages/assets-controllers/src/token-prices-service/codefi-v2.test.ts @@ -16,7 +16,7 @@ import { getSupportedNetworks, resetSupportedNetworksCache, getAssetId, -} from './codefi-v2'; +} from './codefi-v2.js'; // We're not customizing the default max delay // The default can be found here: https://github.com/connor4312/cockatiel?tab=readme-ov-file#exponentialbackoff diff --git a/packages/assets-controllers/src/token-prices-service/codefi-v2.ts b/packages/assets-controllers/src/token-prices-service/codefi-v2.ts index 95e42a9539b..42307d251e2 100644 --- a/packages/assets-controllers/src/token-prices-service/codefi-v2.ts +++ b/packages/assets-controllers/src/token-prices-service/codefi-v2.ts @@ -15,7 +15,7 @@ import { toCaipChainId, } from '@metamask/utils'; -import type { MarketDataDetails } from '../TokenRatesController'; +import type { MarketDataDetails } from '../TokenRatesController.js'; import type { AbstractTokenPricesService, EvmAssetAddressWithChain, @@ -23,7 +23,7 @@ import type { EvmAssetWithMarketData, ExchangeRatesByCurrency, NativeAssetIdentifiersMap, -} from './abstract-token-prices-service'; +} from './abstract-token-prices-service.js'; /** * The list of currencies that can be supplied as the `vsCurrency` parameter to @@ -913,13 +913,15 @@ export class CodefiTokenPricesServiceV2 implements AbstractTokenPricesService< throw new Error('Failed to fetch'); } - const filteredExchangeRates = cryptocurrencies.reduce((acc, key) => { + const filteredExchangeRates = cryptocurrencies.reduce< + ExchangeRatesByCurrency + >((acc, key) => { if (exchangeRates[key.toLowerCase() as SupportedCurrency]) { acc[key.toLowerCase() as SupportedCurrency] = exchangeRates[key.toLowerCase() as SupportedCurrency]; } return acc; - }, {} as ExchangeRatesByCurrency); + }, {}); if (Object.keys(filteredExchangeRates).length === 0) { throw new Error( @@ -927,13 +929,15 @@ export class CodefiTokenPricesServiceV2 implements AbstractTokenPricesService< ); } - const filteredUsdExchangeRates = cryptocurrencies.reduce((acc, key) => { + const filteredUsdExchangeRates = cryptocurrencies.reduce< + ExchangeRatesByCurrency + >((acc, key) => { if (exchangeRatesUsd[key.toLowerCase() as SupportedCurrency]) { acc[key.toLowerCase() as SupportedCurrency] = exchangeRatesUsd[key.toLowerCase() as SupportedCurrency]; } return acc; - }, {} as ExchangeRatesByCurrency); + }, {}); if (baseCurrency.toLowerCase() === 'usd') { Object.keys(filteredExchangeRates).forEach((key) => { @@ -948,7 +952,9 @@ export class CodefiTokenPricesServiceV2 implements AbstractTokenPricesService< return filteredExchangeRates; } - const merged = Object.keys(filteredExchangeRates).reduce((acc, key) => { + const merged = Object.keys(filteredExchangeRates).reduce< + ExchangeRatesByCurrency + >((acc, key) => { acc[key as SupportedCurrency] = { ...filteredExchangeRates[key as SupportedCurrency], ...(filteredUsdExchangeRates[key as SupportedCurrency]?.value @@ -956,7 +962,7 @@ export class CodefiTokenPricesServiceV2 implements AbstractTokenPricesService< : {}), }; return acc; - }, {} as ExchangeRatesByCurrency); + }, {}); return merged; } diff --git a/packages/assets-controllers/src/token-prices-service/index.test.ts b/packages/assets-controllers/src/token-prices-service/index.test.ts index 687fe8b6736..1bcc81fbef5 100644 --- a/packages/assets-controllers/src/token-prices-service/index.test.ts +++ b/packages/assets-controllers/src/token-prices-service/index.test.ts @@ -1,4 +1,4 @@ -import * as allExports from '.'; +import * as allExports from './..js'; describe('token-prices-service', () => { it('has expected exports', () => { diff --git a/packages/assets-controllers/src/token-prices-service/index.ts b/packages/assets-controllers/src/token-prices-service/index.ts index da2ee6adffe..8361bb68afa 100644 --- a/packages/assets-controllers/src/token-prices-service/index.ts +++ b/packages/assets-controllers/src/token-prices-service/index.ts @@ -1,7 +1,7 @@ export type { AbstractTokenPricesService, NativeAssetIdentifiersMap, -} from './abstract-token-prices-service'; +} from './abstract-token-prices-service.js'; export { CodefiTokenPricesServiceV2, SUPPORTED_CHAIN_IDS, @@ -11,4 +11,4 @@ export { resetSupportedNetworksCache, SPOT_PRICES_SUPPORT_INFO, getAssetId, -} from './codefi-v2'; +} from './codefi-v2.js'; diff --git a/packages/assets-controllers/src/token-service.test.ts b/packages/assets-controllers/src/token-service.test.ts index 5661e83422f..153e7376890 100644 --- a/packages/assets-controllers/src/token-service.test.ts +++ b/packages/assets-controllers/src/token-service.test.ts @@ -3,7 +3,7 @@ import type { CaipChainId } from '@metamask/utils'; import type { CaipAssetType } from '@metamask/utils'; import nock from 'nock'; -import type { SortTrendingBy } from './token-service'; +import type { SortTrendingBy } from './token-service.js'; import { fetchRwas, fetchTokenAssets, @@ -13,7 +13,7 @@ import { searchTokens, TOKEN_END_POINT_API, TOKEN_METADATA_NO_SUPPORT_ERROR, -} from './token-service'; +} from './token-service.js'; const ONE_MILLISECOND = 1; const ONE_SECOND_IN_MILLISECONDS = 1_000; diff --git a/packages/assets-controllers/src/token-service.ts b/packages/assets-controllers/src/token-service.ts index 2218fda8690..ed4a08fb25c 100644 --- a/packages/assets-controllers/src/token-service.ts +++ b/packages/assets-controllers/src/token-service.ts @@ -6,7 +6,7 @@ import { } from '@metamask/controller-utils'; import type { CaipAssetType, CaipChainId, Hex } from '@metamask/utils'; -import { isTokenListSupportedForNetwork } from './assetsUtil'; +import { isTokenListSupportedForNetwork } from './assetsUtil.js'; export const TOKEN_END_POINT_API = 'https://token.api.cx.metamask.io'; export const TOKEN_METADATA_NO_SUPPORT_ERROR = diff --git a/packages/assets-controllers/src/utils/create-batch-handler.test.ts b/packages/assets-controllers/src/utils/create-batch-handler.test.ts index d3ac6601bd2..f91763e4f78 100644 --- a/packages/assets-controllers/src/utils/create-batch-handler.test.ts +++ b/packages/assets-controllers/src/utils/create-batch-handler.test.ts @@ -1,4 +1,4 @@ -import { createBatchedHandler } from './create-batch-handler'; +import { createBatchedHandler } from './create-batch-handler.js'; const TEST_BATCH_MS = 50; diff --git a/packages/assets-controllers/src/utils/create-batch-handler.ts b/packages/assets-controllers/src/utils/create-batch-handler.ts index 4d202b9575d..f0bdc872ea2 100644 --- a/packages/assets-controllers/src/utils/create-batch-handler.ts +++ b/packages/assets-controllers/src/utils/create-batch-handler.ts @@ -1,4 +1,4 @@ -import { debounce } from 'lodash'; +import { debounce } from 'lodash-es'; type PendingSettler = { resolve: () => void; @@ -54,7 +54,7 @@ export function createBatchedHandler( return new Promise((resolve, reject) => { eventBuffer.push(arg); pendingSettlers.push({ resolve, reject }); - // eslint-disable-next-line @typescript-eslint/no-floating-promises -- Rejections are forwarded to capture() callers via pendingSettlers. + debouncedFlush(); }); }; diff --git a/packages/assets-controllers/src/utils/formatters.test.ts b/packages/assets-controllers/src/utils/formatters.test.ts index e3064ae8596..35badf5b32f 100644 --- a/packages/assets-controllers/src/utils/formatters.test.ts +++ b/packages/assets-controllers/src/utils/formatters.test.ts @@ -1,4 +1,4 @@ -import { createFormatters } from './formatters'; +import { createFormatters } from './formatters.js'; const locale = 'en-US'; diff --git a/packages/assets-controllers/src/utils/timeout-with-retry.test.ts b/packages/assets-controllers/src/utils/timeout-with-retry.test.ts index f39d212a164..e9bcb6a8356 100644 --- a/packages/assets-controllers/src/utils/timeout-with-retry.test.ts +++ b/packages/assets-controllers/src/utils/timeout-with-retry.test.ts @@ -1,5 +1,5 @@ -import { flushPromises } from '../../../../tests/helpers'; -import { timeoutWithRetry } from './timeout-with-retry'; +import { flushPromises } from '../../../../tests/helpers.js'; +import { timeoutWithRetry } from './timeout-with-retry.js'; describe('timeoutWithRetry', () => { const timeout = 1000; From 04d4c9fc40f9a99ccc04238f181bbc5991cc45ad Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:48:44 +0200 Subject: [PATCH 081/136] ESLint fix and `jest` global import for bridge-controller --- packages/bridge-controller/package.json | 2 +- .../bridge-controller-method-action-types.ts | 2 +- .../src/bridge-controller.sse.batch.test.ts | 26 +++--- .../src/bridge-controller.sse.test.ts | 72 +++++++---------- .../src/bridge-controller.test.ts | 61 +++++++------- .../src/bridge-controller.ts | 48 +++++------ .../bridge-controller/src/constants/bridge.ts | 4 +- .../bridge-controller/src/constants/swaps.ts | 2 +- .../bridge-controller/src/constants/tokens.ts | 4 +- packages/bridge-controller/src/index.ts | 79 ++++++++++--------- .../bridge-controller/src/selectors.test.ts | 30 ++++--- packages/bridge-controller/src/selectors.ts | 20 ++--- packages/bridge-controller/src/types.ts | 30 +++---- .../src/utils/assets.test.ts | 6 +- .../bridge-controller/src/utils/assets.ts | 6 +- .../src/utils/balance.test.ts | 6 +- .../bridge-controller/src/utils/balance.ts | 2 +- .../src/utils/bridge.test.ts | 10 +-- .../bridge-controller/src/utils/bridge.ts | 20 ++--- .../src/utils/caip-formatters.test.ts | 6 +- .../src/utils/caip-formatters.ts | 6 +- .../src/utils/feature-flags.test.ts | 6 +- .../src/utils/feature-flags.ts | 11 ++- .../bridge-controller/src/utils/fetch.test.ts | 15 ++-- packages/bridge-controller/src/utils/fetch.ts | 26 +++--- .../src/utils/metrics/properties.test.ts | 12 +-- .../src/utils/metrics/properties.ts | 20 ++--- .../src/utils/metrics/types.ts | 6 +- .../bridge-controller/src/utils/quote-fees.ts | 20 ++--- .../bridge-controller/src/utils/quote.test.ts | 12 +-- packages/bridge-controller/src/utils/quote.ts | 12 +-- .../bridge-controller/src/utils/slippage.ts | 4 +- .../bridge-controller/src/utils/snaps.test.ts | 2 +- packages/bridge-controller/src/utils/snaps.ts | 4 +- .../bridge-controller/src/utils/swaps.test.ts | 12 +-- packages/bridge-controller/src/utils/swaps.ts | 10 +-- .../src/utils/trade-utils.test.ts | 6 +- .../src/utils/trade-utils.ts | 2 +- .../src/validators/batch-sell.ts | 8 +- .../src/validators/intent.ts | 4 +- .../src/validators/quote-response-v1.ts | 10 +-- .../bridge-controller/src/validators/quote.ts | 8 +- .../bridge-controller/src/validators/step.ts | 2 +- .../src/validators/validators.test.ts | 14 ++-- .../tests/mock-quotes-erc20-erc20.ts | 8 +- .../tests/mock-quotes-erc20-native.ts | 10 +-- .../tests/mock-quotes-native-erc20-eth.ts | 10 +-- .../tests/mock-quotes-native-erc20.ts | 10 +-- .../tests/mock-quotes-sol-erc20.ts | 10 +-- packages/bridge-controller/tests/mock-sse.ts | 7 +- 50 files changed, 355 insertions(+), 368 deletions(-) diff --git a/packages/bridge-controller/package.json b/packages/bridge-controller/package.json index 38fd3e58797..b47424b8a7e 100644 --- a/packages/bridge-controller/package.json +++ b/packages/bridge-controller/package.json @@ -81,7 +81,7 @@ "deepmerge": "^4.2.2", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", - "lodash": "^4.17.21", + "lodash-es": "^4.17.21", "nock": "^13.3.1", "ts-jest": "^29.2.5", "tsx": "^4.20.5", diff --git a/packages/bridge-controller/src/bridge-controller-method-action-types.ts b/packages/bridge-controller/src/bridge-controller-method-action-types.ts index 0b592c95cd6..f10b7d816fe 100644 --- a/packages/bridge-controller/src/bridge-controller-method-action-types.ts +++ b/packages/bridge-controller/src/bridge-controller-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { BridgeController } from './bridge-controller'; +import type { BridgeController } from './bridge-controller.js'; export type BridgeControllerUpdateBridgeQuoteRequestParamsAction = { type: `BridgeController:updateBridgeQuoteRequestParams`; diff --git a/packages/bridge-controller/src/bridge-controller.sse.batch.test.ts b/packages/bridge-controller/src/bridge-controller.sse.batch.test.ts index 23baf3f531c..d9fe142058a 100644 --- a/packages/bridge-controller/src/bridge-controller.sse.batch.test.ts +++ b/packages/bridge-controller/src/bridge-controller.sse.batch.test.ts @@ -6,26 +6,26 @@ import type { MockAnyNamespace, } from '@metamask/messenger'; -import { flushPromises } from '../../../tests/helpers'; -import { mockBridgeQuotesErc20Erc20V1 } from '../tests/mock-quotes-erc20-erc20'; -import { mockBridgeQuotesNativeErc20V1 } from '../tests/mock-quotes-native-erc20'; +import { flushPromises } from '../../../tests/helpers.js'; +import { mockBridgeQuotesErc20Erc20V1 } from '../tests/mock-quotes-erc20-erc20.js'; +import { mockBridgeQuotesNativeErc20V1 } from '../tests/mock-quotes-native-erc20.js'; import { advanceToNthTimerThenFlush, mockSseBatchSellEventSource, -} from '../tests/mock-sse'; -import { BridgeController } from './bridge-controller'; +} from '../tests/mock-sse.js'; +import { BridgeController } from './bridge-controller.js'; import { BridgeClientId, BRIDGE_PROD_API_BASE_URL, DEFAULT_BRIDGE_CONTROLLER_STATE, -} from './constants/bridge'; -import * as selectors from './selectors'; -import { ChainId, RequestStatus } from './types'; -import type { BridgeControllerMessenger } from './types'; -import * as balanceUtils from './utils/balance'; -import * as featureFlagUtils from './utils/feature-flags'; -import * as fetchUtils from './utils/fetch'; -import { FeatureId } from './validators/feature-flags'; +} from './constants/bridge.js'; +import * as selectors from './selectors.js'; +import { ChainId, RequestStatus } from './types.js'; +import type { BridgeControllerMessenger } from './types.js'; +import * as balanceUtils from './utils/balance.js'; +import * as featureFlagUtils from './utils/feature-flags.js'; +import * as fetchUtils from './utils/fetch.js'; +import { FeatureId } from './validators/feature-flags.js'; type RootMessenger = Messenger< MockAnyNamespace, diff --git a/packages/bridge-controller/src/bridge-controller.sse.test.ts b/packages/bridge-controller/src/bridge-controller.sse.test.ts index e4a27087208..d06fc9d3758 100644 --- a/packages/bridge-controller/src/bridge-controller.sse.test.ts +++ b/packages/bridge-controller/src/bridge-controller.sse.test.ts @@ -9,10 +9,10 @@ import type { } from '@metamask/messenger'; import { abiERC20 } from '@metamask/metamask-eth-abis'; -import { flushPromises } from '../../../tests/helpers'; -import { mockBridgeQuotesErc20Erc20V1 } from '../tests/mock-quotes-erc20-erc20'; -import { mockBridgeQuotesNativeErc20V1 } from '../tests/mock-quotes-native-erc20'; -import { mockBridgeQuotesNativeErc20EthV1 } from '../tests/mock-quotes-native-erc20-eth'; +import { flushPromises } from '../../../tests/helpers.js'; +import { mockBridgeQuotesErc20Erc20V1 } from '../tests/mock-quotes-erc20-erc20.js'; +import { mockBridgeQuotesNativeErc20EthV1 } from '../tests/mock-quotes-native-erc20-eth.js'; +import { mockBridgeQuotesNativeErc20V1 } from '../tests/mock-quotes-native-erc20.js'; import { advanceToNthTimer, advanceToNthTimerThenFlush, @@ -21,24 +21,24 @@ import { mockSseEventSourceWithMultipleDelays, mockSseEventSourceWithWarnings, mockSseServerError, -} from '../tests/mock-sse'; -import { BridgeController } from './bridge-controller'; +} from '../tests/mock-sse.js'; +import { BridgeController } from './bridge-controller.js'; import { BridgeClientId, BRIDGE_PROD_API_BASE_URL, DEFAULT_BRIDGE_CONTROLLER_STATE, ETH_USDT_ADDRESS, -} from './constants/bridge'; -import { ChainId, RequestStatus } from './types'; -import type { BridgeControllerMessenger } from './types'; -import * as balanceUtils from './utils/balance'; -import { formatChainIdToDec } from './utils/caip-formatters'; -import * as featureFlagUtils from './utils/feature-flags'; -import * as fetchUtils from './utils/fetch'; -import { FeatureId } from './validators/feature-flags'; -import { QuoteStreamCompleteReason } from './validators/quote-stream-complete'; -import { TokenFeatureType } from './validators/token-feature'; -import type { TxData } from './validators/trade'; +} from './constants/bridge.js'; +import { ChainId, RequestStatus } from './types.js'; +import type { BridgeControllerMessenger } from './types.js'; +import * as balanceUtils from './utils/balance.js'; +import { formatChainIdToDec } from './utils/caip-formatters.js'; +import * as featureFlagUtils from './utils/feature-flags.js'; +import * as fetchUtils from './utils/fetch.js'; +import { FeatureId } from './validators/feature-flags.js'; +import { QuoteStreamCompleteReason } from './validators/quote-stream-complete.js'; +import { TokenFeatureType } from './validators/token-feature.js'; +import type { TxData } from './validators/trade.js'; type RootMessenger = Messenger< MockAnyNamespace, @@ -747,8 +747,8 @@ describe('BridgeController SSE', function () { quotesLastFetched: expect.any(Number), }); const t2 = bridgeController.state.quotesLastFetched; - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - expect(t2).toBeGreaterThan(t1!); + + expect(t2).toBeGreaterThan(t1); // After 2nd server event await advanceToNthTimerThenFlush(); @@ -852,10 +852,7 @@ describe('BridgeController SSE', function () { quotesLastFetched: Date.now(), assetExchangeRates, }); - expect( - bridgeController.state.quotesLastFetched, - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - ).toBeGreaterThan(t2!); + expect(bridgeController.state.quotesLastFetched).toBeGreaterThan(t2); expect(consoleLogSpy.mock.calls).toMatchInlineSnapshot(` [ [ @@ -942,8 +939,8 @@ describe('BridgeController SSE', function () { expect(bridgeController.state.quotesRefreshCount).toBe(3); expect(bridgeController.state.quotes).toStrictEqual([]); expect(consoleLogSpy).toHaveBeenCalledTimes(1); - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - expect(t5).toBeGreaterThan(t2!); + + expect(t5).toBeGreaterThan(t2); const expectedState = { ...DEFAULT_BRIDGE_CONTROLLER_STATE, quotesLoadingStatus: RequestStatus.LOADING, @@ -1020,10 +1017,7 @@ describe('BridgeController SSE', function () { ...expectedStateAfterFirstQuote, }); const t4 = bridgeController.state.quotesLastFetched; - expect(t4).toBe( - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - t5!, - ); + expect(t4).toBe(t5); // All other quotes are received await advanceToNthTimerThenFlush(3); expect(bridgeController.state).toStrictEqual({ @@ -1041,10 +1035,7 @@ describe('BridgeController SSE', function () { })), assetExchangeRates, }); - expect( - bridgeController.state.quotesLastFetched, - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - ).toBe(t4!); + expect(bridgeController.state.quotesLastFetched).toBe(t4); expect(consoleLogSpy).toHaveBeenCalledTimes(1); expect(fetchBridgeQuotesSpy).toHaveBeenCalledTimes(4); @@ -1166,10 +1157,7 @@ describe('BridgeController SSE', function () { await flushPromises(); const t4 = bridgeController.state.quotesLastFetched; - expect(t4).toBe( - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - t5!, - ); + expect(t4).toBe(t5); expect(bridgeController.state.quotesRefreshCount).toBe(0); expect(bridgeController.state.quotesLoadingStatus).toBe( RequestStatus.LOADING, @@ -1231,10 +1219,7 @@ describe('BridgeController SSE', function () { await advanceToNthTimerThenFlush(); expect(bridgeController.state).toStrictEqual(expectedState); const t7 = bridgeController.state.quotesLastFetched; - expect(t7).toBe( - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - t6!, - ); + expect(t7).toBe(t6); expect(consoleWarnSpy.mock.calls[0]).toMatchInlineSnapshot(` [ "Quote validation failed", @@ -1264,10 +1249,7 @@ describe('BridgeController SSE', function () { quotesRefreshCount: 2, quotesLoadingStatus: RequestStatus.FETCHED, }); - expect(bridgeController.state.quotesLastFetched).toBe( - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - t7!, - ); + expect(bridgeController.state.quotesLastFetched).toBe(t7); expect(consoleWarnSpy.mock.calls).toHaveLength(3); expect(consoleWarnSpy.mock.calls[1]).toMatchInlineSnapshot(` [ diff --git a/packages/bridge-controller/src/bridge-controller.test.ts b/packages/bridge-controller/src/bridge-controller.test.ts index dbdc5b1e964..16ac20a45f9 100644 --- a/packages/bridge-controller/src/bridge-controller.test.ts +++ b/packages/bridge-controller/src/bridge-controller.test.ts @@ -16,32 +16,35 @@ import type { import type { CaipAssetType } from '@metamask/utils'; import nock from 'nock'; -import { flushPromises } from '../../../tests/helpers'; -import { handleFetch } from '../../controller-utils/src'; -import { mockBridgeQuotesErc20NativeV1 } from '../tests/mock-quotes-erc20-native'; -import { mockBridgeQuotesNativeErc20V1 } from '../tests/mock-quotes-native-erc20'; -import { mockBridgeQuotesNativeErc20EthV1 } from '../tests/mock-quotes-native-erc20-eth'; -import { mockBridgeQuotesSolErc20V1 } from '../tests/mock-quotes-sol-erc20'; -import { advanceToNthTimerThenFlush } from '../tests/mock-sse'; -import { BridgeController } from './bridge-controller'; +import { flushPromises } from '../../../tests/helpers.js'; +import { handleFetch } from '../../controller-utils/src.js'; +import { mockBridgeQuotesErc20NativeV1 } from '../tests/mock-quotes-erc20-native.js'; +import { mockBridgeQuotesNativeErc20EthV1 } from '../tests/mock-quotes-native-erc20-eth.js'; +import { mockBridgeQuotesNativeErc20V1 } from '../tests/mock-quotes-native-erc20.js'; +import { mockBridgeQuotesSolErc20V1 } from '../tests/mock-quotes-sol-erc20.js'; +import { advanceToNthTimerThenFlush } from '../tests/mock-sse.js'; +import { BridgeController } from './bridge-controller.js'; import { BridgeClientId, BRIDGE_PROD_API_BASE_URL, DEFAULT_BRIDGE_CONTROLLER_STATE, ETH_USDT_ADDRESS, -} from './constants/bridge'; -import { SWAPS_API_V2_BASE_URL } from './constants/swaps'; -import * as selectors from './selectors'; -import { ChainId, RequestStatus, SortOrder, StatusTypes } from './types'; -import type { BridgeControllerMessenger, GenericQuoteRequest } from './types'; -import * as balanceUtils from './utils/balance'; -import { getNativeAssetForChainId, isSolanaChainId } from './utils/bridge'; +} from './constants/bridge.js'; +import { SWAPS_API_V2_BASE_URL } from './constants/swaps.js'; +import * as selectors from './selectors.js'; +import { ChainId, RequestStatus, SortOrder, StatusTypes } from './types.js'; +import type { + BridgeControllerMessenger, + GenericQuoteRequest, +} from './types.js'; +import * as balanceUtils from './utils/balance.js'; +import { getNativeAssetForChainId, isSolanaChainId } from './utils/bridge.js'; import { formatAddressToAssetId, formatChainIdToCaip, -} from './utils/caip-formatters'; -import * as featureFlagUtils from './utils/feature-flags'; -import * as fetchUtils from './utils/fetch'; +} from './utils/caip-formatters.js'; +import * as featureFlagUtils from './utils/feature-flags.js'; +import * as fetchUtils from './utils/fetch.js'; import { BatchSellMetricsEventName, BatchSellMetricsLocation, @@ -50,9 +53,9 @@ import { MetricsActionType, MetricsSwapType, UnifiedSwapBridgeEventName, -} from './utils/metrics/constants'; -import { FeatureId } from './validators/feature-flags'; -import type { QuoteResponseV1 } from './validators/quote-response-v1'; +} from './utils/metrics/constants.js'; +import { FeatureId } from './validators/feature-flags.js'; +import type { QuoteResponseV1 } from './validators/quote-response-v1.js'; const EMPTY_INIT_STATE = DEFAULT_BRIDGE_CONTROLLER_STATE; @@ -995,8 +998,8 @@ describe('BridgeController', function () { ); expect(fetchBridgeQuotesSpy).toHaveBeenCalledTimes(2); const secondFetchTime = bridgeController.state.quotesLastFetched; - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - expect(secondFetchTime).toBeGreaterThan(firstFetchTime!); + + expect(secondFetchTime).toBeGreaterThan(firstFetchTime); // After 3nd fetch throws an error jest.advanceTimersToNextTimer(); @@ -1019,10 +1022,9 @@ describe('BridgeController', function () { quotesRefreshCount: 3, }), ); - expect( - bridgeController.state.quotesLastFetched, - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - ).toBeGreaterThan(secondFetchTime!); + expect(bridgeController.state.quotesLastFetched).toBeGreaterThan( + secondFetchTime, + ); const thirdFetchTime = bridgeController.state.quotesLastFetched; // Incoming request update aborts current polling @@ -1065,10 +1067,7 @@ describe('BridgeController', function () { ...mockBridgeQuotesNativeErc20EthV1, ...mockBridgeQuotesNativeErc20EthV1, ]); - expect( - quotesLastFetched, - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - ).toBeGreaterThan(thirdFetchTime!); + expect(quotesLastFetched).toBeGreaterThan(thirdFetchTime); expect(hasSufficientBalanceSpy).toHaveBeenCalledTimes(1); expect(getLayer1GasFeeMock).not.toHaveBeenCalled(); diff --git a/packages/bridge-controller/src/bridge-controller.ts b/packages/bridge-controller/src/bridge-controller.ts index 8e81ad76817..48279450c32 100644 --- a/packages/bridge-controller/src/bridge-controller.ts +++ b/packages/bridge-controller/src/bridge-controller.ts @@ -10,22 +10,22 @@ import { StaticIntervalPollingController } from '@metamask/polling-controller'; import type { TransactionController } from '@metamask/transaction-controller'; import type { CaipAssetType, Hex } from '@metamask/utils'; -import type { BridgeClientId } from './constants/bridge'; +import type { BridgeClientId } from './constants/bridge.js'; import { BRIDGE_CONTROLLER_NAME, BRIDGE_PROD_API_BASE_URL, DEFAULT_BRIDGE_CONTROLLER_STATE, METABRIDGE_ETHEREUM_ADDRESS, REFRESH_INTERVAL_MS, -} from './constants/bridge'; -import { CHAIN_IDS } from './constants/chains'; -import { SWAPS_CONTRACT_ADDRESSES } from './constants/swaps'; -import { TraceName } from './constants/traces'; +} from './constants/bridge.js'; +import { CHAIN_IDS } from './constants/chains.js'; +import { SWAPS_CONTRACT_ADDRESSES } from './constants/swaps.js'; +import { TraceName } from './constants/traces.js'; import { ExchangeRateSourcesForLookup, selectIsAssetExchangeRateInState, -} from './selectors'; -import { RequestStatus } from './types'; +} from './selectors.js'; +import { RequestStatus } from './types.js'; import type { L1GasFees, GenericQuoteRequest, @@ -35,42 +35,42 @@ import type { BridgeControllerMessenger, FetchFunction, InputPrimaryDenomination, -} from './types'; -import { getAssetIdsForToken, toExchangeRates } from './utils/assets'; -import { hasSufficientBalance } from './utils/balance'; +} from './types.js'; +import { getAssetIdsForToken, toExchangeRates } from './utils/assets.js'; +import { hasSufficientBalance } from './utils/balance.js'; import { getDefaultBridgeControllerState, isCrossChain, isEthUsdt, isNonEvmChainId, isSolanaChainId, -} from './utils/bridge'; +} from './utils/bridge.js'; import { formatAddressToCaipReference, formatChainIdToCaip, formatChainIdToHex, -} from './utils/caip-formatters'; +} from './utils/caip-formatters.js'; import { getBridgeFeatureFlags, hasMinimumRequiredVersion, -} from './utils/feature-flags'; +} from './utils/feature-flags.js'; import { fetchAssetPrices, fetchBridgeQuotes, fetchBridgeQuoteStream, fetchBatchSellTrades, -} from './utils/fetch'; +} from './utils/fetch.js'; import { AbortReason, BatchSellMetricsEventName, MetaMetricsSwapsEventSource, MetricsActionType, UnifiedSwapBridgeEventName, -} from './utils/metrics/constants'; +} from './utils/metrics/constants.js'; import type { BridgeControllerMetricsEventName, BridgeControllerMetricsLocation, -} from './utils/metrics/constants'; +} from './utils/metrics/constants.js'; import { formatProviderLabel, getAccountHardwareType, @@ -79,22 +79,22 @@ import { isCustomSlippage, toInputChangedPropertyKey, toInputChangedPropertyValue, -} from './utils/metrics/properties'; +} from './utils/metrics/properties.js'; import type { QuoteFetchData, RequestMetadata, RequiredEventContextFromClient, -} from './utils/metrics/types'; -import type { CrossChainSwapsEventProperties } from './utils/metrics/types'; +} from './utils/metrics/types.js'; +import type { CrossChainSwapsEventProperties } from './utils/metrics/types.js'; +import { appendFeesToQuotes } from './utils/quote-fees.js'; import { isValidQuoteRequest, isValidBatchSellQuoteRequest, sortQuotes, -} from './utils/quote'; -import { appendFeesToQuotes } from './utils/quote-fees'; -import { getMinimumBalanceForRentExemptionInLamports } from './utils/snaps'; -import type { FeatureId } from './validators/feature-flags'; -import type { QuoteResponseV1 } from './validators/quote-response-v1'; +} from './utils/quote.js'; +import { getMinimumBalanceForRentExemptionInLamports } from './utils/snaps.js'; +import type { FeatureId } from './validators/feature-flags.js'; +import type { QuoteResponseV1 } from './validators/quote-response-v1.js'; const metadata: StateMetadata = { quoteRequest: { diff --git a/packages/bridge-controller/src/constants/bridge.ts b/packages/bridge-controller/src/constants/bridge.ts index 663253e2d4b..c9f25a3aa5d 100644 --- a/packages/bridge-controller/src/constants/bridge.ts +++ b/packages/bridge-controller/src/constants/bridge.ts @@ -5,8 +5,8 @@ import type { Hex } from '@metamask/utils'; import type { BridgeControllerState, FeatureFlagsPlatformConfig, -} from '../types'; -import { CHAIN_IDS } from './chains'; +} from '../types.js'; +import { CHAIN_IDS } from './chains.js'; export const ALLOWED_BRIDGE_CHAIN_IDS = [ CHAIN_IDS.MAINNET, diff --git a/packages/bridge-controller/src/constants/swaps.ts b/packages/bridge-controller/src/constants/swaps.ts index 1c968c2fef5..652634dc17f 100644 --- a/packages/bridge-controller/src/constants/swaps.ts +++ b/packages/bridge-controller/src/constants/swaps.ts @@ -1,6 +1,6 @@ import type { Hex } from '@metamask/utils'; -import { CHAIN_IDS } from './chains'; +import { CHAIN_IDS } from './chains.js'; export const SWAPS_API_V2_BASE_URL = 'https://swap.api.cx.metamask.io'; diff --git a/packages/bridge-controller/src/constants/tokens.ts b/packages/bridge-controller/src/constants/tokens.ts index f1b6615e2a5..ae26ea1c8b4 100644 --- a/packages/bridge-controller/src/constants/tokens.ts +++ b/packages/bridge-controller/src/constants/tokens.ts @@ -1,7 +1,7 @@ import { BtcScope, SolScope, TrxScope, XlmScope } from '@metamask/keyring-api'; -import type { AllowedBridgeChainIds } from './bridge'; -import { CHAIN_IDS } from './chains'; +import type { AllowedBridgeChainIds } from './bridge.js'; +import { CHAIN_IDS } from './chains.js'; export type SwapsTokenObject = { /** diff --git a/packages/bridge-controller/src/index.ts b/packages/bridge-controller/src/index.ts index 5bd78eb6e51..c2878523958 100644 --- a/packages/bridge-controller/src/index.ts +++ b/packages/bridge-controller/src/index.ts @@ -1,4 +1,4 @@ -export { BridgeController } from './bridge-controller'; +export { BridgeController } from './bridge-controller.js'; export { BatchSellMetricsEventName, @@ -9,10 +9,10 @@ export { InputAmountPreset, MetaMetricsSwapsEventSource, PollingStatus, -} from './utils/metrics/constants'; +} from './utils/metrics/constants.js'; -export type { BridgeControllerMetricsEventName } from './utils/metrics/constants'; -export type { BridgeControllerMetricsLocation } from './utils/metrics/constants'; +export type { BridgeControllerMetricsEventName } from './utils/metrics/constants.js'; +export type { BridgeControllerMetricsLocation } from './utils/metrics/constants.js'; export type { AccountHardwareType, @@ -25,7 +25,7 @@ export type { QuoteFetchData, QuoteWarning, InputPrimaryDenominationData, -} from './utils/metrics/types'; +} from './utils/metrics/types.js'; export { getAccountHardwareType, @@ -35,7 +35,7 @@ export { isHardwareWallet, isCustomSlippage, getQuotesReceivedProperties, -} from './utils/metrics/properties'; +} from './utils/metrics/properties.js'; export type { ChainConfiguration, @@ -67,7 +67,7 @@ export type { QuoteStreamCompleteData, BridgeControllerGetStateAction, BridgeControllerStateChangeEvent, -} from './types'; +} from './types.js'; export { AssetType, @@ -75,7 +75,7 @@ export { ChainId, RequestStatus, StatusTypes, -} from './types'; +} from './types.js'; export type { BridgeControllerUpdateBridgeQuoteRequestParamsAction, @@ -88,9 +88,9 @@ export type { BridgeControllerSetChainIntervalLengthAction, BridgeControllerTrackUnifiedSwapBridgeEventAction, BridgeControllerUpdateBatchSellTradesAction, -} from './bridge-controller-method-action-types'; +} from './bridge-controller-method-action-types.js'; -export { AbortReason } from './utils/metrics/constants'; +export { AbortReason } from './utils/metrics/constants.js'; export type { TxData, @@ -98,25 +98,25 @@ export type { TronTradeData, StellarTradeData, Trade, -} from './validators/trade'; +} from './validators/trade.js'; export { isBitcoinTrade, isTronTrade, isEvmTxData, isStellarTrade, -} from './validators/trade'; -export type { QuoteResponseV1 as QuoteResponse } from './validators/quote-response-v1'; -export type { Quote } from './validators/quote'; -export { FeeType, DiscountType } from './validators/quote'; -export { ActionTypes } from './validators/step'; +} from './validators/trade.js'; +export type { QuoteResponseV1 as QuoteResponse } from './validators/quote-response-v1.js'; +export type { Quote } from './validators/quote.js'; +export { FeeType, DiscountType } from './validators/quote.js'; +export { ActionTypes } from './validators/step.js'; export { validateQuoteStreamComplete, QuoteStreamCompleteReason, -} from './validators/quote-stream-complete'; -export { BatchSellTransactionType } from './validators/batch-sell'; -export { TokenFeatureType } from './validators/token-feature'; -export { BridgeAssetSchema } from './validators/bridge-asset'; -export { FeatureId } from './validators/feature-flags'; +} from './validators/quote-stream-complete.js'; +export { BatchSellTransactionType } from './validators/batch-sell.js'; +export { TokenFeatureType } from './validators/token-feature.js'; +export { BridgeAssetSchema } from './validators/bridge-asset.js'; +export { FeatureId } from './validators/feature-flags.js'; export { ALLOWED_BRIDGE_CHAIN_IDS, @@ -132,9 +132,9 @@ export { METABRIDGE_CHAIN_TO_ADDRESS_MAP, BRIDGE_DEV_API_BASE_URL, BRIDGE_PROD_API_BASE_URL, -} from './constants/bridge'; +} from './constants/bridge.js'; -export type { AllowedBridgeChainIds } from './constants/bridge'; +export type { AllowedBridgeChainIds } from './constants/bridge.js'; export { /** @@ -145,16 +145,19 @@ export { * @deprecated This map should not be used. Use getNativeAssetForChainId" } instead. */ SWAPS_CHAINID_DEFAULT_TOKEN_MAP, -} from './constants/tokens'; +} from './constants/tokens.js'; export { SWAPS_API_V2_BASE_URL, SWAPS_CONTRACT_ADDRESSES, SWAPS_WRAPPED_TOKENS_ADDRESSES, ALLOWED_CONTRACT_ADDRESSES, -} from './constants/swaps'; +} from './constants/swaps.js'; -export { MetricsActionType, MetricsSwapType } from './utils/metrics/constants'; +export { + MetricsActionType, + MetricsSwapType, +} from './utils/metrics/constants.js'; export { isEthUsdt, @@ -167,33 +170,33 @@ export { getNativeAssetForChainId, getDefaultBridgeControllerState, isCrossChain, -} from './utils/bridge'; +} from './utils/bridge.js'; export { isValidQuoteRequest, isValidBatchSellQuoteRequest, formatEtaInMinutes, calcSlippagePercentage, -} from './utils/quote'; +} from './utils/quote.js'; -export { calcLatestSrcBalance } from './utils/balance'; +export { calcLatestSrcBalance } from './utils/balance.js'; export { fetchBridgeTokens, getClientHeaders, fetchBridgeQuoteStream, -} from './utils/fetch'; +} from './utils/fetch.js'; -export { appendFeesToQuotes } from './utils/quote-fees'; +export { appendFeesToQuotes } from './utils/quote-fees.js'; export { formatChainIdToCaip, formatChainIdToHex, formatAddressToCaipReference, formatAddressToAssetId, -} from './utils/caip-formatters'; +} from './utils/caip-formatters.js'; -export { extractTradeData } from './utils/trade-utils'; +export { extractTradeData } from './utils/trade-utils.js'; export { selectBridgeQuotes, @@ -206,17 +209,17 @@ export { selectBridgeFeatureFlags, selectMinimumBalanceForRentExemptionInSOL, selectTokenWarnings, -} from './selectors'; +} from './selectors.js'; -export { DEFAULT_FEATURE_FLAG_CONFIG } from './constants/bridge'; +export { DEFAULT_FEATURE_FLAG_CONFIG } from './constants/bridge.js'; -export { getBridgeFeatureFlags } from './utils/feature-flags'; +export { getBridgeFeatureFlags } from './utils/feature-flags.js'; -export { BRIDGE_DEFAULT_SLIPPAGE } from './utils/slippage'; +export { BRIDGE_DEFAULT_SLIPPAGE } from './utils/slippage.js'; export { isValidSwapsContractAddress, getSwapsContractAddress, fetchTokens, type SwapsToken, -} from './utils/swaps'; +} from './utils/swaps.js'; diff --git a/packages/bridge-controller/src/selectors.test.ts b/packages/bridge-controller/src/selectors.test.ts index 03f12996ebe..e3037fdcd06 100644 --- a/packages/bridge-controller/src/selectors.test.ts +++ b/packages/bridge-controller/src/selectors.test.ts @@ -4,12 +4,12 @@ import { toHex } from '@metamask/controller-utils'; import { SolScope } from '@metamask/keyring-api'; import { parseCaipAssetType } from '@metamask/utils'; import { BigNumber } from 'bignumber.js'; -import { merge } from 'lodash'; +import { merge } from 'lodash-es'; -import { mockBridgeQuotesErc20Erc20V1 } from '../tests/mock-quotes-erc20-erc20'; -import { mockBridgeQuotesNativeErc20V1 } from '../tests/mock-quotes-native-erc20'; -import { DEFAULT_CHAIN_RANKING, ETH_USDT_ADDRESS } from './constants/bridge'; -import type { BridgeAppState } from './selectors'; +import { mockBridgeQuotesErc20Erc20V1 } from '../tests/mock-quotes-erc20-erc20.js'; +import { mockBridgeQuotesNativeErc20V1 } from '../tests/mock-quotes-native-erc20.js'; +import { DEFAULT_CHAIN_RANKING, ETH_USDT_ADDRESS } from './constants/bridge.js'; +import type { BridgeAppState } from './selectors.js'; import { selectExchangeRateByAssetId, selectIsAssetExchangeRateInState, @@ -21,25 +21,25 @@ import { selectTokenWarnings, selectBatchSellQuotes, selectBatchSellTrades, -} from './selectors'; +} from './selectors.js'; import { SortOrder, RequestStatus, ChainId, BridgeAsset, NonEvmFees, -} from './types'; -import { getNativeAssetForChainId, isNativeAddress } from './utils/bridge'; +} from './types.js'; +import { getNativeAssetForChainId, isNativeAddress } from './utils/bridge.js'; import { formatAddressToAssetId, formatAddressToCaipReference, formatChainIdToCaip, formatChainIdToDec, formatChainIdToHex, -} from './utils/caip-formatters'; -import { BatchSellTransactionType } from './validators/batch-sell'; -import type { QuoteResponseV1 } from './validators/quote-response-v1'; -import { validateQuoteResponseV1 } from './validators/quote-response-v1'; +} from './utils/caip-formatters.js'; +import { BatchSellTransactionType } from './validators/batch-sell.js'; +import type { QuoteResponseV1 } from './validators/quote-response-v1.js'; +import { validateQuoteResponseV1 } from './validators/quote-response-v1.js'; const MOCK_USDC_ADDRESS = '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'; const MOCK_MUSD_ADDRESS = '0x12345A7890123456789012345678901234567890'; @@ -347,8 +347,7 @@ describe('Bridge Selectors', () => { quotesLastFetched: Date.now() - 40000, // 40 seconds ago remoteFeatureFlags: { bridgeConfig: { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - ...(mockState.remoteFeatureFlags.bridgeConfig as any), + ...mockState.remoteFeatureFlags.bridgeConfig, chainRanking: [], chains: { '1': { @@ -382,8 +381,7 @@ describe('Bridge Selectors', () => { quotesLastFetched: Date.now() - 40000, // 40 seconds ago remoteFeatureFlags: { bridgeConfig: { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - ...(mockState.remoteFeatureFlags.bridgeConfig as any), + ...mockState.remoteFeatureFlags.bridgeConfig, chainRanking: [], chains: { '1': { diff --git a/packages/bridge-controller/src/selectors.ts b/packages/bridge-controller/src/selectors.ts index a9246b7bee5..8f1f93f663b 100644 --- a/packages/bridge-controller/src/selectors.ts +++ b/packages/bridge-controller/src/selectors.ts @@ -12,33 +12,33 @@ import type { import type { CaipAssetType } from '@metamask/utils'; import { isStrictHexString, parseCaipAssetType } from '@metamask/utils'; import { BigNumber } from 'bignumber.js'; -import { orderBy } from 'lodash'; +import { orderBy } from 'lodash-es'; import { createSelector as createSelector_, createStructuredSelector as createStructuredSelector_, } from 'reselect'; -import { BRIDGE_PREFERRED_GAS_ESTIMATE } from './constants/bridge'; +import { BRIDGE_PREFERRED_GAS_ESTIMATE } from './constants/bridge.js'; import type { BridgeControllerState, ExchangeRate, QuoteMetadata, TokenAmountValues, -} from './types'; -import { RequestStatus, SortOrder } from './types'; +} from './types.js'; +import { RequestStatus, SortOrder } from './types.js'; import { getNativeAssetForChainId, isEvmQuoteResponse, isNativeAddress, isNonEvmChainId, -} from './utils/bridge'; +} from './utils/bridge.js'; import { formatAddressToAssetId, formatAddressToCaipReference, formatChainIdToCaip, formatChainIdToHex, -} from './utils/caip-formatters'; -import { processFeatureFlags } from './utils/feature-flags'; +} from './utils/caip-formatters.js'; +import { processFeatureFlags } from './utils/feature-flags.js'; import { calcAdjustedReturn, calcCost, @@ -52,9 +52,9 @@ import { calcTotalEstimatedNetworkFee, calcTotalMaxNetworkFee, calcBatchFees, -} from './utils/quote'; -import { getDefaultSlippagePercentage } from './utils/slippage'; -import type { QuoteResponseV1 } from './validators/quote-response-v1'; +} from './utils/quote.js'; +import { getDefaultSlippagePercentage } from './utils/slippage.js'; +import type { QuoteResponseV1 } from './validators/quote-response-v1.js'; /** * The controller states that provide exchange rates diff --git a/packages/bridge-controller/src/types.ts b/packages/bridge-controller/src/types.ts index d0228f874ac..1bd51a28d4e 100644 --- a/packages/bridge-controller/src/types.ts +++ b/packages/bridge-controller/src/types.ts @@ -27,25 +27,25 @@ import type { Hex, } from '@metamask/utils'; -import type { BridgeController } from './bridge-controller'; -import type { BridgeControllerMethodActions } from './bridge-controller-method-action-types'; -import type { BRIDGE_CONTROLLER_NAME } from './constants/bridge'; -import type { SimulatedGasFeeLimitsSchema } from './validators/batch-sell'; -import type { BatchSellTradesResponseSchema } from './validators/batch-sell'; -import type { BridgeAssetSchema } from './validators/bridge-asset'; +import type { BridgeControllerMethodActions } from './bridge-controller-method-action-types.js'; +import type { BridgeController } from './bridge-controller.js'; +import type { BRIDGE_CONTROLLER_NAME } from './constants/bridge.js'; +import type { SimulatedGasFeeLimitsSchema } from './validators/batch-sell.js'; +import type { BatchSellTradesResponseSchema } from './validators/batch-sell.js'; +import type { BridgeAssetSchema } from './validators/bridge-asset.js'; import type { ChainConfigurationSchema, ChainRankingSchema, PlatformConfigSchema, -} from './validators/feature-flags'; -import type { IntentSchema } from './validators/intent'; -import type { TxFeeGasLimitsSchema } from './validators/quote'; -import type { FeeDataSchema } from './validators/quote'; -import type { GaslessPropertiesSchema } from './validators/quote'; -import type { QuoteResponseV1 } from './validators/quote-response-v1'; -import type { QuoteStreamCompleteSchema } from './validators/quote-stream-complete'; -import type { StepSchema } from './validators/step'; -import type { TokenFeatureSchema } from './validators/token-feature'; +} from './validators/feature-flags.js'; +import type { IntentSchema } from './validators/intent.js'; +import type { QuoteResponseV1 } from './validators/quote-response-v1.js'; +import type { QuoteStreamCompleteSchema } from './validators/quote-stream-complete.js'; +import type { TxFeeGasLimitsSchema } from './validators/quote.js'; +import type { FeeDataSchema } from './validators/quote.js'; +import type { GaslessPropertiesSchema } from './validators/quote.js'; +import type { StepSchema } from './validators/step.js'; +import type { TokenFeatureSchema } from './validators/token-feature.js'; export type FetchFunction = ( input: RequestInfo | URL | string, diff --git a/packages/bridge-controller/src/utils/assets.test.ts b/packages/bridge-controller/src/utils/assets.test.ts index e51a9e0a3dd..8e85e00e726 100644 --- a/packages/bridge-controller/src/utils/assets.test.ts +++ b/packages/bridge-controller/src/utils/assets.test.ts @@ -1,8 +1,8 @@ import type { CaipAssetType } from '@metamask/utils'; -import { getAssetIdsForToken, toExchangeRates } from './assets'; -import { getNativeAssetForChainId } from './bridge'; -import { formatAddressToAssetId } from './caip-formatters'; +import { getAssetIdsForToken, toExchangeRates } from './assets.js'; +import { getNativeAssetForChainId } from './bridge.js'; +import { formatAddressToAssetId } from './caip-formatters.js'; // Mock the imported functions jest.mock('./bridge', () => ({ diff --git a/packages/bridge-controller/src/utils/assets.ts b/packages/bridge-controller/src/utils/assets.ts index 41bc81f3f50..db540aa01eb 100644 --- a/packages/bridge-controller/src/utils/assets.ts +++ b/packages/bridge-controller/src/utils/assets.ts @@ -1,8 +1,8 @@ import type { CaipAssetType } from '@metamask/utils'; -import type { ExchangeRate, GenericQuoteRequest } from '../types'; -import { getNativeAssetForChainId } from './bridge'; -import { formatAddressToAssetId } from './caip-formatters'; +import type { ExchangeRate, GenericQuoteRequest } from '../types.js'; +import { getNativeAssetForChainId } from './bridge.js'; +import { formatAddressToAssetId } from './caip-formatters.js'; export const getAssetIdsForToken = ( tokenAddress: GenericQuoteRequest['srcTokenAddress'], diff --git a/packages/bridge-controller/src/utils/balance.test.ts b/packages/bridge-controller/src/utils/balance.test.ts index f3db1e42a5f..9bea4dbf5f7 100644 --- a/packages/bridge-controller/src/utils/balance.test.ts +++ b/packages/bridge-controller/src/utils/balance.test.ts @@ -5,9 +5,9 @@ import { Web3Provider } from '@ethersproject/providers'; import { abiERC20 } from '@metamask/metamask-eth-abis'; import type { Provider } from '@metamask/network-controller'; -import { FakeProvider } from '../../../../tests/fake-provider'; -import * as balanceUtils from './balance'; -import { fetchTokenBalance } from './balance'; +import { FakeProvider } from '../../../../tests/fake-provider.js'; +import * as balanceUtils from './balance.js'; +import { fetchTokenBalance } from './balance.js'; declare global { var ethereumProvider: Provider; diff --git a/packages/bridge-controller/src/utils/balance.ts b/packages/bridge-controller/src/utils/balance.ts index 56eb212f5f4..4120c1d11d4 100644 --- a/packages/bridge-controller/src/utils/balance.ts +++ b/packages/bridge-controller/src/utils/balance.ts @@ -6,7 +6,7 @@ import { abiERC20 } from '@metamask/metamask-eth-abis'; import type { Provider } from '@metamask/network-controller'; import type { Hex } from '@metamask/utils'; -import { isNativeAddress } from './bridge'; +import { isNativeAddress } from './bridge.js'; export const fetchTokenBalance = async ( address: string, diff --git a/packages/bridge-controller/src/utils/bridge.test.ts b/packages/bridge-controller/src/utils/bridge.test.ts index f24dea769ae..360b53cc3c1 100644 --- a/packages/bridge-controller/src/utils/bridge.test.ts +++ b/packages/bridge-controller/src/utils/bridge.test.ts @@ -4,10 +4,10 @@ import type { Hex } from '@metamask/utils'; import { ETH_USDT_ADDRESS, METABRIDGE_ETHEREUM_ADDRESS, -} from '../constants/bridge'; -import { CHAIN_IDS } from '../constants/chains'; -import { SWAPS_CHAINID_DEFAULT_TOKEN_MAP } from '../constants/tokens'; -import { ChainId } from '../types'; +} from '../constants/bridge.js'; +import { CHAIN_IDS } from '../constants/chains.js'; +import { SWAPS_CHAINID_DEFAULT_TOKEN_MAP } from '../constants/tokens.js'; +import { ChainId } from '../types.js'; import { getNativeAssetForChainId, isBitcoinChainId, @@ -19,7 +19,7 @@ import { isSwapsDefaultTokenAddress, isSwapsDefaultTokenSymbol, sumHexes, -} from './bridge'; +} from './bridge.js'; describe('Bridge utils', () => { beforeEach(() => { diff --git a/packages/bridge-controller/src/utils/bridge.ts b/packages/bridge-controller/src/utils/bridge.ts index a51bf2d4eff..09cd6e23ad0 100644 --- a/packages/bridge-controller/src/utils/bridge.ts +++ b/packages/bridge-controller/src/utils/bridge.ts @@ -10,27 +10,27 @@ import { DEFAULT_BRIDGE_CONTROLLER_STATE, ETH_USDT_ADDRESS, METABRIDGE_ETHEREUM_ADDRESS, -} from '../constants/bridge'; -import { CHAIN_IDS } from '../constants/chains'; -import { SWAPS_CONTRACT_ADDRESSES } from '../constants/swaps'; +} from '../constants/bridge.js'; +import { CHAIN_IDS } from '../constants/chains.js'; +import { SWAPS_CONTRACT_ADDRESSES } from '../constants/swaps.js'; import { SWAPS_CHAINID_DEFAULT_TOKEN_MAP, SYMBOL_TO_SLIP44_MAP, -} from '../constants/tokens'; -import type { SupportedSwapsNativeCurrencySymbols } from '../constants/tokens'; +} from '../constants/tokens.js'; +import type { SupportedSwapsNativeCurrencySymbols } from '../constants/tokens.js'; import type { BridgeAsset, BridgeControllerState, GenericQuoteRequest, -} from '../types'; -import { ChainId } from '../types'; -import type { QuoteResponseV1 } from '../validators/quote-response-v1'; -import type { TxData } from '../validators/trade'; +} from '../types.js'; +import { ChainId } from '../types.js'; +import type { QuoteResponseV1 } from '../validators/quote-response-v1.js'; +import type { TxData } from '../validators/trade.js'; import { formatChainIdToCaip, formatChainIdToDec, formatChainIdToHex, -} from './caip-formatters'; +} from './caip-formatters.js'; /** * Checks whether the transaction is a cross-chain transaction by comparing the source and destination chainIds diff --git a/packages/bridge-controller/src/utils/caip-formatters.test.ts b/packages/bridge-controller/src/utils/caip-formatters.test.ts index 3f91b91bfca..4f373cf1693 100644 --- a/packages/bridge-controller/src/utils/caip-formatters.test.ts +++ b/packages/bridge-controller/src/utils/caip-formatters.test.ts @@ -1,15 +1,15 @@ import { AddressZero } from '@ethersproject/constants'; import { BtcScope, SolScope, TrxScope, XlmScope } from '@metamask/keyring-api'; -import { CHAIN_IDS } from '../constants/chains'; -import { ChainId } from '../types'; +import { CHAIN_IDS } from '../constants/chains.js'; +import { ChainId } from '../types.js'; import { formatChainIdToCaip, formatChainIdToDec, formatChainIdToHex, formatAddressToCaipReference, formatAddressToAssetId, -} from './caip-formatters'; +} from './caip-formatters.js'; describe('CAIP Formatters', () => { describe('formatChainIdToCaip', () => { diff --git a/packages/bridge-controller/src/utils/caip-formatters.ts b/packages/bridge-controller/src/utils/caip-formatters.ts index eec21f2c74f..c3626eb79c2 100644 --- a/packages/bridge-controller/src/utils/caip-formatters.ts +++ b/packages/bridge-controller/src/utils/caip-formatters.ts @@ -18,8 +18,8 @@ import { } from '@metamask/utils'; import type { CaipAssetType, CaipChainId, Hex } from '@metamask/utils'; -import type { GenericQuoteRequest } from '../types'; -import { ChainId } from '../types'; +import type { GenericQuoteRequest } from '../types.js'; +import { ChainId } from '../types.js'; import { getNativeAssetForChainId, isBitcoinChainId, @@ -27,7 +27,7 @@ import { isSolanaChainId, isStellarChainId, isTronChainId, -} from './bridge'; +} from './bridge.js'; /** * Converts a chainId to a CaipChainId diff --git a/packages/bridge-controller/src/utils/feature-flags.test.ts b/packages/bridge-controller/src/utils/feature-flags.test.ts index 0ae8082d461..3ec28a6ac18 100644 --- a/packages/bridge-controller/src/utils/feature-flags.test.ts +++ b/packages/bridge-controller/src/utils/feature-flags.test.ts @@ -1,13 +1,13 @@ -import { DEFAULT_CHAIN_RANKING } from '../constants/bridge'; +import { DEFAULT_CHAIN_RANKING } from '../constants/bridge.js'; import type { FeatureFlagsPlatformConfig, BridgeControllerMessenger, -} from '../types'; +} from '../types.js'; import { formatFeatureFlags, getBridgeFeatureFlags, hasMinimumRequiredVersion, -} from './feature-flags'; +} from './feature-flags.js'; describe('feature-flags', () => { describe('formatFeatureFlags', () => { diff --git a/packages/bridge-controller/src/utils/feature-flags.ts b/packages/bridge-controller/src/utils/feature-flags.ts index b0aedd5197f..d4f304e7df0 100644 --- a/packages/bridge-controller/src/utils/feature-flags.ts +++ b/packages/bridge-controller/src/utils/feature-flags.ts @@ -3,10 +3,13 @@ import type { RemoteFeatureFlagControllerState } from '@metamask/remote-feature- import { DEFAULT_CHAIN_RANKING, DEFAULT_FEATURE_FLAG_CONFIG, -} from '../constants/bridge'; -import type { FeatureFlagsPlatformConfig, ChainConfiguration } from '../types'; -import { validateFeatureFlagsResponse } from '../validators/feature-flags'; -import { formatChainIdToCaip } from './caip-formatters'; +} from '../constants/bridge.js'; +import type { + FeatureFlagsPlatformConfig, + ChainConfiguration, +} from '../types.js'; +import { validateFeatureFlagsResponse } from '../validators/feature-flags.js'; +import { formatChainIdToCaip } from './caip-formatters.js'; export const formatFeatureFlags = ( bridgeFeatureFlags: FeatureFlagsPlatformConfig, diff --git a/packages/bridge-controller/src/utils/fetch.test.ts b/packages/bridge-controller/src/utils/fetch.test.ts index 62f058af5c2..e6794054ab9 100644 --- a/packages/bridge-controller/src/utils/fetch.test.ts +++ b/packages/bridge-controller/src/utils/fetch.test.ts @@ -1,18 +1,21 @@ import { AddressZero } from '@ethersproject/constants'; import type { CaipAssetType } from '@metamask/utils'; -import { mockBridgeQuotesErc20Erc20V1 } from '../../tests/mock-quotes-erc20-erc20'; -import { mockBridgeQuotesNativeErc20V1 } from '../../tests/mock-quotes-native-erc20'; -import { BridgeClientId, BRIDGE_PROD_API_BASE_URL } from '../constants/bridge'; -import { BatchSellTransactionType } from '../validators/batch-sell'; -import { FeatureId } from '../validators/feature-flags'; +import { mockBridgeQuotesErc20Erc20V1 } from '../../tests/mock-quotes-erc20-erc20.js'; +import { mockBridgeQuotesNativeErc20V1 } from '../../tests/mock-quotes-native-erc20.js'; +import { + BridgeClientId, + BRIDGE_PROD_API_BASE_URL, +} from '../constants/bridge.js'; +import { BatchSellTransactionType } from '../validators/batch-sell.js'; +import { FeatureId } from '../validators/feature-flags.js'; import { fetchBridgeQuotes, fetchBridgeTokens, fetchAssetPrices, fetchBatchSellTrades, formatBatchSellTradesRequest, -} from './fetch'; +} from './fetch.js'; const mockFetchFn = jest.fn(); diff --git a/packages/bridge-controller/src/utils/fetch.ts b/packages/bridge-controller/src/utils/fetch.ts index b63b4d15dd9..d8f60476941 100644 --- a/packages/bridge-controller/src/utils/fetch.ts +++ b/packages/bridge-controller/src/utils/fetch.ts @@ -11,23 +11,23 @@ import type { QuoteStreamCompleteData, BatchSellTradesRequest, BatchSellTradesResponse, -} from '../types'; -import { validateBatchSellTradesResponse } from '../validators/batch-sell'; -import { validateBridgeAsset } from '../validators/bridge-asset'; -import type { FeatureId } from '../validators/feature-flags'; -import type { QuoteResponseV1 } from '../validators/quote-response-v1'; -import { validateQuoteResponseV1 } from '../validators/quote-response-v1'; -import { validateQuoteStreamComplete } from '../validators/quote-stream-complete'; -import { validateTokenFeature } from '../validators/token-feature'; -import { isEvmTxData } from '../validators/trade'; -import { getEthUsdtResetData } from './bridge'; +} from '../types.js'; +import { validateBatchSellTradesResponse } from '../validators/batch-sell.js'; +import { validateBridgeAsset } from '../validators/bridge-asset.js'; +import type { FeatureId } from '../validators/feature-flags.js'; +import type { QuoteResponseV1 } from '../validators/quote-response-v1.js'; +import { validateQuoteResponseV1 } from '../validators/quote-response-v1.js'; +import { validateQuoteStreamComplete } from '../validators/quote-stream-complete.js'; +import { validateTokenFeature } from '../validators/token-feature.js'; +import { isEvmTxData } from '../validators/trade.js'; +import { getEthUsdtResetData } from './bridge.js'; import { formatAddressToAssetId, formatAddressToCaipReference, formatChainIdToDec, -} from './caip-formatters'; -import { fetchServerEvents } from './fetch-server-events'; -import { formatStructErrors } from './struct-error'; +} from './caip-formatters.js'; +import { fetchServerEvents } from './fetch-server-events.js'; +import { formatStructErrors } from './struct-error.js'; export const getClientHeaders = ({ clientId, diff --git a/packages/bridge-controller/src/utils/metrics/properties.test.ts b/packages/bridge-controller/src/utils/metrics/properties.test.ts index 7c46242b872..c7d4551f0ea 100644 --- a/packages/bridge-controller/src/utils/metrics/properties.test.ts +++ b/packages/bridge-controller/src/utils/metrics/properties.test.ts @@ -1,11 +1,11 @@ import { SolScope } from '@metamask/keyring-api'; import type { CaipChainId } from '@metamask/utils'; -import type { QuoteMetadata } from '../../types'; -import type { QuoteResponseV1 } from '../../validators/quote-response-v1'; -import { getNativeAssetForChainId } from '../bridge'; -import { formatChainIdToCaip } from '../caip-formatters'; -import { MetricsSwapType } from './constants'; +import type { QuoteMetadata } from '../../types.js'; +import type { QuoteResponseV1 } from '../../validators/quote-response-v1.js'; +import { getNativeAssetForChainId } from '../bridge.js'; +import { formatChainIdToCaip } from '../caip-formatters.js'; +import { MetricsSwapType } from './constants.js'; import { getAccountHardwareType, isHardwareWallet, @@ -15,7 +15,7 @@ import { formatProviderLabel, getRequestParams, getQuotesReceivedProperties, -} from './properties'; +} from './properties.js'; describe('properties', () => { beforeEach(() => { diff --git a/packages/bridge-controller/src/utils/metrics/properties.ts b/packages/bridge-controller/src/utils/metrics/properties.ts index 9c0b45989a3..09db420acb7 100644 --- a/packages/bridge-controller/src/utils/metrics/properties.ts +++ b/packages/bridge-controller/src/utils/metrics/properties.ts @@ -1,29 +1,29 @@ /* eslint-disable @typescript-eslint/explicit-function-return-type */ import type { AccountsControllerState } from '@metamask/accounts-controller'; -import { DEFAULT_BRIDGE_CONTROLLER_STATE } from '../../constants/bridge'; -import { ChainId } from '../../types'; +import { DEFAULT_BRIDGE_CONTROLLER_STATE } from '../../constants/bridge.js'; +import { ChainId } from '../../types.js'; import type { GenericQuoteRequest, QuoteMetadata, QuoteRequest, -} from '../../types'; -import { FeatureId } from '../../validators/feature-flags'; -import type { QuoteResponseV1 } from '../../validators/quote-response-v1'; -import type { TxData } from '../../validators/trade'; -import { getNativeAssetForChainId, isCrossChain } from '../bridge'; +} from '../../types.js'; +import { FeatureId } from '../../validators/feature-flags.js'; +import type { QuoteResponseV1 } from '../../validators/quote-response-v1.js'; +import type { TxData } from '../../validators/trade.js'; +import { getNativeAssetForChainId, isCrossChain } from '../bridge.js'; import { formatAddressToAssetId, formatChainIdToCaip, -} from '../caip-formatters'; -import { MetricsSwapType } from './constants'; +} from '../caip-formatters.js'; +import { MetricsSwapType } from './constants.js'; import type { AccountHardwareType, InputKeys, InputValues, QuoteWarning, RequestParams, -} from './types'; +} from './types.js'; export const toInputChangedPropertyKey: Partial< Record diff --git a/packages/bridge-controller/src/utils/metrics/types.ts b/packages/bridge-controller/src/utils/metrics/types.ts index 62f27713716..cb0db21ce21 100644 --- a/packages/bridge-controller/src/utils/metrics/types.ts +++ b/packages/bridge-controller/src/utils/metrics/types.ts @@ -5,8 +5,8 @@ import type { InputPrimaryDenomination, SortOrder, StatusTypes, -} from '../../types'; -import type { FeatureId } from '../../validators/feature-flags'; +} from '../../types.js'; +import type { FeatureId } from '../../validators/feature-flags.js'; import type { UnifiedSwapBridgeEventName, BatchSellMetricsEventName, @@ -16,7 +16,7 @@ import type { MetricsActionType, MetricsSwapType, PollingStatus, -} from './constants'; +} from './constants.js'; /** * These properties map to properties required by the segment-schema. For example: https://github.com/Consensys/segment-schema/blob/main/libraries/properties/cross-chain-swaps-action.yaml diff --git a/packages/bridge-controller/src/utils/quote-fees.ts b/packages/bridge-controller/src/utils/quote-fees.ts index a6f639655ca..56023454c9b 100644 --- a/packages/bridge-controller/src/utils/quote-fees.ts +++ b/packages/bridge-controller/src/utils/quote-fees.ts @@ -2,19 +2,19 @@ import type { InternalAccount } from '@metamask/keyring-internal-api'; import type { TransactionController } from '@metamask/transaction-controller'; import { numberToHex } from '@metamask/utils'; -import { CHAIN_IDS } from '../constants/chains'; +import { CHAIN_IDS } from '../constants/chains.js'; import type { L1GasFees, NonEvmFees, BridgeControllerMessenger, -} from '../types'; -import type { QuoteResponseV1 } from '../validators/quote-response-v1'; -import { isTronTrade } from '../validators/trade'; -import type { TxData } from '../validators/trade'; -import { isNonEvmChainId, sumHexes } from './bridge'; -import { formatChainIdToCaip } from './caip-formatters'; -import { computeFeeRequest } from './snaps'; -import { extractTradeData } from './trade-utils'; +} from '../types.js'; +import type { QuoteResponseV1 } from '../validators/quote-response-v1.js'; +import { isTronTrade } from '../validators/trade.js'; +import type { TxData } from '../validators/trade.js'; +import { isNonEvmChainId, sumHexes } from './bridge.js'; +import { formatChainIdToCaip } from './caip-formatters.js'; +import { computeFeeRequest } from './snaps.js'; +import { extractTradeData } from './trade-utils.js'; /** * Appends transaction fees for EVM chains to quotes @@ -59,7 +59,7 @@ const appendL1GasFees = async ( }) : '0x0'; const tradeL1GasFees = await getLayer1GasFee({ - transactionParams: getTxParams(trade as TxData), + transactionParams: getTxParams(trade), chainId, }); diff --git a/packages/bridge-controller/src/utils/quote.test.ts b/packages/bridge-controller/src/utils/quote.test.ts index 4113818c892..4866d6fdff1 100644 --- a/packages/bridge-controller/src/utils/quote.test.ts +++ b/packages/bridge-controller/src/utils/quote.test.ts @@ -2,10 +2,10 @@ import { AddressZero } from '@ethersproject/constants'; import { convertHexToDecimal } from '@metamask/controller-utils'; import { BigNumber } from 'bignumber.js'; -import type { GenericQuoteRequest, NonEvmFees, L1GasFees } from '../types'; -import type { Quote } from '../validators/quote'; -import type { QuoteResponseV1 } from '../validators/quote-response-v1'; -import type { TxData } from '../validators/trade'; +import type { GenericQuoteRequest, NonEvmFees, L1GasFees } from '../types.js'; +import type { QuoteResponseV1 } from '../validators/quote-response-v1.js'; +import type { Quote } from '../validators/quote.js'; +import type { TxData } from '../validators/trade.js'; import { isValidQuoteRequest, getQuoteIdentifier, @@ -21,7 +21,7 @@ import { calcCost, formatEtaInMinutes, calcSlippagePercentage, -} from './quote'; +} from './quote.js'; describe('Quote Utils', () => { describe('isValidQuoteRequest', () => { @@ -500,7 +500,7 @@ describe('Quote Metadata Utils', () => { ...mockBridgeQuote, trade: { gasLimit: 21000, effectiveGas: 10000 }, approval: { gasLimit: 46000, effectiveGas: 20000 }, - } as QuoteResponseV1 & L1GasFees, + }, feePerGasInDecGwei: '52', maxFeePerGasInDecGwei: '102', exchangeRate: '2000', diff --git a/packages/bridge-controller/src/utils/quote.ts b/packages/bridge-controller/src/utils/quote.ts index fec1a84538e..f43510e79e1 100644 --- a/packages/bridge-controller/src/utils/quote.ts +++ b/packages/bridge-controller/src/utils/quote.ts @@ -13,12 +13,12 @@ import type { L1GasFees, QuoteMetadata, NonEvmFees, -} from '../types'; -import { FeatureId } from '../validators/feature-flags'; -import type { Quote } from '../validators/quote'; -import type { QuoteResponseV1 } from '../validators/quote-response-v1'; -import { TxData } from '../validators/trade'; -import { isNativeAddress, isNonEvmChainId } from './bridge'; +} from '../types.js'; +import { FeatureId } from '../validators/feature-flags.js'; +import type { QuoteResponseV1 } from '../validators/quote-response-v1.js'; +import type { Quote } from '../validators/quote.js'; +import { TxData } from '../validators/trade.js'; +import { isNativeAddress, isNonEvmChainId } from './bridge.js'; export const isValidQuoteRequest = ( partialRequest: Partial, diff --git a/packages/bridge-controller/src/utils/slippage.ts b/packages/bridge-controller/src/utils/slippage.ts index 75076a0ac11..9134438fb51 100644 --- a/packages/bridge-controller/src/utils/slippage.ts +++ b/packages/bridge-controller/src/utils/slippage.ts @@ -1,5 +1,5 @@ -import type { GenericQuoteRequest } from '../types'; -import { isCrossChain, isSolanaChainId } from './bridge'; +import type { GenericQuoteRequest } from '../types.js'; +import { isCrossChain, isSolanaChainId } from './bridge.js'; export const BRIDGE_DEFAULT_SLIPPAGE = 0.5; const SWAP_SOLANA_SLIPPAGE = undefined; diff --git a/packages/bridge-controller/src/utils/snaps.test.ts b/packages/bridge-controller/src/utils/snaps.test.ts index 3ae39c081eb..a561ac4eecb 100644 --- a/packages/bridge-controller/src/utils/snaps.test.ts +++ b/packages/bridge-controller/src/utils/snaps.test.ts @@ -4,7 +4,7 @@ import { v4 as uuid } from 'uuid'; import { getMinimumBalanceForRentExemptionRequest, computeFeeRequest, -} from './snaps'; +} from './snaps.js'; jest.mock('uuid', () => ({ v4: jest.fn(), diff --git a/packages/bridge-controller/src/utils/snaps.ts b/packages/bridge-controller/src/utils/snaps.ts index 6c8badf6024..2787612e770 100644 --- a/packages/bridge-controller/src/utils/snaps.ts +++ b/packages/bridge-controller/src/utils/snaps.ts @@ -2,8 +2,8 @@ import { SolScope } from '@metamask/keyring-api'; import type { CaipChainId } from '@metamask/utils'; import { v4 as uuid } from 'uuid'; -import { DEFAULT_BRIDGE_CONTROLLER_STATE } from '../constants/bridge'; -import type { BridgeControllerMessenger } from '../types'; +import { DEFAULT_BRIDGE_CONTROLLER_STATE } from '../constants/bridge.js'; +import type { BridgeControllerMessenger } from '../types.js'; export const getMinimumBalanceForRentExemptionRequest = (snapId: string) => { return { diff --git a/packages/bridge-controller/src/utils/swaps.test.ts b/packages/bridge-controller/src/utils/swaps.test.ts index 336f6159f41..ea4fcad48f0 100644 --- a/packages/bridge-controller/src/utils/swaps.test.ts +++ b/packages/bridge-controller/src/utils/swaps.test.ts @@ -1,22 +1,22 @@ import type { Hex } from '@metamask/utils'; -import { CHAIN_IDS } from '../constants/chains'; +import { CHAIN_IDS } from '../constants/chains.js'; import { ALLOWED_CONTRACT_ADDRESSES, SWAPS_CONTRACT_ADDRESSES, -} from '../constants/swaps'; +} from '../constants/swaps.js'; import { DEFAULT_TOKEN_ADDRESS, SWAPS_CHAINID_DEFAULT_TOKEN_MAP, -} from '../constants/tokens'; -import type { FetchFunction } from '../types'; +} from '../constants/tokens.js'; +import type { FetchFunction } from '../types.js'; import { API_BASE_URL, fetchTokens, getSwapsContractAddress, isValidSwapsContractAddress, -} from './swaps'; -import type { SwapsToken } from './swaps'; +} from './swaps.js'; +import type { SwapsToken } from './swaps.js'; describe('Swaps utils', () => { beforeEach(() => { diff --git a/packages/bridge-controller/src/utils/swaps.ts b/packages/bridge-controller/src/utils/swaps.ts index ebfd01be31d..6708e87ea42 100644 --- a/packages/bridge-controller/src/utils/swaps.ts +++ b/packages/bridge-controller/src/utils/swaps.ts @@ -1,16 +1,16 @@ import type { Hex } from '@metamask/utils'; -import { CHAIN_IDS } from '../constants/chains'; +import { CHAIN_IDS } from '../constants/chains.js'; import { ALLOWED_CONTRACT_ADDRESSES, SWAPS_CONTRACT_ADDRESSES, -} from '../constants/swaps'; +} from '../constants/swaps.js'; import { DEFAULT_TOKEN_ADDRESS, SWAPS_CHAINID_DEFAULT_TOKEN_MAP, -} from '../constants/tokens'; -import type { FetchFunction } from '../types'; -import { formatChainIdToDec } from './caip-formatters'; +} from '../constants/tokens.js'; +import type { FetchFunction } from '../types.js'; +import { formatChainIdToDec } from './caip-formatters.js'; /** * Checks if the given contract address is valid for the given chain ID. diff --git a/packages/bridge-controller/src/utils/trade-utils.test.ts b/packages/bridge-controller/src/utils/trade-utils.test.ts index f847daa13bb..4a686d18a33 100644 --- a/packages/bridge-controller/src/utils/trade-utils.test.ts +++ b/packages/bridge-controller/src/utils/trade-utils.test.ts @@ -3,14 +3,14 @@ import type { BitcoinTradeData, TronTradeData, Trade, -} from '../validators/trade'; +} from '../validators/trade.js'; import { isEvmTxData, isBitcoinTrade, isStellarTrade, isTronTrade, -} from '../validators/trade'; -import { extractTradeData } from './trade-utils'; +} from '../validators/trade.js'; +import { extractTradeData } from './trade-utils.js'; describe('Trade utils', () => { describe('isEvmTxData', () => { diff --git a/packages/bridge-controller/src/utils/trade-utils.ts b/packages/bridge-controller/src/utils/trade-utils.ts index cf1aa645ef0..a0319d2df03 100644 --- a/packages/bridge-controller/src/utils/trade-utils.ts +++ b/packages/bridge-controller/src/utils/trade-utils.ts @@ -5,7 +5,7 @@ import { isEvmTxData, isStellarTrade, hasOwnProp, -} from '../validators/trade'; +} from '../validators/trade.js'; /** * Extracts the transaction data from different trade formats diff --git a/packages/bridge-controller/src/validators/batch-sell.ts b/packages/bridge-controller/src/validators/batch-sell.ts index 79246d08b89..6aa59b3aab5 100644 --- a/packages/bridge-controller/src/validators/batch-sell.ts +++ b/packages/bridge-controller/src/validators/batch-sell.ts @@ -9,10 +9,10 @@ import { import type { Infer } from '@metamask/superstruct'; import { StrictHexStruct } from '@metamask/utils'; -import { BridgeAssetSchema } from './bridge-asset'; -import { NumberStringSchema } from './number'; -import { GaslessPropertiesSchema } from './quote'; -import { TxDataSchema } from './trade'; +import { BridgeAssetSchema } from './bridge-asset.js'; +import { NumberStringSchema } from './number.js'; +import { GaslessPropertiesSchema } from './quote.js'; +import { TxDataSchema } from './trade.js'; export enum BatchSellTransactionType { TRADE = 'trade', diff --git a/packages/bridge-controller/src/validators/intent.ts b/packages/bridge-controller/src/validators/intent.ts index ada780dcb81..3f42e164bc2 100644 --- a/packages/bridge-controller/src/validators/intent.ts +++ b/packages/bridge-controller/src/validators/intent.ts @@ -11,8 +11,8 @@ import { any, } from '@metamask/superstruct'; -import { TruthyDigitStringSchema } from './number'; -import { HexString } from './trade'; +import { TruthyDigitStringSchema } from './number.js'; +import { HexString } from './trade.js'; // Allow digit strings for amounts/validTo for flexibility across providers const DigitStringOrNumberSchema = union([TruthyDigitStringSchema, number()]); diff --git a/packages/bridge-controller/src/validators/quote-response-v1.ts b/packages/bridge-controller/src/validators/quote-response-v1.ts index 7695b30f850..0956b693083 100644 --- a/packages/bridge-controller/src/validators/quote-response-v1.ts +++ b/packages/bridge-controller/src/validators/quote-response-v1.ts @@ -10,21 +10,21 @@ import { } from '@metamask/superstruct'; import { StrictHexStruct } from '@metamask/utils'; -import { FeatureId } from './feature-flags'; -import { FloatStringSchema } from './number'; -import { QuoteSchema } from './quote'; +import { FeatureId } from './feature-flags.js'; +import { FloatStringSchema } from './number.js'; +import { QuoteSchema } from './quote.js'; import { TxDataSchema, TronTradeDataSchema, BitcoinTradeDataSchema, StellarTradeDataSchema, -} from './trade'; +} from './trade.js'; import type { BitcoinTradeData, StellarTradeData, TronTradeData, TxData, -} from './trade'; +} from './trade.js'; export const QuoteResponseSchemaV1 = type({ featureId: optional(enums(Object.values(FeatureId))), diff --git a/packages/bridge-controller/src/validators/quote.ts b/packages/bridge-controller/src/validators/quote.ts index f27dc1926d4..8982750fd0c 100644 --- a/packages/bridge-controller/src/validators/quote.ts +++ b/packages/bridge-controller/src/validators/quote.ts @@ -10,10 +10,10 @@ import { } from '@metamask/superstruct'; import type { Infer } from '@metamask/superstruct'; -import { ChainIdSchema, BridgeAssetSchema } from './bridge-asset'; -import { IntentSchema } from './intent'; -import { TruthyDigitStringSchema, NumberStringSchema } from './number'; -import { RefuelDataSchema, StepSchema } from './step'; +import { ChainIdSchema, BridgeAssetSchema } from './bridge-asset.js'; +import { IntentSchema } from './intent.js'; +import { TruthyDigitStringSchema, NumberStringSchema } from './number.js'; +import { RefuelDataSchema, StepSchema } from './step.js'; export enum FeeType { METABRIDGE = 'metabridge', diff --git a/packages/bridge-controller/src/validators/step.ts b/packages/bridge-controller/src/validators/step.ts index 59460be4c97..cf3fff44b72 100644 --- a/packages/bridge-controller/src/validators/step.ts +++ b/packages/bridge-controller/src/validators/step.ts @@ -1,6 +1,6 @@ import { type, enums, optional } from '@metamask/superstruct'; -import { BridgeAssetSchema, ChainIdSchema } from './bridge-asset'; +import { BridgeAssetSchema, ChainIdSchema } from './bridge-asset.js'; export enum ActionTypes { BRIDGE = 'bridge', diff --git a/packages/bridge-controller/src/validators/validators.test.ts b/packages/bridge-controller/src/validators/validators.test.ts index 3b809f31e90..58a0bfc835d 100644 --- a/packages/bridge-controller/src/validators/validators.test.ts +++ b/packages/bridge-controller/src/validators/validators.test.ts @@ -1,15 +1,15 @@ import { is } from '@metamask/superstruct'; -import { mockBridgeQuotesNativeErc20EthV1 } from '../../tests/mock-quotes-native-erc20-eth'; -import { validateFeatureFlagsResponse } from './feature-flags'; -import { IntentSchema } from './intent'; -import { DiscountType } from './quote'; -import { FeeDataSchema } from './quote'; -import { validateQuoteResponseV1 } from './quote-response-v1'; +import { mockBridgeQuotesNativeErc20EthV1 } from '../../tests/mock-quotes-native-erc20-eth.js'; +import { validateFeatureFlagsResponse } from './feature-flags.js'; +import { IntentSchema } from './intent.js'; +import { validateQuoteResponseV1 } from './quote-response-v1.js'; import { validateQuoteStreamComplete, QuoteStreamCompleteReason, -} from './quote-stream-complete'; +} from './quote-stream-complete.js'; +import { DiscountType } from './quote.js'; +import { FeeDataSchema } from './quote.js'; describe('validators', () => { describe('validateFeatureFlagsResponse', () => { diff --git a/packages/bridge-controller/tests/mock-quotes-erc20-erc20.ts b/packages/bridge-controller/tests/mock-quotes-erc20-erc20.ts index e43025d3721..7f63bed5a53 100644 --- a/packages/bridge-controller/tests/mock-quotes-erc20-erc20.ts +++ b/packages/bridge-controller/tests/mock-quotes-erc20-erc20.ts @@ -1,11 +1,11 @@ -import { merge } from 'lodash'; +import { merge } from 'lodash-es'; -import type { DeepPartial } from '../src/types'; +import type { DeepPartial } from '../src/types.js'; import { validateQuoteResponseV1, QuoteResponseV1, -} from '../src/validators/quote-response-v1'; -import { ActionTypes } from '../src/validators/step'; +} from '../src/validators/quote-response-v1.js'; +import { ActionTypes } from '../src/validators/step.js'; export const mockBridgeQuotesErc20Erc20V1: QuoteResponseV1[] = [ { diff --git a/packages/bridge-controller/tests/mock-quotes-erc20-native.ts b/packages/bridge-controller/tests/mock-quotes-erc20-native.ts index 07c33bfb418..1503dc55c6e 100644 --- a/packages/bridge-controller/tests/mock-quotes-erc20-native.ts +++ b/packages/bridge-controller/tests/mock-quotes-erc20-native.ts @@ -1,9 +1,9 @@ -import { merge } from 'lodash'; +import { merge } from 'lodash-es'; -import type { DeepPartial } from '../src/types'; -import type { QuoteResponseV1 } from '../src/validators/quote-response-v1'; -import { validateQuoteResponseV1 } from '../src/validators/quote-response-v1'; -import { ActionTypes } from '../src/validators/step'; +import type { DeepPartial } from '../src/types.js'; +import type { QuoteResponseV1 } from '../src/validators/quote-response-v1.js'; +import { validateQuoteResponseV1 } from '../src/validators/quote-response-v1.js'; +import { ActionTypes } from '../src/validators/step.js'; export const mockBridgeQuotesErc20NativeV1: QuoteResponseV1[] = [ { diff --git a/packages/bridge-controller/tests/mock-quotes-native-erc20-eth.ts b/packages/bridge-controller/tests/mock-quotes-native-erc20-eth.ts index ad41fbed3e3..54823d91c04 100644 --- a/packages/bridge-controller/tests/mock-quotes-native-erc20-eth.ts +++ b/packages/bridge-controller/tests/mock-quotes-native-erc20-eth.ts @@ -1,9 +1,9 @@ -import { merge } from 'lodash'; +import { merge } from 'lodash-es'; -import type { DeepPartial } from '../src/types'; -import type { QuoteResponseV1 } from '../src/validators/quote-response-v1'; -import { validateQuoteResponseV1 } from '../src/validators/quote-response-v1'; -import { ActionTypes } from '../src/validators/step'; +import type { DeepPartial } from '../src/types.js'; +import type { QuoteResponseV1 } from '../src/validators/quote-response-v1.js'; +import { validateQuoteResponseV1 } from '../src/validators/quote-response-v1.js'; +import { ActionTypes } from '../src/validators/step.js'; export const mockBridgeQuotesNativeErc20EthV1: QuoteResponseV1[] = [ { diff --git a/packages/bridge-controller/tests/mock-quotes-native-erc20.ts b/packages/bridge-controller/tests/mock-quotes-native-erc20.ts index ed44c75a924..a4c8804dd3a 100644 --- a/packages/bridge-controller/tests/mock-quotes-native-erc20.ts +++ b/packages/bridge-controller/tests/mock-quotes-native-erc20.ts @@ -1,9 +1,9 @@ -import { merge } from 'lodash'; +import { merge } from 'lodash-es'; -import type { DeepPartial } from '../src/types'; -import type { QuoteResponseV1 } from '../src/validators/quote-response-v1'; -import { validateQuoteResponseV1 } from '../src/validators/quote-response-v1'; -import { ActionTypes } from '../src/validators/step'; +import type { DeepPartial } from '../src/types.js'; +import type { QuoteResponseV1 } from '../src/validators/quote-response-v1.js'; +import { validateQuoteResponseV1 } from '../src/validators/quote-response-v1.js'; +import { ActionTypes } from '../src/validators/step.js'; export const mockBridgeQuotesNativeErc20V1: QuoteResponseV1[] = [ { diff --git a/packages/bridge-controller/tests/mock-quotes-sol-erc20.ts b/packages/bridge-controller/tests/mock-quotes-sol-erc20.ts index 7bc3ab0fcf5..5ab5d59d745 100644 --- a/packages/bridge-controller/tests/mock-quotes-sol-erc20.ts +++ b/packages/bridge-controller/tests/mock-quotes-sol-erc20.ts @@ -1,9 +1,9 @@ -import { merge } from 'lodash'; +import { merge } from 'lodash-es'; -import type { DeepPartial } from '../src/types'; -import type { QuoteResponseV1 } from '../src/validators/quote-response-v1'; -import { validateQuoteResponseV1 } from '../src/validators/quote-response-v1'; -import { ActionTypes } from '../src/validators/step'; +import type { DeepPartial } from '../src/types.js'; +import type { QuoteResponseV1 } from '../src/validators/quote-response-v1.js'; +import { validateQuoteResponseV1 } from '../src/validators/quote-response-v1.js'; +import { ActionTypes } from '../src/validators/step.js'; export const mockBridgeQuotesSolErc20V1: QuoteResponseV1[] = [ { diff --git a/packages/bridge-controller/tests/mock-sse.ts b/packages/bridge-controller/tests/mock-sse.ts index c8846021aec..eeca0622840 100644 --- a/packages/bridge-controller/tests/mock-sse.ts +++ b/packages/bridge-controller/tests/mock-sse.ts @@ -1,9 +1,8 @@ -// eslint-disable-next-line @typescript-eslint/no-shadow import { ReadableStream } from 'node:stream/web'; -import { flushPromises } from '../../../tests/helpers'; -import type { QuoteStreamCompleteData, TokenFeature } from '../src'; -import { QuoteResponseV1 } from '../src/validators/quote-response-v1'; +import { flushPromises } from '../../../tests/helpers.js'; +import type { QuoteStreamCompleteData, TokenFeature } from '../src.js'; +import { QuoteResponseV1 } from '../src/validators/quote-response-v1.js'; type MockSseResponse = { status: number; ok: boolean; body: ReadableStream }; From 00c56c84d312dfead87c718e222c00ab5deba8fe Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:48:45 +0200 Subject: [PATCH 082/136] ESLint fix and `jest` global import for bridge-status-controller --- ...e-status-controller-method-action-types.ts | 2 +- ...ridge-status-controller.batch-sell.test.ts | 14 +++--- ...e-status-controller.intent-manager.test.ts | 6 +-- .../bridge-status-controller.intent.test.ts | 14 +++--- .../src/bridge-status-controller.intent.ts | 18 +++++--- .../src/bridge-status-controller.test.ts | 20 ++++---- .../src/bridge-status-controller.ts | 46 +++++++++---------- .../bridge-status-controller/src/constants.ts | 2 +- .../bridge-status-controller/src/index.ts | 16 +++---- .../src/quote-status-manager/errors.test.ts | 4 +- .../src/quote-status-manager/errors.ts | 2 +- .../quote-status-api-service.test.ts | 12 ++--- .../quote-status-api-service.ts | 18 ++++---- .../quote-status-entry-store.test.ts | 11 +++-- .../quote-status-entry-store.ts | 6 +-- ...uote-status-get-with-retry-outcome.test.ts | 8 ++-- .../quote-status-get-with-retry-outcome.ts | 6 +-- .../quote-status-state-fsm.test.ts | 4 +- .../quote-status-state-fsm.ts | 4 +- ...e-status-update-with-retry-outcome.test.ts | 6 +-- .../quote-status-update-with-retry-outcome.ts | 4 +- .../quotes-status-manager.test.ts | 14 +++--- .../quotes-status-manager.ts | 20 ++++---- .../src/quote-status-manager/types.ts | 10 ++-- .../src/quote-status-manager/utils.test.ts | 2 +- .../quote-status-manager/validators.test.ts | 4 +- .../src/quote-status-manager/validators.ts | 6 +-- .../src/strategy/batch-sell-strategy.ts | 8 ++-- .../src/strategy/batch-strategy.ts | 6 +-- .../src/strategy/evm-strategy.ts | 14 +++--- .../src/strategy/index.ts | 12 ++--- .../src/strategy/intent-strategy.ts | 14 +++--- .../src/strategy/non-evm-strategy.ts | 10 ++-- .../src/strategy/types.ts | 2 +- .../bridge-status-controller/src/types.ts | 8 ++-- .../src/utils/accounts.ts | 2 +- .../src/utils/authentication.ts | 2 +- .../src/utils/bridge-status.test.ts | 16 +++---- .../src/utils/bridge-status.ts | 12 ++--- .../src/utils/bridge.ts | 2 +- .../src/utils/feature-flags.ts | 4 +- .../bridge-status-controller/src/utils/gas.ts | 2 +- .../src/utils/history.test.ts | 4 +- .../src/utils/history.ts | 4 +- .../src/utils/intent-api.test.ts | 8 ++-- .../src/utils/intent-api.ts | 4 +- .../src/utils/keyring.ts | 2 +- .../src/utils/metrics.test.ts | 4 +- .../src/utils/metrics.ts | 6 +-- .../src/utils/network.ts | 2 +- .../src/utils/snaps.test.ts | 6 +-- .../src/utils/snaps.ts | 2 +- .../src/utils/swap-received-amount.ts | 2 +- .../src/utils/trace.ts | 2 +- .../src/utils/transaction.test.ts | 10 ++-- .../src/utils/transaction.ts | 10 ++-- .../src/utils/validators.test.ts | 2 +- .../test/mock-batch-sell-erc20-erc20.ts | 2 +- 58 files changed, 236 insertions(+), 227 deletions(-) diff --git a/packages/bridge-status-controller/src/bridge-status-controller-method-action-types.ts b/packages/bridge-status-controller/src/bridge-status-controller-method-action-types.ts index d6a4aaf6488..f777b04111d 100644 --- a/packages/bridge-status-controller/src/bridge-status-controller-method-action-types.ts +++ b/packages/bridge-status-controller/src/bridge-status-controller-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { BridgeStatusController } from './bridge-status-controller'; +import type { BridgeStatusController } from './bridge-status-controller.js'; export type BridgeStatusControllerStartPollingForBridgeTxStatusAction = { type: `BridgeStatusController:startPollingForBridgeTxStatus`; diff --git a/packages/bridge-status-controller/src/bridge-status-controller.batch-sell.test.ts b/packages/bridge-status-controller/src/bridge-status-controller.batch-sell.test.ts index 8281f5754fb..2164c8ee24c 100644 --- a/packages/bridge-status-controller/src/bridge-status-controller.batch-sell.test.ts +++ b/packages/bridge-status-controller/src/bridge-status-controller.batch-sell.test.ts @@ -25,16 +25,16 @@ import { getTxMetasForBatch, mockBatchSellErc20Erc20, mockBatchSellTradesErc20Erc20, -} from '../test/mock-batch-sell-erc20-erc20'; -import { BridgeStatusController } from './bridge-status-controller'; -import { BRIDGE_STATUS_CONTROLLER_NAME } from './constants'; -import { BridgeClientId } from './types'; +} from '../test/mock-batch-sell-erc20-erc20.js'; +import { BridgeStatusController } from './bridge-status-controller.js'; +import { BRIDGE_STATUS_CONTROLLER_NAME } from './constants.js'; +import { BridgeClientId } from './types.js'; import type { BridgeHistoryItem, BridgeStatusControllerMessenger, -} from './types'; -import { getBatchSellHistoryItemsForTxHash } from './utils/history'; -import { shouldDisable7702 } from './utils/transaction'; +} from './types.js'; +import { getBatchSellHistoryItemsForTxHash } from './utils/history.js'; +import { shouldDisable7702 } from './utils/transaction.js'; const mockGenerateBatchId = jest.fn(); jest.mock('@metamask/transaction-controller', () => ({ diff --git a/packages/bridge-status-controller/src/bridge-status-controller.intent-manager.test.ts b/packages/bridge-status-controller/src/bridge-status-controller.intent-manager.test.ts index af2822d83c4..73480aa50c4 100644 --- a/packages/bridge-status-controller/src/bridge-status-controller.intent-manager.test.ts +++ b/packages/bridge-status-controller/src/bridge-status-controller.intent-manager.test.ts @@ -3,9 +3,9 @@ import { BridgeClientId, StatusTypes } from '@metamask/bridge-controller'; import { TransactionStatus } from '@metamask/transaction-controller'; import { IntentManager } from './bridge-status-controller.intent'; -import type { BridgeHistoryItem } from './types'; -import { postSubmitOrder } from './utils/intent-api'; -import { IntentOrderStatus } from './utils/validators'; +import type { BridgeHistoryItem } from './types.js'; +import { postSubmitOrder } from './utils/intent-api.js'; +import { IntentOrderStatus } from './utils/validators.js'; const makeHistoryItem = ( overrides?: Partial, diff --git a/packages/bridge-status-controller/src/bridge-status-controller.intent.test.ts b/packages/bridge-status-controller/src/bridge-status-controller.intent.test.ts index a4c6824222a..1fe94d0abd5 100644 --- a/packages/bridge-status-controller/src/bridge-status-controller.intent.test.ts +++ b/packages/bridge-status-controller/src/bridge-status-controller.intent.test.ts @@ -15,13 +15,13 @@ import { TransactionType, } from '@metamask/transaction-controller'; -import { BridgeStatusController } from './bridge-status-controller'; -import { MAX_ATTEMPTS } from './constants'; -import type { BridgeStatusControllerState } from './types'; -import * as bridgeStatusUtils from './utils/bridge-status'; -import * as historyUtils from './utils/history'; -import * as intentApi from './utils/intent-api'; -import { IntentOrderStatus } from './utils/validators'; +import { BridgeStatusController } from './bridge-status-controller.js'; +import { MAX_ATTEMPTS } from './constants.js'; +import type { BridgeStatusControllerState } from './types.js'; +import * as bridgeStatusUtils from './utils/bridge-status.js'; +import * as historyUtils from './utils/history.js'; +import * as intentApi from './utils/intent-api.js'; +import { IntentOrderStatus } from './utils/validators.js'; jest.spyOn(intentApi, 'postSubmitOrder').mockImplementation(jest.fn()); jest diff --git a/packages/bridge-status-controller/src/bridge-status-controller.intent.ts b/packages/bridge-status-controller/src/bridge-status-controller.intent.ts index cf040c02300..1f9a42bb9fb 100644 --- a/packages/bridge-status-controller/src/bridge-status-controller.intent.ts +++ b/packages/bridge-status-controller/src/bridge-status-controller.intent.ts @@ -1,16 +1,22 @@ import { BridgeClientId, StatusTypes } from '@metamask/bridge-controller'; -import type { BridgeStatusControllerMessenger, FetchFunction } from './types'; -import type { BridgeHistoryItem } from './types'; -import { getJwt } from './utils/authentication'; +import type { + BridgeStatusControllerMessenger, + FetchFunction, +} from './types.js'; +import type { BridgeHistoryItem } from './types.js'; +import { getJwt } from './utils/authentication.js'; import { IntentApi, IntentApiImpl, IntentBridgeStatus, translateIntentOrderToBridgeStatus, -} from './utils/intent-api'; -import { getTransactionMetaById, updateTransaction } from './utils/transaction'; -import { IntentStatusResponse, IntentOrderStatus } from './utils/validators'; +} from './utils/intent-api.js'; +import { + getTransactionMetaById, + updateTransaction, +} from './utils/transaction.js'; +import { IntentStatusResponse, IntentOrderStatus } from './utils/validators.js'; type IntentStatuses = { orderStatus: IntentOrderStatus; diff --git a/packages/bridge-status-controller/src/bridge-status-controller.test.ts b/packages/bridge-status-controller/src/bridge-status-controller.test.ts index 89dc773d1af..7953cbfb289 100644 --- a/packages/bridge-status-controller/src/bridge-status-controller.test.ts +++ b/packages/bridge-status-controller/src/bridge-status-controller.test.ts @@ -42,19 +42,19 @@ import type { CaipAssetType } from '@metamask/utils'; import { numberToHex } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import { flushPromises } from '../../../tests/helpers'; -import { BridgeStatusController } from './bridge-status-controller'; +import { flushPromises } from '../../../tests/helpers.js'; +import { BridgeStatusController } from './bridge-status-controller.js'; import { BRIDGE_STATUS_CONTROLLER_NAME, DEFAULT_BRIDGE_STATUS_CONTROLLER_STATE, DEFAULT_MAX_PENDING_HISTORY_ITEM_AGE_MS, MAX_ATTEMPTS, -} from './constants'; +} from './constants.js'; import { QUOTE_STATUS_BACKFILL_WINDOW_MS, QuoteStatusState, -} from './quote-status-manager/constants'; -import { BridgeClientId } from './types'; +} from './quote-status-manager/constants.js'; +import { BridgeClientId } from './types.js'; import type { BridgeId, StartPollingForBridgeTxStatusArgsSerialized, @@ -62,11 +62,11 @@ import type { BridgeStatusControllerState, BridgeStatusControllerMessenger, StatusResponse, -} from './types'; -import * as bridgeStatusUtils from './utils/bridge-status'; -import * as historyUtils from './utils/history'; -import * as metricsUtils from './utils/metrics'; -import * as transactionUtils from './utils/transaction'; +} from './types.js'; +import * as bridgeStatusUtils from './utils/bridge-status.js'; +import * as historyUtils from './utils/history.js'; +import * as metricsUtils from './utils/metrics.js'; +import * as transactionUtils from './utils/transaction.js'; type AllBridgeStatusControllerActions = MessengerActions; diff --git a/packages/bridge-status-controller/src/bridge-status-controller.ts b/packages/bridge-status-controller/src/bridge-status-controller.ts index 27ae844c795..f1953cc60e2 100644 --- a/packages/bridge-status-controller/src/bridge-status-controller.ts +++ b/packages/bridge-status-controller/src/bridge-status-controller.ts @@ -39,49 +39,49 @@ import { DEFAULT_BRIDGE_STATUS_CONTROLLER_STATE, MAX_ATTEMPTS, REFRESH_INTERVAL_MS, -} from './constants'; +} from './constants.js'; import { QUOTE_STATUS_BACKFILL_WINDOW_MS, QUOTE_STATUS_UPDATE_ENTRY_TTL, QUOTE_STATUS_UPDATE_RETRY_INTERVAL_MS, -} from './quote-status-manager/constants'; +} from './quote-status-manager/constants.js'; import { QuoteStatusGetError, QuoteStatusUpdateError, -} from './quote-status-manager/errors'; -import { QuoteStatusManager } from './quote-status-manager/quotes-status-manager'; -import executeSubmitStrategy from './strategy'; -import { SubmitStep } from './strategy/types'; -import type { SubmitStrategyParams } from './strategy/types'; +} from './quote-status-manager/errors.js'; +import { QuoteStatusManager } from './quote-status-manager/quotes-status-manager.js'; +import executeSubmitStrategy from './strategy.js'; +import { SubmitStep } from './strategy/types.js'; +import type { SubmitStrategyParams } from './strategy/types.js'; import type { BridgeStatusControllerState, StartPollingForBridgeTxStatusArgsSerialized, FetchFunction, BridgeHistoryItem, -} from './types'; -import type { BridgeStatusControllerMessenger } from './types'; -import { BridgeClientId } from './types'; -import { getAccountByAddress } from './utils/accounts'; -import { getJwt } from './utils/authentication'; -import { - getBatchSellTrades, - stopPollingForQuotes, - trackMetricsEvent, -} from './utils/bridge'; +} from './types.js'; +import type { BridgeStatusControllerMessenger } from './types.js'; +import { BridgeClientId } from './types.js'; +import { getAccountByAddress } from './utils/accounts.js'; +import { getJwt } from './utils/authentication.js'; import { fetchBridgeTxStatus, fetchBridgeQuoteStatus, getStatusRequestWithSrcTxHash, shouldSkipFetchDueToFetchFailures, shouldWaitForFinalBridgeStatus, -} from './utils/bridge-status'; +} from './utils/bridge-status.js'; +import { + getBatchSellTrades, + stopPollingForQuotes, + trackMetricsEvent, +} from './utils/bridge.js'; import { getInitialHistoryItem, getMatchingHistoryEntryForTxMeta, rekeyHistoryItemInState, shouldPollHistoryItem, getMatchingHistoryEntryForApprovalTxMeta, -} from './utils/history'; +} from './utils/history.js'; import { getFinalizedTxProperties, getPriceImpactFromQuote, @@ -91,9 +91,9 @@ import { getEVMTxPropertiesFromTransactionMeta, getTxStatusesFromHistory, getPreConfirmationPropertiesFromQuote, -} from './utils/metrics'; -import { getSelectedChainId } from './utils/network'; -import { getTraceParams } from './utils/trace'; +} from './utils/metrics.js'; +import { getSelectedChainId } from './utils/network.js'; +import { getTraceParams } from './utils/trace.js'; import { getTransactionMetaById, getTransactions, @@ -101,7 +101,7 @@ import { isCrossChainTx, updateTransactionsInBatch, hasNestedSwapTransactions, -} from './utils/transaction'; +} from './utils/transaction.js'; const metadata: StateMetadata = { // We want to persist the bridge status state so that we can show the proper data for the Activity list diff --git a/packages/bridge-status-controller/src/constants.ts b/packages/bridge-status-controller/src/constants.ts index 5505c1d2060..c194658e892 100644 --- a/packages/bridge-status-controller/src/constants.ts +++ b/packages/bridge-status-controller/src/constants.ts @@ -1,6 +1,6 @@ import { FeatureId } from '@metamask/bridge-controller'; -import type { BridgeStatusControllerState } from './types'; +import type { BridgeStatusControllerState } from './types.js'; export const REFRESH_INTERVAL_MS = 10 * 1000; // 10 seconds export const MAX_ATTEMPTS = 7; // at 7 attempts, delay is 10:40, cumulative time is 21:10 diff --git a/packages/bridge-status-controller/src/index.ts b/packages/bridge-status-controller/src/index.ts index 4e1d845ce0d..78e3ecda008 100644 --- a/packages/bridge-status-controller/src/index.ts +++ b/packages/bridge-status-controller/src/index.ts @@ -2,8 +2,8 @@ export { QuoteStatusUpdateError, QuoteStatusGetError, -} from './quote-status-manager/errors'; -export { BaseQuoteStatusUpdateErrorTypes } from './quote-status-manager/constants'; +} from './quote-status-manager/errors.js'; +export { BaseQuoteStatusUpdateErrorTypes } from './quote-status-manager/constants.js'; // Export constants export { @@ -11,7 +11,7 @@ export { DEFAULT_BRIDGE_STATUS_CONTROLLER_STATE, BRIDGE_STATUS_CONTROLLER_NAME, MAX_ATTEMPTS, -} from './constants'; +} from './constants.js'; export type { FetchFunction, @@ -32,7 +32,7 @@ export type { StartPollingForBridgeTxStatusArgsSerialized, TokenAmountValuesSerialized, QuoteMetadataSerialized, -} from './types'; +} from './types.js'; export type { BridgeStatusControllerStartPollingForBridgeTxStatusAction, @@ -42,13 +42,13 @@ export type { BridgeStatusControllerSubmitIntentAction, BridgeStatusControllerRestartPollingForFailedAttemptsAction, BridgeStatusControllerGetBridgeHistoryItemByTxMetaIdAction, -} from './bridge-status-controller-method-action-types'; +} from './bridge-status-controller-method-action-types.js'; -export { BridgeId, BridgeStatusAction } from './types'; +export { BridgeId, BridgeStatusAction } from './types.js'; -export { BridgeStatusController } from './bridge-status-controller'; +export { BridgeStatusController } from './bridge-status-controller.js'; export { getBatchSellHistoryItemsForTxHash, isBatchSellHistoryItem, -} from './utils/history'; +} from './utils/history.js'; diff --git a/packages/bridge-status-controller/src/quote-status-manager/errors.test.ts b/packages/bridge-status-controller/src/quote-status-manager/errors.test.ts index ae0d637ad5e..5f024756f4f 100644 --- a/packages/bridge-status-controller/src/quote-status-manager/errors.test.ts +++ b/packages/bridge-status-controller/src/quote-status-manager/errors.test.ts @@ -1,5 +1,5 @@ -import { QuoteStatusUpdateBackendErrorType } from './constants'; -import { QuoteStatusGetError, QuoteStatusUpdateError } from './errors'; +import { QuoteStatusUpdateBackendErrorType } from './constants.js'; +import { QuoteStatusGetError, QuoteStatusUpdateError } from './errors.js'; describe('QuoteStatusUpdateError', () => { describe('constructor', () => { diff --git a/packages/bridge-status-controller/src/quote-status-manager/errors.ts b/packages/bridge-status-controller/src/quote-status-manager/errors.ts index 01fbcd6a788..24c3c0a4eec 100644 --- a/packages/bridge-status-controller/src/quote-status-manager/errors.ts +++ b/packages/bridge-status-controller/src/quote-status-manager/errors.ts @@ -1,7 +1,7 @@ import { QuoteStatusGetErrorDetails, QuoteStatusUpdateErrorDetails, -} from './types'; +} from './types.js'; /** * Error thrown for quote status update failures. diff --git a/packages/bridge-status-controller/src/quote-status-manager/quote-status-api-service.test.ts b/packages/bridge-status-controller/src/quote-status-manager/quote-status-api-service.test.ts index 070ff4b761d..d66414370a8 100644 --- a/packages/bridge-status-controller/src/quote-status-manager/quote-status-api-service.test.ts +++ b/packages/bridge-status-controller/src/quote-status-manager/quote-status-api-service.test.ts @@ -1,18 +1,18 @@ import { StatusTypes } from '@metamask/bridge-controller'; -import { BridgeClientId, BridgeStatusControllerMessenger } from '../types'; +import { BridgeClientId, BridgeStatusControllerMessenger } from '../types.js'; import { QuoteStatusUpdateBackendErrorType, QuoteStatusBackendStatus, QuoteStatusFetchWithRetryOutcomeType, -} from './constants'; -import { QuoteStatusGetError, QuoteStatusUpdateError } from './errors'; -import { QuoteStatusApiService } from './quote-status-api-service'; +} from './constants.js'; +import { QuoteStatusGetError, QuoteStatusUpdateError } from './errors.js'; +import { QuoteStatusApiService } from './quote-status-api-service.js'; import type { QuoteStatusApiServiceOptions, QuoteStatusGetResponse, -} from './types'; -import * as validators from './validators'; +} from './types.js'; +import * as validators from './validators.js'; const API_BASE_URL = 'https://bridge.api.test'; diff --git a/packages/bridge-status-controller/src/quote-status-manager/quote-status-api-service.ts b/packages/bridge-status-controller/src/quote-status-manager/quote-status-api-service.ts index 937ff529a5c..21dc9a836e2 100644 --- a/packages/bridge-status-controller/src/quote-status-manager/quote-status-api-service.ts +++ b/packages/bridge-status-controller/src/quote-status-manager/quote-status-api-service.ts @@ -1,26 +1,26 @@ import { getClientHeaders } from '@metamask/bridge-controller'; import { StructError } from '@metamask/superstruct'; -import { BridgeClientId, BridgeStatusControllerMessenger } from '../types'; -import { getJwt } from '../utils/authentication'; +import { BridgeClientId, BridgeStatusControllerMessenger } from '../types.js'; +import { getJwt } from '../utils/authentication.js'; import { QuoteStatusBackendStatus, QuoteStatusUpdateRetryableBackendTypes, QuoteStatusFetchWithRetryOutcomeType, -} from './constants'; -import { QuoteStatusGetError, QuoteStatusUpdateError } from './errors'; -import { QuoteStatusGetWithRetryOutcome } from './quote-status-get-with-retry-outcome'; -import { QuoteStatusUpdateWithRetryOutcome } from './quote-status-update-with-retry-outcome'; +} from './constants.js'; +import { QuoteStatusGetError, QuoteStatusUpdateError } from './errors.js'; +import { QuoteStatusGetWithRetryOutcome } from './quote-status-get-with-retry-outcome.js'; +import { QuoteStatusUpdateWithRetryOutcome } from './quote-status-update-with-retry-outcome.js'; import { QuoteStatusApiServiceOptions, QuoteStatusGetResponse, QuoteStatusUpdateResponse, -} from './types'; -import { sleep } from './utils'; +} from './types.js'; +import { sleep } from './utils.js'; import { validateQuoteStatusGetResponse, validateQuoteStatusUpdateResponse, -} from './validators'; +} from './validators.js'; /** * Service responsible for calling bridge quote status update APIs. diff --git a/packages/bridge-status-controller/src/quote-status-manager/quote-status-entry-store.test.ts b/packages/bridge-status-controller/src/quote-status-manager/quote-status-entry-store.test.ts index a077941a150..86acbe3915a 100644 --- a/packages/bridge-status-controller/src/quote-status-manager/quote-status-entry-store.test.ts +++ b/packages/bridge-status-controller/src/quote-status-manager/quote-status-entry-store.test.ts @@ -1,7 +1,10 @@ -import { QuoteStatusState } from './constants'; -import { QuoteStatusEntryStore } from './quote-status-entry-store'; -import { QuoteStatusStateFsm } from './quote-status-state-fsm'; -import type { QuoteStatusPersistEntry, QuoteStatusRuntimeEntry } from './types'; +import { QuoteStatusState } from './constants.js'; +import { QuoteStatusEntryStore } from './quote-status-entry-store.js'; +import { QuoteStatusStateFsm } from './quote-status-state-fsm.js'; +import type { + QuoteStatusPersistEntry, + QuoteStatusRuntimeEntry, +} from './types.js'; const TTL_MS = 1000; const NOW = 1_000_000; diff --git a/packages/bridge-status-controller/src/quote-status-manager/quote-status-entry-store.ts b/packages/bridge-status-controller/src/quote-status-manager/quote-status-entry-store.ts index bc72760892f..3aaf15dc175 100644 --- a/packages/bridge-status-controller/src/quote-status-manager/quote-status-entry-store.ts +++ b/packages/bridge-status-controller/src/quote-status-manager/quote-status-entry-store.ts @@ -1,10 +1,10 @@ -import { QuoteStatusState } from './constants'; -import { QuoteStatusStateFsm } from './quote-status-state-fsm'; +import { QuoteStatusState } from './constants.js'; +import { QuoteStatusStateFsm } from './quote-status-state-fsm.js'; import { QuoteStatusEntryStoreOptions, QuoteStatusPersistEntry, QuoteStatusRuntimeEntry, -} from './types'; +} from './types.js'; /** * In-memory store for quote status update entries. diff --git a/packages/bridge-status-controller/src/quote-status-manager/quote-status-get-with-retry-outcome.test.ts b/packages/bridge-status-controller/src/quote-status-manager/quote-status-get-with-retry-outcome.test.ts index 080c4530094..98fce6ba968 100644 --- a/packages/bridge-status-controller/src/quote-status-manager/quote-status-get-with-retry-outcome.test.ts +++ b/packages/bridge-status-controller/src/quote-status-manager/quote-status-get-with-retry-outcome.test.ts @@ -1,9 +1,9 @@ import { StatusTypes } from '@metamask/bridge-controller'; -import { QuoteStatusFetchWithRetryOutcomeType } from './constants'; -import { QuoteStatusGetError } from './errors'; -import { QuoteStatusGetWithRetryOutcome } from './quote-status-get-with-retry-outcome'; -import type { QuoteStatusGetResponse } from './types'; +import { QuoteStatusFetchWithRetryOutcomeType } from './constants.js'; +import { QuoteStatusGetError } from './errors.js'; +import { QuoteStatusGetWithRetryOutcome } from './quote-status-get-with-retry-outcome.js'; +import type { QuoteStatusGetResponse } from './types.js'; describe('QuoteStatusGetWithRetryOutcome', () => { it('exposes the outcome type', () => { diff --git a/packages/bridge-status-controller/src/quote-status-manager/quote-status-get-with-retry-outcome.ts b/packages/bridge-status-controller/src/quote-status-manager/quote-status-get-with-retry-outcome.ts index 0d14afdf1fd..cd27bfdc9dd 100644 --- a/packages/bridge-status-controller/src/quote-status-manager/quote-status-get-with-retry-outcome.ts +++ b/packages/bridge-status-controller/src/quote-status-manager/quote-status-get-with-retry-outcome.ts @@ -1,6 +1,6 @@ -import { QuoteStatusFetchWithRetryOutcomeType } from './constants'; -import { QuoteStatusGetError } from './errors'; -import { QuoteStatusGetResponse } from './types'; +import { QuoteStatusFetchWithRetryOutcomeType } from './constants.js'; +import { QuoteStatusGetError } from './errors.js'; +import { QuoteStatusGetResponse } from './types.js'; /** * Result of a retrying quote status fetch diff --git a/packages/bridge-status-controller/src/quote-status-manager/quote-status-state-fsm.test.ts b/packages/bridge-status-controller/src/quote-status-manager/quote-status-state-fsm.test.ts index 14bc03a71a8..5083a28d517 100644 --- a/packages/bridge-status-controller/src/quote-status-manager/quote-status-state-fsm.test.ts +++ b/packages/bridge-status-controller/src/quote-status-manager/quote-status-state-fsm.test.ts @@ -1,5 +1,5 @@ -import { QuoteStatusState } from './constants'; -import { QuoteStatusStateFsm } from './quote-status-state-fsm'; +import { QuoteStatusState } from './constants.js'; +import { QuoteStatusStateFsm } from './quote-status-state-fsm.js'; describe('QuoteStatusStateFsm', () => { describe('constructor', () => { diff --git a/packages/bridge-status-controller/src/quote-status-manager/quote-status-state-fsm.ts b/packages/bridge-status-controller/src/quote-status-manager/quote-status-state-fsm.ts index 49ad62a5cfd..936efb62c78 100644 --- a/packages/bridge-status-controller/src/quote-status-manager/quote-status-state-fsm.ts +++ b/packages/bridge-status-controller/src/quote-status-manager/quote-status-state-fsm.ts @@ -1,11 +1,11 @@ import { AllowedQuoteStatusStateTransitions, QuoteStatusState, -} from './constants'; +} from './constants.js'; import type { QuoteStatusStateUpdateEvent, QuoteStatusStateUpdateListener, -} from './types'; +} from './types.js'; /** * Finite state machine that enforces forward-only quote status transitions. diff --git a/packages/bridge-status-controller/src/quote-status-manager/quote-status-update-with-retry-outcome.test.ts b/packages/bridge-status-controller/src/quote-status-manager/quote-status-update-with-retry-outcome.test.ts index c13b2cd34c9..9eff74ae16d 100644 --- a/packages/bridge-status-controller/src/quote-status-manager/quote-status-update-with-retry-outcome.test.ts +++ b/packages/bridge-status-controller/src/quote-status-manager/quote-status-update-with-retry-outcome.test.ts @@ -1,9 +1,9 @@ import { QuoteStatusUpdateBackendErrorType, QuoteStatusFetchWithRetryOutcomeType, -} from './constants'; -import { QuoteStatusUpdateWithRetryOutcome } from './quote-status-update-with-retry-outcome'; -import type { QuoteStatusUpdateResponse } from './types'; +} from './constants.js'; +import { QuoteStatusUpdateWithRetryOutcome } from './quote-status-update-with-retry-outcome.js'; +import type { QuoteStatusUpdateResponse } from './types.js'; describe('QuoteStatusUpdateWithRetryOutcome', () => { it('exposes the outcome type', () => { diff --git a/packages/bridge-status-controller/src/quote-status-manager/quote-status-update-with-retry-outcome.ts b/packages/bridge-status-controller/src/quote-status-manager/quote-status-update-with-retry-outcome.ts index 8edd374d64a..36634dc671f 100644 --- a/packages/bridge-status-controller/src/quote-status-manager/quote-status-update-with-retry-outcome.ts +++ b/packages/bridge-status-controller/src/quote-status-manager/quote-status-update-with-retry-outcome.ts @@ -1,5 +1,5 @@ -import { QuoteStatusFetchWithRetryOutcomeType } from './constants'; -import { QuoteStatusUpdateResponse } from './types'; +import { QuoteStatusFetchWithRetryOutcomeType } from './constants.js'; +import { QuoteStatusUpdateResponse } from './types.js'; /** * Result of a retrying quote status update diff --git a/packages/bridge-status-controller/src/quote-status-manager/quotes-status-manager.test.ts b/packages/bridge-status-controller/src/quote-status-manager/quotes-status-manager.test.ts index 2338f2903dd..8d8918f88be 100644 --- a/packages/bridge-status-controller/src/quote-status-manager/quotes-status-manager.test.ts +++ b/packages/bridge-status-controller/src/quote-status-manager/quotes-status-manager.test.ts @@ -4,21 +4,21 @@ import { } from '@metamask/transaction-controller'; import type { TransactionMeta } from '@metamask/transaction-controller'; -import { BridgeClientId, BridgeStatusControllerMessenger } from '../types'; +import { BridgeClientId, BridgeStatusControllerMessenger } from '../types.js'; import { QuoteStatusState, QuoteStatusUpdateBackendErrorType, QuoteStatusBackendStatus, QuoteStatusFetchWithRetryOutcomeType, -} from './constants'; -import { QuoteStatusApiService } from './quote-status-api-service'; -import { QuoteStatusGetWithRetryOutcome } from './quote-status-get-with-retry-outcome'; -import { QuoteStatusUpdateWithRetryOutcome } from './quote-status-update-with-retry-outcome'; -import { QuoteStatusManager } from './quotes-status-manager'; +} from './constants.js'; +import { QuoteStatusApiService } from './quote-status-api-service.js'; +import { QuoteStatusGetWithRetryOutcome } from './quote-status-get-with-retry-outcome.js'; +import { QuoteStatusUpdateWithRetryOutcome } from './quote-status-update-with-retry-outcome.js'; +import { QuoteStatusManager } from './quotes-status-manager.js'; import type { QuoteStatusPersistEntry, QuoteStatusUpdateResponse, -} from './types'; +} from './types.js'; jest.mock('./quote-status-api-service'); diff --git a/packages/bridge-status-controller/src/quote-status-manager/quotes-status-manager.ts b/packages/bridge-status-controller/src/quote-status-manager/quotes-status-manager.ts index 1998177b281..dd288df3b2b 100644 --- a/packages/bridge-status-controller/src/quote-status-manager/quotes-status-manager.ts +++ b/packages/bridge-status-controller/src/quote-status-manager/quotes-status-manager.ts @@ -1,25 +1,25 @@ import { TransactionStatus } from '@metamask/transaction-controller'; -import { BridgeClientId, BridgeStatusControllerMessenger } from '../types'; +import { BridgeClientId, BridgeStatusControllerMessenger } from '../types.js'; import { getTransactionMetaById, hasNestedSwapTransactions, isCrossChainTx, -} from '../utils/transaction'; +} from '../utils/transaction.js'; import { QuoteStatusState, QuoteStatusStateToBackendStatus, QuoteStatusUpdateBackendErrorType, QuoteStatusBackendStatus, QuoteStatusFetchWithRetryOutcomeType, -} from './constants'; -import { QuoteStatusUpdateError } from './errors'; -import { QuoteStatusApiService } from './quote-status-api-service'; -import { QuoteStatusEntryStore } from './quote-status-entry-store'; -import { QuoteStatusGetWithRetryOutcome } from './quote-status-get-with-retry-outcome'; -import { QuoteStatusStateFsm } from './quote-status-state-fsm'; -import { QuoteStatusUpdateWithRetryOutcome } from './quote-status-update-with-retry-outcome'; -import { QuoteStatusPersistEntry, QuoteStatusRuntimeEntry } from './types'; +} from './constants.js'; +import { QuoteStatusUpdateError } from './errors.js'; +import { QuoteStatusApiService } from './quote-status-api-service.js'; +import { QuoteStatusEntryStore } from './quote-status-entry-store.js'; +import { QuoteStatusGetWithRetryOutcome } from './quote-status-get-with-retry-outcome.js'; +import { QuoteStatusStateFsm } from './quote-status-state-fsm.js'; +import { QuoteStatusUpdateWithRetryOutcome } from './quote-status-update-with-retry-outcome.js'; +import { QuoteStatusPersistEntry, QuoteStatusRuntimeEntry } from './types.js'; /** * Tracks bridge/swap quotes through their lifecycle and keeps the backend in diff --git a/packages/bridge-status-controller/src/quote-status-manager/types.ts b/packages/bridge-status-controller/src/quote-status-manager/types.ts index d1146c5d3cb..75163d1f762 100644 --- a/packages/bridge-status-controller/src/quote-status-manager/types.ts +++ b/packages/bridge-status-controller/src/quote-status-manager/types.ts @@ -1,17 +1,17 @@ import { BridgeClientId } from '@metamask/bridge-controller'; import { Infer } from '@metamask/superstruct'; -import { BridgeStatusControllerMessenger } from '../types'; +import { BridgeStatusControllerMessenger } from '../types.js'; import { QuoteStatusState, QuoteStatusUpdateBackendErrorType, -} from './constants'; -import { QuoteStatusGetError, QuoteStatusUpdateError } from './errors'; -import { QuoteStatusStateFsm } from './quote-status-state-fsm'; +} from './constants.js'; +import { QuoteStatusGetError, QuoteStatusUpdateError } from './errors.js'; +import { QuoteStatusStateFsm } from './quote-status-state-fsm.js'; import { QuoteStatusGetResponseSchema, QuoteStatusUpdateResponseSchema, -} from './validators'; +} from './validators.js'; /** * Persisted queue entry describing a single quote status update attempt. diff --git a/packages/bridge-status-controller/src/quote-status-manager/utils.test.ts b/packages/bridge-status-controller/src/quote-status-manager/utils.test.ts index 8cc83534daa..a56488da059 100644 --- a/packages/bridge-status-controller/src/quote-status-manager/utils.test.ts +++ b/packages/bridge-status-controller/src/quote-status-manager/utils.test.ts @@ -1,4 +1,4 @@ -import { sleep } from './utils'; +import { sleep } from './utils.js'; describe('sleep', () => { beforeEach(() => { diff --git a/packages/bridge-status-controller/src/quote-status-manager/validators.test.ts b/packages/bridge-status-controller/src/quote-status-manager/validators.test.ts index d57a6d93dcd..17f4629f8f5 100644 --- a/packages/bridge-status-controller/src/quote-status-manager/validators.test.ts +++ b/packages/bridge-status-controller/src/quote-status-manager/validators.test.ts @@ -3,11 +3,11 @@ import { StatusTypes } from '@metamask/bridge-controller'; import { QuoteStatusBackendStatus, QuoteStatusUpdateBackendErrorType, -} from './constants'; +} from './constants.js'; import { validateQuoteStatusGetResponse, validateQuoteStatusUpdateResponse, -} from './validators'; +} from './validators.js'; describe('quote-status validators', () => { describe('validateQuoteStatusUpdateResponse', () => { diff --git a/packages/bridge-status-controller/src/quote-status-manager/validators.ts b/packages/bridge-status-controller/src/quote-status-manager/validators.ts index 9c530c74d57..43f35870e61 100644 --- a/packages/bridge-status-controller/src/quote-status-manager/validators.ts +++ b/packages/bridge-status-controller/src/quote-status-manager/validators.ts @@ -8,13 +8,13 @@ import { optional, } from '@metamask/superstruct'; -import { StatusResponseSchema } from '../utils/validators'; +import { StatusResponseSchema } from '../utils/validators.js'; import { BaseQuoteStatusUpdateErrorTypes, QuoteStatusUpdateBackendOnChainMismatchTypes, QuoteStatusBackendValues, -} from './constants'; -import { QuoteStatusGetResponse, QuoteStatusUpdateResponse } from './types'; +} from './constants.js'; +import { QuoteStatusGetResponse, QuoteStatusUpdateResponse } from './types.js'; const QuoteStatusUpdateResponseWithCurrentStatusSchema = type({ statusCode: number(), diff --git a/packages/bridge-status-controller/src/strategy/batch-sell-strategy.ts b/packages/bridge-status-controller/src/strategy/batch-sell-strategy.ts index 27b1f2c4626..b86530ae6c6 100644 --- a/packages/bridge-status-controller/src/strategy/batch-sell-strategy.ts +++ b/packages/bridge-status-controller/src/strategy/batch-sell-strategy.ts @@ -4,7 +4,7 @@ import { TransactionType, } from '@metamask/transaction-controller'; -import { QuoteAndTxMetadata } from '../types'; +import { QuoteAndTxMetadata } from '../types.js'; import { findAllTransactionsInBatch, getAddTransactionBatchParams, @@ -13,9 +13,9 @@ import { isTradeTx, shouldDisable7702, toQuoteAndTxMetadataBatch, -} from '../utils/transaction'; -import { SubmitStep } from './types'; -import type { SubmitStrategyParams, SubmitStepResult } from './types'; +} from '../utils/transaction.js'; +import { SubmitStep } from './types.js'; +import type { SubmitStrategyParams, SubmitStepResult } from './types.js'; const getHistoryKeyForQuote = ({ quoteResponse: { quoteId, quote }, diff --git a/packages/bridge-status-controller/src/strategy/batch-strategy.ts b/packages/bridge-status-controller/src/strategy/batch-strategy.ts index 88f7357e69e..bede6f8c892 100644 --- a/packages/bridge-status-controller/src/strategy/batch-strategy.ts +++ b/packages/bridge-status-controller/src/strategy/batch-strategy.ts @@ -7,9 +7,9 @@ import { isTradeTx, shouldDisable7702, toQuoteAndTxMetadata, -} from '../utils/transaction'; -import { SubmitStep } from './types'; -import type { SubmitStrategyParams, SubmitStepResult } from './types'; +} from '../utils/transaction.js'; +import { SubmitStep } from './types.js'; +import type { SubmitStrategyParams, SubmitStepResult } from './types.js'; /** * Submits batched EVM transactions to the TransactionController diff --git a/packages/bridge-status-controller/src/strategy/evm-strategy.ts b/packages/bridge-status-controller/src/strategy/evm-strategy.ts index a3f33253706..97f4bf54f75 100644 --- a/packages/bridge-status-controller/src/strategy/evm-strategy.ts +++ b/packages/bridge-status-controller/src/strategy/evm-strategy.ts @@ -7,10 +7,10 @@ import { TransactionType, } from '@metamask/transaction-controller'; -import { BridgeStatusControllerMessenger } from '../types'; -import { getAccountByAddress } from '../utils/accounts'; -import { getNetworkClientIdByChainId } from '../utils/network'; -import { getApprovalTraceParams } from '../utils/trace'; +import { BridgeStatusControllerMessenger } from '../types.js'; +import { getAccountByAddress } from '../utils/accounts.js'; +import { getNetworkClientIdByChainId } from '../utils/network.js'; +import { getApprovalTraceParams } from '../utils/trace.js'; import { addTransaction, generateActionId, @@ -18,9 +18,9 @@ import { handleMobileHardwareWalletDelay, toTransactionParams, waitForTxConfirmation, -} from '../utils/transaction'; -import { SubmitStep } from './types'; -import type { SubmitStrategyParams, SubmitStepResult } from './types'; +} from '../utils/transaction.js'; +import { SubmitStep } from './types.js'; +import type { SubmitStrategyParams, SubmitStepResult } from './types.js'; /** * Submits a single tx to the TransactionController and returns the txMetaId diff --git a/packages/bridge-status-controller/src/strategy/index.ts b/packages/bridge-status-controller/src/strategy/index.ts index 53500b9aba3..22b8ed10f68 100644 --- a/packages/bridge-status-controller/src/strategy/index.ts +++ b/packages/bridge-status-controller/src/strategy/index.ts @@ -14,12 +14,12 @@ import { TxData, } from '@metamask/bridge-controller'; -import { submitBatchSellHandler } from './batch-sell-strategy'; -import { submitBatchHandler } from './batch-strategy'; -import { submitEvmHandler as defaultSubmitHandler } from './evm-strategy'; -import { submitIntentHandler } from './intent-strategy'; -import { submitNonEvmHandler } from './non-evm-strategy'; -import type { SubmitStrategyParams, SubmitStepResult } from './types'; +import { submitBatchSellHandler } from './batch-sell-strategy.js'; +import { submitBatchHandler } from './batch-strategy.js'; +import { submitEvmHandler as defaultSubmitHandler } from './evm-strategy.js'; +import { submitIntentHandler } from './intent-strategy.js'; +import { submitNonEvmHandler } from './non-evm-strategy.js'; +import type { SubmitStrategyParams, SubmitStepResult } from './types.js'; const validateParams = < TxDataType extends diff --git a/packages/bridge-status-controller/src/strategy/intent-strategy.ts b/packages/bridge-status-controller/src/strategy/intent-strategy.ts index ef35263cfda..19a95b830bd 100644 --- a/packages/bridge-status-controller/src/strategy/intent-strategy.ts +++ b/packages/bridge-status-controller/src/strategy/intent-strategy.ts @@ -6,20 +6,20 @@ import { } from '@metamask/bridge-controller'; import { TransactionType } from '@metamask/transaction-controller'; -import { getJwt } from '../utils/authentication'; +import { getJwt } from '../utils/authentication.js'; import { getIntentFromQuote, mapIntentOrderStatusToTransactionStatus, postSubmitOrder, -} from '../utils/intent-api'; -import { signTypedMessage } from '../utils/keyring'; -import { getNetworkClientIdByChainId } from '../utils/network'; +} from '../utils/intent-api.js'; +import { signTypedMessage } from '../utils/keyring.js'; +import { getNetworkClientIdByChainId } from '../utils/network.js'; import { addSyntheticTransaction, waitForTxConfirmation, -} from '../utils/transaction'; -import { handleEvmApprovals } from './evm-strategy'; -import { SubmitStrategyParams, SubmitStepResult, SubmitStep } from './types'; +} from '../utils/transaction.js'; +import { handleEvmApprovals } from './evm-strategy.js'; +import { SubmitStrategyParams, SubmitStepResult, SubmitStep } from './types.js'; /** * Submits a synthetic EVM transaction to the TransactionController in order to display the intent order's diff --git a/packages/bridge-status-controller/src/strategy/non-evm-strategy.ts b/packages/bridge-status-controller/src/strategy/non-evm-strategy.ts index 29a22dcfd6d..cda6d5c2ad4 100644 --- a/packages/bridge-status-controller/src/strategy/non-evm-strategy.ts +++ b/packages/bridge-status-controller/src/strategy/non-evm-strategy.ts @@ -7,11 +7,11 @@ import type { TxData, } from '@metamask/bridge-controller'; -import { handleNonEvmTx } from '../utils/snaps'; -import { getApprovalTraceParams } from '../utils/trace'; -import { handleApprovalDelay } from '../utils/transaction'; -import { SubmitStep } from './types'; -import type { SubmitStrategyParams, SubmitStepResult } from './types'; +import { handleNonEvmTx } from '../utils/snaps.js'; +import { getApprovalTraceParams } from '../utils/trace.js'; +import { handleApprovalDelay } from '../utils/transaction.js'; +import { SubmitStep } from './types.js'; +import type { SubmitStrategyParams, SubmitStepResult } from './types.js'; /** * Submits the approval transaction for a non-EVM transaction if present diff --git a/packages/bridge-status-controller/src/strategy/types.ts b/packages/bridge-status-controller/src/strategy/types.ts index c45024a9cb4..2d56a7f8d9a 100644 --- a/packages/bridge-status-controller/src/strategy/types.ts +++ b/packages/bridge-status-controller/src/strategy/types.ts @@ -19,7 +19,7 @@ import type { FetchFunction, QuoteAndTxMetadata, StartPollingForBridgeTxStatusArgs, -} from '../types'; +} from '../types.js'; export enum SubmitStep { /** diff --git a/packages/bridge-status-controller/src/types.ts b/packages/bridge-status-controller/src/types.ts index 0f02fce8c76..8a76a77a167 100644 --- a/packages/bridge-status-controller/src/types.ts +++ b/packages/bridge-status-controller/src/types.ts @@ -43,10 +43,10 @@ import type { } from '@metamask/transaction-controller'; import type { CaipAssetType } from '@metamask/utils'; -import type { BridgeStatusControllerMethodActions } from './bridge-status-controller-method-action-types'; -import { BRIDGE_STATUS_CONTROLLER_NAME } from './constants'; -import { QuoteStatusState } from './quote-status-manager/constants'; -import { StatusResponseSchema } from './utils/validators'; +import type { BridgeStatusControllerMethodActions } from './bridge-status-controller-method-action-types.js'; +import { BRIDGE_STATUS_CONTROLLER_NAME } from './constants.js'; +import { QuoteStatusState } from './quote-status-manager/constants.js'; +import { StatusResponseSchema } from './utils/validators.js'; // All fields need to be types not interfaces, same with their children fields // o/w you get a type error diff --git a/packages/bridge-status-controller/src/utils/accounts.ts b/packages/bridge-status-controller/src/utils/accounts.ts index 41343aa5a1f..01b56075ad6 100644 --- a/packages/bridge-status-controller/src/utils/accounts.ts +++ b/packages/bridge-status-controller/src/utils/accounts.ts @@ -1,5 +1,5 @@ /* eslint-disable @typescript-eslint/explicit-function-return-type */ -import { BridgeStatusControllerMessenger } from '../types'; +import { BridgeStatusControllerMessenger } from '../types.js'; export const getAccountByAddress = ( messenger: BridgeStatusControllerMessenger, diff --git a/packages/bridge-status-controller/src/utils/authentication.ts b/packages/bridge-status-controller/src/utils/authentication.ts index 0b9cbd68c3d..9c78fb8349b 100644 --- a/packages/bridge-status-controller/src/utils/authentication.ts +++ b/packages/bridge-status-controller/src/utils/authentication.ts @@ -1,4 +1,4 @@ -import type { BridgeStatusControllerMessenger } from '../types'; +import type { BridgeStatusControllerMessenger } from '../types.js'; export const getJwt = async ( messenger: BridgeStatusControllerMessenger, diff --git a/packages/bridge-status-controller/src/utils/bridge-status.test.ts b/packages/bridge-status-controller/src/utils/bridge-status.test.ts index df5680bb658..83471d4abc0 100644 --- a/packages/bridge-status-controller/src/utils/bridge-status.test.ts +++ b/packages/bridge-status-controller/src/utils/bridge-status.test.ts @@ -1,17 +1,17 @@ -import { BRIDGE_PROD_API_BASE_URL, REFRESH_INTERVAL_MS } from '../constants'; -import { QuoteStatusFetchWithRetryOutcomeType } from '../quote-status-manager/constants'; -import { QuoteStatusGetError } from '../quote-status-manager/errors'; -import { QuoteStatusGetWithRetryOutcome } from '../quote-status-manager/quote-status-get-with-retry-outcome'; -import type { QuoteStatusManager } from '../quote-status-manager/quotes-status-manager'; -import { BridgeClientId } from '../types'; -import type { StatusRequestWithSrcTxHash, FetchFunction } from '../types'; +import { BRIDGE_PROD_API_BASE_URL, REFRESH_INTERVAL_MS } from '../constants.js'; +import { QuoteStatusFetchWithRetryOutcomeType } from '../quote-status-manager/constants.js'; +import { QuoteStatusGetError } from '../quote-status-manager/errors.js'; +import { QuoteStatusGetWithRetryOutcome } from '../quote-status-manager/quote-status-get-with-retry-outcome.js'; +import type { QuoteStatusManager } from '../quote-status-manager/quotes-status-manager.js'; +import { BridgeClientId } from '../types.js'; +import type { StatusRequestWithSrcTxHash, FetchFunction } from '../types.js'; import { fetchBridgeQuoteStatus, fetchBridgeTxStatus, getBridgeStatusUrl, getStatusRequestDto, shouldSkipFetchDueToFetchFailures, -} from './bridge-status'; +} from './bridge-status.js'; describe('utils', () => { const mockStatusRequest: StatusRequestWithSrcTxHash = { diff --git a/packages/bridge-status-controller/src/utils/bridge-status.ts b/packages/bridge-status-controller/src/utils/bridge-status.ts index f97a1e6bf65..15040f27032 100644 --- a/packages/bridge-status-controller/src/utils/bridge-status.ts +++ b/packages/bridge-status-controller/src/utils/bridge-status.ts @@ -7,8 +7,8 @@ import type { Quote, QuoteResponse } from '@metamask/bridge-controller'; import type { Provider } from '@metamask/network-controller'; import { StructError } from '@metamask/superstruct'; -import { REFRESH_INTERVAL_MS } from '../constants'; -import { QuoteStatusManager } from '../quote-status-manager/quotes-status-manager'; +import { REFRESH_INTERVAL_MS } from '../constants.js'; +import { QuoteStatusManager } from '../quote-status-manager/quotes-status-manager.js'; import type { StatusResponse, StatusRequestWithSrcTxHash, @@ -17,10 +17,10 @@ import type { BridgeHistoryItem, StatusRequest, BridgeStatusControllerMessenger, -} from '../types'; -import { isHistoryItemTooOld } from './history'; -import { getNetworkClientByChainId } from './network'; -import { validateBridgeStatusResponse } from './validators'; +} from '../types.js'; +import { isHistoryItemTooOld } from './history.js'; +import { getNetworkClientByChainId } from './network.js'; +import { validateBridgeStatusResponse } from './validators.js'; export const getBridgeStatusUrl = (bridgeApiBaseUrl: string): string => `${bridgeApiBaseUrl}/getTxStatus`; diff --git a/packages/bridge-status-controller/src/utils/bridge.ts b/packages/bridge-status-controller/src/utils/bridge.ts index 01aa557264e..6e9a1154262 100644 --- a/packages/bridge-status-controller/src/utils/bridge.ts +++ b/packages/bridge-status-controller/src/utils/bridge.ts @@ -5,7 +5,7 @@ import { RequiredEventContextFromClient, } from '@metamask/bridge-controller'; -import { BridgeStatusControllerMessenger } from '../types'; +import { BridgeStatusControllerMessenger } from '../types.js'; export const stopPollingForQuotes = ( messenger: BridgeStatusControllerMessenger, diff --git a/packages/bridge-status-controller/src/utils/feature-flags.ts b/packages/bridge-status-controller/src/utils/feature-flags.ts index 7194f9cfbe7..19452e9251b 100644 --- a/packages/bridge-status-controller/src/utils/feature-flags.ts +++ b/packages/bridge-status-controller/src/utils/feature-flags.ts @@ -1,7 +1,7 @@ import { getBridgeFeatureFlags } from '@metamask/bridge-controller'; -import { DEFAULT_MAX_PENDING_HISTORY_ITEM_AGE_MS } from '../constants'; -import { BridgeStatusControllerMessenger } from '../types'; +import { DEFAULT_MAX_PENDING_HISTORY_ITEM_AGE_MS } from '../constants.js'; +import { BridgeStatusControllerMessenger } from '../types.js'; export const getMaxPendingHistoryItemAgeMs = ( messenger: BridgeStatusControllerMessenger, diff --git a/packages/bridge-status-controller/src/utils/gas.ts b/packages/bridge-status-controller/src/utils/gas.ts index b5afdfe0abf..54d8e7690ae 100644 --- a/packages/bridge-status-controller/src/utils/gas.ts +++ b/packages/bridge-status-controller/src/utils/gas.ts @@ -3,7 +3,7 @@ import type { TokenAmountValues } from '@metamask/bridge-controller'; import type { TransactionReceipt } from '@metamask/transaction-controller'; import { BigNumber } from 'bignumber.js'; -import type { BridgeHistoryItem } from '../types'; +import type { BridgeHistoryItem } from '../types.js'; const calcGasInHexWei = (gasLimit?: string, gasPrice?: string) => { return gasLimit && gasPrice diff --git a/packages/bridge-status-controller/src/utils/history.test.ts b/packages/bridge-status-controller/src/utils/history.test.ts index 695e9d4ab32..1f5a0a75004 100644 --- a/packages/bridge-status-controller/src/utils/history.test.ts +++ b/packages/bridge-status-controller/src/utils/history.test.ts @@ -6,12 +6,12 @@ import type { BridgeHistoryItem, StartPollingForBridgeTxStatusArgsSerialized, StatusResponse, -} from '../types'; +} from '../types.js'; import { getHistoryKey, getInitialHistoryItem, rekeyHistoryItemInState, -} from './history'; +} from './history.js'; describe('History Utils', () => { describe('rekeyHistoryItemInState', () => { diff --git a/packages/bridge-status-controller/src/utils/history.ts b/packages/bridge-status-controller/src/utils/history.ts index 3eb541926a6..c504b9de75f 100644 --- a/packages/bridge-status-controller/src/utils/history.ts +++ b/packages/bridge-status-controller/src/utils/history.ts @@ -11,8 +11,8 @@ import type { BridgeStatusControllerMessenger, BridgeStatusControllerState, StartPollingForBridgeTxStatusArgsSerialized, -} from '../types'; -import { getMaxPendingHistoryItemAgeMs } from './feature-flags'; +} from '../types.js'; +import { getMaxPendingHistoryItemAgeMs } from './feature-flags.js'; const updateHistoryItem = ( oldHistoryItem: BridgeHistoryItem, diff --git a/packages/bridge-status-controller/src/utils/intent-api.test.ts b/packages/bridge-status-controller/src/utils/intent-api.test.ts index caaa42aa1d5..cb22db0b77c 100644 --- a/packages/bridge-status-controller/src/utils/intent-api.test.ts +++ b/packages/bridge-status-controller/src/utils/intent-api.test.ts @@ -2,16 +2,16 @@ import { BridgeClientId, StatusTypes } from '@metamask/bridge-controller'; import { TransactionStatus } from '@metamask/transaction-controller'; -import type { FetchFunction } from '../types'; +import type { FetchFunction } from '../types.js'; import { getIntentFromQuote, IntentApiImpl, mapIntentOrderStatusToTransactionStatus, postSubmitOrder, translateIntentOrderToBridgeStatus, -} from './intent-api'; -import type { IntentSubmissionParams } from './intent-api'; -import { IntentOrderStatus } from './validators'; +} from './intent-api.js'; +import type { IntentSubmissionParams } from './intent-api.js'; +import { IntentOrderStatus } from './validators.js'; describe('IntentApiImpl', () => { const baseUrl = 'https://example.com/api'; diff --git a/packages/bridge-status-controller/src/utils/intent-api.ts b/packages/bridge-status-controller/src/utils/intent-api.ts index c9edb1a0671..38421882f08 100644 --- a/packages/bridge-status-controller/src/utils/intent-api.ts +++ b/packages/bridge-status-controller/src/utils/intent-api.ts @@ -8,12 +8,12 @@ import { } from '@metamask/bridge-controller'; import { TransactionStatus } from '@metamask/transaction-controller'; -import type { FetchFunction, StatusResponse } from '../types'; +import type { FetchFunction, StatusResponse } from '../types.js'; import { IntentStatusResponse, IntentOrderStatus, validateIntentStatusResponse, -} from './validators'; +} from './validators.js'; export type IntentSubmissionParams = { srcChainId: ChainId; diff --git a/packages/bridge-status-controller/src/utils/keyring.ts b/packages/bridge-status-controller/src/utils/keyring.ts index 09c031add54..0eeba547e1b 100644 --- a/packages/bridge-status-controller/src/utils/keyring.ts +++ b/packages/bridge-status-controller/src/utils/keyring.ts @@ -1,7 +1,7 @@ import type { Intent } from '@metamask/bridge-controller'; import { SignTypedDataVersion } from '@metamask/keyring-controller'; -import type { BridgeStatusControllerMessenger } from '../types'; +import type { BridgeStatusControllerMessenger } from '../types.js'; export const signTypedMessage = async ({ messenger, diff --git a/packages/bridge-status-controller/src/utils/metrics.test.ts b/packages/bridge-status-controller/src/utils/metrics.test.ts index bff10092277..5f48886e8e9 100644 --- a/packages/bridge-status-controller/src/utils/metrics.test.ts +++ b/packages/bridge-status-controller/src/utils/metrics.test.ts @@ -15,7 +15,7 @@ import type { import { TransactionType } from '@metamask/transaction-controller'; import { TransactionStatus } from '@metamask/transaction-controller'; -import type { BridgeHistoryItem } from '../types'; +import type { BridgeHistoryItem } from '../types.js'; import { getTxStatusesFromHistory, getFinalizedTxProperties, @@ -24,7 +24,7 @@ import { getRequestMetadataFromHistory, getEVMTxPropertiesFromTransactionMeta, getPreConfirmationPropertiesFromQuote, -} from './metrics'; +} from './metrics.js'; describe('metrics utils', () => { const mockHistoryItem: BridgeHistoryItem = { diff --git a/packages/bridge-status-controller/src/utils/metrics.ts b/packages/bridge-status-controller/src/utils/metrics.ts index 99510c4aa57..2d28b950ae7 100644 --- a/packages/bridge-status-controller/src/utils/metrics.ts +++ b/packages/bridge-status-controller/src/utils/metrics.ts @@ -36,12 +36,12 @@ import type { TransactionMeta } from '@metamask/transaction-controller'; import type { CaipAssetType, Hex } from '@metamask/utils'; import { BigNumber } from 'bignumber.js'; -import type { BridgeHistoryItem } from '../types'; -import { calcActualGasUsed } from './gas'; +import type { BridgeHistoryItem } from '../types.js'; +import { calcActualGasUsed } from './gas.js'; import { getActualBridgeReceivedAmount, getActualSwapReceivedAmount, -} from './swap-received-amount'; +} from './swap-received-amount.js'; export const getTxStatusesFromHistory = ({ status, diff --git a/packages/bridge-status-controller/src/utils/network.ts b/packages/bridge-status-controller/src/utils/network.ts index 98bc47f9e1e..e0ef393d277 100644 --- a/packages/bridge-status-controller/src/utils/network.ts +++ b/packages/bridge-status-controller/src/utils/network.ts @@ -3,7 +3,7 @@ import { formatChainIdToHex } from '@metamask/bridge-controller'; import type { GenericQuoteRequest } from '@metamask/bridge-controller'; import type { NetworkClient } from '@metamask/network-controller'; -import type { BridgeStatusControllerMessenger } from '../types'; +import type { BridgeStatusControllerMessenger } from '../types.js'; export const getSelectedChainId = ( messenger: BridgeStatusControllerMessenger, diff --git a/packages/bridge-status-controller/src/utils/snaps.test.ts b/packages/bridge-status-controller/src/utils/snaps.test.ts index 2b7fe7ed1b4..60668a55578 100644 --- a/packages/bridge-status-controller/src/utils/snaps.test.ts +++ b/packages/bridge-status-controller/src/utils/snaps.test.ts @@ -1,9 +1,9 @@ /* eslint-disable consistent-return */ import { v4 as uuid } from 'uuid'; -import { ChainId } from '../../../bridge-controller/src/types'; -import { BridgeStatusControllerMessenger } from '../types'; -import { createClientTransactionRequest, handleNonEvmTx } from './snaps'; +import { ChainId } from '../../../bridge-controller/src/types.js'; +import { BridgeStatusControllerMessenger } from '../types.js'; +import { createClientTransactionRequest, handleNonEvmTx } from './snaps.js'; jest.mock('uuid', () => ({ v4: jest.fn(), diff --git a/packages/bridge-status-controller/src/utils/snaps.ts b/packages/bridge-status-controller/src/utils/snaps.ts index 94ce3483344..4dec1345910 100644 --- a/packages/bridge-status-controller/src/utils/snaps.ts +++ b/packages/bridge-status-controller/src/utils/snaps.ts @@ -26,7 +26,7 @@ import { v4 as uuid } from 'uuid'; import type { BridgeStatusControllerMessenger, SolanaTransactionMeta, -} from '../types'; +} from '../types.js'; /** * Creates a client request object for signing and sending a transaction diff --git a/packages/bridge-status-controller/src/utils/swap-received-amount.ts b/packages/bridge-status-controller/src/utils/swap-received-amount.ts index f8553e77e64..9827fb41c74 100644 --- a/packages/bridge-status-controller/src/utils/swap-received-amount.ts +++ b/packages/bridge-status-controller/src/utils/swap-received-amount.ts @@ -3,7 +3,7 @@ import { isNativeAddress } from '@metamask/bridge-controller'; import type { TransactionMeta } from '@metamask/transaction-controller'; import { BigNumber } from 'bignumber.js'; -import type { BridgeHistoryItem } from '../types'; +import type { BridgeHistoryItem } from '../types.js'; const getReceivedNativeAmount = ( historyItem: BridgeHistoryItem, diff --git a/packages/bridge-status-controller/src/utils/trace.ts b/packages/bridge-status-controller/src/utils/trace.ts index 72098788d1f..3faf53d55ab 100644 --- a/packages/bridge-status-controller/src/utils/trace.ts +++ b/packages/bridge-status-controller/src/utils/trace.ts @@ -5,7 +5,7 @@ import { QuoteResponse, } from '@metamask/bridge-controller'; -import { TraceName } from '../constants'; +import { TraceName } from '../constants.js'; export const getTraceParams = ( quoteResponse: QuoteResponse, diff --git a/packages/bridge-status-controller/src/utils/transaction.test.ts b/packages/bridge-status-controller/src/utils/transaction.test.ts index 1cd257935e1..f5d8be3aab3 100644 --- a/packages/bridge-status-controller/src/utils/transaction.test.ts +++ b/packages/bridge-status-controller/src/utils/transaction.test.ts @@ -18,13 +18,13 @@ import { } from '@metamask/transaction-controller'; import type { TransactionMeta } from '@metamask/transaction-controller'; -import { APPROVAL_DELAY_MS } from '../constants'; +import { APPROVAL_DELAY_MS } from '../constants.js'; import type { BridgeStatusControllerMessenger, QuoteAndTxMetadata, -} from '../types'; -import { getStatusRequestParams } from './bridge-status'; -import * as snaps from './snaps'; +} from '../types.js'; +import { getStatusRequestParams } from './bridge-status.js'; +import * as snaps from './snaps.js'; import { handleApprovalDelay, handleMobileHardwareWalletDelay, @@ -35,7 +35,7 @@ import { findAllTransactionsInBatch, isApprovalTx, updateTransactionsInBatch, -} from './transaction'; +} from './transaction.js'; describe('Bridge Status Controller Transaction Utils', () => { describe('waitForTxConfirmation', () => { diff --git a/packages/bridge-status-controller/src/utils/transaction.ts b/packages/bridge-status-controller/src/utils/transaction.ts index 6942ee261d8..519a2edf533 100644 --- a/packages/bridge-status-controller/src/utils/transaction.ts +++ b/packages/bridge-status-controller/src/utils/transaction.ts @@ -32,11 +32,11 @@ import type { import { createProjectLogger, isStrictHexString } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import { APPROVAL_DELAY_MS } from '../constants'; -import type { BridgeStatusControllerMessenger } from '../types'; -import type { QuoteAndTxMetadata } from '../types'; -import { getAccountByAddress } from './accounts'; -import { getNetworkClientIdByChainId } from './network'; +import { APPROVAL_DELAY_MS } from '../constants.js'; +import type { BridgeStatusControllerMessenger } from '../types.js'; +import type { QuoteAndTxMetadata } from '../types.js'; +import { getAccountByAddress } from './accounts.js'; +import { getNetworkClientIdByChainId } from './network.js'; export const isApprovalTx = (type: TransactionType) => type === TransactionType.bridgeApproval || diff --git a/packages/bridge-status-controller/src/utils/validators.test.ts b/packages/bridge-status-controller/src/utils/validators.test.ts index 9987a1afb2c..ab842f35bb2 100644 --- a/packages/bridge-status-controller/src/utils/validators.test.ts +++ b/packages/bridge-status-controller/src/utils/validators.test.ts @@ -1,4 +1,4 @@ -import { validateBridgeStatusResponse } from './validators'; +import { validateBridgeStatusResponse } from './validators.js'; const BridgeTxStatusResponses = { STATUS_PENDING_VALID: { diff --git a/packages/bridge-status-controller/test/mock-batch-sell-erc20-erc20.ts b/packages/bridge-status-controller/test/mock-batch-sell-erc20-erc20.ts index ad65c4c72d1..e6780ea49c4 100644 --- a/packages/bridge-status-controller/test/mock-batch-sell-erc20-erc20.ts +++ b/packages/bridge-status-controller/test/mock-batch-sell-erc20-erc20.ts @@ -16,7 +16,7 @@ import { TransactionType, } from '@metamask/transaction-controller'; -import { BridgeHistoryItem } from '../src'; +import { BridgeHistoryItem } from '../src.js'; export const mockBatchSellErc20Erc20: QuoteResponse[] = [ { From 205eb4af61ba6b212ed47840b53a1ddbce523099 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:48:48 +0200 Subject: [PATCH 083/136] ESLint fix and `jest` global import for signature-controller --- .../SignatureController-method-action-types.ts | 2 +- .../src/SignatureController.test.ts | 16 ++++++++-------- .../src/SignatureController.ts | 16 ++++++++-------- packages/signature-controller/src/index.ts | 6 +++--- .../src/utils/decoding-api.test.ts | 6 +++--- .../src/utils/decoding-api.ts | 6 +++--- .../src/utils/delegations.test.ts | 6 +++--- .../src/utils/delegations.ts | 4 ++-- .../src/utils/normalize.test.ts | 4 ++-- .../signature-controller/src/utils/normalize.ts | 2 +- .../src/utils/validation.test.ts | 4 ++-- .../signature-controller/src/utils/validation.ts | 8 +++----- 12 files changed, 39 insertions(+), 41 deletions(-) diff --git a/packages/signature-controller/src/SignatureController-method-action-types.ts b/packages/signature-controller/src/SignatureController-method-action-types.ts index ca6aedcc146..3da10884974 100644 --- a/packages/signature-controller/src/SignatureController-method-action-types.ts +++ b/packages/signature-controller/src/SignatureController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { SignatureController } from './SignatureController'; +import type { SignatureController } from './SignatureController.js'; /** * Reset the controller state to the initial state. diff --git a/packages/signature-controller/src/SignatureController.test.ts b/packages/signature-controller/src/SignatureController.test.ts index 4f9d1d5349c..60d57b29b9f 100644 --- a/packages/signature-controller/src/SignatureController.test.ts +++ b/packages/signature-controller/src/SignatureController.test.ts @@ -5,26 +5,26 @@ import { SignTypedDataVersion } from '@metamask/keyring-controller'; import { LogType, SigningStage } from '@metamask/logging-controller'; import { v1 } from 'uuid'; -import { flushPromises } from '../../../tests/helpers'; +import { flushPromises } from '../../../tests/helpers.js'; import type { SignatureControllerMessenger, SignatureControllerOptions, SignatureControllerState, -} from './SignatureController'; -import { SignatureController } from './SignatureController'; +} from './SignatureController.js'; +import { SignatureController } from './SignatureController.js'; import type { MessageParamsPersonal, MessageParamsTyped, OriginalRequest, SignatureRequest, -} from './types'; -import { SignatureRequestStatus, SignatureRequestType } from './types'; -import * as DecodingDataUtils from './utils/decoding-api'; +} from './types.js'; +import { SignatureRequestStatus, SignatureRequestType } from './types.js'; +import * as DecodingDataUtils from './utils/decoding-api.js'; import { normalizePersonalMessageParams, normalizeTypedMessageParams, -} from './utils/normalize'; -import { validateTypedSignatureRequest } from './utils/validation'; +} from './utils/normalize.js'; +import { validateTypedSignatureRequest } from './utils/validation.js'; jest.mock('uuid'); jest.mock('./utils/validation'); diff --git a/packages/signature-controller/src/SignatureController.ts b/packages/signature-controller/src/SignatureController.ts index c24b6bebe33..d5f2de6961e 100644 --- a/packages/signature-controller/src/SignatureController.ts +++ b/packages/signature-controller/src/SignatureController.ts @@ -39,9 +39,9 @@ import type { Hex, Json } from '@metamask/utils'; import EventEmitter from 'events'; import { v1 as random } from 'uuid'; -import { projectLogger as log } from './logger'; -import type { SignatureControllerMethodActions } from './SignatureController-method-action-types'; -import { SignatureRequestStatus, SignatureRequestType } from './types'; +import { projectLogger as log } from './logger.js'; +import type { SignatureControllerMethodActions } from './SignatureController-method-action-types.js'; +import { SignatureRequestStatus, SignatureRequestType } from './types.js'; import type { MessageParamsPersonal, MessageParamsTyped, @@ -52,21 +52,21 @@ import type { LegacyStateMessage, StateSIWEMessage, MessageParamsTypedData, -} from './types'; -import { DECODING_API_ERRORS, decodeSignature } from './utils/decoding-api'; +} from './types.js'; +import { DECODING_API_ERRORS, decodeSignature } from './utils/decoding-api.js'; import { decodePermissionFromRequest, isDelegationRequest, validateExecutionPermissionMetadata, -} from './utils/delegations'; +} from './utils/delegations.js'; import { normalizePersonalMessageParams, normalizeTypedMessageParams, -} from './utils/normalize'; +} from './utils/normalize.js'; import { validatePersonalSignatureRequest, validateTypedSignatureRequest, -} from './utils/validation'; +} from './utils/validation.js'; const controllerName = 'SignatureController'; diff --git a/packages/signature-controller/src/index.ts b/packages/signature-controller/src/index.ts index 82447289f46..46754d16adb 100644 --- a/packages/signature-controller/src/index.ts +++ b/packages/signature-controller/src/index.ts @@ -1,4 +1,4 @@ -export * from './SignatureController'; +export * from './SignatureController.js'; export type { SignatureControllerResetStateAction, SignatureControllerRejectUnapprovedAction, @@ -10,5 +10,5 @@ export type { SignatureControllerSetDeferredSignErrorAction, SignatureControllerSetTypedMessageInProgressAction, SignatureControllerSetPersonalMessageInProgressAction, -} from './SignatureController-method-action-types'; -export * from './types'; +} from './SignatureController-method-action-types.js'; +export * from './types.js'; diff --git a/packages/signature-controller/src/utils/decoding-api.test.ts b/packages/signature-controller/src/utils/decoding-api.test.ts index f9dbfa2a52d..c07cfafaef5 100644 --- a/packages/signature-controller/src/utils/decoding-api.test.ts +++ b/packages/signature-controller/src/utils/decoding-api.test.ts @@ -1,6 +1,6 @@ -import { EthMethod } from '../types'; -import type { OriginalRequest } from '../types'; -import { decodeSignature } from './decoding-api'; +import { EthMethod } from '../types.js'; +import type { OriginalRequest } from '../types.js'; +import { decodeSignature } from './decoding-api.js'; const PERMIT_REQUEST_MOCK = { method: EthMethod.SignTypedDataV4, diff --git a/packages/signature-controller/src/utils/decoding-api.ts b/packages/signature-controller/src/utils/decoding-api.ts index b8ed5bc1a81..fde49e5562e 100644 --- a/packages/signature-controller/src/utils/decoding-api.ts +++ b/packages/signature-controller/src/utils/decoding-api.ts @@ -1,6 +1,6 @@ -import { EthMethod } from '../types'; -import type { OriginalRequest } from '../types'; -import { normalizeParam } from './normalize'; +import { EthMethod } from '../types.js'; +import type { OriginalRequest } from '../types.js'; +import { normalizeParam } from './normalize.js'; export const DECODING_API_ERRORS = { UNSUPPORTED_SIGNATURE: 'UNSUPPORTED_SIGNATURE', diff --git a/packages/signature-controller/src/utils/delegations.test.ts b/packages/signature-controller/src/utils/delegations.test.ts index 4816956af4d..a8d2c2c8e88 100644 --- a/packages/signature-controller/src/utils/delegations.test.ts +++ b/packages/signature-controller/src/utils/delegations.test.ts @@ -1,13 +1,13 @@ import type { DecodedPermission } from '@metamask/gator-permissions-controller'; import type { Json } from '@metamask/utils'; -import type { SignatureControllerMessenger } from '../SignatureController'; -import type { MessageParamsTyped, MessageParamsTypedData } from '../types'; +import type { SignatureControllerMessenger } from '../SignatureController.js'; +import type { MessageParamsTyped, MessageParamsTypedData } from '../types.js'; import { decodePermissionFromRequest, isDelegationRequest, validateExecutionPermissionMetadata, -} from './delegations'; +} from './delegations.js'; describe('delegations utils', () => { describe('isDelegationRequest', () => { diff --git a/packages/signature-controller/src/utils/delegations.ts b/packages/signature-controller/src/utils/delegations.ts index cf1b12c7179..28a36633fb1 100644 --- a/packages/signature-controller/src/utils/delegations.ts +++ b/packages/signature-controller/src/utils/delegations.ts @@ -4,11 +4,11 @@ import type { } from '@metamask/gator-permissions-controller'; import { isHexAddress, isStrictHexString } from '@metamask/utils'; -import type { SignatureControllerMessenger } from '../SignatureController'; +import type { SignatureControllerMessenger } from '../SignatureController.js'; import type { MessageParamsTypedData, MessageParamsTypedDataWithMetadata, -} from '../types'; +} from '../types.js'; const DELEGATION_PRIMARY_TYPE = 'Delegation'; diff --git a/packages/signature-controller/src/utils/normalize.test.ts b/packages/signature-controller/src/utils/normalize.test.ts index 26b930f2d29..812cad765de 100644 --- a/packages/signature-controller/src/utils/normalize.test.ts +++ b/packages/signature-controller/src/utils/normalize.test.ts @@ -1,11 +1,11 @@ import { SignTypedDataVersion } from '@metamask/keyring-controller'; -import type { MessageParamsPersonal, MessageParamsTyped } from '../types'; +import type { MessageParamsPersonal, MessageParamsTyped } from '../types.js'; import { normalizeParam, normalizePersonalMessageParams, normalizeTypedMessageParams, -} from './normalize'; +} from './normalize.js'; describe('Normalize Utils', () => { describe('normalizePersonalMessageParams', () => { diff --git a/packages/signature-controller/src/utils/normalize.ts b/packages/signature-controller/src/utils/normalize.ts index 4c06c439acb..9ff8c4ee6f5 100644 --- a/packages/signature-controller/src/utils/normalize.ts +++ b/packages/signature-controller/src/utils/normalize.ts @@ -2,7 +2,7 @@ import { SignTypedDataVersion } from '@metamask/keyring-controller'; import { add0x, bytesToHex, remove0x } from '@metamask/utils'; import type { Json } from '@metamask/utils'; -import type { MessageParamsPersonal, MessageParamsTyped } from '../types'; +import type { MessageParamsPersonal, MessageParamsTyped } from '../types.js'; /** * Normalize personal message params. diff --git a/packages/signature-controller/src/utils/validation.test.ts b/packages/signature-controller/src/utils/validation.test.ts index 26f5b5ff1b7..fa1ccf7eadf 100644 --- a/packages/signature-controller/src/utils/validation.test.ts +++ b/packages/signature-controller/src/utils/validation.test.ts @@ -8,12 +8,12 @@ import type { MessageParamsPersonal, MessageParamsTyped, OriginalRequest, -} from '../types'; +} from '../types.js'; import { PRIMARY_TYPE_DELEGATION, validatePersonalSignatureRequest, validateTypedSignatureRequest, -} from './validation'; +} from './validation.js'; const CHAIN_ID_MOCK = '0x1'; const ORIGIN_MOCK = 'test.com'; diff --git a/packages/signature-controller/src/utils/validation.ts b/packages/signature-controller/src/utils/validation.ts index 024d1d9c8af..f36cdb6b8c7 100644 --- a/packages/signature-controller/src/utils/validation.ts +++ b/packages/signature-controller/src/utils/validation.ts @@ -15,8 +15,8 @@ import type { MessageParamsTyped, MessageParamsTypedData, OriginalRequest, -} from '../types'; -import { isDelegationRequest } from './delegations'; +} from '../types.js'; +import { isDelegationRequest } from './delegations.js'; export const PRIMARY_TYPE_DELEGATION = 'Delegation'; export const DELEGATOR_FIELD = 'delegator'; @@ -87,9 +87,7 @@ export function validateTypedSignatureRequest({ function validateTypedSignatureRequestV1(messageData: MessageParamsTyped) { if (!messageData.data || !Array.isArray(messageData.data)) { throw new Error( - // TODO: Either fix this lint violation or explain why it's necessary to ignore. - // eslint-disable-next-line @typescript-eslint/restrict-template-expressions - `Invalid message "data": ${messageData.data} must be a valid array.`, + `Invalid message "data": ${JSON.stringify(messageData.data)} must be a valid array.`, ); } From 32b18bcd5985a342321da1eaf79d363c68ffcbfd Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:48:49 +0200 Subject: [PATCH 084/136] ESLint fix and `jest` global import for transaction-pay-controller --- .../transaction-pay-controller/package.json | 2 +- ...actionPayController-method-action-types.ts | 2 +- .../src/TransactionPayController.test.ts | 22 +++++------ .../src/TransactionPayController.ts | 22 +++++------ .../src/actions/update-fiat-payment.test.ts | 8 ++-- .../src/actions/update-fiat-payment.ts | 8 ++-- .../src/actions/update-payment-token.test.ts | 10 ++--- .../src/actions/update-payment-token.ts | 10 ++--- .../src/constants.test.ts | 2 +- .../src/helpers/QuoteRefresher.test.ts | 12 +++--- .../src/helpers/QuoteRefresher.ts | 14 +++---- .../helpers/TransactionPayPublishHook.test.ts | 10 ++--- .../src/helpers/TransactionPayPublishHook.ts | 14 +++---- .../transaction-pay-controller/src/index.ts | 10 ++--- .../strategy/across/AcrossStrategy.test.ts | 14 +++---- .../src/strategy/across/AcrossStrategy.ts | 20 +++++----- .../strategy/across/across-actions.test.ts | 4 +- .../src/strategy/across/across-actions.ts | 6 +-- .../src/strategy/across/across-quotes.test.ts | 24 ++++++------ .../src/strategy/across/across-quotes.ts | 39 ++++++++++--------- .../src/strategy/across/across-submit.test.ts | 14 +++---- .../src/strategy/across/across-submit.ts | 18 ++++----- .../src/strategy/across/authorization-list.ts | 4 +- .../src/strategy/across/perps.ts | 4 +- .../src/strategy/across/requests.ts | 2 +- .../src/strategy/across/transactions.test.ts | 4 +- .../src/strategy/across/transactions.ts | 2 +- .../src/strategy/fiat/FiatStrategy.test.ts | 12 +++--- .../src/strategy/fiat/FiatStrategy.ts | 10 ++--- .../src/strategy/fiat/constants.ts | 2 +- .../strategy/fiat/fiat-direct-musd.test.ts | 12 +++--- .../src/strategy/fiat/fiat-direct-musd.ts | 20 +++++----- .../src/strategy/fiat/fiat-quotes.test.ts | 21 +++++----- .../src/strategy/fiat/fiat-quotes.ts | 25 ++++++------ .../strategy/fiat/fiat-submit-simple.test.ts | 16 ++++---- .../src/strategy/fiat/fiat-submit-simple.ts | 14 +++---- .../fiat-submit-with-transaction-data.test.ts | 18 ++++----- .../fiat/fiat-submit-with-transaction-data.ts | 18 ++++----- .../src/strategy/fiat/fiat-submit.test.ts | 29 +++++++------- .../src/strategy/fiat/fiat-submit.ts | 22 +++++------ .../strategy/fiat/fiat-test-funding.test.ts | 19 +++++---- .../src/strategy/fiat/fiat-test-funding.ts | 20 +++++----- .../src/strategy/fiat/types.ts | 2 +- .../src/strategy/fiat/utils.test.ts | 15 ++++--- .../src/strategy/fiat/utils.ts | 16 ++++---- .../src/strategy/relay/RelayBridge.test.ts | 12 +++--- .../src/strategy/relay/RelayStrategy.test.ts | 12 +++--- .../src/strategy/relay/RelayStrategy.ts | 10 ++--- .../src/strategy/relay/constants.ts | 4 +- .../relay/hyperliquid-activation.test.ts | 10 ++--- .../strategy/relay/hyperliquid-activation.ts | 10 ++--- .../relay/hyperliquid-withdraw.test.ts | 10 ++--- .../strategy/relay/hyperliquid-withdraw.ts | 10 ++--- .../relay/polymarket/withdraw.test.ts | 14 +++---- .../src/strategy/relay/polymarket/withdraw.ts | 14 +++---- .../src/strategy/relay/relay-api.test.ts | 10 ++--- .../src/strategy/relay/relay-api.ts | 8 ++-- .../relay/relay-max-gas-station.test.ts | 16 ++++---- .../strategy/relay/relay-max-gas-station.ts | 10 ++--- .../relay/relay-post-ma-vault.test.ts | 14 +++---- .../src/strategy/relay/relay-post-ma-vault.ts | 14 +++---- .../src/strategy/relay/relay-quotes.test.ts | 20 +++++----- .../src/strategy/relay/relay-quotes.ts | 36 ++++++++--------- .../relay/relay-submit-execute.test.ts | 14 +++---- .../strategy/relay/relay-submit-execute.ts | 14 +++---- .../src/strategy/relay/relay-submit.test.ts | 27 +++++++------ .../src/strategy/relay/relay-submit.ts | 26 ++++++------- .../strategy/server/ServerStrategy.test.ts | 14 +++---- .../src/strategy/server/ServerStrategy.ts | 10 ++--- .../src/strategy/server/perps.test.ts | 6 +-- .../src/strategy/server/perps.ts | 4 +- .../src/strategy/server/server-api.test.ts | 10 ++--- .../src/strategy/server/server-api.ts | 8 ++-- .../src/strategy/server/server-quotes.test.ts | 22 +++++------ .../src/strategy/server/server-quotes.ts | 28 ++++++------- .../src/strategy/server/server-submit.test.ts | 22 +++++------ .../src/strategy/server/server-submit.ts | 20 +++++----- .../src/tests/messenger-mock.ts | 6 +-- .../transaction-pay-controller/src/types.ts | 4 +- .../src/utils/7702.ts | 4 +- .../src/utils/amounts.test.ts | 2 +- .../src/utils/amounts.ts | 2 +- .../src/utils/chomp.test.ts | 8 ++-- .../src/utils/chomp.ts | 8 ++-- .../src/utils/error-prefix.test.ts | 2 +- .../src/utils/feature-flags.test.ts | 14 +++---- .../src/utils/feature-flags.ts | 16 ++++---- .../src/utils/gas-station.test.ts | 8 ++-- .../src/utils/gas-station.ts | 8 ++-- .../src/utils/gas.test.ts | 14 +++---- .../src/utils/gas.ts | 15 ++++--- .../src/utils/ma-vault-deposit.test.ts | 10 ++--- .../src/utils/ma-vault-deposit.ts | 14 +++---- .../src/utils/no-op-quote.test.ts | 6 +-- .../src/utils/no-op-quote.ts | 4 +- .../src/utils/provider.test.ts | 4 +- .../src/utils/provider.ts | 4 +- .../src/utils/quote-gas.test.ts | 8 ++-- .../src/utils/quote-gas.ts | 8 ++-- .../src/utils/quotes.test.ts | 20 +++++----- .../src/utils/quotes.ts | 18 ++++----- .../src/utils/required-tokens.test.ts | 8 ++-- .../src/utils/required-tokens.ts | 6 +-- .../src/utils/source-amounts.test.ts | 16 ++++---- .../src/utils/source-amounts.ts | 20 +++++----- .../src/utils/strategy.test.ts | 14 +++---- .../src/utils/strategy.ts | 12 +++--- .../src/utils/token.test.ts | 8 ++-- .../src/utils/token.ts | 8 ++-- .../src/utils/totals.test.ts | 10 ++--- .../src/utils/totals.ts | 8 ++-- .../src/utils/transaction.test.ts | 12 +++--- .../src/utils/transaction.ts | 12 +++--- 113 files changed, 706 insertions(+), 686 deletions(-) diff --git a/packages/transaction-pay-controller/package.json b/packages/transaction-pay-controller/package.json index 205ff0f1f09..191f0af87aa 100644 --- a/packages/transaction-pay-controller/package.json +++ b/packages/transaction-pay-controller/package.json @@ -68,7 +68,7 @@ "bignumber.js": "^9.1.2", "bn.js": "^5.2.1", "immer": "^9.0.6", - "lodash": "^4.17.21" + "lodash-es": "^4.17.21" }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", diff --git a/packages/transaction-pay-controller/src/TransactionPayController-method-action-types.ts b/packages/transaction-pay-controller/src/TransactionPayController-method-action-types.ts index ff753bb1792..14a91436fa2 100644 --- a/packages/transaction-pay-controller/src/TransactionPayController-method-action-types.ts +++ b/packages/transaction-pay-controller/src/TransactionPayController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { TransactionPayController } from './TransactionPayController'; +import type { TransactionPayController } from './TransactionPayController.js'; /** * Sets the transaction configuration. diff --git a/packages/transaction-pay-controller/src/TransactionPayController.test.ts b/packages/transaction-pay-controller/src/TransactionPayController.test.ts index fcb6c4e840e..09034fd3bfd 100644 --- a/packages/transaction-pay-controller/src/TransactionPayController.test.ts +++ b/packages/transaction-pay-controller/src/TransactionPayController.test.ts @@ -3,26 +3,26 @@ import type { TransactionMeta } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; -import { TransactionPayController } from '.'; -import { updateFiatPayment } from './actions/update-fiat-payment'; -import { updatePaymentToken } from './actions/update-payment-token'; -import { PaymentOverride, TransactionPayStrategy } from './constants'; -import { deriveFiatAssetForFiatPayment } from './strategy/fiat/utils'; -import { getMessengerMock } from './tests/messenger-mock'; +import { TransactionPayController } from './..js'; +import { updateFiatPayment } from './actions/update-fiat-payment.js'; +import { updatePaymentToken } from './actions/update-payment-token.js'; +import { PaymentOverride, TransactionPayStrategy } from './constants.js'; +import { deriveFiatAssetForFiatPayment } from './strategy/fiat/utils.js'; +import { getMessengerMock } from './tests/messenger-mock.js'; import type { TransactionPayControllerMessenger, TransactionPayControllerOptions, TransactionPaySourceAmount, UpdateTransactionDataCallback, -} from './types'; -import { getStrategyOrder } from './utils/feature-flags'; -import { updateQuotes } from './utils/quotes'; -import { updateSourceAmounts } from './utils/source-amounts'; +} from './types.js'; +import { getStrategyOrder } from './utils/feature-flags.js'; +import { updateQuotes } from './utils/quotes.js'; +import { updateSourceAmounts } from './utils/source-amounts.js'; import { getTransaction, subscribeAssetChanges, subscribeTransactionChanges, -} from './utils/transaction'; +} from './utils/transaction.js'; jest.mock('./actions/update-fiat-payment'); jest.mock('./actions/update-payment-token'); diff --git a/packages/transaction-pay-controller/src/TransactionPayController.ts b/packages/transaction-pay-controller/src/TransactionPayController.ts index c9e31d480d1..996013d631b 100644 --- a/packages/transaction-pay-controller/src/TransactionPayController.ts +++ b/packages/transaction-pay-controller/src/TransactionPayController.ts @@ -2,16 +2,16 @@ import type { StateMetadata } from '@metamask/base-controller'; import { BaseController } from '@metamask/base-controller'; import type { TransactionMeta } from '@metamask/transaction-controller'; import type { Draft } from 'immer'; -import { noop } from 'lodash'; +import { noop } from 'lodash-es'; -import { updateFiatPayment } from './actions/update-fiat-payment'; -import { updatePaymentToken } from './actions/update-payment-token'; +import { updateFiatPayment } from './actions/update-fiat-payment.js'; +import { updatePaymentToken } from './actions/update-payment-token.js'; import { CONTROLLER_NAME, isTransactionPayStrategy, TransactionPayStrategy, -} from './constants'; -import { QuoteRefresher } from './helpers/QuoteRefresher'; +} from './constants.js'; +import { QuoteRefresher } from './helpers/QuoteRefresher.js'; import type { GetAmountDataCallback, GetDelegationTransactionCallback, @@ -25,14 +25,14 @@ import type { TransactionPayControllerState, UpdateFiatPaymentRequest, UpdatePaymentTokenRequest, -} from './types'; -import { getStrategyOrder } from './utils/feature-flags'; -import { updateQuotes } from './utils/quotes'; -import { updateSourceAmounts } from './utils/source-amounts'; +} from './types.js'; +import { getStrategyOrder } from './utils/feature-flags.js'; +import { updateQuotes } from './utils/quotes.js'; +import { updateSourceAmounts } from './utils/source-amounts.js'; import { subscribeAssetChanges, subscribeTransactionChanges, -} from './utils/transaction'; +} from './utils/transaction.js'; const MESSENGER_EXPOSED_METHODS = [ 'getAmountData', @@ -386,7 +386,7 @@ export class TransactionPayController extends BaseController< }); if (shouldUpdateQuotes) { - updateQuotes({ + void updateQuotes({ getStrategies: this.#getStrategiesWithFallback.bind(this), messenger: this.messenger, transactionData: this.state.transactionData[transactionId], diff --git a/packages/transaction-pay-controller/src/actions/update-fiat-payment.test.ts b/packages/transaction-pay-controller/src/actions/update-fiat-payment.test.ts index fd04bddee41..10f28b800fc 100644 --- a/packages/transaction-pay-controller/src/actions/update-fiat-payment.test.ts +++ b/packages/transaction-pay-controller/src/actions/update-fiat-payment.test.ts @@ -1,9 +1,9 @@ import type { TransactionMeta } from '@metamask/transaction-controller'; -import { noop } from 'lodash'; +import { noop } from 'lodash-es'; -import type { TransactionData, TransactionFiatPayment } from '../types'; -import { getTransaction } from '../utils/transaction'; -import { updateFiatPayment } from './update-fiat-payment'; +import type { TransactionData, TransactionFiatPayment } from '../types.js'; +import { getTransaction } from '../utils/transaction.js'; +import { updateFiatPayment } from './update-fiat-payment.js'; jest.mock('../utils/transaction'); diff --git a/packages/transaction-pay-controller/src/actions/update-fiat-payment.ts b/packages/transaction-pay-controller/src/actions/update-fiat-payment.ts index 124ba9c5520..c62030a4efc 100644 --- a/packages/transaction-pay-controller/src/actions/update-fiat-payment.ts +++ b/packages/transaction-pay-controller/src/actions/update-fiat-payment.ts @@ -1,12 +1,12 @@ import { createModuleLogger } from '@metamask/utils'; -import type { TransactionPayControllerMessenger } from '..'; -import { projectLogger } from '../logger'; +import { projectLogger } from '../logger.js'; import type { UpdateFiatPaymentRequest, UpdateTransactionDataCallback, -} from '../types'; -import { getTransaction } from '../utils/transaction'; +} from '../types.js'; +import { getTransaction } from '../utils/transaction.js'; +import type { TransactionPayControllerMessenger } from './...js'; const log = createModuleLogger(projectLogger, 'update-fiat-payment'); diff --git a/packages/transaction-pay-controller/src/actions/update-payment-token.test.ts b/packages/transaction-pay-controller/src/actions/update-payment-token.test.ts index 52aebf29725..4d6cc5f51f2 100644 --- a/packages/transaction-pay-controller/src/actions/update-payment-token.test.ts +++ b/packages/transaction-pay-controller/src/actions/update-payment-token.test.ts @@ -1,14 +1,14 @@ import type { TransactionMeta } from '@metamask/transaction-controller'; -import { noop } from 'lodash'; +import { noop } from 'lodash-es'; -import type { TransactionData, TransactionPaymentToken } from '../types'; +import type { TransactionData, TransactionPaymentToken } from '../types.js'; import { getTokenBalance, getTokenFiatRate, getTokenInfo, -} from '../utils/token'; -import { getTransaction } from '../utils/transaction'; -import { updatePaymentToken } from './update-payment-token'; +} from '../utils/token.js'; +import { getTransaction } from '../utils/transaction.js'; +import { updatePaymentToken } from './update-payment-token.js'; jest.mock('../utils/token', () => ({ ...jest.createMockFromModule( diff --git a/packages/transaction-pay-controller/src/actions/update-payment-token.ts b/packages/transaction-pay-controller/src/actions/update-payment-token.ts index 986738ef4fa..e3f400780b7 100644 --- a/packages/transaction-pay-controller/src/actions/update-payment-token.ts +++ b/packages/transaction-pay-controller/src/actions/update-payment-token.ts @@ -1,20 +1,20 @@ import { createModuleLogger } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import type { TransactionPayControllerMessenger } from '..'; -import { projectLogger } from '../logger'; +import { projectLogger } from '../logger.js'; import type { TransactionPaymentToken, UpdatePaymentTokenRequest, UpdateTransactionDataCallback, -} from '../types'; +} from '../types.js'; import { computeTokenAmounts, getTokenBalance, getTokenFiatRate, getTokenInfo, -} from '../utils/token'; -import { getTransaction } from '../utils/transaction'; +} from '../utils/token.js'; +import { getTransaction } from '../utils/transaction.js'; +import type { TransactionPayControllerMessenger } from './...js'; const log = createModuleLogger(projectLogger, 'update-payment-token'); diff --git a/packages/transaction-pay-controller/src/constants.test.ts b/packages/transaction-pay-controller/src/constants.test.ts index 5bb589f50c4..b9e2faabce2 100644 --- a/packages/transaction-pay-controller/src/constants.test.ts +++ b/packages/transaction-pay-controller/src/constants.test.ts @@ -3,7 +3,7 @@ import { POLYGON_PUSD_ADDRESS, POLYGON_USDCE_ADDRESS, STABLECOINS, -} from './constants'; +} from './constants.js'; describe('STABLECOINS', () => { it('includes both Polygon USDC.e and Polymarket pUSD as Polygon stablecoins', () => { diff --git a/packages/transaction-pay-controller/src/helpers/QuoteRefresher.test.ts b/packages/transaction-pay-controller/src/helpers/QuoteRefresher.test.ts index a6f44a5df9a..cd95a2995f2 100644 --- a/packages/transaction-pay-controller/src/helpers/QuoteRefresher.test.ts +++ b/packages/transaction-pay-controller/src/helpers/QuoteRefresher.test.ts @@ -2,15 +2,15 @@ import { createDeferredPromise } from '@metamask/utils'; -import { flushPromises } from '../../../../tests/helpers'; -import { TransactionPayStrategy } from '../constants'; -import { getMessengerMock } from '../tests/messenger-mock'; +import { flushPromises } from '../../../../tests/helpers.js'; +import { TransactionPayStrategy } from '../constants.js'; +import { getMessengerMock } from '../tests/messenger-mock.js'; import type { TransactionData, TransactionPayControllerMessenger, -} from '../types'; -import { refreshQuotes } from '../utils/quotes'; -import { QuoteRefresher } from './QuoteRefresher'; +} from '../types.js'; +import { refreshQuotes } from '../utils/quotes.js'; +import { QuoteRefresher } from './QuoteRefresher.js'; jest.mock('../utils/quotes'); diff --git a/packages/transaction-pay-controller/src/helpers/QuoteRefresher.ts b/packages/transaction-pay-controller/src/helpers/QuoteRefresher.ts index eb0a1f9cdb0..df0bc010b76 100644 --- a/packages/transaction-pay-controller/src/helpers/QuoteRefresher.ts +++ b/packages/transaction-pay-controller/src/helpers/QuoteRefresher.ts @@ -1,15 +1,15 @@ import type { TransactionMeta } from '@metamask/transaction-controller'; import { createModuleLogger } from '@metamask/utils'; -import { noop } from 'lodash'; +import { noop } from 'lodash-es'; +import { TransactionPayStrategy } from '../constants.js'; +import { projectLogger } from '../logger.js'; +import type { UpdateTransactionDataCallback } from '../types.js'; +import { refreshQuotes } from '../utils/quotes.js'; import type { TransactionPayControllerMessenger, TransactionPayControllerState, -} from '..'; -import { TransactionPayStrategy } from '../constants'; -import { projectLogger } from '../logger'; -import type { UpdateTransactionDataCallback } from '../types'; -import { refreshQuotes } from '../utils/quotes'; +} from './...js'; const CHECK_INTERVAL = 1000; // 1 Second @@ -101,7 +101,7 @@ export class QuoteRefresher { } this.#timeoutId = setTimeout(() => { - this.#onInterval().catch(noop); + void this.#onInterval().catch(noop); }, CHECK_INTERVAL); } diff --git a/packages/transaction-pay-controller/src/helpers/TransactionPayPublishHook.test.ts b/packages/transaction-pay-controller/src/helpers/TransactionPayPublishHook.test.ts index 6b268dc80d2..bacc1da8eb2 100644 --- a/packages/transaction-pay-controller/src/helpers/TransactionPayPublishHook.test.ts +++ b/packages/transaction-pay-controller/src/helpers/TransactionPayPublishHook.test.ts @@ -3,14 +3,14 @@ import type { TransactionMeta, } from '@metamask/transaction-controller'; -import { TransactionPayStrategy } from '..'; -import { getMessengerMock } from '../tests/messenger-mock'; +import { getMessengerMock } from '../tests/messenger-mock.js'; import type { TransactionPayControllerState, TransactionPayQuote, -} from '../types'; -import { getStrategyByName } from '../utils/strategy'; -import { TransactionPayPublishHook } from './TransactionPayPublishHook'; +} from '../types.js'; +import { getStrategyByName } from '../utils/strategy.js'; +import { TransactionPayStrategy } from './...js'; +import { TransactionPayPublishHook } from './TransactionPayPublishHook.js'; jest.mock('../utils/strategy'); diff --git a/packages/transaction-pay-controller/src/helpers/TransactionPayPublishHook.ts b/packages/transaction-pay-controller/src/helpers/TransactionPayPublishHook.ts index 1b1cce0d216..cf57a00494e 100644 --- a/packages/transaction-pay-controller/src/helpers/TransactionPayPublishHook.ts +++ b/packages/transaction-pay-controller/src/helpers/TransactionPayPublishHook.ts @@ -4,16 +4,16 @@ import type { PublishHookResult } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; import { createModuleLogger } from '@metamask/utils'; -import { TransactionPayStrategy } from '../constants'; -import { projectLogger } from '../logger'; +import { TransactionPayStrategy } from '../constants.js'; +import { projectLogger } from '../logger.js'; import type { TransactionPayControllerMessenger, TransactionPayQuote, -} from '../types'; -import { accountSupports7702 } from '../utils/7702'; -import { prefixError } from '../utils/error-prefix'; -import { getStrategyByName } from '../utils/strategy'; -import { updateTransaction } from '../utils/transaction'; +} from '../types.js'; +import { accountSupports7702 } from '../utils/7702.js'; +import { prefixError } from '../utils/error-prefix.js'; +import { getStrategyByName } from '../utils/strategy.js'; +import { updateTransaction } from '../utils/transaction.js'; const log = createModuleLogger(projectLogger, 'pay-publish-hook'); const ERROR_PREFIX = 'MetaMask Pay: '; diff --git a/packages/transaction-pay-controller/src/index.ts b/packages/transaction-pay-controller/src/index.ts index dbab894b8ac..6417727cdab 100644 --- a/packages/transaction-pay-controller/src/index.ts +++ b/packages/transaction-pay-controller/src/index.ts @@ -25,7 +25,7 @@ export type { TransactionPayTotals, UpdateFiatPaymentRequest, UpdatePaymentTokenRequest, -} from './types'; +} from './types.js'; export type { TransactionPayControllerGetAmountDataAction, TransactionPayControllerGetDelegationTransactionAction, @@ -36,7 +36,7 @@ export type { TransactionPayControllerSetTransactionConfigAction, TransactionPayControllerUpdatePaymentTokenAction, TransactionPayControllerUpdateFiatPaymentAction, -} from './TransactionPayController-method-action-types'; -export { PaymentOverride, TransactionPayStrategy } from './constants'; -export { TransactionPayController } from './TransactionPayController'; -export { TransactionPayPublishHook } from './helpers/TransactionPayPublishHook'; +} from './TransactionPayController-method-action-types.js'; +export { PaymentOverride, TransactionPayStrategy } from './constants.js'; +export { TransactionPayController } from './TransactionPayController.js'; +export { TransactionPayPublishHook } from './helpers/TransactionPayPublishHook.js'; diff --git a/packages/transaction-pay-controller/src/strategy/across/AcrossStrategy.test.ts b/packages/transaction-pay-controller/src/strategy/across/AcrossStrategy.test.ts index c63d7ba7a86..972c485672d 100644 --- a/packages/transaction-pay-controller/src/strategy/across/AcrossStrategy.test.ts +++ b/packages/transaction-pay-controller/src/strategy/across/AcrossStrategy.test.ts @@ -5,18 +5,18 @@ import { } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; -import { ARBITRUM_USDC_ADDRESS, CHAIN_ID_ARBITRUM } from '../../constants'; +import { ARBITRUM_USDC_ADDRESS, CHAIN_ID_ARBITRUM } from '../../constants.js'; import type { PayStrategyCheckQuoteSupportRequest, PayStrategyExecuteRequest, PayStrategyGetQuotesRequest, TransactionPayQuote, -} from '../../types'; -import { getPayStrategiesConfig } from '../../utils/feature-flags'; -import { getAcrossQuotes } from './across-quotes'; -import { submitAcrossQuotes } from './across-submit'; -import { AcrossStrategy } from './AcrossStrategy'; -import type { AcrossQuote } from './types'; +} from '../../types.js'; +import { getPayStrategiesConfig } from '../../utils/feature-flags.js'; +import { getAcrossQuotes } from './across-quotes.js'; +import { submitAcrossQuotes } from './across-submit.js'; +import { AcrossStrategy } from './AcrossStrategy.js'; +import type { AcrossQuote } from './types.js'; jest.mock('./across-quotes'); jest.mock('./across-submit'); diff --git a/packages/transaction-pay-controller/src/strategy/across/AcrossStrategy.ts b/packages/transaction-pay-controller/src/strategy/across/AcrossStrategy.ts index 0c942dd7d03..9fcf618a5a0 100644 --- a/packages/transaction-pay-controller/src/strategy/across/AcrossStrategy.ts +++ b/packages/transaction-pay-controller/src/strategy/across/AcrossStrategy.ts @@ -6,16 +6,16 @@ import type { PayStrategyExecuteRequest, PayStrategyGetQuotesRequest, TransactionPayQuote, -} from '../../types'; -import { getPayStrategiesConfig } from '../../utils/feature-flags'; -import { isPredictWithdrawTransaction } from '../../utils/transaction'; -import { getAcrossDestination } from './across-actions'; -import { getAcrossQuotes } from './across-quotes'; -import { submitAcrossQuotes } from './across-submit'; -import { hasUnsupportedTransactionAuthorizationList } from './authorization-list'; -import { isSupportedAcrossPerpsDepositRequest } from './perps'; -import { isAcrossQuoteRequest } from './requests'; -import type { AcrossQuote } from './types'; +} from '../../types.js'; +import { getPayStrategiesConfig } from '../../utils/feature-flags.js'; +import { isPredictWithdrawTransaction } from '../../utils/transaction.js'; +import { getAcrossDestination } from './across-actions.js'; +import { getAcrossQuotes } from './across-quotes.js'; +import { submitAcrossQuotes } from './across-submit.js'; +import { hasUnsupportedTransactionAuthorizationList } from './authorization-list.js'; +import { isSupportedAcrossPerpsDepositRequest } from './perps.js'; +import { isAcrossQuoteRequest } from './requests.js'; +import type { AcrossQuote } from './types.js'; export class AcrossStrategy implements PayStrategy { supports(request: PayStrategyGetQuotesRequest): boolean { diff --git a/packages/transaction-pay-controller/src/strategy/across/across-actions.test.ts b/packages/transaction-pay-controller/src/strategy/across/across-actions.test.ts index b6e6f917537..890ddc892e9 100644 --- a/packages/transaction-pay-controller/src/strategy/across/across-actions.test.ts +++ b/packages/transaction-pay-controller/src/strategy/across/across-actions.test.ts @@ -2,7 +2,7 @@ import { Interface } from '@ethersproject/abi'; import type { TransactionMeta } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; -import type { QuoteRequest } from '../../types'; +import type { QuoteRequest } from '../../types.js'; import { buildAcrossActionFromCall, CREATE_PROXY_SIGNATURE, @@ -11,7 +11,7 @@ import { isExtractableOutputTokenTransferCall, SAFE_EXEC_TRANSACTION_SIGNATURE, TOKEN_TRANSFER_SIGNATURE, -} from './across-actions'; +} from './across-actions.js'; const TOKEN_TRANSFER_INTERFACE = new Interface([TOKEN_TRANSFER_SIGNATURE]); const CREATE_PROXY_INTERFACE = new Interface([CREATE_PROXY_SIGNATURE]); diff --git a/packages/transaction-pay-controller/src/strategy/across/across-actions.ts b/packages/transaction-pay-controller/src/strategy/across/across-actions.ts index d733d3080cf..24219ae84cd 100644 --- a/packages/transaction-pay-controller/src/strategy/across/across-actions.ts +++ b/packages/transaction-pay-controller/src/strategy/across/across-actions.ts @@ -3,9 +3,9 @@ import type { TransactionDescription } from '@ethersproject/abi'; import type { TransactionMeta } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; -import type { QuoteRequest } from '../../types'; -import { isSupportedAcrossPerpsDepositRequest } from './perps'; -import type { AcrossAction, AcrossActionArg } from './types'; +import type { QuoteRequest } from '../../types.js'; +import { isSupportedAcrossPerpsDepositRequest } from './perps.js'; +import type { AcrossAction, AcrossActionArg } from './types.js'; export const TOKEN_TRANSFER_SIGNATURE = 'function transfer(address to, uint256 value)'; diff --git a/packages/transaction-pay-controller/src/strategy/across/across-quotes.test.ts b/packages/transaction-pay-controller/src/strategy/across/across-quotes.test.ts index a21ae52c493..4af8a0553c8 100644 --- a/packages/transaction-pay-controller/src/strategy/across/across-quotes.test.ts +++ b/packages/transaction-pay-controller/src/strategy/across/across-quotes.test.ts @@ -7,27 +7,27 @@ import type { } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; -import { getDefaultRemoteFeatureFlagControllerState } from '../../../../remote-feature-flag-controller/src/remote-feature-flag-controller'; +import { getDefaultRemoteFeatureFlagControllerState } from '../../../../remote-feature-flag-controller/src/remote-feature-flag-controller.js'; import { ARBITRUM_USDC_ADDRESS, CHAIN_ID_ARBITRUM, CHAIN_ID_HYPERCORE, TransactionPayStrategy, -} from '../../constants'; -import { getMessengerMock } from '../../tests/messenger-mock'; -import type { QuoteRequest } from '../../types'; +} from '../../constants.js'; +import { getMessengerMock } from '../../tests/messenger-mock.js'; +import type { QuoteRequest } from '../../types.js'; import { getGasBuffer, getSlippage, isEIP7702Chain, -} from '../../utils/feature-flags'; -import { calculateGasCost, calculateGasFeeTokenCost } from '../../utils/gas'; -import * as quoteGasUtils from '../../utils/quote-gas'; -import { getTokenBalance, getTokenFiatRate } from '../../utils/token'; -import { getAcrossQuotes } from './across-quotes'; -import { ACROSS_HYPERCORE_USDC_PERPS_ADDRESS } from './perps'; -import * as acrossTransactions from './transactions'; -import type { AcrossSwapApprovalResponse } from './types'; +} from '../../utils/feature-flags.js'; +import { calculateGasCost, calculateGasFeeTokenCost } from '../../utils/gas.js'; +import * as quoteGasUtils from '../../utils/quote-gas.js'; +import { getTokenBalance, getTokenFiatRate } from '../../utils/token.js'; +import { getAcrossQuotes } from './across-quotes.js'; +import { ACROSS_HYPERCORE_USDC_PERPS_ADDRESS } from './perps.js'; +import * as acrossTransactions from './transactions.js'; +import type { AcrossSwapApprovalResponse } from './types.js'; jest.mock('../../utils/token'); jest.mock('../../utils/gas', () => ({ diff --git a/packages/transaction-pay-controller/src/strategy/across/across-quotes.ts b/packages/transaction-pay-controller/src/strategy/across/across-quotes.ts index bd5eec27cb2..4d9360d164a 100644 --- a/packages/transaction-pay-controller/src/strategy/across/across-quotes.ts +++ b/packages/transaction-pay-controller/src/strategy/across/across-quotes.ts @@ -4,8 +4,8 @@ import type { Hex } from '@metamask/utils'; import { createModuleLogger } from '@metamask/utils'; import { BigNumber } from 'bignumber.js'; -import { TransactionPayStrategy } from '../../constants'; -import { projectLogger } from '../../logger'; +import { TransactionPayStrategy } from '../../constants.js'; +import { projectLogger } from '../../logger.js'; import type { Amount, FiatRates, @@ -13,38 +13,41 @@ import type { QuoteRequest, TransactionPayControllerMessenger, TransactionPayQuote, -} from '../../types'; -import { getFiatValueFromUsd, sumAmounts } from '../../utils/amounts'; -import { getPayStrategiesConfig, getSlippage } from '../../utils/feature-flags'; -import { calculateGasCost } from '../../utils/gas'; +} from '../../types.js'; +import { getFiatValueFromUsd, sumAmounts } from '../../utils/amounts.js'; +import { + getPayStrategiesConfig, + getSlippage, +} from '../../utils/feature-flags.js'; import { getGasStationCostInSourceTokenRaw, getGasStationEligibility, -} from '../../utils/gas-station'; -import { estimateQuoteGasLimits } from '../../utils/quote-gas'; -import type { QuoteGasTransaction } from '../../utils/quote-gas'; +} from '../../utils/gas-station.js'; +import { calculateGasCost } from '../../utils/gas.js'; +import { estimateQuoteGasLimits } from '../../utils/quote-gas.js'; +import type { QuoteGasTransaction } from '../../utils/quote-gas.js'; import { getNativeToken, getTokenBalance, getTokenFiatRate, -} from '../../utils/token'; -import { isPredictWithdrawTransaction } from '../../utils/transaction'; -import type { AcrossDestination } from './across-actions'; -import { getAcrossDestination } from './across-actions'; -import { hasUnsupportedTransactionAuthorizationList } from './authorization-list'; -import { normalizeAcrossRequest } from './perps'; -import { isAcrossQuoteRequest } from './requests'; +} from '../../utils/token.js'; +import { isPredictWithdrawTransaction } from '../../utils/transaction.js'; +import type { AcrossDestination } from './across-actions.js'; +import { getAcrossDestination } from './across-actions.js'; +import { hasUnsupportedTransactionAuthorizationList } from './authorization-list.js'; +import { normalizeAcrossRequest } from './perps.js'; +import { isAcrossQuoteRequest } from './requests.js'; import { getAcrossOrderedTransactions, getOriginalTransactionGas, -} from './transactions'; +} from './transactions.js'; import type { AcrossAction, AcrossActionRequestBody, AcrossGasLimits, AcrossQuote, AcrossSwapApprovalResponse, -} from './types'; +} from './types.js'; const log = createModuleLogger(projectLogger, 'across-strategy'); diff --git a/packages/transaction-pay-controller/src/strategy/across/across-submit.test.ts b/packages/transaction-pay-controller/src/strategy/across/across-submit.test.ts index dd453928c1d..f750b809abd 100644 --- a/packages/transaction-pay-controller/src/strategy/across/across-submit.test.ts +++ b/packages/transaction-pay-controller/src/strategy/across/across-submit.test.ts @@ -9,13 +9,13 @@ import type { } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; -import { getDefaultRemoteFeatureFlagControllerState } from '../../../../remote-feature-flag-controller/src/remote-feature-flag-controller'; -import { TransactionPayStrategy } from '../../constants'; -import { getMessengerMock } from '../../tests/messenger-mock'; -import type { TransactionPayQuote } from '../../types'; -import { submitAcrossQuotes } from './across-submit'; -import * as acrossTransactions from './transactions'; -import type { AcrossQuote } from './types'; +import { getDefaultRemoteFeatureFlagControllerState } from '../../../../remote-feature-flag-controller/src/remote-feature-flag-controller.js'; +import { TransactionPayStrategy } from '../../constants.js'; +import { getMessengerMock } from '../../tests/messenger-mock.js'; +import type { TransactionPayQuote } from '../../types.js'; +import { submitAcrossQuotes } from './across-submit.js'; +import * as acrossTransactions from './transactions.js'; +import type { AcrossQuote } from './types.js'; jest.mock('@metamask/controller-utils', () => ({ ...jest.requireActual('@metamask/controller-utils'), diff --git a/packages/transaction-pay-controller/src/strategy/across/across-submit.ts b/packages/transaction-pay-controller/src/strategy/across/across-submit.ts index 02619938fa5..97efb0a93e4 100644 --- a/packages/transaction-pay-controller/src/strategy/across/across-submit.ts +++ b/packages/transaction-pay-controller/src/strategy/across/across-submit.ts @@ -12,28 +12,28 @@ import type { import type { Hex } from '@metamask/utils'; import { createModuleLogger } from '@metamask/utils'; -import { projectLogger } from '../../logger'; +import { projectLogger } from '../../logger.js'; import type { PayStrategyExecuteRequest, TransactionPayControllerMessenger, TransactionPayQuote, -} from '../../types'; -import { accountSupports7702 } from '../../utils/7702'; -import { getPayStrategiesConfig } from '../../utils/feature-flags'; -import { getGasBuffer } from '../../utils/feature-flags'; -import { getNetworkClientId } from '../../utils/provider'; +} from '../../types.js'; +import { accountSupports7702 } from '../../utils/7702.js'; +import { getPayStrategiesConfig } from '../../utils/feature-flags.js'; +import { getGasBuffer } from '../../utils/feature-flags.js'; +import { getNetworkClientId } from '../../utils/provider.js'; import { collectTransactionIds, getTransaction, updateTransaction, isPredictWithdrawTransaction, waitForTransactionConfirmed, -} from '../../utils/transaction'; +} from '../../utils/transaction.js'; import { getAcrossOrderedTransactions, getOriginalTransactionGas, -} from './transactions'; -import type { AcrossQuote } from './types'; +} from './transactions.js'; +import type { AcrossQuote } from './types.js'; const log = createModuleLogger(projectLogger, 'across-strategy'); const ACROSS_STATUS_POLL_INTERVAL = 1000; diff --git a/packages/transaction-pay-controller/src/strategy/across/authorization-list.ts b/packages/transaction-pay-controller/src/strategy/across/authorization-list.ts index c1570984585..c9e08cf8424 100644 --- a/packages/transaction-pay-controller/src/strategy/across/authorization-list.ts +++ b/packages/transaction-pay-controller/src/strategy/across/authorization-list.ts @@ -1,7 +1,7 @@ import type { TransactionMeta } from '@metamask/transaction-controller'; -import type { QuoteRequest } from '../../types'; -import { isPredictWithdrawTransaction } from '../../utils/transaction'; +import type { QuoteRequest } from '../../types.js'; +import { isPredictWithdrawTransaction } from '../../utils/transaction.js'; /** * Check whether an authorization list on the original transaction is unsupported by Across. diff --git a/packages/transaction-pay-controller/src/strategy/across/perps.ts b/packages/transaction-pay-controller/src/strategy/across/perps.ts index 0a24e7617f8..89a2b1242e4 100644 --- a/packages/transaction-pay-controller/src/strategy/across/perps.ts +++ b/packages/transaction-pay-controller/src/strategy/across/perps.ts @@ -8,8 +8,8 @@ import { CHAIN_ID_HYPERCORE, HYPERCORE_USDC_DECIMALS, USDC_DECIMALS, -} from '../../constants'; -import type { QuoteRequest } from '../../types'; +} from '../../constants.js'; +import type { QuoteRequest } from '../../types.js'; export const ACROSS_HYPERCORE_USDC_PERPS_ADDRESS = '0x2100000000000000000000000000000000000000' as Hex; diff --git a/packages/transaction-pay-controller/src/strategy/across/requests.ts b/packages/transaction-pay-controller/src/strategy/across/requests.ts index f662dc7ae60..bd76b694d09 100644 --- a/packages/transaction-pay-controller/src/strategy/across/requests.ts +++ b/packages/transaction-pay-controller/src/strategy/across/requests.ts @@ -1,4 +1,4 @@ -import type { QuoteRequest } from '../../types'; +import type { QuoteRequest } from '../../types.js'; export function isAcrossQuoteRequest(request: QuoteRequest): boolean { return ( diff --git a/packages/transaction-pay-controller/src/strategy/across/transactions.test.ts b/packages/transaction-pay-controller/src/strategy/across/transactions.test.ts index 9647e5f48ee..28235b4c34b 100644 --- a/packages/transaction-pay-controller/src/strategy/across/transactions.test.ts +++ b/packages/transaction-pay-controller/src/strategy/across/transactions.test.ts @@ -1,8 +1,8 @@ import { TransactionType } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; -import { getAcrossOrderedTransactions } from './transactions'; -import type { AcrossSwapApprovalResponse } from './types'; +import { getAcrossOrderedTransactions } from './transactions.js'; +import type { AcrossSwapApprovalResponse } from './types.js'; const QUOTE_MOCK: AcrossSwapApprovalResponse = { approvalTxns: [ diff --git a/packages/transaction-pay-controller/src/strategy/across/transactions.ts b/packages/transaction-pay-controller/src/strategy/across/transactions.ts index 38d04fff10b..3fe5d2260af 100644 --- a/packages/transaction-pay-controller/src/strategy/across/transactions.ts +++ b/packages/transaction-pay-controller/src/strategy/across/transactions.ts @@ -2,7 +2,7 @@ import { TransactionType } from '@metamask/transaction-controller'; import type { TransactionMeta } from '@metamask/transaction-controller'; import { BigNumber } from 'bignumber.js'; -import type { AcrossSwapApprovalResponse } from './types'; +import type { AcrossSwapApprovalResponse } from './types.js'; export type AcrossOrderedTransaction = { chainId: number; diff --git a/packages/transaction-pay-controller/src/strategy/fiat/FiatStrategy.test.ts b/packages/transaction-pay-controller/src/strategy/fiat/FiatStrategy.test.ts index b342021aebd..98ad2a52006 100644 --- a/packages/transaction-pay-controller/src/strategy/fiat/FiatStrategy.test.ts +++ b/packages/transaction-pay-controller/src/strategy/fiat/FiatStrategy.test.ts @@ -1,11 +1,11 @@ import type { TransactionMeta } from '@metamask/transaction-controller'; -import type { TransactionPayControllerMessenger } from '../..'; -import type { TransactionPayQuote } from '../../types'; -import { getFiatQuotes } from './fiat-quotes'; -import { submitFiatQuotes } from './fiat-submit'; -import { FiatStrategy } from './FiatStrategy'; -import type { FiatQuote } from './types'; +import type { TransactionPayControllerMessenger } from '../...js'; +import type { TransactionPayQuote } from '../../types.js'; +import { getFiatQuotes } from './fiat-quotes.js'; +import { submitFiatQuotes } from './fiat-submit.js'; +import { FiatStrategy } from './FiatStrategy.js'; +import type { FiatQuote } from './types.js'; jest.mock('./fiat-quotes'); jest.mock('./fiat-submit'); diff --git a/packages/transaction-pay-controller/src/strategy/fiat/FiatStrategy.ts b/packages/transaction-pay-controller/src/strategy/fiat/FiatStrategy.ts index fca14901409..b6444f3c286 100644 --- a/packages/transaction-pay-controller/src/strategy/fiat/FiatStrategy.ts +++ b/packages/transaction-pay-controller/src/strategy/fiat/FiatStrategy.ts @@ -3,11 +3,11 @@ import type { PayStrategyExecuteRequest, PayStrategyGetQuotesRequest, TransactionPayQuote, -} from '../../types'; -import { prefixError } from '../../utils/error-prefix'; -import { getFiatQuotes } from './fiat-quotes'; -import { submitFiatQuotes } from './fiat-submit'; -import type { FiatQuote } from './types'; +} from '../../types.js'; +import { prefixError } from '../../utils/error-prefix.js'; +import { getFiatQuotes } from './fiat-quotes.js'; +import { submitFiatQuotes } from './fiat-submit.js'; +import type { FiatQuote } from './types.js'; const ERROR_PREFIX = 'Fiat: '; diff --git a/packages/transaction-pay-controller/src/strategy/fiat/constants.ts b/packages/transaction-pay-controller/src/strategy/fiat/constants.ts index 367c799ea22..fea887b8ec6 100644 --- a/packages/transaction-pay-controller/src/strategy/fiat/constants.ts +++ b/packages/transaction-pay-controller/src/strategy/fiat/constants.ts @@ -8,7 +8,7 @@ import { CHAIN_ID_POLYGON, MUSD_MONAD_ADDRESS, NATIVE_TOKEN_ADDRESS, -} from '../../constants'; +} from '../../constants.js'; export const DEFAULT_FIAT_CURRENCY = 'USD'; diff --git a/packages/transaction-pay-controller/src/strategy/fiat/fiat-direct-musd.test.ts b/packages/transaction-pay-controller/src/strategy/fiat/fiat-direct-musd.test.ts index 2832aced2aa..785b82cf095 100644 --- a/packages/transaction-pay-controller/src/strategy/fiat/fiat-direct-musd.test.ts +++ b/packages/transaction-pay-controller/src/strategy/fiat/fiat-direct-musd.test.ts @@ -3,20 +3,20 @@ import type { TransactionMeta } from '@metamask/transaction-controller'; import { TransactionType } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; -import { TransactionPayStrategy } from '../../constants'; +import { TransactionPayStrategy } from '../../constants.js'; import type { PayStrategyGetQuotesRequest, TransactionFiatPayment, TransactionPayRequiredToken, TransactionPayQuote, -} from '../../types'; -import { buildCaipAssetType, getTokenInfo } from '../../utils/token'; -import { getTransaction } from '../../utils/transaction'; -import { DEFAULT_FIAT_CURRENCY, MUSD_MONAD_FIAT_ASSET } from './constants'; +} from '../../types.js'; +import { buildCaipAssetType, getTokenInfo } from '../../utils/token.js'; +import { getTransaction } from '../../utils/transaction.js'; +import { DEFAULT_FIAT_CURRENCY, MUSD_MONAD_FIAT_ASSET } from './constants.js'; import { getDirectMusdFiatQuote, isDirectMusdMoneyAccountQuote, -} from './fiat-direct-musd'; +} from './fiat-direct-musd.js'; jest.mock('../../utils/token'); jest.mock('../../utils/transaction'); diff --git a/packages/transaction-pay-controller/src/strategy/fiat/fiat-direct-musd.ts b/packages/transaction-pay-controller/src/strategy/fiat/fiat-direct-musd.ts index 976bffcd9d2..e1efce2806e 100644 --- a/packages/transaction-pay-controller/src/strategy/fiat/fiat-direct-musd.ts +++ b/packages/transaction-pay-controller/src/strategy/fiat/fiat-direct-musd.ts @@ -6,27 +6,27 @@ import type { Hex } from '@metamask/utils'; import { createModuleLogger } from '@metamask/utils'; import { BigNumber } from 'bignumber.js'; -import { TransactionPayStrategy } from '../../constants'; -import { projectLogger } from '../../logger'; +import { TransactionPayStrategy } from '../../constants.js'; +import { projectLogger } from '../../logger.js'; import type { PayStrategyExecuteRequest, PayStrategyGetQuotesRequest, TransactionFiatPayment, TransactionPayRequiredToken, TransactionPayQuote, -} from '../../types'; -import { prefixError } from '../../utils/error-prefix'; -import { getFiatVaultDisabled } from '../../utils/feature-flags'; -import { submitMoneyAccountVaultDeposit } from '../../utils/ma-vault-deposit'; -import { buildCaipAssetType, getTokenInfo } from '../../utils/token'; -import { MUSD_MONAD_FIAT_ASSET } from './constants'; -import type { FiatQuote } from './types'; +} from '../../types.js'; +import { prefixError } from '../../utils/error-prefix.js'; +import { getFiatVaultDisabled } from '../../utils/feature-flags.js'; +import { submitMoneyAccountVaultDeposit } from '../../utils/ma-vault-deposit.js'; +import { buildCaipAssetType, getTokenInfo } from '../../utils/token.js'; +import { MUSD_MONAD_FIAT_ASSET } from './constants.js'; +import type { FiatQuote } from './types.js'; import { getRampsQuote, getRawSourceAmountFromOrderCryptoAmount, resolveSourceAmountRaw, validateOrderAsset, -} from './utils'; +} from './utils.js'; const log = createModuleLogger(projectLogger, 'fiat-direct-musd'); const DIRECT_MUSD_ERROR_PREFIX = 'Direct mUSD: '; diff --git a/packages/transaction-pay-controller/src/strategy/fiat/fiat-quotes.test.ts b/packages/transaction-pay-controller/src/strategy/fiat/fiat-quotes.test.ts index 580b868bc62..7a541090888 100644 --- a/packages/transaction-pay-controller/src/strategy/fiat/fiat-quotes.test.ts +++ b/packages/transaction-pay-controller/src/strategy/fiat/fiat-quotes.test.ts @@ -6,29 +6,32 @@ import type { TransactionMeta } from '@metamask/transaction-controller'; import { TransactionType } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; -import { NATIVE_TOKEN_ADDRESS, TransactionPayStrategy } from '../../constants'; +import { + NATIVE_TOKEN_ADDRESS, + TransactionPayStrategy, +} from '../../constants.js'; import type { PayStrategyGetQuotesRequest, TransactionFiatPayment, TransactionPayQuote, TransactionPayRequiredToken, -} from '../../types'; +} from '../../types.js'; import { buildCaipAssetType, computeRawFromFiatAmount, getTokenFiatRate, getTokenInfo, -} from '../../utils/token'; -import { getRelayQuotes } from '../relay/relay-quotes'; -import type { RelayQuote } from '../relay/types'; -import type { TransactionPayFiatAsset } from './constants'; -import { DEFAULT_FIAT_CURRENCY, MUSD_MONAD_FIAT_ASSET } from './constants'; -import { getFiatQuotes } from './fiat-quotes'; +} from '../../utils/token.js'; +import { getRelayQuotes } from '../relay/relay-quotes.js'; +import type { RelayQuote } from '../relay/types.js'; +import type { TransactionPayFiatAsset } from './constants.js'; +import { DEFAULT_FIAT_CURRENCY, MUSD_MONAD_FIAT_ASSET } from './constants.js'; +import { getFiatQuotes } from './fiat-quotes.js'; import { deriveFiatAssetForFiatPayment, getRawSourceAmountFromOrderCryptoAmount, isMoneyAccountDepositTransaction, -} from './utils'; +} from './utils.js'; jest.mock('../relay/relay-quotes'); jest.mock('../../utils/token'); diff --git a/packages/transaction-pay-controller/src/strategy/fiat/fiat-quotes.ts b/packages/transaction-pay-controller/src/strategy/fiat/fiat-quotes.ts index 5359bf83e50..88e52c2b253 100644 --- a/packages/transaction-pay-controller/src/strategy/fiat/fiat-quotes.ts +++ b/packages/transaction-pay-controller/src/strategy/fiat/fiat-quotes.ts @@ -3,32 +3,35 @@ import type { Hex } from '@metamask/utils'; import { createModuleLogger } from '@metamask/utils'; import { BigNumber } from 'bignumber.js'; -import { NATIVE_TOKEN_ADDRESS, TransactionPayStrategy } from '../../constants'; -import { projectLogger } from '../../logger'; +import { + NATIVE_TOKEN_ADDRESS, + TransactionPayStrategy, +} from '../../constants.js'; +import { projectLogger } from '../../logger.js'; import type { PayStrategyGetQuotesRequest, QuoteRequest, TransactionFiatPayment, TransactionPayRequiredToken, TransactionPayQuote, -} from '../../types'; -import { getDirectMoneyMusdEnabled } from '../../utils/feature-flags'; +} from '../../types.js'; +import { getDirectMoneyMusdEnabled } from '../../utils/feature-flags.js'; import { buildCaipAssetType, computeRawFromFiatAmount, getTokenFiatRate, getTokenInfo, -} from '../../utils/token'; -import { getRelayQuotes } from '../relay/relay-quotes'; -import type { RelayQuote } from '../relay/types'; -import type { TransactionPayFiatAsset } from './constants'; -import { getDirectMusdFiatQuote } from './fiat-direct-musd'; -import type { FiatQuote } from './types'; +} from '../../utils/token.js'; +import { getRelayQuotes } from '../relay/relay-quotes.js'; +import type { RelayQuote } from '../relay/types.js'; +import type { TransactionPayFiatAsset } from './constants.js'; +import { getDirectMusdFiatQuote } from './fiat-direct-musd.js'; +import type { FiatQuote } from './types.js'; import { deriveFiatAssetForFiatPayment, getRampsQuote, isMoneyAccountDepositTransaction, -} from './utils'; +} from './utils.js'; const log = createModuleLogger(projectLogger, 'fiat-strategy'); diff --git a/packages/transaction-pay-controller/src/strategy/fiat/fiat-submit-simple.test.ts b/packages/transaction-pay-controller/src/strategy/fiat/fiat-submit-simple.test.ts index 6168dd9e875..502b3537238 100644 --- a/packages/transaction-pay-controller/src/strategy/fiat/fiat-submit-simple.test.ts +++ b/packages/transaction-pay-controller/src/strategy/fiat/fiat-submit-simple.test.ts @@ -2,18 +2,18 @@ import type { TransactionMeta } from '@metamask/transaction-controller'; import { TransactionType } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; -import { TransactionPayStrategy } from '../../constants'; +import { TransactionPayStrategy } from '../../constants.js'; import type { PayStrategyExecuteRequest, QuoteRequest, TransactionPayQuote, -} from '../../types'; -import { getFiatMaxRateDriftPercent } from '../../utils/feature-flags'; -import { getRelayQuotes } from '../relay/relay-quotes'; -import { submitRelayQuotes } from '../relay/relay-submit'; -import type { RelayQuote } from '../relay/types'; -import { submitSimpleRelay } from './fiat-submit-simple'; -import type { FiatQuote } from './types'; +} from '../../types.js'; +import { getFiatMaxRateDriftPercent } from '../../utils/feature-flags.js'; +import { getRelayQuotes } from '../relay/relay-quotes.js'; +import { submitRelayQuotes } from '../relay/relay-submit.js'; +import type { RelayQuote } from '../relay/types.js'; +import { submitSimpleRelay } from './fiat-submit-simple.js'; +import type { FiatQuote } from './types.js'; jest.mock('../../utils/feature-flags'); jest.mock('../relay/relay-quotes'); diff --git a/packages/transaction-pay-controller/src/strategy/fiat/fiat-submit-simple.ts b/packages/transaction-pay-controller/src/strategy/fiat/fiat-submit-simple.ts index be1aca5e7f5..12f3d6a3b09 100644 --- a/packages/transaction-pay-controller/src/strategy/fiat/fiat-submit-simple.ts +++ b/packages/transaction-pay-controller/src/strategy/fiat/fiat-submit-simple.ts @@ -1,13 +1,13 @@ import type { Hex } from '@metamask/utils'; import { createModuleLogger } from '@metamask/utils'; -import { projectLogger } from '../../logger'; -import type { PayStrategyExecuteRequest, QuoteRequest } from '../../types'; -import { getFiatMaxRateDriftPercent } from '../../utils/feature-flags'; -import { getRelayQuotes } from '../relay/relay-quotes'; -import { submitRelayQuotes } from '../relay/relay-submit'; -import type { FiatQuote } from './types'; -import { validateRelayRateDrift } from './utils'; +import { projectLogger } from '../../logger.js'; +import type { PayStrategyExecuteRequest, QuoteRequest } from '../../types.js'; +import { getFiatMaxRateDriftPercent } from '../../utils/feature-flags.js'; +import { getRelayQuotes } from '../relay/relay-quotes.js'; +import { submitRelayQuotes } from '../relay/relay-submit.js'; +import type { FiatQuote } from './types.js'; +import { validateRelayRateDrift } from './utils.js'; const log = createModuleLogger(projectLogger, 'fiat-submit-simple'); diff --git a/packages/transaction-pay-controller/src/strategy/fiat/fiat-submit-with-transaction-data.test.ts b/packages/transaction-pay-controller/src/strategy/fiat/fiat-submit-with-transaction-data.test.ts index 99a744eff5b..5631f65e927 100644 --- a/packages/transaction-pay-controller/src/strategy/fiat/fiat-submit-with-transaction-data.test.ts +++ b/packages/transaction-pay-controller/src/strategy/fiat/fiat-submit-with-transaction-data.test.ts @@ -2,22 +2,22 @@ import type { TransactionMeta } from '@metamask/transaction-controller'; import { TransactionType } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; -import { TransactionPayStrategy } from '../../constants'; +import { TransactionPayStrategy } from '../../constants.js'; import type { PayStrategyExecuteRequest, QuoteRequest, TransactionPayQuote, -} from '../../types'; +} from '../../types.js'; import { getFiatFeeReserveMultiplier, getFiatMaxRateDriftPercent, -} from '../../utils/feature-flags'; -import { getTransaction, updateTransaction } from '../../utils/transaction'; -import { getRelayQuotes } from '../relay/relay-quotes'; -import { submitRelayQuotes } from '../relay/relay-submit'; -import type { RelayQuote } from '../relay/types'; -import { submitWithTransactionData } from './fiat-submit-with-transaction-data'; -import type { FiatQuote } from './types'; +} from '../../utils/feature-flags.js'; +import { getTransaction, updateTransaction } from '../../utils/transaction.js'; +import { getRelayQuotes } from '../relay/relay-quotes.js'; +import { submitRelayQuotes } from '../relay/relay-submit.js'; +import type { RelayQuote } from '../relay/types.js'; +import { submitWithTransactionData } from './fiat-submit-with-transaction-data.js'; +import type { FiatQuote } from './types.js'; jest.mock('../../utils/feature-flags'); jest.mock('../../utils/transaction'); diff --git a/packages/transaction-pay-controller/src/strategy/fiat/fiat-submit-with-transaction-data.ts b/packages/transaction-pay-controller/src/strategy/fiat/fiat-submit-with-transaction-data.ts index 03f975e1168..6d6d5944458 100644 --- a/packages/transaction-pay-controller/src/strategy/fiat/fiat-submit-with-transaction-data.ts +++ b/packages/transaction-pay-controller/src/strategy/fiat/fiat-submit-with-transaction-data.ts @@ -2,18 +2,18 @@ import type { Hex } from '@metamask/utils'; import { createModuleLogger } from '@metamask/utils'; import { BigNumber } from 'bignumber.js'; -import { projectLogger } from '../../logger'; -import type { PayStrategyExecuteRequest, QuoteRequest } from '../../types'; +import { projectLogger } from '../../logger.js'; +import type { PayStrategyExecuteRequest, QuoteRequest } from '../../types.js'; import { getFiatFeeReserveMultiplier, getFiatMaxRateDriftPercent, -} from '../../utils/feature-flags'; -import { getTransaction, updateTransaction } from '../../utils/transaction'; -import { getRelayQuotes } from '../relay/relay-quotes'; -import { submitRelayQuotes } from '../relay/relay-submit'; -import type { RelayQuote } from '../relay/types'; -import type { FiatQuote } from './types'; -import { validateRelayRateDrift } from './utils'; +} from '../../utils/feature-flags.js'; +import { getTransaction, updateTransaction } from '../../utils/transaction.js'; +import { getRelayQuotes } from '../relay/relay-quotes.js'; +import { submitRelayQuotes } from '../relay/relay-submit.js'; +import type { RelayQuote } from '../relay/types.js'; +import type { FiatQuote } from './types.js'; +import { validateRelayRateDrift } from './utils.js'; const log = createModuleLogger(projectLogger, 'fiat-submit-calldata'); diff --git a/packages/transaction-pay-controller/src/strategy/fiat/fiat-submit.test.ts b/packages/transaction-pay-controller/src/strategy/fiat/fiat-submit.test.ts index 1dee9b8a253..2c8310931c0 100644 --- a/packages/transaction-pay-controller/src/strategy/fiat/fiat-submit.test.ts +++ b/packages/transaction-pay-controller/src/strategy/fiat/fiat-submit.test.ts @@ -8,29 +8,32 @@ import type { TransactionMeta } from '@metamask/transaction-controller'; import { TransactionType } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; -import { TransactionPayStrategy } from '../../constants'; +import { TransactionPayStrategy } from '../../constants.js'; import type { PayStrategyExecuteRequest, QuoteRequest, TransactionPayFiatOptions, TransactionPayQuote, -} from '../../types'; -import { buildCaipAssetType } from '../../utils/token'; +} from '../../types.js'; +import { buildCaipAssetType } from '../../utils/token.js'; import { collectTransactionIds, getTransaction, updateTransaction, waitForTransactionConfirmed, -} from '../../utils/transaction'; -import { getRelayQuotes } from '../relay/relay-quotes'; -import { submitRelayQuotes } from '../relay/relay-submit'; -import type { RelayQuote } from '../relay/types'; -import type { TransactionPayFiatAsset } from './constants'; -import { MUSD_MONAD_FIAT_ASSET } from './constants'; -import { submitFiatQuotes } from './fiat-submit'; -import { fundFiatOrderFromTestSource } from './fiat-test-funding'; -import type { FiatQuote } from './types'; -import { deriveFiatAssetForFiatPayment, resolveSourceAmountRaw } from './utils'; +} from '../../utils/transaction.js'; +import { getRelayQuotes } from '../relay/relay-quotes.js'; +import { submitRelayQuotes } from '../relay/relay-submit.js'; +import type { RelayQuote } from '../relay/types.js'; +import type { TransactionPayFiatAsset } from './constants.js'; +import { MUSD_MONAD_FIAT_ASSET } from './constants.js'; +import { submitFiatQuotes } from './fiat-submit.js'; +import { fundFiatOrderFromTestSource } from './fiat-test-funding.js'; +import type { FiatQuote } from './types.js'; +import { + deriveFiatAssetForFiatPayment, + resolveSourceAmountRaw, +} from './utils.js'; jest.mock('./utils', () => ({ ...jest.requireActual('./utils'), diff --git a/packages/transaction-pay-controller/src/strategy/fiat/fiat-submit.ts b/packages/transaction-pay-controller/src/strategy/fiat/fiat-submit.ts index 949170a4fea..19042c2a3ee 100644 --- a/packages/transaction-pay-controller/src/strategy/fiat/fiat-submit.ts +++ b/packages/transaction-pay-controller/src/strategy/fiat/fiat-submit.ts @@ -3,33 +3,33 @@ import { RampsOrderStatus } from '@metamask/ramps-controller'; import type { Hex } from '@metamask/utils'; import { createModuleLogger } from '@metamask/utils'; -import { projectLogger } from '../../logger'; +import { projectLogger } from '../../logger.js'; import type { PayStrategy, PayStrategyExecuteRequest, TransactionPayFiatOptions, TransactionPayControllerMessenger, -} from '../../types'; -import { prefixError } from '../../utils/error-prefix'; +} from '../../types.js'; +import { prefixError } from '../../utils/error-prefix.js'; import { getFiatOrderPollIntervalMs, getFiatOrderPollTimeoutMs, -} from '../../utils/feature-flags'; -import { updateTransaction } from '../../utils/transaction'; +} from '../../utils/feature-flags.js'; +import { updateTransaction } from '../../utils/transaction.js'; import { isDirectMusdMoneyAccountQuote, submitDirectMusdAfterFiatCompletion, -} from './fiat-direct-musd'; -import { submitSimpleRelay } from './fiat-submit-simple'; -import { submitWithTransactionData } from './fiat-submit-with-transaction-data'; -import { fundFiatOrderFromTestSource } from './fiat-test-funding'; -import type { FiatQuote } from './types'; +} from './fiat-direct-musd.js'; +import { submitSimpleRelay } from './fiat-submit-simple.js'; +import { submitWithTransactionData } from './fiat-submit-with-transaction-data.js'; +import { fundFiatOrderFromTestSource } from './fiat-test-funding.js'; +import type { FiatQuote } from './types.js'; import { deriveFiatAssetForFiatPayment, extractProviderCode, resolveSourceAmountRaw, validateOrderAsset, -} from './utils'; +} from './utils.js'; const log = createModuleLogger(projectLogger, 'fiat-submit'); const POST_RAMP_ERROR_PREFIX = 'Post-Ramp: '; diff --git a/packages/transaction-pay-controller/src/strategy/fiat/fiat-test-funding.test.ts b/packages/transaction-pay-controller/src/strategy/fiat/fiat-test-funding.test.ts index b80a1bc7740..f104e467043 100644 --- a/packages/transaction-pay-controller/src/strategy/fiat/fiat-test-funding.test.ts +++ b/packages/transaction-pay-controller/src/strategy/fiat/fiat-test-funding.test.ts @@ -3,19 +3,22 @@ import type { TransactionMeta } from '@metamask/transaction-controller'; import { TransactionType } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; -import { NATIVE_TOKEN_ADDRESS, TransactionPayStrategy } from '../../constants'; -import type { TransactionPayQuote } from '../../types'; -import { getNetworkClientId } from '../../utils/provider'; +import { + NATIVE_TOKEN_ADDRESS, + TransactionPayStrategy, +} from '../../constants.js'; +import type { TransactionPayQuote } from '../../types.js'; +import { getNetworkClientId } from '../../utils/provider.js'; import { buildCaipAssetType, getLiveTokenBalance, getNativeToken, getTokenInfo, -} from '../../utils/token'; -import { waitForTransactionConfirmed } from '../../utils/transaction'; -import { fundFiatOrderFromTestSource } from './fiat-test-funding'; -import type { FiatQuote } from './types'; -import { deriveFiatAssetForFiatPayment } from './utils'; +} from '../../utils/token.js'; +import { waitForTransactionConfirmed } from '../../utils/transaction.js'; +import { fundFiatOrderFromTestSource } from './fiat-test-funding.js'; +import type { FiatQuote } from './types.js'; +import { deriveFiatAssetForFiatPayment } from './utils.js'; jest.mock('../../utils/provider'); jest.mock('../../utils/token'); diff --git a/packages/transaction-pay-controller/src/strategy/fiat/fiat-test-funding.ts b/packages/transaction-pay-controller/src/strategy/fiat/fiat-test-funding.ts index 8a4f72e6fa9..00136c1e900 100644 --- a/packages/transaction-pay-controller/src/strategy/fiat/fiat-test-funding.ts +++ b/packages/transaction-pay-controller/src/strategy/fiat/fiat-test-funding.ts @@ -11,25 +11,25 @@ import type { Hex } from '@metamask/utils'; import { createModuleLogger } from '@metamask/utils'; import { BigNumber } from 'bignumber.js'; -import { NATIVE_TOKEN_ADDRESS } from '../../constants'; -import { projectLogger } from '../../logger'; +import { NATIVE_TOKEN_ADDRESS } from '../../constants.js'; +import { projectLogger } from '../../logger.js'; import type { TransactionPayControllerMessenger, TransactionPayFiatOptions, TransactionPayQuote, -} from '../../types'; -import { getNetworkClientId } from '../../utils/provider'; +} from '../../types.js'; +import { getNetworkClientId } from '../../utils/provider.js'; import { buildCaipAssetType, getLiveTokenBalance, getNativeToken, getTokenInfo, -} from '../../utils/token'; -import { waitForTransactionConfirmed } from '../../utils/transaction'; -import { isDirectMusdMoneyAccountQuote } from './fiat-direct-musd'; -import type { FiatQuote } from './types'; -import { deriveFiatAssetForFiatPayment } from './utils'; -import { getRawSourceAmountFromOrderCryptoAmount } from './utils'; +} from '../../utils/token.js'; +import { waitForTransactionConfirmed } from '../../utils/transaction.js'; +import { isDirectMusdMoneyAccountQuote } from './fiat-direct-musd.js'; +import type { FiatQuote } from './types.js'; +import { deriveFiatAssetForFiatPayment } from './utils.js'; +import { getRawSourceAmountFromOrderCryptoAmount } from './utils.js'; const log = createModuleLogger(projectLogger, 'fiat-test-funding'); const TOKEN_TRANSFER_INTERFACE = new Interface([ diff --git a/packages/transaction-pay-controller/src/strategy/fiat/types.ts b/packages/transaction-pay-controller/src/strategy/fiat/types.ts index a64c5aefea0..d40041b6748 100644 --- a/packages/transaction-pay-controller/src/strategy/fiat/types.ts +++ b/packages/transaction-pay-controller/src/strategy/fiat/types.ts @@ -1,6 +1,6 @@ import type { Quote } from '@metamask/ramps-controller'; -import type { RelayQuote } from '../relay/types'; +import type { RelayQuote } from '../relay/types.js'; export type FiatQuote = { rampsQuote: Quote; diff --git a/packages/transaction-pay-controller/src/strategy/fiat/utils.test.ts b/packages/transaction-pay-controller/src/strategy/fiat/utils.test.ts index f0fa144883d..9dc98c8c49b 100644 --- a/packages/transaction-pay-controller/src/strategy/fiat/utils.test.ts +++ b/packages/transaction-pay-controller/src/strategy/fiat/utils.test.ts @@ -3,17 +3,20 @@ import type { TransactionMeta } from '@metamask/transaction-controller'; import { TransactionType } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; -import { getDefaultRemoteFeatureFlagControllerState } from '../../../../remote-feature-flag-controller/src/remote-feature-flag-controller'; -import { NATIVE_TOKEN_ADDRESS } from '../../constants'; -import { getMessengerMock } from '../../tests/messenger-mock'; -import { ETH_MAINNET_FIAT_ASSET, FIAT_ASSET_ID_BY_TX_TYPE } from './constants'; -import type { TransactionPayFiatAsset } from './constants'; +import { getDefaultRemoteFeatureFlagControllerState } from '../../../../remote-feature-flag-controller/src/remote-feature-flag-controller.js'; +import { NATIVE_TOKEN_ADDRESS } from '../../constants.js'; +import { getMessengerMock } from '../../tests/messenger-mock.js'; +import { + ETH_MAINNET_FIAT_ASSET, + FIAT_ASSET_ID_BY_TX_TYPE, +} from './constants.js'; +import type { TransactionPayFiatAsset } from './constants.js'; import { deriveFiatAssetForFiatPayment, getRawSourceAmountFromOrderCryptoAmount, isMoneyAccountDepositTransaction, resolveSourceAmountRaw, -} from './utils'; +} from './utils.js'; const TX_HASH_MOCK = '0xabc123'; const WALLET_ADDRESS_MOCK = '0x1111111111111111111111111111111111111111' as Hex; diff --git a/packages/transaction-pay-controller/src/strategy/fiat/utils.ts b/packages/transaction-pay-controller/src/strategy/fiat/utils.ts index 3a94efc7956..e53e557a98a 100644 --- a/packages/transaction-pay-controller/src/strategy/fiat/utils.ts +++ b/packages/transaction-pay-controller/src/strategy/fiat/utils.ts @@ -9,17 +9,17 @@ import type { Hex } from '@metamask/utils'; import { createModuleLogger } from '@metamask/utils'; import { BigNumber } from 'bignumber.js'; -import { projectLogger } from '../../logger'; -import type { TransactionPayControllerMessenger } from '../../types'; +import { projectLogger } from '../../logger.js'; +import type { TransactionPayControllerMessenger } from '../../types.js'; import { getFiatAssetPerTransactionType, getFiatEnabledTypes, -} from '../../utils/feature-flags'; -import { buildCaipAssetType, getTokenInfo } from '../../utils/token'; -import { getTransferredAmountFromTxHash } from '../../utils/transaction'; -import type { RelayQuote } from '../relay/types'; -import type { TransactionPayFiatAsset } from './constants'; -import { DEFAULT_FIAT_CURRENCY, FIAT_ENABLED_TYPES } from './constants'; +} from '../../utils/feature-flags.js'; +import { buildCaipAssetType, getTokenInfo } from '../../utils/token.js'; +import { getTransferredAmountFromTxHash } from '../../utils/transaction.js'; +import type { RelayQuote } from '../relay/types.js'; +import type { TransactionPayFiatAsset } from './constants.js'; +import { DEFAULT_FIAT_CURRENCY, FIAT_ENABLED_TYPES } from './constants.js'; const log = createModuleLogger(projectLogger, 'fiat-utils'); diff --git a/packages/transaction-pay-controller/src/strategy/relay/RelayBridge.test.ts b/packages/transaction-pay-controller/src/strategy/relay/RelayBridge.test.ts index 0f90f518930..787167c1e3c 100644 --- a/packages/transaction-pay-controller/src/strategy/relay/RelayBridge.test.ts +++ b/packages/transaction-pay-controller/src/strategy/relay/RelayBridge.test.ts @@ -1,11 +1,11 @@ import type { TransactionMeta } from '@metamask/transaction-controller'; -import type { TransactionPayControllerMessenger } from '../..'; -import type { TransactionPayQuote } from '../../types'; -import { getRelayQuotes } from './relay-quotes'; -import { submitRelayQuotes } from './relay-submit'; -import { RelayStrategy } from './RelayStrategy'; -import type { RelayQuote } from './types'; +import type { TransactionPayControllerMessenger } from '../...js'; +import type { TransactionPayQuote } from '../../types.js'; +import { getRelayQuotes } from './relay-quotes.js'; +import { submitRelayQuotes } from './relay-submit.js'; +import { RelayStrategy } from './RelayStrategy.js'; +import type { RelayQuote } from './types.js'; jest.mock('./relay-quotes'); jest.mock('./relay-submit'); diff --git a/packages/transaction-pay-controller/src/strategy/relay/RelayStrategy.test.ts b/packages/transaction-pay-controller/src/strategy/relay/RelayStrategy.test.ts index 947a0553fe1..368d04c9dc6 100644 --- a/packages/transaction-pay-controller/src/strategy/relay/RelayStrategy.test.ts +++ b/packages/transaction-pay-controller/src/strategy/relay/RelayStrategy.test.ts @@ -4,12 +4,12 @@ import type { PayStrategyExecuteRequest, PayStrategyGetQuotesRequest, TransactionPayQuote, -} from '../../types'; -import { getPayStrategiesConfig } from '../../utils/feature-flags'; -import { getRelayQuotes } from './relay-quotes'; -import { submitRelayQuotes } from './relay-submit'; -import { RelayStrategy } from './RelayStrategy'; -import type { RelayQuote } from './types'; +} from '../../types.js'; +import { getPayStrategiesConfig } from '../../utils/feature-flags.js'; +import { getRelayQuotes } from './relay-quotes.js'; +import { submitRelayQuotes } from './relay-submit.js'; +import { RelayStrategy } from './RelayStrategy.js'; +import type { RelayQuote } from './types.js'; jest.mock('./relay-quotes'); jest.mock('./relay-submit'); diff --git a/packages/transaction-pay-controller/src/strategy/relay/RelayStrategy.ts b/packages/transaction-pay-controller/src/strategy/relay/RelayStrategy.ts index 22f6d9c31fd..af645056e7a 100644 --- a/packages/transaction-pay-controller/src/strategy/relay/RelayStrategy.ts +++ b/packages/transaction-pay-controller/src/strategy/relay/RelayStrategy.ts @@ -3,11 +3,11 @@ import type { PayStrategyExecuteRequest, PayStrategyGetQuotesRequest, TransactionPayQuote, -} from '../../types'; -import { getPayStrategiesConfig } from '../../utils/feature-flags'; -import { getRelayQuotes } from './relay-quotes'; -import { submitRelayQuotes } from './relay-submit'; -import type { RelayQuote } from './types'; +} from '../../types.js'; +import { getPayStrategiesConfig } from '../../utils/feature-flags.js'; +import { getRelayQuotes } from './relay-quotes.js'; +import { submitRelayQuotes } from './relay-submit.js'; +import type { RelayQuote } from './types.js'; export class RelayStrategy implements PayStrategy { supports(request: PayStrategyGetQuotesRequest): boolean { diff --git a/packages/transaction-pay-controller/src/strategy/relay/constants.ts b/packages/transaction-pay-controller/src/strategy/relay/constants.ts index 9d01da69fff..ab47df2db18 100644 --- a/packages/transaction-pay-controller/src/strategy/relay/constants.ts +++ b/packages/transaction-pay-controller/src/strategy/relay/constants.ts @@ -1,8 +1,8 @@ import { TransactionType } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; -import { PERPS_DEPOSIT_TYPES } from '../../constants'; -import type { RelayStatus } from './types'; +import { PERPS_DEPOSIT_TYPES } from '../../constants.js'; +import type { RelayStatus } from './types.js'; export const FALLBACK_HASH = '0x0' as Hex; diff --git a/packages/transaction-pay-controller/src/strategy/relay/hyperliquid-activation.test.ts b/packages/transaction-pay-controller/src/strategy/relay/hyperliquid-activation.test.ts index 40adcdd015a..a3587ea1495 100644 --- a/packages/transaction-pay-controller/src/strategy/relay/hyperliquid-activation.test.ts +++ b/packages/transaction-pay-controller/src/strategy/relay/hyperliquid-activation.test.ts @@ -3,14 +3,14 @@ import type { Hex } from '@metamask/utils'; import type { QuoteRequest, TransactionPayControllerMessenger, -} from '../../types'; -import { getHyperliquidActivationFeeConfig } from '../../utils/feature-flags'; -import { HYPERLIQUID_INFO_URL } from './constants'; -import type { HyperLiquidLedgerUpdate } from './hyperliquid-activation'; +} from '../../types.js'; +import { getHyperliquidActivationFeeConfig } from '../../utils/feature-flags.js'; +import { HYPERLIQUID_INFO_URL } from './constants.js'; +import type { HyperLiquidLedgerUpdate } from './hyperliquid-activation.js'; import { applyHyperliquidActivationFee, isHyperLiquidAccountActivated, -} from './hyperliquid-activation'; +} from './hyperliquid-activation.js'; jest.mock('../../utils/feature-flags', () => ({ getHyperliquidActivationFeeConfig: jest.fn(), diff --git a/packages/transaction-pay-controller/src/strategy/relay/hyperliquid-activation.ts b/packages/transaction-pay-controller/src/strategy/relay/hyperliquid-activation.ts index 60b7a6bb953..84a5afe9300 100644 --- a/packages/transaction-pay-controller/src/strategy/relay/hyperliquid-activation.ts +++ b/packages/transaction-pay-controller/src/strategy/relay/hyperliquid-activation.ts @@ -2,14 +2,14 @@ import type { Hex } from '@metamask/utils'; import { createModuleLogger } from '@metamask/utils'; import { BigNumber } from 'bignumber.js'; -import { HYPERCORE_USDC_DECIMALS } from '../../constants'; -import { projectLogger } from '../../logger'; +import { HYPERCORE_USDC_DECIMALS } from '../../constants.js'; +import { projectLogger } from '../../logger.js'; import type { QuoteRequest, TransactionPayControllerMessenger, -} from '../../types'; -import { getHyperliquidActivationFeeConfig } from '../../utils/feature-flags'; -import { HYPERLIQUID_INFO_URL } from './constants'; +} from '../../types.js'; +import { getHyperliquidActivationFeeConfig } from '../../utils/feature-flags.js'; +import { HYPERLIQUID_INFO_URL } from './constants.js'; const log = createModuleLogger(projectLogger, 'hyperliquid-activation'); diff --git a/packages/transaction-pay-controller/src/strategy/relay/hyperliquid-withdraw.test.ts b/packages/transaction-pay-controller/src/strategy/relay/hyperliquid-withdraw.test.ts index 6fef5c4116b..f55ed99b6cc 100644 --- a/packages/transaction-pay-controller/src/strategy/relay/hyperliquid-withdraw.test.ts +++ b/packages/transaction-pay-controller/src/strategy/relay/hyperliquid-withdraw.test.ts @@ -2,11 +2,11 @@ import { successfulFetch } from '@metamask/controller-utils'; import { SignTypedDataVersion } from '@metamask/keyring-controller'; import type { Hex } from '@metamask/utils'; -import { getMessengerMock } from '../../tests/messenger-mock'; -import type { TransactionPayQuote } from '../../types'; -import { RELAY_AUTHORIZE_URL, HYPERLIQUID_EXCHANGE_URL } from './constants'; -import { submitHyperliquidWithdraw } from './hyperliquid-withdraw'; -import type { RelayQuote, RelaySignatureStep } from './types'; +import { getMessengerMock } from '../../tests/messenger-mock.js'; +import type { TransactionPayQuote } from '../../types.js'; +import { RELAY_AUTHORIZE_URL, HYPERLIQUID_EXCHANGE_URL } from './constants.js'; +import { submitHyperliquidWithdraw } from './hyperliquid-withdraw.js'; +import type { RelayQuote, RelaySignatureStep } from './types.js'; jest.mock('@metamask/controller-utils', () => ({ ...jest.requireActual('@metamask/controller-utils'), diff --git a/packages/transaction-pay-controller/src/strategy/relay/hyperliquid-withdraw.ts b/packages/transaction-pay-controller/src/strategy/relay/hyperliquid-withdraw.ts index 69362a65794..cc453db0c1b 100644 --- a/packages/transaction-pay-controller/src/strategy/relay/hyperliquid-withdraw.ts +++ b/packages/transaction-pay-controller/src/strategy/relay/hyperliquid-withdraw.ts @@ -3,14 +3,14 @@ import { SignTypedDataVersion } from '@metamask/keyring-controller'; import type { Hex } from '@metamask/utils'; import { createModuleLogger } from '@metamask/utils'; -import { CHAIN_ID_ARBITRUM } from '../../constants'; -import { projectLogger } from '../../logger'; +import { CHAIN_ID_ARBITRUM } from '../../constants.js'; +import { projectLogger } from '../../logger.js'; import type { TransactionPayControllerMessenger, TransactionPayQuote, -} from '../../types'; -import { RELAY_AUTHORIZE_URL, HYPERLIQUID_EXCHANGE_URL } from './constants'; -import type { RelayQuote, RelaySignatureStep } from './types'; +} from '../../types.js'; +import { RELAY_AUTHORIZE_URL, HYPERLIQUID_EXCHANGE_URL } from './constants.js'; +import type { RelayQuote, RelaySignatureStep } from './types.js'; const log = createModuleLogger(projectLogger, 'hyperliquid-withdraw'); diff --git a/packages/transaction-pay-controller/src/strategy/relay/polymarket/withdraw.test.ts b/packages/transaction-pay-controller/src/strategy/relay/polymarket/withdraw.test.ts index 61c116f4ede..951714bf7e0 100644 --- a/packages/transaction-pay-controller/src/strategy/relay/polymarket/withdraw.test.ts +++ b/packages/transaction-pay-controller/src/strategy/relay/polymarket/withdraw.test.ts @@ -3,20 +3,20 @@ import type { Hex } from '@metamask/utils'; import { POLYGON_PUSD_ADDRESS, POLYGON_USDCE_ADDRESS, -} from '../../../constants'; -import { getMessengerMock } from '../../../tests/messenger-mock'; -import type { QuoteRequest, TransactionPayQuote } from '../../../types'; -import { getLiveTokenBalance } from '../../../utils/token'; -import type { RelayQuote, RelayQuoteRequest } from '../types'; +} from '../../../constants.js'; +import { getMessengerMock } from '../../../tests/messenger-mock.js'; +import type { QuoteRequest, TransactionPayQuote } from '../../../types.js'; +import { getLiveTokenBalance } from '../../../utils/token.js'; +import type { RelayQuote, RelayQuoteRequest } from '../types.js'; import { POLYMARKET_COLLATERAL_OFFRAMP_POLYGON, POLYMARKET_COLLATERAL_ONRAMP_POLYGON, -} from './constants'; +} from './constants.js'; import { applyPolymarketDepositWalletOverrides, submitPolymarketWithdraw, sweepPolymarketDepositWallet, -} from './withdraw'; +} from './withdraw.js'; jest.mock('../../../utils/token'); diff --git a/packages/transaction-pay-controller/src/strategy/relay/polymarket/withdraw.ts b/packages/transaction-pay-controller/src/strategy/relay/polymarket/withdraw.ts index 30a14183a4e..a234c1c4ac7 100644 --- a/packages/transaction-pay-controller/src/strategy/relay/polymarket/withdraw.ts +++ b/packages/transaction-pay-controller/src/strategy/relay/polymarket/withdraw.ts @@ -5,33 +5,33 @@ import { CHAIN_ID_POLYGON, POLYGON_PUSD_ADDRESS, POLYGON_USDCE_ADDRESS, -} from '../../../constants'; -import { projectLogger } from '../../../logger'; +} from '../../../constants.js'; +import { projectLogger } from '../../../logger.js'; import type { QuoteRequest, TransactionPayControllerMessenger, TransactionPayQuote, -} from '../../../types'; -import { getLiveTokenBalance } from '../../../utils/token'; +} from '../../../types.js'; +import { getLiveTokenBalance } from '../../../utils/token.js'; import type { RelayQuote, RelayQuoteRequest, RelayStatus, RelayTransactionStep, -} from '../types'; +} from '../types.js'; import { encodeApprove, encodeUnwrap, encodeWrap, extractErc20TransferRecipient, -} from './calldata'; +} from './calldata.js'; import { POLYMARKET_COLLATERAL_OFFRAMP_POLYGON, POLYMARKET_COLLATERAL_ONRAMP_POLYGON, SWEEP_BALANCE_RETRY_ATTEMPTS, SWEEP_BALANCE_RETRY_DELAY_MS, SWEEP_RELAYER_SETTLE_DELAY_MS, -} from './constants'; +} from './constants.js'; const log = createModuleLogger(projectLogger, 'polymarket-withdraw'); diff --git a/packages/transaction-pay-controller/src/strategy/relay/relay-api.test.ts b/packages/transaction-pay-controller/src/strategy/relay/relay-api.test.ts index 40ded0e790c..ad7d4a5bc38 100644 --- a/packages/transaction-pay-controller/src/strategy/relay/relay-api.test.ts +++ b/packages/transaction-pay-controller/src/strategy/relay/relay-api.test.ts @@ -1,12 +1,12 @@ -import type { FeatureFlags } from '../../utils/feature-flags'; -import { getFeatureFlags } from '../../utils/feature-flags'; -import { RELAY_STATUS_URL } from './constants'; +import type { FeatureFlags } from '../../utils/feature-flags.js'; +import { getFeatureFlags } from '../../utils/feature-flags.js'; +import { RELAY_STATUS_URL } from './constants.js'; import { fetchRelayQuote, getRelayStatus, submitRelayExecute, -} from './relay-api'; -import type { RelayQuoteRequest } from './types'; +} from './relay-api.js'; +import type { RelayQuoteRequest } from './types.js'; jest.mock('../../utils/feature-flags'); diff --git a/packages/transaction-pay-controller/src/strategy/relay/relay-api.ts b/packages/transaction-pay-controller/src/strategy/relay/relay-api.ts index 8f42d3715ee..836ba83159b 100644 --- a/packages/transaction-pay-controller/src/strategy/relay/relay-api.ts +++ b/packages/transaction-pay-controller/src/strategy/relay/relay-api.ts @@ -1,13 +1,13 @@ -import type { TransactionPayControllerMessenger } from '../../types'; -import { getFeatureFlags } from '../../utils/feature-flags'; -import { RELAY_STATUS_URL } from './constants'; +import type { TransactionPayControllerMessenger } from '../../types.js'; +import { getFeatureFlags } from '../../utils/feature-flags.js'; +import { RELAY_STATUS_URL } from './constants.js'; import type { RelayExecuteRequest, RelayExecuteResponse, RelayQuote, RelayQuoteRequest, RelayStatusResponse, -} from './types'; +} from './types.js'; /** * Fetch a quote from the Relay API. diff --git a/packages/transaction-pay-controller/src/strategy/relay/relay-max-gas-station.test.ts b/packages/transaction-pay-controller/src/strategy/relay/relay-max-gas-station.test.ts index 918d1d09cb1..4ee9e49b01a 100644 --- a/packages/transaction-pay-controller/src/strategy/relay/relay-max-gas-station.test.ts +++ b/packages/transaction-pay-controller/src/strategy/relay/relay-max-gas-station.test.ts @@ -4,24 +4,24 @@ import type { } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; -import { TransactionPayStrategy } from '../..'; -import { getDefaultRemoteFeatureFlagControllerState } from '../../../../remote-feature-flag-controller/src/remote-feature-flag-controller'; -import { getMessengerMock } from '../../tests/messenger-mock'; +import { TransactionPayStrategy } from '../...js'; +import { getDefaultRemoteFeatureFlagControllerState } from '../../../../remote-feature-flag-controller/src/remote-feature-flag-controller.js'; +import { getMessengerMock } from '../../tests/messenger-mock.js'; import type { Amount, FiatValue, PayStrategyGetQuotesRequest, QuoteRequest, TransactionPayQuote, -} from '../../types'; -import { calculateGasFeeTokenCost } from '../../utils/gas'; +} from '../../types.js'; +import { calculateGasFeeTokenCost } from '../../utils/gas.js'; import { getNativeToken, getTokenBalance, getTokenInfo, -} from '../../utils/token'; -import { getRelayMaxGasStationQuote } from './relay-max-gas-station'; -import type { RelayQuote } from './types'; +} from '../../utils/token.js'; +import { getRelayMaxGasStationQuote } from './relay-max-gas-station.js'; +import type { RelayQuote } from './types.js'; jest.mock('../../utils/token'); jest.mock('../../utils/gas'); diff --git a/packages/transaction-pay-controller/src/strategy/relay/relay-max-gas-station.ts b/packages/transaction-pay-controller/src/strategy/relay/relay-max-gas-station.ts index 39063b63aea..f66f9c5c28a 100644 --- a/packages/transaction-pay-controller/src/strategy/relay/relay-max-gas-station.ts +++ b/packages/transaction-pay-controller/src/strategy/relay/relay-max-gas-station.ts @@ -1,23 +1,23 @@ import { createModuleLogger } from '@metamask/utils'; import { BigNumber } from 'bignumber.js'; -import { projectLogger } from '../../logger'; +import { projectLogger } from '../../logger.js'; import type { PayStrategyGetQuotesRequest, QuoteRequest, TransactionPayControllerMessenger, TransactionPayQuote, -} from '../../types'; +} from '../../types.js'; import { getGasStationEligibility, getGasStationCostInSourceTokenRaw, -} from '../../utils/gas-station'; +} from '../../utils/gas-station.js'; import { getNativeToken, getTokenBalance, getTokenInfo, -} from '../../utils/token'; -import type { RelayQuote, RelayTransactionStep } from './types'; +} from '../../utils/token.js'; +import type { RelayQuote, RelayTransactionStep } from './types.js'; const log = createModuleLogger(projectLogger, 'relay-max-gas-station'); diff --git a/packages/transaction-pay-controller/src/strategy/relay/relay-post-ma-vault.test.ts b/packages/transaction-pay-controller/src/strategy/relay/relay-post-ma-vault.test.ts index 445183f585c..04c19b3ac12 100644 --- a/packages/transaction-pay-controller/src/strategy/relay/relay-post-ma-vault.test.ts +++ b/packages/transaction-pay-controller/src/strategy/relay/relay-post-ma-vault.test.ts @@ -4,13 +4,13 @@ import type { Hex } from '@metamask/utils'; import type { TransactionPayControllerMessenger, TransactionPayQuote, -} from '../../types'; -import { submitMoneyAccountVaultDeposit } from '../../utils/ma-vault-deposit'; -import { getTransferredAmountFromTxHash } from '../../utils/transaction'; -import { MUSD_MONAD_FIAT_ASSET } from '../fiat/constants'; -import { FALLBACK_HASH } from './constants'; -import { submitPostRelayVaultDeposit } from './relay-post-ma-vault'; -import type { RelayCompletionOutcome, RelayQuote } from './types'; +} from '../../types.js'; +import { submitMoneyAccountVaultDeposit } from '../../utils/ma-vault-deposit.js'; +import { getTransferredAmountFromTxHash } from '../../utils/transaction.js'; +import { MUSD_MONAD_FIAT_ASSET } from '../fiat/constants.js'; +import { FALLBACK_HASH } from './constants.js'; +import { submitPostRelayVaultDeposit } from './relay-post-ma-vault.js'; +import type { RelayCompletionOutcome, RelayQuote } from './types.js'; jest.mock('../../utils/transaction'); jest.mock('../../utils/ma-vault-deposit'); diff --git a/packages/transaction-pay-controller/src/strategy/relay/relay-post-ma-vault.ts b/packages/transaction-pay-controller/src/strategy/relay/relay-post-ma-vault.ts index 8c2cd7768c2..82b5f53d742 100644 --- a/packages/transaction-pay-controller/src/strategy/relay/relay-post-ma-vault.ts +++ b/packages/transaction-pay-controller/src/strategy/relay/relay-post-ma-vault.ts @@ -2,16 +2,16 @@ import type { TransactionMeta } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; import { createModuleLogger } from '@metamask/utils'; -import { projectLogger } from '../../logger'; +import { projectLogger } from '../../logger.js'; import type { TransactionPayControllerMessenger, TransactionPayQuote, -} from '../../types'; -import { submitMoneyAccountVaultDeposit } from '../../utils/ma-vault-deposit'; -import { getTransferredAmountFromTxHash } from '../../utils/transaction'; -import { MUSD_MONAD_FIAT_ASSET } from '../fiat/constants'; -import { FALLBACK_HASH } from './constants'; -import type { RelayCompletionOutcome, RelayQuote } from './types'; +} from '../../types.js'; +import { submitMoneyAccountVaultDeposit } from '../../utils/ma-vault-deposit.js'; +import { getTransferredAmountFromTxHash } from '../../utils/transaction.js'; +import { MUSD_MONAD_FIAT_ASSET } from '../fiat/constants.js'; +import { FALLBACK_HASH } from './constants.js'; +import type { RelayCompletionOutcome, RelayQuote } from './types.js'; const log = createModuleLogger(projectLogger, 'relay-post-ma-vault'); diff --git a/packages/transaction-pay-controller/src/strategy/relay/relay-quotes.test.ts b/packages/transaction-pay-controller/src/strategy/relay/relay-quotes.test.ts index cd6ffa21974..fe27d07da63 100644 --- a/packages/transaction-pay-controller/src/strategy/relay/relay-quotes.test.ts +++ b/packages/transaction-pay-controller/src/strategy/relay/relay-quotes.test.ts @@ -5,9 +5,9 @@ import type { TransactionMeta, } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; -import { cloneDeep } from 'lodash'; +import { cloneDeep } from 'lodash-es'; -import { getDefaultRemoteFeatureFlagControllerState } from '../../../../remote-feature-flag-controller/src/remote-feature-flag-controller'; +import { getDefaultRemoteFeatureFlagControllerState } from '../../../../remote-feature-flag-controller/src/remote-feature-flag-controller.js'; import { ARBITRUM_USDC_ADDRESS, CHAIN_ID_ARBITRUM, @@ -16,12 +16,12 @@ import { NATIVE_TOKEN_ADDRESS, PaymentOverride, POLYGON_USDCE_ADDRESS, -} from '../../constants'; -import { getMessengerMock } from '../../tests/messenger-mock'; +} from '../../constants.js'; +import { getMessengerMock } from '../../tests/messenger-mock.js'; import type { GetDelegationTransactionCallback, QuoteRequest, -} from '../../types'; +} from '../../types.js'; import { DEFAULT_RELAY_ORIGIN_GAS_OVERHEAD, DEFAULT_RELAY_QUOTE_URL, @@ -30,15 +30,15 @@ import { isRelayExecuteEnabled, getGasBuffer, getSlippage, -} from '../../utils/feature-flags'; -import { calculateGasCost, calculateGasFeeTokenCost } from '../../utils/gas'; +} from '../../utils/feature-flags.js'; +import { calculateGasCost, calculateGasFeeTokenCost } from '../../utils/gas.js'; import { getNativeToken, getTokenBalance, getTokenFiatRate, -} from '../../utils/token'; -import { getRelayQuotes } from './relay-quotes'; -import type { RelayQuote, RelayTransactionStep } from './types'; +} from '../../utils/token.js'; +import { getRelayQuotes } from './relay-quotes.js'; +import type { RelayQuote, RelayTransactionStep } from './types.js'; jest.mock('../../utils/token', () => ({ ...jest.createMockFromModule( diff --git a/packages/transaction-pay-controller/src/strategy/relay/relay-quotes.ts b/packages/transaction-pay-controller/src/strategy/relay/relay-quotes.ts index 470b0fd2d76..8769eb5e467 100644 --- a/packages/transaction-pay-controller/src/strategy/relay/relay-quotes.ts +++ b/packages/transaction-pay-controller/src/strategy/relay/relay-quotes.ts @@ -10,7 +10,7 @@ import type { Hex } from '@metamask/utils'; import { createModuleLogger } from '@metamask/utils'; import { BigNumber } from 'bignumber.js'; -import { TransactionPayStrategy } from '../..'; +import { TransactionPayStrategy } from '../...js'; import { ARBITRUM_USDC_ADDRESS, CHAIN_ID_ARBITRUM, @@ -22,8 +22,8 @@ import { PERPS_DEPOSIT_TYPES, USDC_DECIMALS, PaymentOverride, -} from '../../constants'; -import { projectLogger } from '../../logger'; +} from '../../constants.js'; +import { projectLogger } from '../../logger.js'; import type { Amount, FiatRates, @@ -31,8 +31,8 @@ import type { QuoteRequest, TransactionPayControllerMessenger, TransactionPayQuote, -} from '../../types'; -import { getFiatValueFromUsd } from '../../utils/amounts'; +} from '../../types.js'; +import { getFiatValueFromUsd } from '../../utils/amounts.js'; import { getFeatureFlags, getRelayOriginGasOverhead, @@ -40,33 +40,33 @@ import { getStablecoins, isEIP7702Chain, isRelayExecuteEnabled, -} from '../../utils/feature-flags'; -import { calculateGasCost } from '../../utils/gas'; +} from '../../utils/feature-flags.js'; import { getGasStationCostInSourceTokenRaw, getGasStationEligibility, -} from '../../utils/gas-station'; -import { estimateQuoteGasLimits } from '../../utils/quote-gas'; -import type { QuoteGasTransaction } from '../../utils/quote-gas'; +} from '../../utils/gas-station.js'; +import { calculateGasCost } from '../../utils/gas.js'; +import { estimateQuoteGasLimits } from '../../utils/quote-gas.js'; +import type { QuoteGasTransaction } from '../../utils/quote-gas.js'; import { getNativeToken, getTokenBalance, getTokenFiatRate, normalizeTokenAddress, TokenAddressTarget, -} from '../../utils/token'; -import { isPredictWithdrawTransaction } from '../../utils/transaction'; -import { TOKEN_TRANSFER_FOUR_BYTE } from './constants'; -import { applyHyperliquidActivationFee } from './hyperliquid-activation'; -import { applyPolymarketDepositWalletOverrides } from './polymarket/withdraw'; -import { fetchRelayQuote } from './relay-api'; -import { getRelayMaxGasStationQuote } from './relay-max-gas-station'; +} from '../../utils/token.js'; +import { isPredictWithdrawTransaction } from '../../utils/transaction.js'; +import { TOKEN_TRANSFER_FOUR_BYTE } from './constants.js'; +import { applyHyperliquidActivationFee } from './hyperliquid-activation.js'; +import { applyPolymarketDepositWalletOverrides } from './polymarket/withdraw.js'; +import { fetchRelayQuote } from './relay-api.js'; +import { getRelayMaxGasStationQuote } from './relay-max-gas-station.js'; import type { RelayQuote, RelayQuoteMetamask, RelayQuoteRequest, RelayTransactionStep, -} from './types'; +} from './types.js'; const log = createModuleLogger(projectLogger, 'relay-strategy'); diff --git a/packages/transaction-pay-controller/src/strategy/relay/relay-submit-execute.test.ts b/packages/transaction-pay-controller/src/strategy/relay/relay-submit-execute.test.ts index e36509046db..974e527cae6 100644 --- a/packages/transaction-pay-controller/src/strategy/relay/relay-submit-execute.test.ts +++ b/packages/transaction-pay-controller/src/strategy/relay/relay-submit-execute.test.ts @@ -1,18 +1,18 @@ import { generateEIP7702BatchTransaction } from '@metamask/transaction-controller'; import type { TransactionMeta } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; -import { cloneDeep } from 'lodash'; +import { cloneDeep } from 'lodash-es'; -import { getMessengerMock } from '../../tests/messenger-mock'; -import type { TransactionPayQuote } from '../../types'; -import type { FeatureFlags } from '../../utils/feature-flags'; +import { getMessengerMock } from '../../tests/messenger-mock.js'; +import type { TransactionPayQuote } from '../../types.js'; +import type { FeatureFlags } from '../../utils/feature-flags.js'; import { getFeatureFlags, getRelayPollingInterval, getRelayPollingTimeout, -} from '../../utils/feature-flags'; -import { submitViaRelayExecute } from './relay-submit-execute'; -import type { RelayQuote } from './types'; +} from '../../utils/feature-flags.js'; +import { submitViaRelayExecute } from './relay-submit-execute.js'; +import type { RelayQuote } from './types.js'; jest.mock('../../utils/feature-flags'); diff --git a/packages/transaction-pay-controller/src/strategy/relay/relay-submit-execute.ts b/packages/transaction-pay-controller/src/strategy/relay/relay-submit-execute.ts index e2f2144a151..a18329f30fa 100644 --- a/packages/transaction-pay-controller/src/strategy/relay/relay-submit-execute.ts +++ b/packages/transaction-pay-controller/src/strategy/relay/relay-submit-execute.ts @@ -8,16 +8,16 @@ import type { Hex } from '@metamask/utils'; import { createModuleLogger } from '@metamask/utils'; import { BigNumber } from 'bignumber.js'; -import { projectLogger } from '../../logger'; +import { projectLogger } from '../../logger.js'; import type { TransactionPayControllerMessenger, TransactionPayQuote, -} from '../../types'; -import { prefixError } from '../../utils/error-prefix'; -import { getNetworkClientId } from '../../utils/provider'; -import { FALLBACK_HASH } from './constants'; -import { submitRelayExecute } from './relay-api'; -import type { RelayExecuteRequest, RelayQuote } from './types'; +} from '../../types.js'; +import { prefixError } from '../../utils/error-prefix.js'; +import { getNetworkClientId } from '../../utils/provider.js'; +import { FALLBACK_HASH } from './constants.js'; +import { submitRelayExecute } from './relay-api.js'; +import type { RelayExecuteRequest, RelayQuote } from './types.js'; const log = createModuleLogger(projectLogger, 'relay-strategy'); const RELAY_EXECUTE_ERROR_PREFIX = 'Execute: '; diff --git a/packages/transaction-pay-controller/src/strategy/relay/relay-submit.test.ts b/packages/transaction-pay-controller/src/strategy/relay/relay-submit.test.ts index 395c4a75bb1..6d326f3c0d1 100644 --- a/packages/transaction-pay-controller/src/strategy/relay/relay-submit.test.ts +++ b/packages/transaction-pay-controller/src/strategy/relay/relay-submit.test.ts @@ -5,32 +5,35 @@ import type { TransactionMeta, } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; -import { cloneDeep } from 'lodash'; +import { cloneDeep } from 'lodash-es'; -import { PaymentOverride } from '../../constants'; -import { getMessengerMock } from '../../tests/messenger-mock'; +import { PaymentOverride } from '../../constants.js'; +import { getMessengerMock } from '../../tests/messenger-mock.js'; import type { PayStrategyExecuteRequest, TransactionPayControllerMessenger, TransactionPayQuote, -} from '../../types'; -import type { FeatureFlags } from '../../utils/feature-flags'; +} from '../../types.js'; +import type { FeatureFlags } from '../../utils/feature-flags.js'; import { getFeatureFlags, getRelayPollingInterval, getRelayPollingTimeout, -} from '../../utils/feature-flags'; -import { getLiveTokenBalance, normalizeTokenAddress } from '../../utils/token'; +} from '../../utils/feature-flags.js'; +import { + getLiveTokenBalance, + normalizeTokenAddress, +} from '../../utils/token.js'; import { collectTransactionIds, getTransaction, updateTransaction, waitForTransactionConfirmed, -} from '../../utils/transaction'; -import { RELAY_STATUS_URL } from './constants'; -import { submitRelayQuotes } from './relay-submit'; -import { submitViaRelayExecute } from './relay-submit-execute'; -import type { RelayQuote } from './types'; +} from '../../utils/transaction.js'; +import { RELAY_STATUS_URL } from './constants.js'; +import { submitViaRelayExecute } from './relay-submit-execute.js'; +import { submitRelayQuotes } from './relay-submit.js'; +import type { RelayQuote } from './types.js'; jest.mock('../../utils/token'); jest.mock('../../utils/transaction'); diff --git a/packages/transaction-pay-controller/src/strategy/relay/relay-submit.ts b/packages/transaction-pay-controller/src/strategy/relay/relay-submit.ts index 5f7da9bbec5..e51b6d9bc90 100644 --- a/packages/transaction-pay-controller/src/strategy/relay/relay-submit.ts +++ b/packages/transaction-pay-controller/src/strategy/relay/relay-submit.ts @@ -9,50 +9,50 @@ import type { Hex } from '@metamask/utils'; import { createModuleLogger } from '@metamask/utils'; import { BigNumber } from 'bignumber.js'; -import { projectLogger } from '../../logger'; +import { projectLogger } from '../../logger.js'; import type { PayStrategyExecuteRequest, TransactionPayControllerMessenger, TransactionPayQuote, -} from '../../types'; -import { prefixError } from '../../utils/error-prefix'; +} from '../../types.js'; +import { prefixError } from '../../utils/error-prefix.js'; import { getFeatureFlags, getRelayPollingInterval, getRelayPollingTimeout, -} from '../../utils/feature-flags'; -import { getNetworkClientId } from '../../utils/provider'; +} from '../../utils/feature-flags.js'; +import { getNetworkClientId } from '../../utils/provider.js'; import { getLiveTokenBalance, normalizeTokenAddress, TokenAddressTarget, -} from '../../utils/token'; +} from '../../utils/token.js'; import { collectTransactionIds, getTransaction, updateTransaction, waitForTransactionConfirmed, -} from '../../utils/transaction'; +} from '../../utils/transaction.js'; import { FALLBACK_HASH, RELAY_DEPOSIT_TYPES, RELAY_FAILURE_STATUSES, RELAY_PENDING_STATUSES, -} from './constants'; -import { submitHyperliquidWithdraw } from './hyperliquid-withdraw'; +} from './constants.js'; +import { submitHyperliquidWithdraw } from './hyperliquid-withdraw.js'; import { sweepPolymarketDepositWallet, submitPolymarketWithdraw, -} from './polymarket/withdraw'; -import { getRelayStatus } from './relay-api'; -import { submitViaRelayExecute } from './relay-submit-execute'; +} from './polymarket/withdraw.js'; +import { getRelayStatus } from './relay-api.js'; +import { submitViaRelayExecute } from './relay-submit-execute.js'; import type { RelayCompletionOutcome, RelayQuote, RelayStatus, RelayStatusResponse, RelayTransactionStep, -} from './types'; +} from './types.js'; const log = createModuleLogger(projectLogger, 'relay-strategy'); const RELAY_ERROR_PREFIX = 'Relay: '; diff --git a/packages/transaction-pay-controller/src/strategy/server/ServerStrategy.test.ts b/packages/transaction-pay-controller/src/strategy/server/ServerStrategy.test.ts index 5d2396a283d..f5cb3b93b30 100644 --- a/packages/transaction-pay-controller/src/strategy/server/ServerStrategy.test.ts +++ b/packages/transaction-pay-controller/src/strategy/server/ServerStrategy.test.ts @@ -1,12 +1,12 @@ import type { TransactionMeta } from '@metamask/transaction-controller'; -import type { TransactionPayControllerMessenger } from '../..'; -import type { TransactionPayQuote } from '../../types'; -import { getPayStrategiesConfig } from '../../utils/feature-flags'; -import { getServerQuotes } from './server-quotes'; -import { submitServerQuotes } from './server-submit'; -import { ServerStrategy } from './ServerStrategy'; -import type { ServerQuote } from './types'; +import type { TransactionPayControllerMessenger } from '../...js'; +import type { TransactionPayQuote } from '../../types.js'; +import { getPayStrategiesConfig } from '../../utils/feature-flags.js'; +import { getServerQuotes } from './server-quotes.js'; +import { submitServerQuotes } from './server-submit.js'; +import { ServerStrategy } from './ServerStrategy.js'; +import type { ServerQuote } from './types.js'; jest.mock('./server-quotes'); jest.mock('./server-submit'); diff --git a/packages/transaction-pay-controller/src/strategy/server/ServerStrategy.ts b/packages/transaction-pay-controller/src/strategy/server/ServerStrategy.ts index 2cb4e08f1ab..398ed12fc91 100644 --- a/packages/transaction-pay-controller/src/strategy/server/ServerStrategy.ts +++ b/packages/transaction-pay-controller/src/strategy/server/ServerStrategy.ts @@ -3,11 +3,11 @@ import type { PayStrategyExecuteRequest, PayStrategyGetQuotesRequest, TransactionPayQuote, -} from '../../types'; -import { getPayStrategiesConfig } from '../../utils/feature-flags'; -import { getServerQuotes } from './server-quotes'; -import { submitServerQuotes } from './server-submit'; -import type { ServerQuote } from './types'; +} from '../../types.js'; +import { getPayStrategiesConfig } from '../../utils/feature-flags.js'; +import { getServerQuotes } from './server-quotes.js'; +import { submitServerQuotes } from './server-submit.js'; +import type { ServerQuote } from './types.js'; /** * Pay strategy that routes quote, submit, and status requests through the diff --git a/packages/transaction-pay-controller/src/strategy/server/perps.test.ts b/packages/transaction-pay-controller/src/strategy/server/perps.test.ts index facb01c49e7..f77244bf139 100644 --- a/packages/transaction-pay-controller/src/strategy/server/perps.test.ts +++ b/packages/transaction-pay-controller/src/strategy/server/perps.test.ts @@ -4,13 +4,13 @@ import { ARBITRUM_USDC_ADDRESS, CHAIN_ID_ARBITRUM, CHAIN_ID_HYPERCORE, -} from '../../constants'; -import type { QuoteRequest } from '../../types'; +} from '../../constants.js'; +import type { QuoteRequest } from '../../types.js'; import { SERVER_HYPERCORE_USDC_PERPS_ADDRESS, isServerPerpsDepositRequest, normalizeServerPerpsRequest, -} from './perps'; +} from './perps.js'; const BRIDGE_ADDRESS_LOWER = '0x2df1c51e09aecf9cacb7bc98cb1742757f163df7'; diff --git a/packages/transaction-pay-controller/src/strategy/server/perps.ts b/packages/transaction-pay-controller/src/strategy/server/perps.ts index d4f71fe7308..ec6121c97e0 100644 --- a/packages/transaction-pay-controller/src/strategy/server/perps.ts +++ b/packages/transaction-pay-controller/src/strategy/server/perps.ts @@ -8,8 +8,8 @@ import { CHAIN_ID_HYPERCORE, HYPERCORE_USDC_DECIMALS, USDC_DECIMALS, -} from '../../constants'; -import type { QuoteRequest } from '../../types'; +} from '../../constants.js'; +import type { QuoteRequest } from '../../types.js'; /** * Shared 20-byte sentinel address emitted by the server strategy to flag a diff --git a/packages/transaction-pay-controller/src/strategy/server/server-api.test.ts b/packages/transaction-pay-controller/src/strategy/server/server-api.test.ts index 7016301e4c1..869440beba7 100644 --- a/packages/transaction-pay-controller/src/strategy/server/server-api.test.ts +++ b/packages/transaction-pay-controller/src/strategy/server/server-api.test.ts @@ -1,12 +1,12 @@ -import type { PayStrategiesConfig } from '../../utils/feature-flags'; -import { getPayStrategiesConfig } from '../../utils/feature-flags'; +import type { PayStrategiesConfig } from '../../utils/feature-flags.js'; +import { getPayStrategiesConfig } from '../../utils/feature-flags.js'; import { fetchServerQuote, getServerStatus, submitServerIntent, -} from './server-api'; -import { ServerProviderName, ServerStatus, ServerTradeType } from './types'; -import type { ServerQuoteRequest, ServerSubmitRequest } from './types'; +} from './server-api.js'; +import { ServerProviderName, ServerStatus, ServerTradeType } from './types.js'; +import type { ServerQuoteRequest, ServerSubmitRequest } from './types.js'; jest.mock('../../utils/feature-flags'); diff --git a/packages/transaction-pay-controller/src/strategy/server/server-api.ts b/packages/transaction-pay-controller/src/strategy/server/server-api.ts index e866202eab7..56e45874d5c 100644 --- a/packages/transaction-pay-controller/src/strategy/server/server-api.ts +++ b/packages/transaction-pay-controller/src/strategy/server/server-api.ts @@ -1,8 +1,8 @@ import { createModuleLogger } from '@metamask/utils'; -import { projectLogger } from '../../logger'; -import type { TransactionPayControllerMessenger } from '../../types'; -import { getPayStrategiesConfig } from '../../utils/feature-flags'; +import { projectLogger } from '../../logger.js'; +import type { TransactionPayControllerMessenger } from '../../types.js'; +import { getPayStrategiesConfig } from '../../utils/feature-flags.js'; import type { ServerProviderName, ServerQuoteRequest, @@ -10,7 +10,7 @@ import type { ServerStatusResponse, ServerSubmitRequest, ServerSubmitResponse, -} from './types'; +} from './types.js'; const log = createModuleLogger(projectLogger, 'server-api'); diff --git a/packages/transaction-pay-controller/src/strategy/server/server-quotes.test.ts b/packages/transaction-pay-controller/src/strategy/server/server-quotes.test.ts index 26ce8dc7f6e..bd28a89abd5 100644 --- a/packages/transaction-pay-controller/src/strategy/server/server-quotes.test.ts +++ b/packages/transaction-pay-controller/src/strategy/server/server-quotes.test.ts @@ -5,31 +5,31 @@ import { CHAIN_ID_HYPERCORE, PaymentOverride, TransactionPayStrategy, -} from '../../constants'; -import { getMessengerMock } from '../../tests/messenger-mock'; +} from '../../constants.js'; +import { getMessengerMock } from '../../tests/messenger-mock.js'; import type { GetDelegationTransactionCallback, QuoteRequest, -} from '../../types'; +} from '../../types.js'; import { getFeatureFlags, getSlippage, isEIP7702Chain, -} from '../../utils/feature-flags'; -import { calculateGasCost, getGasFee } from '../../utils/gas'; +} from '../../utils/feature-flags.js'; import { getGasStationCostInSourceTokenRaw, getGasStationEligibility, -} from '../../utils/gas-station'; -import { estimateQuoteGasLimits } from '../../utils/quote-gas'; +} from '../../utils/gas-station.js'; +import { calculateGasCost, getGasFee } from '../../utils/gas.js'; +import { estimateQuoteGasLimits } from '../../utils/quote-gas.js'; import { getNativeToken, getTokenBalance, getTokenFiatRate, -} from '../../utils/token'; -import { fetchServerQuote } from './server-api'; -import { getServerQuotes } from './server-quotes'; -import { ServerProviderName, ServerTradeType } from './types'; +} from '../../utils/token.js'; +import { fetchServerQuote } from './server-api.js'; +import { getServerQuotes } from './server-quotes.js'; +import { ServerProviderName, ServerTradeType } from './types.js'; jest.mock('../../utils/feature-flags', () => ({ ...jest.requireActual('../../utils/feature-flags'), diff --git a/packages/transaction-pay-controller/src/strategy/server/server-quotes.ts b/packages/transaction-pay-controller/src/strategy/server/server-quotes.ts index 3b71e75d6d8..12a4fc649ab 100644 --- a/packages/transaction-pay-controller/src/strategy/server/server-quotes.ts +++ b/packages/transaction-pay-controller/src/strategy/server/server-quotes.ts @@ -12,42 +12,42 @@ import { CHAIN_ID_HYPERCORE, PaymentOverride, TransactionPayStrategy, -} from '../../constants'; -import { projectLogger } from '../../logger'; +} from '../../constants.js'; +import { projectLogger } from '../../logger.js'; import type { PayStrategyGetQuotesRequest, QuoteRequest, TransactionPayControllerMessenger, TransactionPayFees, TransactionPayQuote, -} from '../../types'; -import { getFiatValueFromUsd } from '../../utils/amounts'; +} from '../../types.js'; +import { getFiatValueFromUsd } from '../../utils/amounts.js'; import { getFeatureFlags, getSlippage, isEIP7702Chain, -} from '../../utils/feature-flags'; -import { calculateGasCost, getGasFee } from '../../utils/gas'; +} from '../../utils/feature-flags.js'; import { getGasStationCostInSourceTokenRaw, getGasStationEligibility, -} from '../../utils/gas-station'; -import { estimateQuoteGasLimits } from '../../utils/quote-gas'; -import type { QuoteGasTransaction } from '../../utils/quote-gas'; +} from '../../utils/gas-station.js'; +import { calculateGasCost, getGasFee } from '../../utils/gas.js'; +import { estimateQuoteGasLimits } from '../../utils/quote-gas.js'; +import type { QuoteGasTransaction } from '../../utils/quote-gas.js'; import { getNativeToken, getTokenBalance, getTokenFiatRate, -} from '../../utils/token'; -import { normalizeServerPerpsRequest } from './perps'; -import { fetchServerQuote } from './server-api'; +} from '../../utils/token.js'; +import { normalizeServerPerpsRequest } from './perps.js'; +import { fetchServerQuote } from './server-api.js'; import type { ServerQuote, ServerQuoteRequest, ServerQuoteResult, ServerTransactionStep, -} from './types'; -import { ServerTradeType } from './types'; +} from './types.js'; +import { ServerTradeType } from './types.js'; const log = createModuleLogger(projectLogger, 'server-quotes'); const TOKEN_TRANSFER_FOUR_BYTE = '0xa9059cbb'; diff --git a/packages/transaction-pay-controller/src/strategy/server/server-submit.test.ts b/packages/transaction-pay-controller/src/strategy/server/server-submit.test.ts index e179b314ae8..fbe12854135 100644 --- a/packages/transaction-pay-controller/src/strategy/server/server-submit.test.ts +++ b/packages/transaction-pay-controller/src/strategy/server/server-submit.test.ts @@ -2,28 +2,28 @@ import { successfulFetch } from '@metamask/controller-utils'; import { TransactionStatus } from '@metamask/transaction-controller'; import type { TransactionMeta } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; -import { cloneDeep } from 'lodash'; +import { cloneDeep } from 'lodash-es'; -import { PaymentOverride } from '../../constants'; -import { getMessengerMock } from '../../tests/messenger-mock'; +import { PaymentOverride } from '../../constants.js'; +import { getMessengerMock } from '../../tests/messenger-mock.js'; import type { PayStrategyExecuteRequest, TransactionPayQuote, -} from '../../types'; +} from '../../types.js'; import { getServerPollingInterval, getServerPollingTimeout, -} from '../../utils/feature-flags'; -import { getLiveTokenBalance } from '../../utils/token'; +} from '../../utils/feature-flags.js'; +import { getLiveTokenBalance } from '../../utils/token.js'; import { collectTransactionIds, getTransaction, waitForTransactionConfirmed, -} from '../../utils/transaction'; -import { getServerStatus, submitServerIntent } from './server-api'; -import { submitServerQuotes } from './server-submit'; -import { ServerProviderName, ServerStatus } from './types'; -import type { ServerQuote, ServerSignatureStep } from './types'; +} from '../../utils/transaction.js'; +import { getServerStatus, submitServerIntent } from './server-api.js'; +import { submitServerQuotes } from './server-submit.js'; +import { ServerProviderName, ServerStatus } from './types.js'; +import type { ServerQuote, ServerSignatureStep } from './types.js'; jest.mock('@metamask/controller-utils', () => ({ ...jest.requireActual('@metamask/controller-utils'), diff --git a/packages/transaction-pay-controller/src/strategy/server/server-submit.ts b/packages/transaction-pay-controller/src/strategy/server/server-submit.ts index 973e63facfe..8d6a21c6802 100644 --- a/packages/transaction-pay-controller/src/strategy/server/server-submit.ts +++ b/packages/transaction-pay-controller/src/strategy/server/server-submit.ts @@ -13,38 +13,38 @@ import type { Hex } from '@metamask/utils'; import { createModuleLogger } from '@metamask/utils'; import { BigNumber } from 'bignumber.js'; -import { projectLogger } from '../../logger'; +import { projectLogger } from '../../logger.js'; import type { PayStrategyExecuteRequest, TransactionPayControllerMessenger, TransactionPayQuote, -} from '../../types'; +} from '../../types.js'; import { getServerPollingInterval, getServerPollingTimeout, -} from '../../utils/feature-flags'; -import { getNetworkClientId } from '../../utils/provider'; +} from '../../utils/feature-flags.js'; +import { getNetworkClientId } from '../../utils/provider.js'; import { getLiveTokenBalance, normalizeTokenAddress, TokenAddressTarget, -} from '../../utils/token'; +} from '../../utils/token.js'; import { collectTransactionIds, getTransaction, updateTransaction, waitForTransactionConfirmed, -} from '../../utils/transaction'; -import { RELAY_DEPOSIT_TYPES } from '../relay/constants'; -import { getServerStatus, submitServerIntent } from './server-api'; +} from '../../utils/transaction.js'; +import { RELAY_DEPOSIT_TYPES } from '../relay/constants.js'; +import { getServerStatus, submitServerIntent } from './server-api.js'; import type { ServerQuote, ServerSignatureStep, ServerTransactionStep, ServerStatusResponse, ServerSubmitRequest, -} from './types'; -import { ServerStatus } from './types'; +} from './types.js'; +import { ServerStatus } from './types.js'; const log = createModuleLogger(projectLogger, 'server-strategy'); diff --git a/packages/transaction-pay-controller/src/tests/messenger-mock.ts b/packages/transaction-pay-controller/src/tests/messenger-mock.ts index 4e3b1897c45..b67aee66f85 100644 --- a/packages/transaction-pay-controller/src/tests/messenger-mock.ts +++ b/packages/transaction-pay-controller/src/tests/messenger-mock.ts @@ -23,7 +23,6 @@ import type { } from '@metamask/transaction-controller'; import type { TransactionControllerUpdateTransactionAction } from '@metamask/transaction-controller'; -import type { TransactionPayControllerMessenger } from '..'; import type { TransactionPayControllerGetDelegationTransactionAction, TransactionPayControllerGetFiatOptionsAction, @@ -31,8 +30,9 @@ import type { TransactionPayControllerGetStrategyAction, TransactionPayControllerPolymarketGetDepositWalletAddressAction, TransactionPayControllerPolymarketSubmitDepositWalletBatchAction, -} from '../TransactionPayController-method-action-types'; -import type { TransactionPayControllerGetStateAction } from '../types'; +} from '../TransactionPayController-method-action-types.js'; +import type { TransactionPayControllerGetStateAction } from '../types.js'; +import type { TransactionPayControllerMessenger } from './...js'; type AllActions = MessengerActions; type AllEvents = MessengerEvents; diff --git a/packages/transaction-pay-controller/src/types.ts b/packages/transaction-pay-controller/src/types.ts index c1904e38f0d..d930c1a214a 100644 --- a/packages/transaction-pay-controller/src/types.ts +++ b/packages/transaction-pay-controller/src/types.ts @@ -57,8 +57,8 @@ import type { CONTROLLER_NAME, PaymentOverride, TransactionPayStrategy, -} from './constants'; -import type { TransactionPayControllerMethodActions } from './TransactionPayController-method-action-types'; +} from './constants.js'; +import type { TransactionPayControllerMethodActions } from './TransactionPayController-method-action-types.js'; export type AllowedActions = | AccountTrackerControllerGetStateAction diff --git a/packages/transaction-pay-controller/src/utils/7702.ts b/packages/transaction-pay-controller/src/utils/7702.ts index 00354371d23..4d8c1e082c0 100644 --- a/packages/transaction-pay-controller/src/utils/7702.ts +++ b/packages/transaction-pay-controller/src/utils/7702.ts @@ -1,5 +1,5 @@ -import type { TransactionPayControllerMessenger } from '../types'; -import { KEYRING_TYPES_SUPPORTING_7702 } from '../types'; +import type { TransactionPayControllerMessenger } from '../types.js'; +import { KEYRING_TYPES_SUPPORTING_7702 } from '../types.js'; /** * Check whether a given account supports EIP-7702 authorization signing. diff --git a/packages/transaction-pay-controller/src/utils/amounts.test.ts b/packages/transaction-pay-controller/src/utils/amounts.test.ts index c690b035759..e90a5ff6be5 100644 --- a/packages/transaction-pay-controller/src/utils/amounts.test.ts +++ b/packages/transaction-pay-controller/src/utils/amounts.test.ts @@ -1,6 +1,6 @@ import { BigNumber } from 'bignumber.js'; -import { getFiatValueFromUsd, sumAmounts } from './amounts'; +import { getFiatValueFromUsd, sumAmounts } from './amounts.js'; describe('Amounts utils', () => { describe('sumAmounts', () => { diff --git a/packages/transaction-pay-controller/src/utils/amounts.ts b/packages/transaction-pay-controller/src/utils/amounts.ts index c09a2cd2b6e..c21dad95861 100644 --- a/packages/transaction-pay-controller/src/utils/amounts.ts +++ b/packages/transaction-pay-controller/src/utils/amounts.ts @@ -1,6 +1,6 @@ import { BigNumber } from 'bignumber.js'; -import type { Amount, FiatValue } from '../types'; +import type { Amount, FiatValue } from '../types.js'; /** * Sum a list of amounts. diff --git a/packages/transaction-pay-controller/src/utils/chomp.test.ts b/packages/transaction-pay-controller/src/utils/chomp.test.ts index 370d72dd447..acbffb5e2f8 100644 --- a/packages/transaction-pay-controller/src/utils/chomp.test.ts +++ b/packages/transaction-pay-controller/src/utils/chomp.test.ts @@ -1,9 +1,9 @@ import type { Hex } from '@metamask/utils'; -import { CHAIN_ID_MONAD, MUSD_MONAD_ADDRESS } from '../constants'; -import type { TransactionPayControllerMessenger } from '../types'; -import { findRecentChompVaultDeposit } from './chomp'; -import { rpcRequest } from './provider'; +import { CHAIN_ID_MONAD, MUSD_MONAD_ADDRESS } from '../constants.js'; +import type { TransactionPayControllerMessenger } from '../types.js'; +import { findRecentChompVaultDeposit } from './chomp.js'; +import { rpcRequest } from './provider.js'; jest.mock('./provider'); diff --git a/packages/transaction-pay-controller/src/utils/chomp.ts b/packages/transaction-pay-controller/src/utils/chomp.ts index 79f440f4bfa..2c2cc466276 100644 --- a/packages/transaction-pay-controller/src/utils/chomp.ts +++ b/packages/transaction-pay-controller/src/utils/chomp.ts @@ -1,10 +1,10 @@ import type { Hex } from '@metamask/utils'; import { createModuleLogger } from '@metamask/utils'; -import { CHAIN_ID_MONAD, MUSD_MONAD_ADDRESS } from '../constants'; -import { projectLogger } from '../logger'; -import type { TransactionPayControllerMessenger } from '../types'; -import { rpcRequest } from './provider'; +import { CHAIN_ID_MONAD, MUSD_MONAD_ADDRESS } from '../constants.js'; +import { projectLogger } from '../logger.js'; +import type { TransactionPayControllerMessenger } from '../types.js'; +import { rpcRequest } from './provider.js'; const log = createModuleLogger(projectLogger, 'chomp'); diff --git a/packages/transaction-pay-controller/src/utils/error-prefix.test.ts b/packages/transaction-pay-controller/src/utils/error-prefix.test.ts index 1488a7af95f..99ec914da92 100644 --- a/packages/transaction-pay-controller/src/utils/error-prefix.test.ts +++ b/packages/transaction-pay-controller/src/utils/error-prefix.test.ts @@ -1,4 +1,4 @@ -import { prefixError } from './error-prefix'; +import { prefixError } from './error-prefix.js'; describe('prefixError', () => { it('prefixes Error messages without replacing the Error object', () => { diff --git a/packages/transaction-pay-controller/src/utils/feature-flags.test.ts b/packages/transaction-pay-controller/src/utils/feature-flags.test.ts index e52b3e70d47..308bd19ecb9 100644 --- a/packages/transaction-pay-controller/src/utils/feature-flags.test.ts +++ b/packages/transaction-pay-controller/src/utils/feature-flags.test.ts @@ -1,11 +1,11 @@ import { TransactionType } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; -import { getDefaultRemoteFeatureFlagControllerState } from '../../../remote-feature-flag-controller/src/remote-feature-flag-controller'; -import { TransactionPayStrategy } from '../constants'; -import type { TransactionPayFiatAsset } from '../strategy/fiat/constants'; -import { FIAT_ENABLED_TYPES } from '../strategy/fiat/constants'; -import { getMessengerMock } from '../tests/messenger-mock'; +import { getDefaultRemoteFeatureFlagControllerState } from '../../../remote-feature-flag-controller/src/remote-feature-flag-controller.js'; +import { TransactionPayStrategy } from '../constants.js'; +import type { TransactionPayFiatAsset } from '../strategy/fiat/constants.js'; +import { FIAT_ENABLED_TYPES } from '../strategy/fiat/constants.js'; +import { getMessengerMock } from '../tests/messenger-mock.js'; import { DEFAULT_ACROSS_API_BASE, DEFAULT_FALLBACK_GAS_ESTIMATE, @@ -43,8 +43,8 @@ import { getSlippage, getStrategy, getStrategyOrder, -} from './feature-flags'; -import * as featureFlagsModule from './feature-flags'; +} from './feature-flags.js'; +import * as featureFlagsModule from './feature-flags.js'; const GAS_FALLBACK_ESTIMATE_MOCK = 123; const GAS_FALLBACK_MAX_MOCK = 456; diff --git a/packages/transaction-pay-controller/src/utils/feature-flags.ts b/packages/transaction-pay-controller/src/utils/feature-flags.ts index 978714a8fcf..bcc345051d4 100644 --- a/packages/transaction-pay-controller/src/utils/feature-flags.ts +++ b/packages/transaction-pay-controller/src/utils/feature-flags.ts @@ -2,30 +2,30 @@ import type { TransactionType } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; import { createModuleLogger } from '@metamask/utils'; import { BigNumber } from 'bignumber.js'; -import { uniq } from 'lodash'; +import { uniq } from 'lodash-es'; import { isTransactionPayStrategy, STABLECOINS, TransactionPayStrategy, -} from '../constants'; -import { projectLogger } from '../logger'; -import type { TransactionPayFiatAsset } from '../strategy/fiat/constants'; +} from '../constants.js'; +import { projectLogger } from '../logger.js'; +import type { TransactionPayFiatAsset } from '../strategy/fiat/constants.js'; import { ETH_MAINNET_FIAT_ASSET, FIAT_ASSET_ID_BY_TX_TYPE, FIAT_ENABLED_TYPES, -} from '../strategy/fiat/constants'; +} from '../strategy/fiat/constants.js'; import { RELAY_EXECUTE_URL, RELAY_POLLING_INTERVAL, RELAY_QUOTE_URL, -} from '../strategy/relay/constants'; +} from '../strategy/relay/constants.js'; import { SERVER_POLLING_INTERVAL, SERVER_URL_BASE, -} from '../strategy/server/constants'; -import type { TransactionPayControllerMessenger } from '../types'; +} from '../strategy/server/constants.js'; +import type { TransactionPayControllerMessenger } from '../types.js'; const log = createModuleLogger(projectLogger, 'feature-flags'); diff --git a/packages/transaction-pay-controller/src/utils/gas-station.test.ts b/packages/transaction-pay-controller/src/utils/gas-station.test.ts index 135a1447eab..ffea301fac8 100644 --- a/packages/transaction-pay-controller/src/utils/gas-station.test.ts +++ b/packages/transaction-pay-controller/src/utils/gas-station.test.ts @@ -1,13 +1,13 @@ import type { GasFeeToken } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; -import { getDefaultRemoteFeatureFlagControllerState } from '../../../remote-feature-flag-controller/src/remote-feature-flag-controller'; -import { getMessengerMock } from '../tests/messenger-mock'; -import { calculateGasFeeTokenCost } from './gas'; +import { getDefaultRemoteFeatureFlagControllerState } from '../../../remote-feature-flag-controller/src/remote-feature-flag-controller.js'; +import { getMessengerMock } from '../tests/messenger-mock.js'; import { getGasStationEligibility, getGasStationCostInSourceTokenRaw, -} from './gas-station'; +} from './gas-station.js'; +import { calculateGasFeeTokenCost } from './gas.js'; jest.mock('./gas'); diff --git a/packages/transaction-pay-controller/src/utils/gas-station.ts b/packages/transaction-pay-controller/src/utils/gas-station.ts index 6398a1365ff..e495c7762a1 100644 --- a/packages/transaction-pay-controller/src/utils/gas-station.ts +++ b/packages/transaction-pay-controller/src/utils/gas-station.ts @@ -4,14 +4,14 @@ import type { Hex } from '@metamask/utils'; import { createModuleLogger } from '@metamask/utils'; import { BigNumber } from 'bignumber.js'; -import { projectLogger } from '../logger'; +import { projectLogger } from '../logger.js'; import type { Amount, QuoteRequest, TransactionPayControllerMessenger, -} from '../types'; -import { getFeatureFlags, isEIP7702Chain } from './feature-flags'; -import { calculateGasFeeTokenCost } from './gas'; +} from '../types.js'; +import { getFeatureFlags, isEIP7702Chain } from './feature-flags.js'; +import { calculateGasFeeTokenCost } from './gas.js'; const log = createModuleLogger(projectLogger, 'gas-station'); diff --git a/packages/transaction-pay-controller/src/utils/gas.test.ts b/packages/transaction-pay-controller/src/utils/gas.test.ts index 5023f93ffc6..9d61aad2652 100644 --- a/packages/transaction-pay-controller/src/utils/gas.test.ts +++ b/packages/transaction-pay-controller/src/utils/gas.test.ts @@ -1,22 +1,22 @@ import { toHex } from '@metamask/controller-utils'; import type { Hex } from '@metamask/utils'; -import { clone, cloneDeep } from 'lodash'; +import { clone, cloneDeep } from 'lodash-es'; -import type { GasFeeEstimates } from '../../../gas-fee-controller/src'; +import type { GasFeeEstimates } from '../../../gas-fee-controller/src.js'; import type { GasFeeToken, TransactionMeta, -} from '../../../transaction-controller/src'; -import { getMessengerMock } from '../tests/messenger-mock'; -import { getFallbackGas, getGasBuffer } from './feature-flags'; +} from '../../../transaction-controller/src.js'; +import { getMessengerMock } from '../tests/messenger-mock.js'; +import { getFallbackGas, getGasBuffer } from './feature-flags.js'; import { calculateGasCost, calculateGasFeeTokenCost, calculateTransactionGasCost, estimateGasLimit, getGasFee, -} from './gas'; -import { getTokenBalance, getTokenFiatRate } from './token'; +} from './gas.js'; +import { getTokenBalance, getTokenFiatRate } from './token.js'; jest.mock('./token'); jest.mock('./feature-flags', () => ({ diff --git a/packages/transaction-pay-controller/src/utils/gas.ts b/packages/transaction-pay-controller/src/utils/gas.ts index 5d777d0395f..d86e7dcb8c4 100644 --- a/packages/transaction-pay-controller/src/utils/gas.ts +++ b/packages/transaction-pay-controller/src/utils/gas.ts @@ -1,5 +1,4 @@ import { toHex } from '@metamask/controller-utils'; -import type { GasFeeEstimates } from '@metamask/gas-fee-controller'; import type { GasFeeToken, TransactionMeta, @@ -7,12 +6,12 @@ import type { import type { Hex } from '@metamask/utils'; import { BigNumber } from 'bignumber.js'; -import type { TransactionPayControllerMessenger } from '..'; -import { createModuleLogger, projectLogger } from '../logger'; -import type { Amount } from '../types'; -import { getFallbackGas, getGasBuffer } from './feature-flags'; -import { getNetworkClientId } from './provider'; -import { getNativeToken, getTokenBalance, getTokenFiatRate } from './token'; +import { createModuleLogger, projectLogger } from '../logger.js'; +import type { Amount } from '../types.js'; +import type { TransactionPayControllerMessenger } from './...js'; +import { getFallbackGas, getGasBuffer } from './feature-flags.js'; +import { getNetworkClientId } from './provider.js'; +import { getNativeToken, getTokenBalance, getTokenFiatRate } from './token.js'; const log = createModuleLogger(projectLogger, 'gas'); @@ -290,7 +289,7 @@ export function getGasFee( const chainState = gasFeeControllerState?.gasFeeEstimatesByChainId?.[chainId]; const { estimatedBaseFee: estimatedBaseFeeGwei, medium } = - (chainState?.gasFeeEstimates as GasFeeEstimates | undefined) ?? {}; + chainState?.gasFeeEstimates ?? {}; const maxFeePerGasGwei = medium?.suggestedMaxFeePerGas; const maxPriorityFeePerGasGwei = medium?.suggestedMaxPriorityFeePerGas; diff --git a/packages/transaction-pay-controller/src/utils/ma-vault-deposit.test.ts b/packages/transaction-pay-controller/src/utils/ma-vault-deposit.test.ts index 6a24aac3c91..21d1085e8c1 100644 --- a/packages/transaction-pay-controller/src/utils/ma-vault-deposit.test.ts +++ b/packages/transaction-pay-controller/src/utils/ma-vault-deposit.test.ts @@ -2,16 +2,16 @@ import { TransactionType } from '@metamask/transaction-controller'; import type { TransactionMeta } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; -import type { TransactionPayControllerMessenger } from '../types'; -import { findRecentChompVaultDeposit } from './chomp'; -import { submitMoneyAccountVaultDeposit } from './ma-vault-deposit'; -import { getNetworkClientId } from './provider'; +import type { TransactionPayControllerMessenger } from '../types.js'; +import { findRecentChompVaultDeposit } from './chomp.js'; +import { submitMoneyAccountVaultDeposit } from './ma-vault-deposit.js'; +import { getNetworkClientId } from './provider.js'; import { collectTransactionIds, getTransaction, updateTransaction, waitForTransactionConfirmed, -} from './transaction'; +} from './transaction.js'; jest.mock('./chomp'); jest.mock('./provider'); diff --git a/packages/transaction-pay-controller/src/utils/ma-vault-deposit.ts b/packages/transaction-pay-controller/src/utils/ma-vault-deposit.ts index ad2d02e39af..ebf85361fb6 100644 --- a/packages/transaction-pay-controller/src/utils/ma-vault-deposit.ts +++ b/packages/transaction-pay-controller/src/utils/ma-vault-deposit.ts @@ -4,18 +4,18 @@ import { TransactionType } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; import { createModuleLogger } from '@metamask/utils'; -import { projectLogger } from '../logger'; -import { MUSD_MONAD_FIAT_ASSET } from '../strategy/fiat/constants'; -import type { TransactionPayControllerMessenger } from '../types'; -import { findRecentChompVaultDeposit } from './chomp'; -import { prefixError } from './error-prefix'; -import { getNetworkClientId } from './provider'; +import { projectLogger } from '../logger.js'; +import { MUSD_MONAD_FIAT_ASSET } from '../strategy/fiat/constants.js'; +import type { TransactionPayControllerMessenger } from '../types.js'; +import { findRecentChompVaultDeposit } from './chomp.js'; +import { prefixError } from './error-prefix.js'; +import { getNetworkClientId } from './provider.js'; import { collectTransactionIds, getTransaction, updateTransaction, waitForTransactionConfirmed, -} from './transaction'; +} from './transaction.js'; const log = createModuleLogger(projectLogger, 'ma-vault-deposit'); diff --git a/packages/transaction-pay-controller/src/utils/no-op-quote.test.ts b/packages/transaction-pay-controller/src/utils/no-op-quote.test.ts index 0997e584ca4..b955bcb3148 100644 --- a/packages/transaction-pay-controller/src/utils/no-op-quote.test.ts +++ b/packages/transaction-pay-controller/src/utils/no-op-quote.test.ts @@ -1,8 +1,8 @@ import type { Hex } from '@metamask/utils'; -import { TransactionPayStrategy } from '../constants'; -import type { TransactionPaymentToken } from '../types'; -import { buildNoOpQuote } from './no-op-quote'; +import { TransactionPayStrategy } from '../constants.js'; +import type { TransactionPaymentToken } from '../types.js'; +import { buildNoOpQuote } from './no-op-quote.js'; const FROM_MOCK = '0xabc' as Hex; diff --git a/packages/transaction-pay-controller/src/utils/no-op-quote.ts b/packages/transaction-pay-controller/src/utils/no-op-quote.ts index 35e5a4368e6..a4bcec8d4fd 100644 --- a/packages/transaction-pay-controller/src/utils/no-op-quote.ts +++ b/packages/transaction-pay-controller/src/utils/no-op-quote.ts @@ -1,12 +1,12 @@ import type { Hex, Json } from '@metamask/utils'; -import { TransactionPayStrategy } from '../constants'; +import { TransactionPayStrategy } from '../constants.js'; import type { Amount, FiatValue, TransactionPaymentToken, TransactionPayQuote, -} from '../types'; +} from '../types.js'; function zeroFiat(): FiatValue { return { fiat: '0', usd: '0' }; diff --git a/packages/transaction-pay-controller/src/utils/provider.test.ts b/packages/transaction-pay-controller/src/utils/provider.test.ts index 8510fd91795..8258c944cbd 100644 --- a/packages/transaction-pay-controller/src/utils/provider.test.ts +++ b/packages/transaction-pay-controller/src/utils/provider.test.ts @@ -4,8 +4,8 @@ import { RpcEndpointType } from '@metamask/network-controller'; import type { NetworkConfiguration } from '@metamask/network-controller'; import type { Hex } from '@metamask/utils'; -import { getMessengerMock } from '../tests/messenger-mock'; -import { getNetworkClientId, rpcRequest } from './provider'; +import { getMessengerMock } from '../tests/messenger-mock.js'; +import { getNetworkClientId, rpcRequest } from './provider.js'; const CHAIN_ID_MOCK = '0x1' as Hex; const DEFAULT_NETWORK_CLIENT_ID_MOCK = 'default-client-id'; diff --git a/packages/transaction-pay-controller/src/utils/provider.ts b/packages/transaction-pay-controller/src/utils/provider.ts index ed793fb3fcd..28fb54f8bb3 100644 --- a/packages/transaction-pay-controller/src/utils/provider.ts +++ b/packages/transaction-pay-controller/src/utils/provider.ts @@ -10,8 +10,8 @@ import { import type { Hex } from '@metamask/utils'; import { createModuleLogger } from '@metamask/utils'; -import { projectLogger } from '../logger'; -import type { TransactionPayControllerMessenger } from '../types'; +import { projectLogger } from '../logger.js'; +import type { TransactionPayControllerMessenger } from '../types.js'; const log = createModuleLogger(projectLogger, 'provider'); diff --git a/packages/transaction-pay-controller/src/utils/quote-gas.test.ts b/packages/transaction-pay-controller/src/utils/quote-gas.test.ts index 64cef9bccae..dd6d61bdccc 100644 --- a/packages/transaction-pay-controller/src/utils/quote-gas.test.ts +++ b/packages/transaction-pay-controller/src/utils/quote-gas.test.ts @@ -1,9 +1,9 @@ import type { Hex } from '@metamask/utils'; -import { getMessengerMock } from '../tests/messenger-mock'; -import { getGasBuffer } from './feature-flags'; -import { estimateGasLimit } from './gas'; -import { estimateQuoteGasLimits } from './quote-gas'; +import { getMessengerMock } from '../tests/messenger-mock.js'; +import { getGasBuffer } from './feature-flags.js'; +import { estimateGasLimit } from './gas.js'; +import { estimateQuoteGasLimits } from './quote-gas.js'; jest.mock('./feature-flags', () => ({ ...jest.requireActual('./feature-flags'), diff --git a/packages/transaction-pay-controller/src/utils/quote-gas.ts b/packages/transaction-pay-controller/src/utils/quote-gas.ts index 25c2823c1d3..44e9bc66008 100644 --- a/packages/transaction-pay-controller/src/utils/quote-gas.ts +++ b/packages/transaction-pay-controller/src/utils/quote-gas.ts @@ -4,10 +4,10 @@ import type { Hex } from '@metamask/utils'; import { createModuleLogger } from '@metamask/utils'; import { BigNumber } from 'bignumber.js'; -import type { TransactionPayControllerMessenger } from '..'; -import { projectLogger } from '../logger'; -import { getGasBuffer } from './feature-flags'; -import { estimateGasLimit } from './gas'; +import { projectLogger } from '../logger.js'; +import type { TransactionPayControllerMessenger } from './...js'; +import { getGasBuffer } from './feature-flags.js'; +import { estimateGasLimit } from './gas.js'; const log = createModuleLogger(projectLogger, 'quote-gas'); diff --git a/packages/transaction-pay-controller/src/utils/quotes.test.ts b/packages/transaction-pay-controller/src/utils/quotes.test.ts index f414b8fe2fc..2e55d63e382 100644 --- a/packages/transaction-pay-controller/src/utils/quotes.test.ts +++ b/packages/transaction-pay-controller/src/utils/quotes.test.ts @@ -2,10 +2,10 @@ import { TransactionStatus } from '@metamask/transaction-controller'; import type { TransactionMeta } from '@metamask/transaction-controller'; import type { BatchTransaction } from '@metamask/transaction-controller'; import type { Hex, Json } from '@metamask/utils'; -import { cloneDeep } from 'lodash'; +import { cloneDeep } from 'lodash-es'; -import { TransactionPayStrategy } from '../constants'; -import { getMessengerMock } from '../tests/messenger-mock'; +import { TransactionPayStrategy } from '../constants.js'; +import { getMessengerMock } from '../tests/messenger-mock.js'; import type { TransactionPaySourceAmount, TransactionData, @@ -13,18 +13,18 @@ import type { TransactionPayTotals, TransactionPaymentToken, TransactionPayRequiredToken, -} from '../types'; -import type { UpdateQuotesRequest } from './quotes'; -import { refreshQuotes, updateQuotes } from './quotes'; +} from '../types.js'; +import type { UpdateQuotesRequest } from './quotes.js'; +import { refreshQuotes, updateQuotes } from './quotes.js'; import { checkStrategyQuoteSupport, checkStrategySupport, getStrategiesByName, getStrategyByName, -} from './strategy'; -import { getLiveTokenBalance, getTokenFiatRate } from './token'; -import { calculateTotals } from './totals'; -import { getTransaction, updateTransaction } from './transaction'; +} from './strategy.js'; +import { getLiveTokenBalance, getTokenFiatRate } from './token.js'; +import { calculateTotals } from './totals.js'; +import { getTransaction, updateTransaction } from './transaction.js'; jest.mock('./strategy'); jest.mock('./transaction'); diff --git a/packages/transaction-pay-controller/src/utils/quotes.ts b/packages/transaction-pay-controller/src/utils/quotes.ts index 7ae137bdc7f..4d8b8b9f28a 100644 --- a/packages/transaction-pay-controller/src/utils/quotes.ts +++ b/packages/transaction-pay-controller/src/utils/quotes.ts @@ -4,8 +4,8 @@ import type { TransactionMeta } from '@metamask/transaction-controller'; import type { Hex, Json } from '@metamask/utils'; import { createModuleLogger } from '@metamask/utils'; -import { PaymentOverride, TransactionPayStrategy } from '../constants'; -import { projectLogger } from '../logger'; +import { PaymentOverride, TransactionPayStrategy } from '../constants.js'; +import { projectLogger } from '../logger.js'; import type { QuoteRequest, TransactionData, @@ -16,22 +16,22 @@ import type { TransactionPayTotals, TransactionPaymentToken, UpdateTransactionDataCallback, -} from '../types'; -import { accountSupports7702 } from './7702'; -import { buildNoOpQuote } from './no-op-quote'; +} from '../types.js'; +import { accountSupports7702 } from './7702.js'; +import { buildNoOpQuote } from './no-op-quote.js'; import { checkStrategyQuoteSupport, checkStrategySupport, getStrategiesByName, getStrategyByName, -} from './strategy'; +} from './strategy.js'; import { computeTokenAmounts, getLiveTokenBalance, getTokenFiatRate, -} from './token'; -import { calculateTotals } from './totals'; -import { getTransaction, updateTransaction } from './transaction'; +} from './token.js'; +import { calculateTotals } from './totals.js'; +import { getTransaction, updateTransaction } from './transaction.js'; const DEFAULT_REFRESH_INTERVAL = 30 * 1000; // 30 Seconds diff --git a/packages/transaction-pay-controller/src/utils/required-tokens.test.ts b/packages/transaction-pay-controller/src/utils/required-tokens.test.ts index 2bbc3cd676c..1e3fbd38cf9 100644 --- a/packages/transaction-pay-controller/src/utils/required-tokens.test.ts +++ b/packages/transaction-pay-controller/src/utils/required-tokens.test.ts @@ -1,10 +1,10 @@ import type { TransactionMeta } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; -import { toHex } from '../../../controller-utils/src'; -import type { TransactionPayControllerMessenger } from '../types'; -import { parseRequiredTokens } from './required-tokens'; -import { getTokenBalance, getTokenFiatRate, getTokenInfo } from './token'; +import { toHex } from '../../../controller-utils/src.js'; +import type { TransactionPayControllerMessenger } from '../types.js'; +import { parseRequiredTokens } from './required-tokens.js'; +import { getTokenBalance, getTokenFiatRate, getTokenInfo } from './token.js'; jest.mock('./token', () => ({ ...jest.requireActual('./token'), diff --git a/packages/transaction-pay-controller/src/utils/required-tokens.ts b/packages/transaction-pay-controller/src/utils/required-tokens.ts index 9103a6c1cec..f5667304422 100644 --- a/packages/transaction-pay-controller/src/utils/required-tokens.ts +++ b/packages/transaction-pay-controller/src/utils/required-tokens.ts @@ -5,17 +5,17 @@ import type { TransactionMeta } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; import { createModuleLogger } from '@metamask/utils'; -import { projectLogger } from '../logger'; +import { projectLogger } from '../logger.js'; import type { TransactionPayControllerMessenger, TransactionPayRequiredToken, -} from '../types'; +} from '../types.js'; import { computeTokenAmounts, getTokenBalance, getTokenFiatRate, getTokenInfo, -} from './token'; +} from './token.js'; const log = createModuleLogger(projectLogger, 'required-tokens'); diff --git a/packages/transaction-pay-controller/src/utils/source-amounts.test.ts b/packages/transaction-pay-controller/src/utils/source-amounts.test.ts index 87458d9ce31..6b38553a966 100644 --- a/packages/transaction-pay-controller/src/utils/source-amounts.test.ts +++ b/packages/transaction-pay-controller/src/utils/source-amounts.test.ts @@ -1,13 +1,13 @@ import { TransactionType } from '@metamask/transaction-controller'; -import { TransactionPayStrategy } from '..'; -import type { TransactionPaymentToken } from '..'; -import { ARBITRUM_USDC_ADDRESS, CHAIN_ID_ARBITRUM } from '../constants'; -import { getMessengerMock } from '../tests/messenger-mock'; -import type { TransactionData, TransactionPayRequiredToken } from '../types'; -import { updateSourceAmounts } from './source-amounts'; -import { getTokenFiatRate } from './token'; -import { getTransaction } from './transaction'; +import { ARBITRUM_USDC_ADDRESS, CHAIN_ID_ARBITRUM } from '../constants.js'; +import { getMessengerMock } from '../tests/messenger-mock.js'; +import type { TransactionData, TransactionPayRequiredToken } from '../types.js'; +import { TransactionPayStrategy } from './...js'; +import type { TransactionPaymentToken } from './...js'; +import { updateSourceAmounts } from './source-amounts.js'; +import { getTokenFiatRate } from './token.js'; +import { getTransaction } from './transaction.js'; jest.mock('./token', () => ({ ...jest.requireActual('./token'), diff --git a/packages/transaction-pay-controller/src/utils/source-amounts.ts b/packages/transaction-pay-controller/src/utils/source-amounts.ts index f2bcd31a501..ce5691266a2 100644 --- a/packages/transaction-pay-controller/src/utils/source-amounts.ts +++ b/packages/transaction-pay-controller/src/utils/source-amounts.ts @@ -5,24 +5,24 @@ import type { import { createModuleLogger } from '@metamask/utils'; import { BigNumber } from 'bignumber.js'; -import type { - TransactionPayControllerMessenger, - TransactionPaymentToken, -} from '..'; -import { TransactionPayStrategy } from '..'; import { ARBITRUM_USDC_ADDRESS, CHAIN_ID_ARBITRUM, PERPS_DEPOSIT_TYPES, -} from '../constants'; -import { projectLogger } from '../logger'; +} from '../constants.js'; +import { projectLogger } from '../logger.js'; import type { TransactionPaySourceAmount, TransactionData, TransactionPayRequiredToken, -} from '../types'; -import { getTokenFiatRate, isSameToken } from './token'; -import { getTransaction } from './transaction'; +} from '../types.js'; +import type { + TransactionPayControllerMessenger, + TransactionPaymentToken, +} from './...js'; +import { TransactionPayStrategy } from './...js'; +import { getTokenFiatRate, isSameToken } from './token.js'; +import { getTransaction } from './transaction.js'; const log = createModuleLogger(projectLogger, 'source-amounts'); diff --git a/packages/transaction-pay-controller/src/utils/strategy.test.ts b/packages/transaction-pay-controller/src/utils/strategy.test.ts index d2c7da2084c..bc2d61d0f81 100644 --- a/packages/transaction-pay-controller/src/utils/strategy.test.ts +++ b/packages/transaction-pay-controller/src/utils/strategy.test.ts @@ -1,15 +1,15 @@ -import { TransactionPayStrategy } from '../constants'; -import { AcrossStrategy } from '../strategy/across/AcrossStrategy'; -import { FiatStrategy } from '../strategy/fiat/FiatStrategy'; -import { RelayStrategy } from '../strategy/relay/RelayStrategy'; -import { ServerStrategy } from '../strategy/server/ServerStrategy'; -import type { PayStrategyGetQuotesRequest } from '../types'; +import { TransactionPayStrategy } from '../constants.js'; +import { AcrossStrategy } from '../strategy/across/AcrossStrategy.js'; +import { FiatStrategy } from '../strategy/fiat/FiatStrategy.js'; +import { RelayStrategy } from '../strategy/relay/RelayStrategy.js'; +import { ServerStrategy } from '../strategy/server/ServerStrategy.js'; +import type { PayStrategyGetQuotesRequest } from '../types.js'; import { checkStrategyQuoteSupport, checkStrategySupport, getStrategiesByName, getStrategyByName, -} from './strategy'; +} from './strategy.js'; describe('Strategy Utils', () => { describe('getStrategyByName', () => { diff --git a/packages/transaction-pay-controller/src/utils/strategy.ts b/packages/transaction-pay-controller/src/utils/strategy.ts index 3026874d71a..97bd8cbdfa5 100644 --- a/packages/transaction-pay-controller/src/utils/strategy.ts +++ b/packages/transaction-pay-controller/src/utils/strategy.ts @@ -1,13 +1,13 @@ -import { TransactionPayStrategy } from '../constants'; -import { AcrossStrategy } from '../strategy/across/AcrossStrategy'; -import { FiatStrategy } from '../strategy/fiat/FiatStrategy'; -import { RelayStrategy } from '../strategy/relay/RelayStrategy'; -import { ServerStrategy } from '../strategy/server/ServerStrategy'; +import { TransactionPayStrategy } from '../constants.js'; +import { AcrossStrategy } from '../strategy/across/AcrossStrategy.js'; +import { FiatStrategy } from '../strategy/fiat/FiatStrategy.js'; +import { RelayStrategy } from '../strategy/relay/RelayStrategy.js'; +import { ServerStrategy } from '../strategy/server/ServerStrategy.js'; import type { PayStrategy, PayStrategyCheckQuoteSupportRequest, PayStrategyGetQuotesRequest, -} from '../types'; +} from '../types.js'; export type NamedStrategy = { name: TransactionPayStrategy; diff --git a/packages/transaction-pay-controller/src/utils/token.test.ts b/packages/transaction-pay-controller/src/utils/token.test.ts index e23dbd9e485..cb30aa2c542 100644 --- a/packages/transaction-pay-controller/src/utils/token.test.ts +++ b/packages/transaction-pay-controller/src/utils/token.test.ts @@ -7,13 +7,13 @@ import { RpcEndpointType } from '@metamask/network-controller'; import type { NetworkConfiguration } from '@metamask/network-controller'; import type { Hex } from '@metamask/utils'; -import { getDefaultRemoteFeatureFlagControllerState } from '../../../remote-feature-flag-controller/src/remote-feature-flag-controller'; +import { getDefaultRemoteFeatureFlagControllerState } from '../../../remote-feature-flag-controller/src/remote-feature-flag-controller.js'; import { CHAIN_ID_POLYGON, NATIVE_TOKEN_ADDRESS, POLYGON_USDCE_ADDRESS, -} from '../constants'; -import { getMessengerMock } from '../tests/messenger-mock'; +} from '../constants.js'; +import { getMessengerMock } from '../tests/messenger-mock.js'; import { buildCaipAssetType, computeRawFromFiatAmount, @@ -26,7 +26,7 @@ import { getLiveTokenBalance, normalizeTokenAddress, TokenAddressTarget, -} from './token'; +} from './token.js'; const TOKEN_ADDRESS_MOCK = '0x559B65722aD62AD6DAC4Fa5a1c6B23A2e8ce57Ec' as Hex; const TOKEN_ADDRESS_2_MOCK = '0x123456789abcdef1234567890abcdef12345678' as Hex; diff --git a/packages/transaction-pay-controller/src/utils/token.ts b/packages/transaction-pay-controller/src/utils/token.ts index 0f0f66b88c6..66ea9ac4541 100644 --- a/packages/transaction-pay-controller/src/utils/token.ts +++ b/packages/transaction-pay-controller/src/utils/token.ts @@ -10,14 +10,14 @@ import { CHAIN_ID_POLYGON, NATIVE_TOKEN_ADDRESS, SLIP44_COIN_TYPE_BY_CHAIN, -} from '../constants'; -import type { FiatRates, TransactionPayControllerMessenger } from '../types'; +} from '../constants.js'; +import type { FiatRates, TransactionPayControllerMessenger } from '../types.js'; import { getAssetsUnifyStateFeature, getStablecoins, isChainExcludedFromInfura, -} from './feature-flags'; -import { getNetworkClientId, rpcRequest } from './provider'; +} from './feature-flags.js'; +import { getNetworkClientId, rpcRequest } from './provider.js'; /** * Check if two tokens are the same (same address and chain). diff --git a/packages/transaction-pay-controller/src/utils/totals.test.ts b/packages/transaction-pay-controller/src/utils/totals.test.ts index 1fc2ec4a5ec..d44857abce0 100644 --- a/packages/transaction-pay-controller/src/utils/totals.test.ts +++ b/packages/transaction-pay-controller/src/utils/totals.test.ts @@ -1,14 +1,14 @@ import type { TransactionMeta } from '@metamask/transaction-controller'; -import { TransactionPayStrategy } from '..'; -import type { TransactionPayControllerMessenger } from '..'; import type { QuoteRequest, TransactionPayQuote, TransactionPayRequiredToken, -} from '../types'; -import { calculateTransactionGasCost } from './gas'; -import { calculateTotals } from './totals'; +} from '../types.js'; +import { TransactionPayStrategy } from './...js'; +import type { TransactionPayControllerMessenger } from './...js'; +import { calculateTransactionGasCost } from './gas.js'; +import { calculateTotals } from './totals.js'; jest.mock('./gas'); diff --git a/packages/transaction-pay-controller/src/utils/totals.ts b/packages/transaction-pay-controller/src/utils/totals.ts index 62978191795..26d587de3e8 100644 --- a/packages/transaction-pay-controller/src/utils/totals.ts +++ b/packages/transaction-pay-controller/src/utils/totals.ts @@ -1,16 +1,16 @@ import type { TransactionMeta } from '@metamask/transaction-controller'; import { BigNumber } from 'bignumber.js'; -import { TransactionPayStrategy } from '../constants'; +import { TransactionPayStrategy } from '../constants.js'; import type { FiatValue, TransactionPayControllerMessenger, TransactionPayQuote, TransactionPayRequiredToken, TransactionPayTotals, -} from '../types'; -import { sumAmounts } from './amounts'; -import { calculateTransactionGasCost } from './gas'; +} from '../types.js'; +import { sumAmounts } from './amounts.js'; +import { calculateTransactionGasCost } from './gas.js'; /** * Calculate totals for a list of quotes and tokens. diff --git a/packages/transaction-pay-controller/src/utils/transaction.test.ts b/packages/transaction-pay-controller/src/utils/transaction.test.ts index 741f40f7f4c..cb9fb8df9b2 100644 --- a/packages/transaction-pay-controller/src/utils/transaction.test.ts +++ b/packages/transaction-pay-controller/src/utils/transaction.test.ts @@ -8,16 +8,16 @@ import { import type { TransactionMeta } from '@metamask/transaction-controller'; import type { TransactionControllerState } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; -import { noop } from 'lodash'; +import { noop } from 'lodash-es'; -import { NATIVE_TOKEN_ADDRESS } from '../constants'; -import { getMessengerMock } from '../tests/messenger-mock'; +import { NATIVE_TOKEN_ADDRESS } from '../constants.js'; +import { getMessengerMock } from '../tests/messenger-mock.js'; import type { TransactionData, TransactionPayControllerState, TransactionPayRequiredToken, -} from '../types'; -import { parseRequiredTokens } from './required-tokens'; +} from '../types.js'; +import { parseRequiredTokens } from './required-tokens.js'; import { FINALIZED_STATUSES, collectTransactionIds, @@ -28,7 +28,7 @@ import { subscribeTransactionChanges, updateTransaction, waitForTransactionConfirmed, -} from './transaction'; +} from './transaction.js'; jest.mock('./required-tokens'); diff --git a/packages/transaction-pay-controller/src/utils/transaction.ts b/packages/transaction-pay-controller/src/utils/transaction.ts index 75bf543b1f4..28b51243fcf 100644 --- a/packages/transaction-pay-controller/src/utils/transaction.ts +++ b/packages/transaction-pay-controller/src/utils/transaction.ts @@ -9,17 +9,17 @@ import type { Hex } from '@metamask/utils'; import { createModuleLogger } from '@metamask/utils'; import { BigNumber } from 'bignumber.js'; import type { Patch } from 'immer'; -import { cloneDeep } from 'lodash'; +import { cloneDeep } from 'lodash-es'; -import { projectLogger } from '../logger'; +import { projectLogger } from '../logger.js'; import type { TransactionPayControllerMessenger, TransactionPayControllerState, UpdateTransactionDataCallback, -} from '../types'; -import { rpcRequest } from './provider'; -import { parseRequiredTokens } from './required-tokens'; -import { getNativeToken } from './token'; +} from '../types.js'; +import { rpcRequest } from './provider.js'; +import { parseRequiredTokens } from './required-tokens.js'; +import { getNativeToken } from './token.js'; const log = createModuleLogger(projectLogger, 'transaction'); From 5b30bb2019896ef9aabd238da44d01c444e4714a Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:48:52 +0200 Subject: [PATCH 085/136] ESLint fix and `jest` global import for account-tree-controller --- packages/account-tree-controller/package.json | 1 + ...countTreeController-method-action-types.ts | 2 +- .../src/AccountTreeController.test.ts | 15 +++--- .../src/AccountTreeController.ts | 52 +++++++------------ .../src/backup-and-sync/analytics/index.ts | 4 +- .../backup-and-sync/analytics/segment.test.ts | 7 ++- .../src/backup-and-sync/analytics/segment.ts | 2 +- .../backup-and-sync/analytics/traces.test.ts | 3 +- .../backup-and-sync/authentication/index.ts | 2 +- .../authentication/utils.test.ts | 8 +-- .../backup-and-sync/authentication/utils.ts | 4 +- .../service/atomic-sync-queue.test.ts | 7 +-- .../service/atomic-sync-queue.ts | 4 +- .../src/backup-and-sync/service/index.test.ts | 21 ++++---- .../src/backup-and-sync/service/index.ts | 33 +++++------- .../src/backup-and-sync/syncing/group.test.ts | 18 ++++--- .../src/backup-and-sync/syncing/group.ts | 24 ++++----- .../src/backup-and-sync/syncing/index.ts | 8 +-- .../backup-and-sync/syncing/legacy.test.ts | 15 +++--- .../src/backup-and-sync/syncing/legacy.ts | 14 ++--- .../backup-and-sync/syncing/metadata.test.ts | 8 +-- .../src/backup-and-sync/syncing/metadata.ts | 6 +-- .../backup-and-sync/syncing/wallet.test.ts | 17 +++--- .../src/backup-and-sync/syncing/wallet.ts | 19 ++++--- .../src/backup-and-sync/types.ts | 12 ++--- .../user-storage/format-utils.test.ts | 17 +++--- .../user-storage/format-utils.ts | 14 ++--- .../src/backup-and-sync/user-storage/index.ts | 8 +-- .../user-storage/network-operations.test.ts | 15 +++--- .../user-storage/network-operations.ts | 16 +++--- .../user-storage/network-utils.test.ts | 4 +- .../user-storage/validation.test.ts | 2 +- .../user-storage/validation.ts | 4 +- .../backup-and-sync/utils/controller.test.ts | 11 ++-- .../src/backup-and-sync/utils/controller.ts | 10 ++-- .../src/backup-and-sync/utils/errors.test.ts | 2 +- .../src/backup-and-sync/utils/index.ts | 6 +-- .../utils/mutation-tracker.test.ts | 2 +- .../backup-and-sync/utils/mutation-tracker.ts | 2 +- packages/account-tree-controller/src/group.ts | 6 +-- packages/account-tree-controller/src/index.ts | 16 +++--- .../account-tree-controller/src/rule.test.ts | 8 +-- packages/account-tree-controller/src/rule.ts | 6 +-- .../src/rules/entropy.test.ts | 6 +-- .../src/rules/entropy.ts | 8 +-- .../src/rules/keyring.test.ts | 8 +-- .../src/rules/keyring.ts | 8 +-- .../src/rules/snap.test.ts | 11 ++-- .../account-tree-controller/src/rules/snap.ts | 8 +-- packages/account-tree-controller/src/types.ts | 10 ++-- .../account-tree-controller/src/wallet.ts | 2 +- .../tests/mockMessenger.ts | 2 +- 52 files changed, 268 insertions(+), 250 deletions(-) diff --git a/packages/account-tree-controller/package.json b/packages/account-tree-controller/package.json index 192663843cd..bb3ce4e7fbb 100644 --- a/packages/account-tree-controller/package.json +++ b/packages/account-tree-controller/package.json @@ -64,6 +64,7 @@ "lodash": "^4.17.21" }, "devDependencies": { + "@jest/globals": "^30.4.1", "@metamask/account-api": "^1.0.4", "@metamask/auto-changelog": "^6.1.0", "@metamask/providers": "^22.1.0", diff --git a/packages/account-tree-controller/src/AccountTreeController-method-action-types.ts b/packages/account-tree-controller/src/AccountTreeController-method-action-types.ts index abc6ca61e9d..25c3849dba5 100644 --- a/packages/account-tree-controller/src/AccountTreeController-method-action-types.ts +++ b/packages/account-tree-controller/src/AccountTreeController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { AccountTreeController } from './AccountTreeController'; +import type { AccountTreeController } from './AccountTreeController.js'; /** * Initialize the controller's state. diff --git a/packages/account-tree-controller/src/AccountTreeController.test.ts b/packages/account-tree-controller/src/AccountTreeController.test.ts index dfdf7bfa5e8..854c989e622 100644 --- a/packages/account-tree-controller/src/AccountTreeController.test.ts +++ b/packages/account-tree-controller/src/AccountTreeController.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; import type { AccountGroupId, AccountWalletId, @@ -34,16 +35,16 @@ import type { GetSnap as SnapControllerGetSnap } from '@metamask/snaps-controlle import { getAccountTreeControllerMessenger, getRootMessenger, -} from '../tests/mockMessenger'; +} from '../tests/mockMessenger.js'; import { AccountTreeController, getDefaultAccountTreeControllerState, -} from './AccountTreeController'; -import type { BackupAndSyncAnalyticsEventPayload } from './backup-and-sync/analytics'; -import { BackupAndSyncService } from './backup-and-sync/service'; -import { isAccountGroupNameUnique } from './group'; -import { getAccountWalletNameFromKeyringType } from './rules/keyring'; -import type { AccountTreeControllerState } from './types'; +} from './AccountTreeController.js'; +import type { BackupAndSyncAnalyticsEventPayload } from './backup-and-sync/analytics.js'; +import { BackupAndSyncService } from './backup-and-sync/service.js'; +import { isAccountGroupNameUnique } from './group.js'; +import { getAccountWalletNameFromKeyringType } from './rules/keyring.js'; +import type { AccountTreeControllerState } from './types.js'; // Local mock of EMPTY_ACCOUNT to avoid circular dependency const EMPTY_ACCOUNT_MOCK: InternalAccount = { diff --git a/packages/account-tree-controller/src/AccountTreeController.ts b/packages/account-tree-controller/src/AccountTreeController.ts index e37b2dc1524..ec351576665 100644 --- a/packages/account-tree-controller/src/AccountTreeController.ts +++ b/packages/account-tree-controller/src/AccountTreeController.ts @@ -15,33 +15,33 @@ import { isEvmAccountType } from '@metamask/keyring-api'; import type { InternalAccount } from '@metamask/keyring-internal-api'; import { assert } from '@metamask/utils'; -import type { BackupAndSyncEmitAnalyticsEventParams } from './backup-and-sync/analytics'; +import type { BackupAndSyncEmitAnalyticsEventParams } from './backup-and-sync/analytics.js'; import { formatAnalyticsEvent, traceFallback, -} from './backup-and-sync/analytics'; -import { BackupAndSyncService } from './backup-and-sync/service'; -import type { BackupAndSyncContext } from './backup-and-sync/types'; -import { createSyncMutationTracker } from './backup-and-sync/utils'; -import type { AccountGroupObject, AccountTypeOrderKey } from './group'; +} from './backup-and-sync/analytics.js'; +import { BackupAndSyncService } from './backup-and-sync/service.js'; +import type { BackupAndSyncContext } from './backup-and-sync/types.js'; +import { createSyncMutationTracker } from './backup-and-sync/utils.js'; +import type { AccountGroupObject, AccountTypeOrderKey } from './group.js'; import { ACCOUNT_TYPE_TO_SORT_ORDER, isAccountGroupNameUnique, isAccountGroupNameUniqueFromWallet, MAX_SORT_ORDER, -} from './group'; -import { projectLogger as log } from './logger'; -import type { Rule } from './rule'; -import { EntropyRule } from './rules/entropy'; -import { KeyringRule } from './rules/keyring'; -import { SnapRule } from './rules/snap'; +} from './group.js'; +import { projectLogger as log } from './logger.js'; +import type { Rule } from './rule.js'; +import { EntropyRule } from './rules/entropy.js'; +import { KeyringRule } from './rules/keyring.js'; +import { SnapRule } from './rules/snap.js'; import type { AccountTreeControllerConfig, AccountTreeControllerInternalBackupAndSyncConfig, AccountTreeControllerMessenger, AccountTreeControllerState, -} from './types'; -import type { AccountWalletObject, AccountWalletObjectOf } from './wallet'; +} from './types.js'; +import type { AccountWalletObject, AccountWalletObjectOf } from './wallet.js'; export const controllerName = 'AccountTreeController'; @@ -606,9 +606,7 @@ export class AccountTreeController extends BaseController< // Parse the highest account index being used (similar to accounts-controller) let highestNameIndex = 0; - for (const { id: otherGroupId } of Object.values( - wallet.groups, - ) as AccountGroupObject[]) { + for (const { id: otherGroupId } of Object.values(wallet.groups)) { // Skip the current group being processed if (otherGroupId === group.id) { continue; @@ -1317,9 +1315,7 @@ export class AccountTreeController extends BaseController< const now = Date.now(); /* istanbul ignore next */ - if (!state.accountGroupsMetadata[groupId]) { - state.accountGroupsMetadata[groupId] = {}; - } + state.accountGroupsMetadata[groupId] ??= {}; state.accountGroupsMetadata[groupId].lastSelected = now; const walletId = this.#groupIdToWalletId.get(groupId); @@ -1457,9 +1453,7 @@ export class AccountTreeController extends BaseController< id, ); - if (!candidate) { - candidate = id; - } + candidate ??= id; if (account && isEvmAccountType(account.type)) { // EVM accounts have a higher priority, so if we find any, we just // use that account! @@ -1594,9 +1588,7 @@ export class AccountTreeController extends BaseController< this.update((state) => { /* istanbul ignore next */ - if (!state.accountGroupsMetadata[groupId]) { - state.accountGroupsMetadata[groupId] = {}; - } + state.accountGroupsMetadata[groupId] ??= {}; // Update persistent metadata state.accountGroupsMetadata[groupId].name = { @@ -1664,9 +1656,7 @@ export class AccountTreeController extends BaseController< this.update((state) => { /* istanbul ignore next */ - if (!state.accountGroupsMetadata[groupId]) { - state.accountGroupsMetadata[groupId] = {}; - } + state.accountGroupsMetadata[groupId] ??= {}; // Update persistent metadata state.accountGroupsMetadata[groupId].pinned = { @@ -1710,9 +1700,7 @@ export class AccountTreeController extends BaseController< this.update((state) => { /* istanbul ignore next */ - if (!state.accountGroupsMetadata[groupId]) { - state.accountGroupsMetadata[groupId] = {}; - } + state.accountGroupsMetadata[groupId] ??= {}; // Update persistent metadata state.accountGroupsMetadata[groupId].hidden = { diff --git a/packages/account-tree-controller/src/backup-and-sync/analytics/index.ts b/packages/account-tree-controller/src/backup-and-sync/analytics/index.ts index 33fa061b779..7143f49ae38 100644 --- a/packages/account-tree-controller/src/backup-and-sync/analytics/index.ts +++ b/packages/account-tree-controller/src/backup-and-sync/analytics/index.ts @@ -1,2 +1,2 @@ -export * from './segment'; -export * from './traces'; +export * from './segment.js'; +export * from './traces.js'; diff --git a/packages/account-tree-controller/src/backup-and-sync/analytics/segment.test.ts b/packages/account-tree-controller/src/backup-and-sync/analytics/segment.test.ts index f7051247a63..990213cbd6e 100644 --- a/packages/account-tree-controller/src/backup-and-sync/analytics/segment.test.ts +++ b/packages/account-tree-controller/src/backup-and-sync/analytics/segment.test.ts @@ -1,9 +1,12 @@ -import { BackupAndSyncAnalyticsEvent, formatAnalyticsEvent } from './segment'; +import { + BackupAndSyncAnalyticsEvent, + formatAnalyticsEvent, +} from './segment.js'; import type { BackupAndSyncAnalyticsAction, BackupAndSyncEmitAnalyticsEventParams, BackupAndSyncAnalyticsEventPayload, -} from './segment'; +} from './segment.js'; describe('BackupAndSyncAnalytics - Segment', () => { describe('BackupAndSyncAnalyticsEvents', () => { diff --git a/packages/account-tree-controller/src/backup-and-sync/analytics/segment.ts b/packages/account-tree-controller/src/backup-and-sync/analytics/segment.ts index 4f1e7502fcd..01e25340c18 100644 --- a/packages/account-tree-controller/src/backup-and-sync/analytics/segment.ts +++ b/packages/account-tree-controller/src/backup-and-sync/analytics/segment.ts @@ -1,4 +1,4 @@ -import type { ProfileId } from '../authentication'; +import type { ProfileId } from '../authentication.js'; export const BackupAndSyncAnalyticsEvent = { WalletRenamed: 'wallet_renamed', diff --git a/packages/account-tree-controller/src/backup-and-sync/analytics/traces.test.ts b/packages/account-tree-controller/src/backup-and-sync/analytics/traces.test.ts index 791ccdd563d..7e9d05e78dd 100644 --- a/packages/account-tree-controller/src/backup-and-sync/analytics/traces.test.ts +++ b/packages/account-tree-controller/src/backup-and-sync/analytics/traces.test.ts @@ -1,6 +1,7 @@ +import { jest } from '@jest/globals'; import type { TraceRequest } from '@metamask/controller-utils'; -import { TraceName, traceFallback } from './traces'; +import { TraceName, traceFallback } from './traces.js'; describe('BackupAndSyncAnalytics - Traces', () => { describe('TraceName', () => { diff --git a/packages/account-tree-controller/src/backup-and-sync/authentication/index.ts b/packages/account-tree-controller/src/backup-and-sync/authentication/index.ts index 04bca77e0de..9be8099fb95 100644 --- a/packages/account-tree-controller/src/backup-and-sync/authentication/index.ts +++ b/packages/account-tree-controller/src/backup-and-sync/authentication/index.ts @@ -1 +1 @@ -export * from './utils'; +export * from './utils.js'; diff --git a/packages/account-tree-controller/src/backup-and-sync/authentication/utils.test.ts b/packages/account-tree-controller/src/backup-and-sync/authentication/utils.test.ts index 3fc12e3fe95..0cf8505ad72 100644 --- a/packages/account-tree-controller/src/backup-and-sync/authentication/utils.test.ts +++ b/packages/account-tree-controller/src/backup-and-sync/authentication/utils.test.ts @@ -1,6 +1,8 @@ -import type { AccountTreeController } from '../../AccountTreeController'; -import type { BackupAndSyncContext } from '../types'; -import { getProfileId } from './utils'; +import { jest } from '@jest/globals'; + +import type { AccountTreeController } from '../../AccountTreeController.js'; +import type { BackupAndSyncContext } from '../types.js'; +import { getProfileId } from './utils.js'; describe('BackupAndSyncAuthentication - Utils', () => { describe('getProfileId', () => { diff --git a/packages/account-tree-controller/src/backup-and-sync/authentication/utils.ts b/packages/account-tree-controller/src/backup-and-sync/authentication/utils.ts index c380db605db..92448dd4979 100644 --- a/packages/account-tree-controller/src/backup-and-sync/authentication/utils.ts +++ b/packages/account-tree-controller/src/backup-and-sync/authentication/utils.ts @@ -1,7 +1,7 @@ import type { SDK } from '@metamask/profile-sync-controller'; -import { backupAndSyncLogger } from '../../logger'; -import type { BackupAndSyncContext } from '../types'; +import { backupAndSyncLogger } from '../../logger.js'; +import type { BackupAndSyncContext } from '../types.js'; export type ProfileId = SDK.UserProfile['profileId'] | undefined; diff --git a/packages/account-tree-controller/src/backup-and-sync/service/atomic-sync-queue.test.ts b/packages/account-tree-controller/src/backup-and-sync/service/atomic-sync-queue.test.ts index 76fc325ab0d..2b9489d7970 100644 --- a/packages/account-tree-controller/src/backup-and-sync/service/atomic-sync-queue.test.ts +++ b/packages/account-tree-controller/src/backup-and-sync/service/atomic-sync-queue.test.ts @@ -1,6 +1,7 @@ -/* eslint-disable no-void */ -import { backupAndSyncLogger } from '../../logger'; -import { AtomicSyncQueue } from './atomic-sync-queue'; +import { jest } from '@jest/globals'; + +import { backupAndSyncLogger } from '../../logger.js'; +import { AtomicSyncQueue } from './atomic-sync-queue.js'; jest.mock('../../logger', () => ({ backupAndSyncLogger: jest.fn(), diff --git a/packages/account-tree-controller/src/backup-and-sync/service/atomic-sync-queue.ts b/packages/account-tree-controller/src/backup-and-sync/service/atomic-sync-queue.ts index 64b4147b2ea..bb91bee6143 100644 --- a/packages/account-tree-controller/src/backup-and-sync/service/atomic-sync-queue.ts +++ b/packages/account-tree-controller/src/backup-and-sync/service/atomic-sync-queue.ts @@ -1,7 +1,7 @@ import { createDeferredPromise } from '@metamask/utils'; -import { backupAndSyncLogger } from '../../logger'; -import type { AtomicSyncEvent } from '../types'; +import { backupAndSyncLogger } from '../../logger.js'; +import type { AtomicSyncEvent } from '../types.js'; /** * Manages atomic sync operations in a queue to prevent concurrent execution diff --git a/packages/account-tree-controller/src/backup-and-sync/service/index.test.ts b/packages/account-tree-controller/src/backup-and-sync/service/index.test.ts index f93f254fb2a..a16413a131d 100644 --- a/packages/account-tree-controller/src/backup-and-sync/service/index.test.ts +++ b/packages/account-tree-controller/src/backup-and-sync/service/index.test.ts @@ -1,16 +1,17 @@ +import { jest } from '@jest/globals'; import { AccountWalletType } from '@metamask/account-api'; -import { BackupAndSyncService } from '.'; -import type { AccountGroupObject } from '../../group'; -import type { AccountTreeControllerState } from '../../types'; -import type { AccountWalletEntropyObject } from '../../wallet'; -import { TraceName } from '../analytics'; -import { getProfileId } from '../authentication'; -import { performLegacyAccountSyncing, syncWalletMetadata } from '../syncing'; -import type { BackupAndSyncContext } from '../types'; -import { getAllGroupsFromUserStorage } from '../user-storage'; +import type { AccountGroupObject } from '../../group.js'; +import type { AccountTreeControllerState } from '../../types.js'; +import type { AccountWalletEntropyObject } from '../../wallet.js'; +import { TraceName } from '../analytics.js'; +import { getProfileId } from '../authentication.js'; +import { performLegacyAccountSyncing, syncWalletMetadata } from '../syncing.js'; +import type { BackupAndSyncContext } from '../types.js'; +import { getAllGroupsFromUserStorage } from '../user-storage.js'; // We only need to import the functions we actually spy on -import { createStateSnapshot, getLocalEntropyWallets } from '../utils'; +import { createStateSnapshot, getLocalEntropyWallets } from '../utils.js'; +import { BackupAndSyncService } from './..js'; // Mock the sync functions and all external dependencies jest.mock('../syncing'); diff --git a/packages/account-tree-controller/src/backup-and-sync/service/index.ts b/packages/account-tree-controller/src/backup-and-sync/service/index.ts index 749a113c38e..aa0a2435cb2 100644 --- a/packages/account-tree-controller/src/backup-and-sync/service/index.ts +++ b/packages/account-tree-controller/src/backup-and-sync/service/index.ts @@ -2,39 +2,39 @@ import type { AccountGroupId, AccountWalletId } from '@metamask/account-api'; import { AccountWalletType } from '@metamask/account-api'; import type { UserStorageController } from '@metamask/profile-sync-controller'; -import { backupAndSyncLogger } from '../../logger'; -import type { AccountTreeControllerState } from '../../types'; -import type { AccountWalletEntropyObject } from '../../wallet'; -import { TraceName } from '../analytics'; -import type { ProfileId } from '../authentication'; -import { getProfileId } from '../authentication'; +import { backupAndSyncLogger } from '../../logger.js'; +import type { AccountTreeControllerState } from '../../types.js'; +import type { AccountWalletEntropyObject } from '../../wallet.js'; +import { TraceName } from '../analytics.js'; +import type { ProfileId } from '../authentication.js'; +import { getProfileId } from '../authentication.js'; import { createLocalGroupsFromUserStorage, performLegacyAccountSyncing, syncGroupsMetadata, syncGroupMetadata, syncWalletMetadata, -} from '../syncing'; +} from '../syncing.js'; import type { BackupAndSyncContext, UserStorageSyncedWallet, UserStorageSyncedWalletGroup, -} from '../types'; +} from '../types.js'; import { getAllGroupsFromUserStorage, getGroupFromUserStorage, getWalletFromUserStorage, pushGroupToUserStorageBatch, -} from '../user-storage'; +} from '../user-storage.js'; import { createStateSnapshot, restoreStateFromSnapshot, getLocalEntropyWallets, getLocalGroupsForEntropyWallet, toErrorMessage, -} from '../utils'; -import type { StateSnapshot } from '../utils'; -import { AtomicSyncQueue } from './atomic-sync-queue'; +} from '../utils.js'; +import type { StateSnapshot } from '../utils.js'; +import { AtomicSyncQueue } from './atomic-sync-queue.js'; /** * Service responsible for managing all backup and sync operations. @@ -172,7 +172,6 @@ export class BackupAndSyncService { return; } - // eslint-disable-next-line no-void void this.#atomicSyncQueue.enqueue(() => this.#performSingleWalletSyncInner(walletId), ); @@ -198,7 +197,6 @@ export class BackupAndSyncService { return; } - // eslint-disable-next-line no-void void this.#atomicSyncQueue.enqueue(() => this.#performSingleGroupSyncInner(groupId), ); @@ -258,7 +256,7 @@ export class BackupAndSyncService { this.#firstOngoingFullSyncPromise = this.#atomicSyncQueue.clearAndEnqueue( () => this.#performFullSyncInner(), ); - // eslint-disable-next-line no-void + void this.#setupOngoingPromiseCleanup(this.#firstOngoingFullSyncPromise); } @@ -332,10 +330,7 @@ export class BackupAndSyncService { ]); // 2.1 Decide if we need to perform legacy account syncing - if ( - !walletFromUserStorage || - !walletFromUserStorage.isLegacyAccountSyncingDisabled - ) { + if (!walletFromUserStorage?.isLegacyAccountSyncingDisabled) { // 2.2 Perform legacy account syncing // This will migrate legacy account data to the new structure. // This operation will only be performed once. diff --git a/packages/account-tree-controller/src/backup-and-sync/syncing/group.test.ts b/packages/account-tree-controller/src/backup-and-sync/syncing/group.test.ts index 2e546f2d5bc..125275d78d7 100644 --- a/packages/account-tree-controller/src/backup-and-sync/syncing/group.test.ts +++ b/packages/account-tree-controller/src/backup-and-sync/syncing/group.test.ts @@ -1,21 +1,23 @@ -import type { AccountGroupMultichainAccountObject } from '../../group'; -import type { AccountWalletEntropyObject } from '../../wallet'; -import { BackupAndSyncAnalyticsEvent } from '../analytics'; +import { jest } from '@jest/globals'; + +import type { AccountGroupMultichainAccountObject } from '../../group.js'; +import type { AccountWalletEntropyObject } from '../../wallet.js'; +import { BackupAndSyncAnalyticsEvent } from '../analytics.js'; import type { BackupAndSyncContext, UserStorageSyncedWalletGroup, -} from '../types'; +} from '../types.js'; import { pushGroupToUserStorage, pushGroupToUserStorageBatch, -} from '../user-storage/network-operations'; -import { getLocalGroupsForEntropyWallet } from '../utils'; +} from '../user-storage/network-operations.js'; +import { getLocalGroupsForEntropyWallet } from '../utils.js'; import { createLocalGroupsFromUserStorage, syncGroupMetadata, syncGroupsMetadata, -} from './group'; -import * as metadataExports from './metadata'; +} from './group.js'; +import * as metadataExports from './metadata.js'; jest.mock('./metadata'); jest.mock('../user-storage/network-operations'); diff --git a/packages/account-tree-controller/src/backup-and-sync/syncing/group.ts b/packages/account-tree-controller/src/backup-and-sync/syncing/group.ts index 273625027dc..7a814d863ad 100644 --- a/packages/account-tree-controller/src/backup-and-sync/syncing/group.ts +++ b/packages/account-tree-controller/src/backup-and-sync/syncing/group.ts @@ -1,23 +1,23 @@ import { toMultichainAccountWalletId } from '@metamask/account-api'; -import type { AccountGroupMultichainAccountObject } from '../../group'; -import { backupAndSyncLogger } from '../../logger'; -import type { AccountWalletEntropyObject } from '../../wallet'; -import type { BackupAndSyncAnalyticsAction } from '../analytics'; -import { BackupAndSyncAnalyticsEvent } from '../analytics'; -import type { ProfileId } from '../authentication'; -import { UserStorageSyncedWalletGroupSchema } from '../types'; +import type { AccountGroupMultichainAccountObject } from '../../group.js'; +import { backupAndSyncLogger } from '../../logger.js'; +import type { AccountWalletEntropyObject } from '../../wallet.js'; +import type { BackupAndSyncAnalyticsAction } from '../analytics.js'; +import { BackupAndSyncAnalyticsEvent } from '../analytics.js'; +import type { ProfileId } from '../authentication.js'; +import { UserStorageSyncedWalletGroupSchema } from '../types.js'; import type { BackupAndSyncContext, UserStorageSyncedWalletGroup, -} from '../types'; +} from '../types.js'; import { pushGroupToUserStorage, pushGroupToUserStorageBatch, -} from '../user-storage/network-operations'; -import { getLocalGroupsForEntropyWallet } from '../utils'; -import { toErrorMessage } from '../utils/errors'; -import { compareAndSyncMetadata } from './metadata'; +} from '../user-storage/network-operations.js'; +import { getLocalGroupsForEntropyWallet } from '../utils.js'; +import { toErrorMessage } from '../utils/errors.js'; +import { compareAndSyncMetadata } from './metadata.js'; /** * Creates multiple multichain account groups in batch (from 0 to maxGroupIndex). diff --git a/packages/account-tree-controller/src/backup-and-sync/syncing/index.ts b/packages/account-tree-controller/src/backup-and-sync/syncing/index.ts index 2a76d6d32da..b38f5f6c35b 100644 --- a/packages/account-tree-controller/src/backup-and-sync/syncing/index.ts +++ b/packages/account-tree-controller/src/backup-and-sync/syncing/index.ts @@ -1,4 +1,4 @@ -export * from './group'; -export * from './legacy'; -export * from './wallet'; -export * from './metadata'; +export * from './group.js'; +export * from './legacy.js'; +export * from './wallet.js'; +export * from './metadata.js'; diff --git a/packages/account-tree-controller/src/backup-and-sync/syncing/legacy.test.ts b/packages/account-tree-controller/src/backup-and-sync/syncing/legacy.test.ts index 00ee21d0296..921807d23cf 100644 --- a/packages/account-tree-controller/src/backup-and-sync/syncing/legacy.test.ts +++ b/packages/account-tree-controller/src/backup-and-sync/syncing/legacy.test.ts @@ -1,13 +1,14 @@ +import { jest } from '@jest/globals'; import { AccountGroupType } from '@metamask/account-api'; import { getUUIDFromAddressOfNormalAccount } from '@metamask/accounts-controller'; -import type { AccountGroupMultichainAccountObject } from '../../group'; -import { BackupAndSyncAnalyticsEvent } from '../analytics'; -import type { BackupAndSyncContext } from '../types'; -import { getAllLegacyUserStorageAccounts } from '../user-storage'; -import { getLocalGroupsForEntropyWallet } from '../utils'; -import { createMultichainAccountGroupsBatch } from './group'; -import { performLegacyAccountSyncing } from './legacy'; +import type { AccountGroupMultichainAccountObject } from '../../group.js'; +import { BackupAndSyncAnalyticsEvent } from '../analytics.js'; +import type { BackupAndSyncContext } from '../types.js'; +import { getAllLegacyUserStorageAccounts } from '../user-storage.js'; +import { getLocalGroupsForEntropyWallet } from '../utils.js'; +import { createMultichainAccountGroupsBatch } from './group.js'; +import { performLegacyAccountSyncing } from './legacy.js'; jest.mock('@metamask/accounts-controller'); jest.mock('../user-storage'); diff --git a/packages/account-tree-controller/src/backup-and-sync/syncing/legacy.ts b/packages/account-tree-controller/src/backup-and-sync/syncing/legacy.ts index b0749889d1e..a44b906ce9f 100644 --- a/packages/account-tree-controller/src/backup-and-sync/syncing/legacy.ts +++ b/packages/account-tree-controller/src/backup-and-sync/syncing/legacy.ts @@ -1,13 +1,13 @@ import { toMultichainAccountWalletId } from '@metamask/account-api'; import { getUUIDFromAddressOfNormalAccount } from '@metamask/accounts-controller'; -import { backupAndSyncLogger } from '../../logger'; -import { BackupAndSyncAnalyticsEvent } from '../analytics'; -import type { ProfileId } from '../authentication'; -import type { BackupAndSyncContext } from '../types'; -import { getAllLegacyUserStorageAccounts } from '../user-storage'; -import { getLocalGroupsForEntropyWallet } from '../utils'; -import { createMultichainAccountGroupsBatch } from './group'; +import { backupAndSyncLogger } from '../../logger.js'; +import { BackupAndSyncAnalyticsEvent } from '../analytics.js'; +import type { ProfileId } from '../authentication.js'; +import type { BackupAndSyncContext } from '../types.js'; +import { getAllLegacyUserStorageAccounts } from '../user-storage.js'; +import { getLocalGroupsForEntropyWallet } from '../utils.js'; +import { createMultichainAccountGroupsBatch } from './group.js'; /** * Performs a stripped down version of legacy account syncing, replacing the current diff --git a/packages/account-tree-controller/src/backup-and-sync/syncing/metadata.test.ts b/packages/account-tree-controller/src/backup-and-sync/syncing/metadata.test.ts index 072ceefdedf..e5f8ce35085 100644 --- a/packages/account-tree-controller/src/backup-and-sync/syncing/metadata.test.ts +++ b/packages/account-tree-controller/src/backup-and-sync/syncing/metadata.test.ts @@ -1,6 +1,8 @@ -import { BackupAndSyncAnalyticsEvent } from '../analytics'; -import type { BackupAndSyncContext } from '../types'; -import { compareAndSyncMetadata } from './metadata'; +import { jest } from '@jest/globals'; + +import { BackupAndSyncAnalyticsEvent } from '../analytics.js'; +import type { BackupAndSyncContext } from '../types.js'; +import { compareAndSyncMetadata } from './metadata.js'; describe('BackupAndSync - Syncing - Metadata', () => { let mockContext: BackupAndSyncContext; diff --git a/packages/account-tree-controller/src/backup-and-sync/syncing/metadata.ts b/packages/account-tree-controller/src/backup-and-sync/syncing/metadata.ts index c3d5787666d..d95619120ff 100644 --- a/packages/account-tree-controller/src/backup-and-sync/syncing/metadata.ts +++ b/packages/account-tree-controller/src/backup-and-sync/syncing/metadata.ts @@ -1,8 +1,8 @@ import deepEqual from 'fast-deep-equal'; -import type { BackupAndSyncAnalyticsAction } from '../analytics'; -import type { ProfileId } from '../authentication'; -import type { BackupAndSyncContext } from '../types'; +import type { BackupAndSyncAnalyticsAction } from '../analytics.js'; +import type { ProfileId } from '../authentication.js'; +import type { BackupAndSyncContext } from '../types.js'; /** * Compares metadata between local and user storage, applying the most recent version. diff --git a/packages/account-tree-controller/src/backup-and-sync/syncing/wallet.test.ts b/packages/account-tree-controller/src/backup-and-sync/syncing/wallet.test.ts index fe8021ac2f1..8b909a08a22 100644 --- a/packages/account-tree-controller/src/backup-and-sync/syncing/wallet.test.ts +++ b/packages/account-tree-controller/src/backup-and-sync/syncing/wallet.test.ts @@ -1,12 +1,17 @@ -import type { AccountWalletEntropyObject } from '../../wallet'; -import { BackupAndSyncAnalyticsEvent } from '../analytics'; -import type { BackupAndSyncContext, UserStorageSyncedWallet } from '../types'; -import { pushWalletToUserStorage } from '../user-storage/network-operations'; -import { compareAndSyncMetadata } from './metadata'; +import { jest } from '@jest/globals'; + +import type { AccountWalletEntropyObject } from '../../wallet.js'; +import { BackupAndSyncAnalyticsEvent } from '../analytics.js'; +import type { + BackupAndSyncContext, + UserStorageSyncedWallet, +} from '../types.js'; +import { pushWalletToUserStorage } from '../user-storage/network-operations.js'; +import { compareAndSyncMetadata } from './metadata.js'; import { syncWalletMetadataAndCheckIfPushNeeded, syncWalletMetadata, -} from './wallet'; +} from './wallet.js'; jest.mock('./metadata'); jest.mock('../user-storage/network-operations'); diff --git a/packages/account-tree-controller/src/backup-and-sync/syncing/wallet.ts b/packages/account-tree-controller/src/backup-and-sync/syncing/wallet.ts index 8d180bcc45a..ebf11155499 100644 --- a/packages/account-tree-controller/src/backup-and-sync/syncing/wallet.ts +++ b/packages/account-tree-controller/src/backup-and-sync/syncing/wallet.ts @@ -1,11 +1,14 @@ -import { backupAndSyncLogger } from '../../logger'; -import type { AccountWalletEntropyObject } from '../../wallet'; -import { BackupAndSyncAnalyticsEvent } from '../analytics'; -import type { ProfileId } from '../authentication'; -import { UserStorageSyncedWalletSchema } from '../types'; -import type { BackupAndSyncContext, UserStorageSyncedWallet } from '../types'; -import { pushWalletToUserStorage } from '../user-storage/network-operations'; -import { compareAndSyncMetadata } from './metadata'; +import { backupAndSyncLogger } from '../../logger.js'; +import type { AccountWalletEntropyObject } from '../../wallet.js'; +import { BackupAndSyncAnalyticsEvent } from '../analytics.js'; +import type { ProfileId } from '../authentication.js'; +import { UserStorageSyncedWalletSchema } from '../types.js'; +import type { + BackupAndSyncContext, + UserStorageSyncedWallet, +} from '../types.js'; +import { pushWalletToUserStorage } from '../user-storage/network-operations.js'; +import { compareAndSyncMetadata } from './metadata.js'; /** * Syncs wallet metadata fields and determines if the wallet needs to be pushed to user storage. diff --git a/packages/account-tree-controller/src/backup-and-sync/types.ts b/packages/account-tree-controller/src/backup-and-sync/types.ts index 7f6449c0632..62c9fb6ffe2 100644 --- a/packages/account-tree-controller/src/backup-and-sync/types.ts +++ b/packages/account-tree-controller/src/backup-and-sync/types.ts @@ -15,15 +15,15 @@ import { } from '@metamask/superstruct'; import type { Infer, Struct } from '@metamask/superstruct'; -import type { AccountTreeController } from '../AccountTreeController'; +import type { AccountTreeController } from '../AccountTreeController.js'; import type { AccountGroupMultichainAccountObject, AccountTreeGroupPersistedMetadata, -} from '../group'; -import type { RuleResult } from '../rule'; -import type { AccountTreeControllerMessenger } from '../types'; -import type { AccountTreeWalletPersistedMetadata } from '../wallet'; -import type { BackupAndSyncEmitAnalyticsEventParams } from './analytics'; +} from '../group.js'; +import type { RuleResult } from '../rule.js'; +import type { AccountTreeControllerMessenger } from '../types.js'; +import type { AccountTreeWalletPersistedMetadata } from '../wallet.js'; +import type { BackupAndSyncEmitAnalyticsEventParams } from './analytics.js'; /** * Schema for an updatable field with value and timestamp. diff --git a/packages/account-tree-controller/src/backup-and-sync/user-storage/format-utils.test.ts b/packages/account-tree-controller/src/backup-and-sync/user-storage/format-utils.test.ts index b289895b517..985709bfd71 100644 --- a/packages/account-tree-controller/src/backup-and-sync/user-storage/format-utils.test.ts +++ b/packages/account-tree-controller/src/backup-and-sync/user-storage/format-utils.test.ts @@ -1,19 +1,24 @@ -import type { AccountGroupMultichainAccountObject } from '../../group'; -import { backupAndSyncLogger } from '../../logger'; -import type { AccountWalletEntropyObject } from '../../wallet'; -import type { BackupAndSyncContext, UserStorageSyncedWallet } from '../types'; +import { jest } from '@jest/globals'; + +import type { AccountGroupMultichainAccountObject } from '../../group.js'; +import { backupAndSyncLogger } from '../../logger.js'; +import type { AccountWalletEntropyObject } from '../../wallet.js'; +import type { + BackupAndSyncContext, + UserStorageSyncedWallet, +} from '../types.js'; import { formatWalletForUserStorageUsage, formatGroupForUserStorageUsage, parseWalletFromUserStorageResponse, parseGroupFromUserStorageResponse, parseLegacyAccountFromUserStorageResponse, -} from './format-utils'; +} from './format-utils.js'; import { assertValidUserStorageWallet, assertValidUserStorageGroup, assertValidLegacyUserStorageAccount, -} from './validation'; +} from './validation.js'; jest.mock('./validation'); jest.mock('../../logger'); diff --git a/packages/account-tree-controller/src/backup-and-sync/user-storage/format-utils.ts b/packages/account-tree-controller/src/backup-and-sync/user-storage/format-utils.ts index 6c50e9e095e..efb85e3b417 100644 --- a/packages/account-tree-controller/src/backup-and-sync/user-storage/format-utils.ts +++ b/packages/account-tree-controller/src/backup-and-sync/user-storage/format-utils.ts @@ -1,21 +1,21 @@ import { mask } from '@metamask/superstruct'; -import type { AccountGroupMultichainAccountObject } from '../../group'; -import { backupAndSyncLogger } from '../../logger'; -import type { AccountWalletEntropyObject } from '../../wallet'; +import type { AccountGroupMultichainAccountObject } from '../../group.js'; +import { backupAndSyncLogger } from '../../logger.js'; +import type { AccountWalletEntropyObject } from '../../wallet.js'; import type { BackupAndSyncContext, LegacyUserStorageSyncedAccount, UserStorageSyncedWallet, UserStorageSyncedWalletGroup, -} from '../types'; -import { UserStorageSyncedWalletGroupSchema } from '../types'; -import { toErrorMessage } from '../utils/errors'; +} from '../types.js'; +import { UserStorageSyncedWalletGroupSchema } from '../types.js'; +import { toErrorMessage } from '../utils/errors.js'; import { assertValidUserStorageWallet, assertValidUserStorageGroup, assertValidLegacyUserStorageAccount, -} from './validation'; +} from './validation.js'; /** * Formats the wallet for user storage usage. diff --git a/packages/account-tree-controller/src/backup-and-sync/user-storage/index.ts b/packages/account-tree-controller/src/backup-and-sync/user-storage/index.ts index 75b762c215e..de4f750c354 100644 --- a/packages/account-tree-controller/src/backup-and-sync/user-storage/index.ts +++ b/packages/account-tree-controller/src/backup-and-sync/user-storage/index.ts @@ -1,4 +1,4 @@ -export * from './format-utils'; -export * from './network-utils'; -export * from './network-operations'; -export * from './validation'; +export * from './format-utils.js'; +export * from './network-utils.js'; +export * from './network-operations.js'; +export * from './validation.js'; diff --git a/packages/account-tree-controller/src/backup-and-sync/user-storage/network-operations.test.ts b/packages/account-tree-controller/src/backup-and-sync/user-storage/network-operations.test.ts index deaab840145..d2f1b95a27e 100644 --- a/packages/account-tree-controller/src/backup-and-sync/user-storage/network-operations.test.ts +++ b/packages/account-tree-controller/src/backup-and-sync/user-storage/network-operations.test.ts @@ -1,24 +1,25 @@ +import { jest } from '@jest/globals'; import { SDK } from '@metamask/profile-sync-controller'; -import type { AccountGroupMultichainAccountObject } from '../../group'; -import type { AccountWalletEntropyObject } from '../../wallet'; +import type { AccountGroupMultichainAccountObject } from '../../group.js'; +import type { AccountWalletEntropyObject } from '../../wallet.js'; import type { BackupAndSyncContext, UserStorageSyncedWallet, UserStorageSyncedWalletGroup, -} from '../types'; +} from '../types.js'; import { USER_STORAGE_WALLETS_FEATURE_KEY, USER_STORAGE_WALLETS_FEATURE_ENTRY_KEY, USER_STORAGE_GROUPS_FEATURE_KEY, -} from './constants'; +} from './constants.js'; import { formatWalletForUserStorageUsage, formatGroupForUserStorageUsage, parseWalletFromUserStorageResponse, parseGroupFromUserStorageResponse, parseLegacyAccountFromUserStorageResponse, -} from './format-utils'; +} from './format-utils.js'; import { getWalletFromUserStorage, pushWalletToUserStorage, @@ -27,8 +28,8 @@ import { pushGroupToUserStorage, pushGroupToUserStorageBatch, getAllLegacyUserStorageAccounts, -} from './network-operations'; -import { executeWithRetry } from './network-utils'; +} from './network-operations.js'; +import { executeWithRetry } from './network-utils.js'; jest.mock('./format-utils'); jest.mock('./network-utils'); diff --git a/packages/account-tree-controller/src/backup-and-sync/user-storage/network-operations.ts b/packages/account-tree-controller/src/backup-and-sync/user-storage/network-operations.ts index 52cd55e9e3d..48a4e0d4e79 100644 --- a/packages/account-tree-controller/src/backup-and-sync/user-storage/network-operations.ts +++ b/packages/account-tree-controller/src/backup-and-sync/user-storage/network-operations.ts @@ -1,28 +1,28 @@ import { SDK } from '@metamask/profile-sync-controller'; -import type { AccountGroupMultichainAccountObject } from '../../group'; -import { backupAndSyncLogger } from '../../logger'; -import type { AccountWalletEntropyObject } from '../../wallet'; +import type { AccountGroupMultichainAccountObject } from '../../group.js'; +import { backupAndSyncLogger } from '../../logger.js'; +import type { AccountWalletEntropyObject } from '../../wallet.js'; import type { BackupAndSyncContext, LegacyUserStorageSyncedAccount, UserStorageSyncedWallet, UserStorageSyncedWalletGroup, -} from '../types'; -import { toErrorMessage } from '../utils/errors'; +} from '../types.js'; +import { toErrorMessage } from '../utils/errors.js'; import { USER_STORAGE_GROUPS_FEATURE_KEY, USER_STORAGE_WALLETS_FEATURE_ENTRY_KEY, USER_STORAGE_WALLETS_FEATURE_KEY, -} from './constants'; +} from './constants.js'; import { formatWalletForUserStorageUsage, formatGroupForUserStorageUsage, parseWalletFromUserStorageResponse, parseGroupFromUserStorageResponse, parseLegacyAccountFromUserStorageResponse, -} from './format-utils'; -import { executeWithRetry } from './network-utils'; +} from './format-utils.js'; +import { executeWithRetry } from './network-utils.js'; /** * Retrieves the wallet from user storage. diff --git a/packages/account-tree-controller/src/backup-and-sync/user-storage/network-utils.test.ts b/packages/account-tree-controller/src/backup-and-sync/user-storage/network-utils.test.ts index eee876f3f97..08e8d1ac3f3 100644 --- a/packages/account-tree-controller/src/backup-and-sync/user-storage/network-utils.test.ts +++ b/packages/account-tree-controller/src/backup-and-sync/user-storage/network-utils.test.ts @@ -1,4 +1,6 @@ -import { executeWithRetry } from './network-utils'; +import { jest } from '@jest/globals'; + +import { executeWithRetry } from './network-utils.js'; describe('BackupAndSync - UserStorage - NetworkUtils', () => { beforeEach(() => { diff --git a/packages/account-tree-controller/src/backup-and-sync/user-storage/validation.test.ts b/packages/account-tree-controller/src/backup-and-sync/user-storage/validation.test.ts index c404ab3731d..5252d59b7e3 100644 --- a/packages/account-tree-controller/src/backup-and-sync/user-storage/validation.test.ts +++ b/packages/account-tree-controller/src/backup-and-sync/user-storage/validation.test.ts @@ -2,7 +2,7 @@ import { assertValidUserStorageWallet, assertValidUserStorageGroup, assertValidLegacyUserStorageAccount, -} from './validation'; +} from './validation.js'; describe('BackupAndSync - UserStorage - Validation', () => { describe('assertValidUserStorageWallet', () => { diff --git a/packages/account-tree-controller/src/backup-and-sync/user-storage/validation.ts b/packages/account-tree-controller/src/backup-and-sync/user-storage/validation.ts index d31bf2bae78..325aa7e5c2c 100644 --- a/packages/account-tree-controller/src/backup-and-sync/user-storage/validation.ts +++ b/packages/account-tree-controller/src/backup-and-sync/user-storage/validation.ts @@ -4,12 +4,12 @@ import type { LegacyUserStorageSyncedAccount, UserStorageSyncedWallet, UserStorageSyncedWalletGroup, -} from '../types'; +} from '../types.js'; import { UserStorageSyncedWalletSchema, UserStorageSyncedWalletGroupSchema, LegacyUserStorageSyncedAccountSchema, -} from '../types'; +} from '../types.js'; /** * Formats validation error messages for user storage data. diff --git a/packages/account-tree-controller/src/backup-and-sync/utils/controller.test.ts b/packages/account-tree-controller/src/backup-and-sync/utils/controller.test.ts index 3437931e887..b2627b816c9 100644 --- a/packages/account-tree-controller/src/backup-and-sync/utils/controller.test.ts +++ b/packages/account-tree-controller/src/backup-and-sync/utils/controller.test.ts @@ -1,19 +1,20 @@ +import { jest } from '@jest/globals'; import { AccountWalletType, AccountGroupType } from '@metamask/account-api'; -import type { AccountTreeController } from '../../AccountTreeController'; +import type { AccountTreeController } from '../../AccountTreeController.js'; import type { AccountWalletEntropyObject, AccountWalletKeyringObject, -} from '../../wallet'; -import type { BackupAndSyncContext } from '../types'; +} from '../../wallet.js'; +import type { BackupAndSyncContext } from '../types.js'; import { getLocalEntropyWallets, getLocalGroupsForEntropyWallet, createStateSnapshot, restoreStateFromSnapshot, getLocalGroupForEntropyWallet, -} from './controller'; -import type { StateSnapshot } from './controller'; +} from './controller.js'; +import type { StateSnapshot } from './controller.js'; describe('BackupAndSyncUtils - Controller', () => { let mockContext: BackupAndSyncContext; diff --git a/packages/account-tree-controller/src/backup-and-sync/utils/controller.ts b/packages/account-tree-controller/src/backup-and-sync/utils/controller.ts index 4a0e368ca8e..b7cf1582207 100644 --- a/packages/account-tree-controller/src/backup-and-sync/utils/controller.ts +++ b/packages/account-tree-controller/src/backup-and-sync/utils/controller.ts @@ -5,11 +5,11 @@ import { } from '@metamask/account-api'; import type { AccountWalletId } from '@metamask/account-api'; -import type { AccountGroupMultichainAccountObject } from '../../group'; -import { backupAndSyncLogger } from '../../logger'; -import type { AccountTreeControllerState } from '../../types'; -import type { AccountWalletEntropyObject } from '../../wallet'; -import type { BackupAndSyncContext } from '../types'; +import type { AccountGroupMultichainAccountObject } from '../../group.js'; +import { backupAndSyncLogger } from '../../logger.js'; +import type { AccountTreeControllerState } from '../../types.js'; +import type { AccountWalletEntropyObject } from '../../wallet.js'; +import type { BackupAndSyncContext } from '../types.js'; /** * Gets all local entropy wallets that can be synced. diff --git a/packages/account-tree-controller/src/backup-and-sync/utils/errors.test.ts b/packages/account-tree-controller/src/backup-and-sync/utils/errors.test.ts index 2879bf4ad8c..9e963d5e751 100644 --- a/packages/account-tree-controller/src/backup-and-sync/utils/errors.test.ts +++ b/packages/account-tree-controller/src/backup-and-sync/utils/errors.test.ts @@ -1,4 +1,4 @@ -import { toErrorMessage } from './errors'; +import { toErrorMessage } from './errors.js'; describe('toErrorMessage', () => { it('returns the message property for Error instances', () => { diff --git a/packages/account-tree-controller/src/backup-and-sync/utils/index.ts b/packages/account-tree-controller/src/backup-and-sync/utils/index.ts index f84fb0dafde..4680c6258d7 100644 --- a/packages/account-tree-controller/src/backup-and-sync/utils/index.ts +++ b/packages/account-tree-controller/src/backup-and-sync/utils/index.ts @@ -1,3 +1,3 @@ -export * from './controller'; -export { toErrorMessage } from './errors'; -export { createSyncMutationTracker } from './mutation-tracker'; +export * from './controller.js'; +export { toErrorMessage } from './errors.js'; +export { createSyncMutationTracker } from './mutation-tracker.js'; diff --git a/packages/account-tree-controller/src/backup-and-sync/utils/mutation-tracker.test.ts b/packages/account-tree-controller/src/backup-and-sync/utils/mutation-tracker.test.ts index 43444baffe5..02c589130f6 100644 --- a/packages/account-tree-controller/src/backup-and-sync/utils/mutation-tracker.test.ts +++ b/packages/account-tree-controller/src/backup-and-sync/utils/mutation-tracker.test.ts @@ -1,4 +1,4 @@ -import { createSyncMutationTracker } from './mutation-tracker'; +import { createSyncMutationTracker } from './mutation-tracker.js'; describe('BackupAndSync - Utils - createSyncMutationTracker', () => { it('starts with no recorded writes', () => { diff --git a/packages/account-tree-controller/src/backup-and-sync/utils/mutation-tracker.ts b/packages/account-tree-controller/src/backup-and-sync/utils/mutation-tracker.ts index aa0d3e74beb..690f11cf443 100644 --- a/packages/account-tree-controller/src/backup-and-sync/utils/mutation-tracker.ts +++ b/packages/account-tree-controller/src/backup-and-sync/utils/mutation-tracker.ts @@ -1,4 +1,4 @@ -import type { SyncMutationTracker } from '../types'; +import type { SyncMutationTracker } from '../types.js'; /** * Creates a tracker that records whether the current full sync run performed a diff --git a/packages/account-tree-controller/src/group.ts b/packages/account-tree-controller/src/group.ts index 5e53cbc5a08..11ed0557d15 100644 --- a/packages/account-tree-controller/src/group.ts +++ b/packages/account-tree-controller/src/group.ts @@ -14,9 +14,9 @@ import { } from '@metamask/keyring-api'; import type { KeyringAccountType } from '@metamask/keyring-api'; -import type { UpdatableField, ExtractFieldValues } from './type-utils'; -import type { AccountTreeControllerState } from './types'; -import type { AccountWalletObject } from './wallet'; +import type { UpdatableField, ExtractFieldValues } from './type-utils.js'; +import type { AccountTreeControllerState } from './types.js'; +import type { AccountWalletObject } from './wallet.js'; /** * Persisted metadata for account groups (stored in controller state for persistence/sync). diff --git a/packages/account-tree-controller/src/index.ts b/packages/account-tree-controller/src/index.ts index 28b2f17f645..854ca0a392b 100644 --- a/packages/account-tree-controller/src/index.ts +++ b/packages/account-tree-controller/src/index.ts @@ -1,11 +1,11 @@ -export type { AccountWalletObject } from './wallet'; -export type { AccountGroupObject } from './group'; -export { isAccountGroupNameUnique } from './group'; +export type { AccountWalletObject } from './wallet.js'; +export type { AccountGroupObject } from './group.js'; +export { isAccountGroupNameUnique } from './group.js'; export { USER_STORAGE_GROUPS_FEATURE_KEY, USER_STORAGE_WALLETS_FEATURE_KEY, -} from './backup-and-sync/user-storage/constants'; +} from './backup-and-sync/user-storage/constants.js'; export type { AccountTreeControllerState, @@ -19,7 +19,7 @@ export type { AccountTreeControllerAccountGroupRemovedEvent, AccountTreeControllerEvents, AccountTreeControllerMessenger, -} from './types'; +} from './types.js'; export type { AccountTreeControllerGetAccountWalletObjectAction, @@ -38,11 +38,11 @@ export type { AccountTreeControllerSyncWithUserStorageAtLeastOnceAction, AccountTreeControllerInitAction, AccountTreeControllerReinitAction, -} from './AccountTreeController-method-action-types'; +} from './AccountTreeController-method-action-types.js'; -export type { AccountContext } from './AccountTreeController'; +export type { AccountContext } from './AccountTreeController.js'; export { AccountTreeController, getDefaultAccountTreeControllerState, -} from './AccountTreeController'; +} from './AccountTreeController.js'; diff --git a/packages/account-tree-controller/src/rule.test.ts b/packages/account-tree-controller/src/rule.test.ts index f98661db909..17732034583 100644 --- a/packages/account-tree-controller/src/rule.test.ts +++ b/packages/account-tree-controller/src/rule.test.ts @@ -16,10 +16,10 @@ import type { InternalAccount } from '@metamask/keyring-internal-api'; import { getAccountTreeControllerMessenger, getRootMessenger, -} from '../tests/mockMessenger'; -import type { AccountGroupObject } from './group'; -import { BaseRule } from './rule'; -import type { AccountWalletObject } from './wallet'; +} from '../tests/mockMessenger.js'; +import type { AccountGroupObject } from './group.js'; +import { BaseRule } from './rule.js'; +import type { AccountWalletObject } from './wallet.js'; const ETH_EOA_METHODS = [ EthMethod.PersonalSign, diff --git a/packages/account-tree-controller/src/rule.ts b/packages/account-tree-controller/src/rule.ts index f016687edb3..31e1d65b16f 100644 --- a/packages/account-tree-controller/src/rule.ts +++ b/packages/account-tree-controller/src/rule.ts @@ -8,9 +8,9 @@ import type { } from '@metamask/account-api'; import type { InternalAccount } from '@metamask/keyring-internal-api'; -import type { AccountGroupObject, AccountGroupObjectOf } from './group'; -import type { AccountTreeControllerMessenger } from './types'; -import type { AccountWalletObject, AccountWalletObjectOf } from './wallet'; +import type { AccountGroupObject, AccountGroupObjectOf } from './group.js'; +import type { AccountTreeControllerMessenger } from './types.js'; +import type { AccountWalletObject, AccountWalletObjectOf } from './wallet.js'; export type RuleResult< WalletType extends AccountWalletType, diff --git a/packages/account-tree-controller/src/rules/entropy.test.ts b/packages/account-tree-controller/src/rules/entropy.test.ts index b05f833213e..60a0ee209c7 100644 --- a/packages/account-tree-controller/src/rules/entropy.test.ts +++ b/packages/account-tree-controller/src/rules/entropy.test.ts @@ -18,9 +18,9 @@ import type { AccountWalletEntropyObject } from 'src/wallet'; import { getAccountTreeControllerMessenger, getRootMessenger, -} from '../../tests/mockMessenger'; -import type { AccountGroupObjectOf } from '../group'; -import { EntropyRule } from './entropy'; +} from '../../tests/mockMessenger.js'; +import type { AccountGroupObjectOf } from '../group.js'; +import { EntropyRule } from './entropy.js'; const ETH_EOA_METHODS = [ EthMethod.PersonalSign, diff --git a/packages/account-tree-controller/src/rules/entropy.ts b/packages/account-tree-controller/src/rules/entropy.ts index e9ddc1bf8b6..03fb50953fc 100644 --- a/packages/account-tree-controller/src/rules/entropy.ts +++ b/packages/account-tree-controller/src/rules/entropy.ts @@ -9,10 +9,10 @@ import { isEvmAccountType } from '@metamask/keyring-api'; import { KeyringTypes } from '@metamask/keyring-controller'; import type { InternalAccount } from '@metamask/keyring-internal-api'; -import type { AccountGroupObjectOf } from '../group'; -import { BaseRule } from '../rule'; -import type { Rule, RuleResult } from '../rule'; -import type { AccountWalletObjectOf } from '../wallet'; +import type { AccountGroupObjectOf } from '../group.js'; +import { BaseRule } from '../rule.js'; +import type { Rule, RuleResult } from '../rule.js'; +import type { AccountWalletObjectOf } from '../wallet.js'; export class EntropyRule extends BaseRule diff --git a/packages/account-tree-controller/src/rules/keyring.test.ts b/packages/account-tree-controller/src/rules/keyring.test.ts index 02f5bd947de..b2a6ebf4758 100644 --- a/packages/account-tree-controller/src/rules/keyring.test.ts +++ b/packages/account-tree-controller/src/rules/keyring.test.ts @@ -12,13 +12,13 @@ import type { InternalAccount } from '@metamask/keyring-internal-api'; import { getAccountTreeControllerMessenger, getRootMessenger, -} from '../../tests/mockMessenger'; -import type { AccountGroupObjectOf } from '../group'; +} from '../../tests/mockMessenger.js'; +import type { AccountGroupObjectOf } from '../group.js'; import type { AccountWalletKeyringObject, AccountWalletObjectOf, -} from '../wallet'; -import { KeyringRule, getAccountWalletNameFromKeyringType } from './keyring'; +} from '../wallet.js'; +import { KeyringRule, getAccountWalletNameFromKeyringType } from './keyring.js'; describe('keyring', () => { describe('getAccountWalletNameFromKeyringType', () => { diff --git a/packages/account-tree-controller/src/rules/keyring.ts b/packages/account-tree-controller/src/rules/keyring.ts index 9873988c95c..91c9305750c 100644 --- a/packages/account-tree-controller/src/rules/keyring.ts +++ b/packages/account-tree-controller/src/rules/keyring.ts @@ -5,10 +5,10 @@ import { KeyringType } from '@metamask/keyring-api/v2'; import { KeyringTypes } from '@metamask/keyring-controller'; import type { InternalAccount } from '@metamask/keyring-internal-api'; -import type { AccountGroupObjectOf } from '../group'; -import { BaseRule } from '../rule'; -import type { Rule, RuleResult } from '../rule'; -import type { AccountWalletObjectOf } from '../wallet'; +import type { AccountGroupObjectOf } from '../group.js'; +import { BaseRule } from '../rule.js'; +import type { Rule, RuleResult } from '../rule.js'; +import type { AccountWalletObjectOf } from '../wallet.js'; /** * Get wallet name from a keyring type. diff --git a/packages/account-tree-controller/src/rules/snap.test.ts b/packages/account-tree-controller/src/rules/snap.test.ts index 1309b23ef75..0426aa13e82 100644 --- a/packages/account-tree-controller/src/rules/snap.test.ts +++ b/packages/account-tree-controller/src/rules/snap.test.ts @@ -14,10 +14,13 @@ import type { Snap } from '@metamask/snaps-utils'; import { getAccountTreeControllerMessenger, getRootMessenger, -} from '../../tests/mockMessenger'; -import type { AccountGroupObjectOf } from '../group'; -import type { AccountWalletObjectOf, AccountWalletSnapObject } from '../wallet'; -import { SnapRule } from './snap'; +} from '../../tests/mockMessenger.js'; +import type { AccountGroupObjectOf } from '../group.js'; +import type { + AccountWalletObjectOf, + AccountWalletSnapObject, +} from '../wallet.js'; +import { SnapRule } from './snap.js'; const ETH_EOA_METHODS = [ EthMethod.PersonalSign, diff --git a/packages/account-tree-controller/src/rules/snap.ts b/packages/account-tree-controller/src/rules/snap.ts index 085242db781..04327e6d456 100644 --- a/packages/account-tree-controller/src/rules/snap.ts +++ b/packages/account-tree-controller/src/rules/snap.ts @@ -6,10 +6,10 @@ import type { InternalAccount } from '@metamask/keyring-internal-api'; import type { SnapId } from '@metamask/snaps-sdk'; import { stripSnapPrefix } from '@metamask/snaps-utils'; -import { BaseRule } from '../rule'; -import type { Rule, RuleResult } from '../rule'; -import type { AccountWalletObjectOf } from '../wallet'; -import { getAccountGroupPrefixFromKeyringType } from './keyring'; +import { BaseRule } from '../rule.js'; +import type { Rule, RuleResult } from '../rule.js'; +import type { AccountWalletObjectOf } from '../wallet.js'; +import { getAccountGroupPrefixFromKeyringType } from './keyring.js'; /** * Snap account type. diff --git a/packages/account-tree-controller/src/types.ts b/packages/account-tree-controller/src/types.ts index e7a66571399..a385708fa69 100644 --- a/packages/account-tree-controller/src/types.ts +++ b/packages/account-tree-controller/src/types.ts @@ -27,20 +27,20 @@ import type { } from '@metamask/profile-sync-controller'; import type { SnapControllerGetSnapAction } from '@metamask/snaps-controllers'; -import type { controllerName } from './AccountTreeController'; -import type { AccountTreeControllerMethodActions } from './AccountTreeController-method-action-types'; +import type { AccountTreeControllerMethodActions } from './AccountTreeController-method-action-types.js'; +import type { controllerName } from './AccountTreeController.js'; import type { BackupAndSyncAnalyticsEventPayload, BackupAndSyncEmitAnalyticsEventParams, -} from './backup-and-sync/analytics'; +} from './backup-and-sync/analytics.js'; import type { AccountGroupObject, AccountTreeGroupPersistedMetadata, -} from './group'; +} from './group.js'; import type { AccountWalletObject, AccountTreeWalletPersistedMetadata, -} from './wallet'; +} from './wallet.js'; // Backward compatibility aliases using indexed access types /** diff --git a/packages/account-tree-controller/src/wallet.ts b/packages/account-tree-controller/src/wallet.ts index fdfc46270f5..cf3cd695514 100644 --- a/packages/account-tree-controller/src/wallet.ts +++ b/packages/account-tree-controller/src/wallet.ts @@ -14,7 +14,7 @@ import type { AccountGroupMultichainAccountObject, AccountGroupObject, AccountGroupSingleAccountObject, -} from './group'; +} from './group.js'; import type { UpdatableField, ExtractFieldValues } from './type-utils.js'; /** diff --git a/packages/account-tree-controller/tests/mockMessenger.ts b/packages/account-tree-controller/tests/mockMessenger.ts index a96594dbf76..3516c81a177 100644 --- a/packages/account-tree-controller/tests/mockMessenger.ts +++ b/packages/account-tree-controller/tests/mockMessenger.ts @@ -5,7 +5,7 @@ import type { MessengerEvents, } from '@metamask/messenger'; -import type { AccountTreeControllerMessenger } from '../src/types'; +import type { AccountTreeControllerMessenger } from '../src/types.js'; type AllAccountTreeControllerActions = MessengerActions; From df9aec38d0d95db794d01a2a4102a28b18b87ad9 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:49:49 +0200 Subject: [PATCH 086/136] ESLint fix and `jest` global import for ens-controller --- .../ens-controller/src/EnsController-method-action-types.ts | 2 +- packages/ens-controller/src/EnsController.test.ts | 6 +++--- packages/ens-controller/src/EnsController.ts | 4 ++-- packages/ens-controller/src/index.ts | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/ens-controller/src/EnsController-method-action-types.ts b/packages/ens-controller/src/EnsController-method-action-types.ts index 0cddc37e12d..5b355c8d8d6 100644 --- a/packages/ens-controller/src/EnsController-method-action-types.ts +++ b/packages/ens-controller/src/EnsController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { EnsController } from './EnsController'; +import type { EnsController } from './EnsController.js'; /** * Clears ensResolutionsByAddress state property. diff --git a/packages/ens-controller/src/EnsController.test.ts b/packages/ens-controller/src/EnsController.test.ts index e113c914061..7a93e4cf314 100644 --- a/packages/ens-controller/src/EnsController.test.ts +++ b/packages/ens-controller/src/EnsController.test.ts @@ -20,12 +20,12 @@ import type { import { buildMockGetNetworkClientById, buildCustomNetworkClientConfiguration, -} from '../../network-controller/tests/helpers'; -import { EnsController, DEFAULT_ENS_NETWORK_MAP } from './EnsController'; +} from '../../network-controller/tests/helpers.js'; +import { EnsController, DEFAULT_ENS_NETWORK_MAP } from './EnsController.js'; import type { EnsControllerState, EnsControllerMessenger, -} from './EnsController'; +} from './EnsController.js'; const defaultState: EnsControllerState = { ensEntries: {}, diff --git a/packages/ens-controller/src/EnsController.ts b/packages/ens-controller/src/EnsController.ts index 9d974bce5be..ef9a68c9f78 100644 --- a/packages/ens-controller/src/EnsController.ts +++ b/packages/ens-controller/src/EnsController.ts @@ -25,7 +25,7 @@ import type { Hex } from '@metamask/utils'; import { createProjectLogger } from '@metamask/utils'; import { toASCII } from 'punycode/punycode.js'; -import type { EnsControllerMethodActions } from './EnsController-method-action-types'; +import type { EnsControllerMethodActions } from './EnsController-method-action-types.js'; const log = createProjectLogger('ens-controller'); @@ -262,7 +262,7 @@ export class EnsController extends BaseController< // TODO Explicitly handle the case where `normalizedEnsName` is `null` // eslint-disable-next-line no-implicit-coercion return !!normalizedEnsName && this.state.ensEntries[chainId] - ? this.state.ensEntries[chainId][normalizedEnsName] || null + ? (this.state.ensEntries[chainId][normalizedEnsName] ?? null) : null; } diff --git a/packages/ens-controller/src/index.ts b/packages/ens-controller/src/index.ts index a2f476a1a05..9b6610d6d88 100644 --- a/packages/ens-controller/src/index.ts +++ b/packages/ens-controller/src/index.ts @@ -1,4 +1,4 @@ -export * from './EnsController'; +export * from './EnsController.js'; export type { EnsControllerResetStateAction, EnsControllerClearAction, @@ -6,4 +6,4 @@ export type { EnsControllerGetAction, EnsControllerSetAction, EnsControllerReverseResolveAddressAction, -} from './EnsController-method-action-types'; +} from './EnsController-method-action-types.js'; From 447119ca000311e7465d3820ef98708fcf0799f5 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:49:50 +0200 Subject: [PATCH 087/136] ESLint fix and `jest` global import for gas-fee-controller --- .../GasFeeController-method-action-types.ts | 2 +- .../src/GasFeeController.test.ts | 20 ++++++++----------- .../src/GasFeeController.ts | 8 ++++---- .../src/determineGasFeeCalculations.test.ts | 6 +++--- .../src/determineGasFeeCalculations.ts | 4 ++-- .../gas-fee-controller/src/gas-util.test.ts | 4 ++-- packages/gas-fee-controller/src/gas-util.ts | 2 +- packages/gas-fee-controller/src/index.ts | 4 ++-- 8 files changed, 23 insertions(+), 27 deletions(-) diff --git a/packages/gas-fee-controller/src/GasFeeController-method-action-types.ts b/packages/gas-fee-controller/src/GasFeeController-method-action-types.ts index 000c9b6a77e..4f50d3ce9a4 100644 --- a/packages/gas-fee-controller/src/GasFeeController-method-action-types.ts +++ b/packages/gas-fee-controller/src/GasFeeController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { GasFeeController } from './GasFeeController'; +import type { GasFeeController } from './GasFeeController.js'; /** * Resets the polling interval by stopping and restarting polling diff --git a/packages/gas-fee-controller/src/GasFeeController.test.ts b/packages/gas-fee-controller/src/GasFeeController.test.ts index 594330af428..b8d6db3b778 100644 --- a/packages/gas-fee-controller/src/GasFeeController.test.ts +++ b/packages/gas-fee-controller/src/GasFeeController.test.ts @@ -22,22 +22,22 @@ import nock from 'nock'; import { buildCustomNetworkConfiguration, buildCustomRpcEndpoint, -} from '../../network-controller/tests/helpers'; -import determineGasFeeCalculations from './determineGasFeeCalculations'; +} from '../../network-controller/tests/helpers.js'; +import determineGasFeeCalculations from './determineGasFeeCalculations.js'; import { fetchGasEstimates, fetchLegacyGasPriceEstimates, fetchEthGasPriceEstimate, calculateTimeEstimate, -} from './gas-util'; -import { GAS_ESTIMATE_TYPES, GasFeeController } from './GasFeeController'; +} from './gas-util.js'; +import { GAS_ESTIMATE_TYPES, GasFeeController } from './GasFeeController.js'; import type { GasFeeMessenger, GasFeeState, GasFeeStateEthGasPrice, GasFeeStateFeeMarket, GasFeeStateLegacy, -} from './GasFeeController'; +} from './GasFeeController.js'; jest.mock('./determineGasFeeCalculations'); @@ -353,7 +353,7 @@ describe('GasFeeController', () => { gasFeeController.destroy(); const { blockTracker } = networkController.getProviderAndBlockTracker(); // TODO: Either fix this lint violation or explain why it's necessary to ignore. - // eslint-disable-next-line @typescript-eslint/no-floating-promises + blockTracker?.destroy(); jest.useRealTimers(); }); @@ -612,9 +612,7 @@ describe('GasFeeController', () => { }, }); - // TODO: Either fix this lint violation or explain why it's necessary to ignore. - // eslint-disable-next-line @typescript-eslint/await-thenable - await gasFeeController.enableNonRPCGasFeeApis(); + gasFeeController.enableNonRPCGasFeeApis(); expect(gasFeeController.state.nonRPCGasFeeApisDisabled).toBe(false); }); @@ -629,9 +627,7 @@ describe('GasFeeController', () => { }, }); - // TODO: Either fix this lint violation or explain why it's necessary to ignore. - // eslint-disable-next-line @typescript-eslint/await-thenable - await gasFeeController.disableNonRPCGasFeeApis(); + gasFeeController.disableNonRPCGasFeeApis(); expect(gasFeeController.state.nonRPCGasFeeApisDisabled).toBe(true); }); diff --git a/packages/gas-fee-controller/src/GasFeeController.ts b/packages/gas-fee-controller/src/GasFeeController.ts index bacebdd786f..9e74f2e0680 100644 --- a/packages/gas-fee-controller/src/GasFeeController.ts +++ b/packages/gas-fee-controller/src/GasFeeController.ts @@ -23,14 +23,14 @@ import { StaticIntervalPollingController } from '@metamask/polling-controller'; import type { Hex } from '@metamask/utils'; import { v1 as random } from 'uuid'; -import determineGasFeeCalculations from './determineGasFeeCalculations'; +import determineGasFeeCalculations from './determineGasFeeCalculations.js'; import { fetchGasEstimates, fetchLegacyGasPriceEstimates, fetchEthGasPriceEstimate, calculateTimeEstimate, -} from './gas-util'; -import type { GasFeeControllerMethodActions } from './GasFeeController-method-action-types'; +} from './gas-util.js'; +import type { GasFeeControllerMethodActions } from './GasFeeController-method-action-types.js'; export const LEGACY_GAS_PRICES_API_URL = `https://api.metaswap.codefi.network/gasPrices`; @@ -426,7 +426,7 @@ export class GasFeeController extends StaticIntervalPollingController { await this.#onNetworkControllerDidChange(networkControllerState); }, diff --git a/packages/gas-fee-controller/src/determineGasFeeCalculations.test.ts b/packages/gas-fee-controller/src/determineGasFeeCalculations.test.ts index a8df42bc14c..deaf4f27aed 100644 --- a/packages/gas-fee-controller/src/determineGasFeeCalculations.test.ts +++ b/packages/gas-fee-controller/src/determineGasFeeCalculations.test.ts @@ -1,17 +1,17 @@ -import determineGasFeeCalculations from './determineGasFeeCalculations'; +import determineGasFeeCalculations from './determineGasFeeCalculations.js'; import { fetchGasEstimates, fetchLegacyGasPriceEstimates, fetchEthGasPriceEstimate, calculateTimeEstimate, -} from './gas-util'; +} from './gas-util.js'; import type { unknownString, GasFeeEstimates, LegacyGasPriceEstimate, EthGasPriceEstimate, EstimatedGasFeeTimeBounds, -} from './GasFeeController'; +} from './GasFeeController.js'; jest.mock('./gas-util'); diff --git a/packages/gas-fee-controller/src/determineGasFeeCalculations.ts b/packages/gas-fee-controller/src/determineGasFeeCalculations.ts index b93b86e9bb8..3d8382b451b 100644 --- a/packages/gas-fee-controller/src/determineGasFeeCalculations.ts +++ b/packages/gas-fee-controller/src/determineGasFeeCalculations.ts @@ -4,8 +4,8 @@ import type { GasFeeEstimates, GasFeeState as GasFeeCalculations, LegacyGasPriceEstimate, -} from './GasFeeController'; -import { GAS_ESTIMATE_TYPES } from './GasFeeController'; +} from './GasFeeController.js'; +import { GAS_ESTIMATE_TYPES } from './GasFeeController.js'; type DetermineGasFeeCalculationsRequest = { isEIP1559Compatible: boolean; diff --git a/packages/gas-fee-controller/src/gas-util.test.ts b/packages/gas-fee-controller/src/gas-util.test.ts index baea4369289..aaea5d2370b 100644 --- a/packages/gas-fee-controller/src/gas-util.test.ts +++ b/packages/gas-fee-controller/src/gas-util.test.ts @@ -5,8 +5,8 @@ import { normalizeGWEIDecimalNumbers, fetchGasEstimates, calculateTimeEstimate, -} from './gas-util'; -import type { GasFeeEstimates } from './GasFeeController'; +} from './gas-util.js'; +import type { GasFeeEstimates } from './GasFeeController.js'; const mockEIP1559ApiResponses: GasFeeEstimates[] = [ { diff --git a/packages/gas-fee-controller/src/gas-util.ts b/packages/gas-fee-controller/src/gas-util.ts index 17a242ac8be..adabe9fbf23 100644 --- a/packages/gas-fee-controller/src/gas-util.ts +++ b/packages/gas-fee-controller/src/gas-util.ts @@ -13,7 +13,7 @@ import type { EstimatedGasFeeTimeBounds, unknownString, LegacyGasPriceEstimate, -} from './GasFeeController'; +} from './GasFeeController.js'; const makeClientIdHeader = (clientId: string) => ({ 'X-Client-Id': clientId }); diff --git a/packages/gas-fee-controller/src/index.ts b/packages/gas-fee-controller/src/index.ts index 073a4b4b74a..20a4abf17e0 100644 --- a/packages/gas-fee-controller/src/index.ts +++ b/packages/gas-fee-controller/src/index.ts @@ -1,4 +1,4 @@ -export * from './GasFeeController'; +export * from './GasFeeController.js'; export type { GasFeeControllerResetPollingAction, GasFeeControllerFetchGasFeeEstimatesAction, @@ -8,4 +8,4 @@ export type { GasFeeControllerGetTimeEstimateAction, GasFeeControllerEnableNonRPCGasFeeApisAction, GasFeeControllerDisableNonRPCGasFeeApisAction, -} from './GasFeeController-method-action-types'; +} from './GasFeeController-method-action-types.js'; From 9c340fbce9988e4500a1e255b490f6b1a723ef0c Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:49:54 +0200 Subject: [PATCH 088/136] ESLint fix and `jest` global import for polling-controller --- .../polling-controller/src/AbstractPollingController.ts | 2 +- .../src/BlockTrackerPollingController.test.ts | 4 ++-- .../src/BlockTrackerPollingController.ts | 8 ++++---- .../src/StaticIntervalPollingController.test.ts | 4 ++-- .../src/StaticIntervalPollingController.ts | 4 ++-- packages/polling-controller/src/index.ts | 6 +++--- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/packages/polling-controller/src/AbstractPollingController.ts b/packages/polling-controller/src/AbstractPollingController.ts index 3957ccb3f97..e87f4d27177 100644 --- a/packages/polling-controller/src/AbstractPollingController.ts +++ b/packages/polling-controller/src/AbstractPollingController.ts @@ -6,7 +6,7 @@ import type { Constructor, PollingTokenSetId, IPollingController, -} from './types'; +} from './types.js'; export const getKey = (input: PollingInput): PollingTokenSetId => stringify(input); diff --git a/packages/polling-controller/src/BlockTrackerPollingController.test.ts b/packages/polling-controller/src/BlockTrackerPollingController.test.ts index 803ef553075..b6eb5ea34e8 100644 --- a/packages/polling-controller/src/BlockTrackerPollingController.test.ts +++ b/packages/polling-controller/src/BlockTrackerPollingController.test.ts @@ -3,8 +3,8 @@ import type { MockAnyNamespace } from '@metamask/messenger'; import type { NetworkClient } from '@metamask/network-controller'; import EventEmitter from 'events'; -import type { BlockTrackerPollingInput } from './BlockTrackerPollingController'; -import { BlockTrackerPollingController } from './BlockTrackerPollingController'; +import type { BlockTrackerPollingInput } from './BlockTrackerPollingController.js'; +import { BlockTrackerPollingController } from './BlockTrackerPollingController.js'; const createExecutePollMock = () => { const executePollMock = jest.fn().mockImplementation(async () => { diff --git a/packages/polling-controller/src/BlockTrackerPollingController.ts b/packages/polling-controller/src/BlockTrackerPollingController.ts index c01762a4ed3..70cecbc283b 100644 --- a/packages/polling-controller/src/BlockTrackerPollingController.ts +++ b/packages/polling-controller/src/BlockTrackerPollingController.ts @@ -8,8 +8,8 @@ import type { Json } from '@metamask/utils'; import { AbstractPollingControllerBaseMixin, getKey, -} from './AbstractPollingController'; -import type { Constructor, PollingTokenSetId } from './types'; +} from './AbstractPollingController.js'; +import type { Constructor, PollingTokenSetId } from './types.js'; /** * The minimum input required to start polling for a {@link BlockTrackerPollingController}. @@ -54,7 +54,7 @@ function BlockTrackerPollingControllerMixin< if (networkClient) { const updateOnNewBlock = this._executePoll.bind(this, input); // TODO: Either fix this lint violation or explain why it's necessary to ignore. - // eslint-disable-next-line @typescript-eslint/no-misused-promises + networkClient.blockTracker.addListener('latest', updateOnNewBlock); this.#activeListeners[key] = updateOnNewBlock; } else { @@ -74,7 +74,7 @@ function BlockTrackerPollingControllerMixin< const listener = this.#activeListeners[key]; if (listener) { // TODO: Either fix this lint violation or explain why it's necessary to ignore. - // eslint-disable-next-line @typescript-eslint/no-misused-promises + networkClient.blockTracker.removeListener('latest', listener); delete this.#activeListeners[key]; } diff --git a/packages/polling-controller/src/StaticIntervalPollingController.test.ts b/packages/polling-controller/src/StaticIntervalPollingController.test.ts index 1f83ac413c1..c7df1e6ab1f 100644 --- a/packages/polling-controller/src/StaticIntervalPollingController.test.ts +++ b/packages/polling-controller/src/StaticIntervalPollingController.test.ts @@ -2,8 +2,8 @@ import { MOCK_ANY_NAMESPACE, Messenger } from '@metamask/messenger'; import type { MockAnyNamespace } from '@metamask/messenger'; import { createDeferredPromise } from '@metamask/utils'; -import { jestAdvanceTime } from '../../../tests/helpers'; -import { StaticIntervalPollingController } from './StaticIntervalPollingController'; +import { jestAdvanceTime } from '../../../tests/helpers.js'; +import { StaticIntervalPollingController } from './StaticIntervalPollingController.js'; const TICK_TIME = 5; diff --git a/packages/polling-controller/src/StaticIntervalPollingController.ts b/packages/polling-controller/src/StaticIntervalPollingController.ts index dce38ce9195..4f57b6f760d 100644 --- a/packages/polling-controller/src/StaticIntervalPollingController.ts +++ b/packages/polling-controller/src/StaticIntervalPollingController.ts @@ -4,12 +4,12 @@ import type { Json } from '@metamask/utils'; import { AbstractPollingControllerBaseMixin, getKey, -} from './AbstractPollingController'; +} from './AbstractPollingController.js'; import type { Constructor, IPollingController, PollingTokenSetId, -} from './types'; +} from './types.js'; /** * StaticIntervalPollingControllerMixin diff --git a/packages/polling-controller/src/index.ts b/packages/polling-controller/src/index.ts index ba1758c443b..8ebd73b27fd 100644 --- a/packages/polling-controller/src/index.ts +++ b/packages/polling-controller/src/index.ts @@ -1,11 +1,11 @@ export { BlockTrackerPollingControllerOnly, BlockTrackerPollingController, -} from './BlockTrackerPollingController'; +} from './BlockTrackerPollingController.js'; export { StaticIntervalPollingControllerOnly, StaticIntervalPollingController, -} from './StaticIntervalPollingController'; +} from './StaticIntervalPollingController.js'; -export type { IPollingController } from './types'; +export type { IPollingController } from './types.js'; From 1aa1f04af8aba02e10a74671c123d3dbd103a081 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:49:54 +0200 Subject: [PATCH 089/136] ESLint fix and `jest` global import for phishing-controller --- .../src/BulkTokenScan.test.ts | 8 +++---- .../src/CacheManager.test.ts | 4 ++-- .../phishing-controller/src/CacheManager.ts | 2 +- .../phishing-controller/src/PathTrie.test.ts | 4 ++-- packages/phishing-controller/src/PathTrie.ts | 2 +- .../PhishingController-method-action-types.ts | 2 +- .../src/PhishingController.test.ts | 15 +++++++----- .../src/PhishingController.ts | 24 +++++++++++-------- .../src/PhishingDetector.test.ts | 10 ++++---- .../src/PhishingDetector.ts | 10 ++++---- .../src/address-poisoning.test.ts | 2 +- .../src/address-poisoning.ts | 2 +- packages/phishing-controller/src/index.ts | 22 ++++++++--------- .../phishing-controller/src/utils.test.ts | 8 +++---- packages/phishing-controller/src/utils.ts | 12 +++++----- 15 files changed, 67 insertions(+), 60 deletions(-) diff --git a/packages/phishing-controller/src/BulkTokenScan.test.ts b/packages/phishing-controller/src/BulkTokenScan.test.ts index 22cc11cd3cc..7f2ab12fc82 100644 --- a/packages/phishing-controller/src/BulkTokenScan.test.ts +++ b/packages/phishing-controller/src/BulkTokenScan.test.ts @@ -11,13 +11,13 @@ import { PhishingController, SECURITY_ALERTS_BASE_URL, TOKEN_BULK_SCANNING_ENDPOINT, -} from './PhishingController'; +} from './PhishingController.js'; import type { PhishingControllerMessenger, PhishingControllerOptions, -} from './PhishingController'; -import { TokenScanResultType } from './types'; -import type { BulkTokenScanRequest, TokenScanApiResponse } from './types'; +} from './PhishingController.js'; +import { TokenScanResultType } from './types.js'; +import type { BulkTokenScanRequest, TokenScanApiResponse } from './types.js'; jest.mock('@metamask/controller-utils', () => ({ ...jest.requireActual('@metamask/controller-utils'), diff --git a/packages/phishing-controller/src/CacheManager.test.ts b/packages/phishing-controller/src/CacheManager.test.ts index 3f0d3fe42e4..5bbf8c92cb5 100644 --- a/packages/phishing-controller/src/CacheManager.test.ts +++ b/packages/phishing-controller/src/CacheManager.test.ts @@ -1,5 +1,5 @@ -import { CacheManager } from './CacheManager'; -import * as utils from './utils'; +import { CacheManager } from './CacheManager.js'; +import * as utils from './utils.js'; describe('CacheManager', () => { let updateStateSpy: jest.Mock; diff --git a/packages/phishing-controller/src/CacheManager.ts b/packages/phishing-controller/src/CacheManager.ts index bf40dd1e2df..9dd4b256353 100644 --- a/packages/phishing-controller/src/CacheManager.ts +++ b/packages/phishing-controller/src/CacheManager.ts @@ -1,4 +1,4 @@ -import { fetchTimeNow } from './utils'; +import { fetchTimeNow } from './utils.js'; /** * Generic cache entry type that wraps the data with a timestamp diff --git a/packages/phishing-controller/src/PathTrie.test.ts b/packages/phishing-controller/src/PathTrie.test.ts index 3169a7f1cfa..55d3f6567a8 100644 --- a/packages/phishing-controller/src/PathTrie.test.ts +++ b/packages/phishing-controller/src/PathTrie.test.ts @@ -5,8 +5,8 @@ import { insertToTrie, isTerminal, matchedPathPrefix, -} from './PathTrie'; -import type { PathTrie } from './PathTrie'; +} from './PathTrie.js'; +import type { PathTrie } from './PathTrie.js'; const emptyPathTrie: PathTrie = {}; diff --git a/packages/phishing-controller/src/PathTrie.ts b/packages/phishing-controller/src/PathTrie.ts index a500de3a8f2..8d435206c68 100644 --- a/packages/phishing-controller/src/PathTrie.ts +++ b/packages/phishing-controller/src/PathTrie.ts @@ -1,4 +1,4 @@ -import { getHostnameAndPathComponents } from './utils'; +import { getHostnameAndPathComponents } from './utils.js'; export type PathNode = { [key: string]: PathNode; diff --git a/packages/phishing-controller/src/PhishingController-method-action-types.ts b/packages/phishing-controller/src/PhishingController-method-action-types.ts index 59e7070b312..cfd36b561ed 100644 --- a/packages/phishing-controller/src/PhishingController-method-action-types.ts +++ b/packages/phishing-controller/src/PhishingController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { PhishingController } from './PhishingController'; +import type { PhishingController } from './PhishingController.js'; /** * Finds known recipient addresses that look like an address poisoning match. diff --git a/packages/phishing-controller/src/PhishingController.test.ts b/packages/phishing-controller/src/PhishingController.test.ts index fac3cbc3703..eeacb996d9a 100644 --- a/packages/phishing-controller/src/PhishingController.test.ts +++ b/packages/phishing-controller/src/PhishingController.test.ts @@ -25,27 +25,30 @@ import { SECURITY_ALERTS_BASE_URL, ADDRESS_SCAN_ENDPOINT, APPROVALS_ENDPOINT, -} from './PhishingController'; +} from './PhishingController.js'; import type { PhishingControllerOptions, BulkPhishingDetectionScanResponse, PhishingControllerMessenger, -} from './PhishingController'; +} from './PhishingController.js'; import { createMockStateChangePayload, createMockTransaction, formatHostnameToUrl, TEST_ADDRESSES, -} from './tests/utils'; -import type { PhishingDetectionScanResult, AddressScanResult } from './types'; +} from './tests/utils.js'; +import type { + PhishingDetectionScanResult, + AddressScanResult, +} from './types.js'; import { PhishingDetectorResultType, RecommendedAction, AddressScanResultType, ApprovalResultType, ApprovalFeatureType, -} from './types'; -import { getHostnameFromUrl } from './utils'; +} from './types.js'; +import { getHostnameFromUrl } from './utils.js'; const controllerName = 'PhishingController'; diff --git a/packages/phishing-controller/src/PhishingController.ts b/packages/phishing-controller/src/PhishingController.ts index ee48f86c228..02da6b89e2f 100644 --- a/packages/phishing-controller/src/PhishingController.ts +++ b/packages/phishing-controller/src/PhishingController.ts @@ -25,22 +25,26 @@ import { TransactionStatus } from '@metamask/transaction-controller'; import type { Patch } from 'immer'; import { toASCII } from 'punycode/punycode.js'; -import { findSimilarAddresses } from './address-poisoning'; -import { CacheManager } from './CacheManager'; -import type { CacheEntry } from './CacheManager'; -import { convertListToTrie, insertToTrie, matchedPathPrefix } from './PathTrie'; -import type { PathTrie } from './PathTrie'; +import { findSimilarAddresses } from './address-poisoning.js'; +import { CacheManager } from './CacheManager.js'; +import type { CacheEntry } from './CacheManager.js'; +import { + convertListToTrie, + insertToTrie, + matchedPathPrefix, +} from './PathTrie.js'; +import type { PathTrie } from './PathTrie.js'; import type { PhishingControllerMaybeUpdateStateAction, PhishingControllerMethodActions, PhishingControllerTestOriginAction, -} from './PhishingController-method-action-types'; -import { PhishingDetector } from './PhishingDetector'; +} from './PhishingController-method-action-types.js'; +import { PhishingDetector } from './PhishingDetector.js'; import { PhishingDetectorResultType, RecommendedAction, AddressScanResultType, -} from './types'; +} from './types.js'; import type { PhishingDetectorResult, PhishingDetectionScanResult, @@ -52,7 +56,7 @@ import type { AddressScanResult, SimilarAddressMatch, ApprovalsResponse, -} from './types'; +} from './types.js'; import { applyDiffs, fetchTimeNow, @@ -67,7 +71,7 @@ import { isAddressScanSupportedChain, isApprovalSupportedChain, isTokenScanSupportedChain, -} from './utils'; +} from './utils.js'; export const PHISHING_CONFIG_BASE_URL = 'https://phishing-detection.api.cx.metamask.io'; diff --git a/packages/phishing-controller/src/PhishingDetector.test.ts b/packages/phishing-controller/src/PhishingDetector.test.ts index 51edd5ed482..8736b47c8fe 100644 --- a/packages/phishing-controller/src/PhishingDetector.test.ts +++ b/packages/phishing-controller/src/PhishingDetector.test.ts @@ -1,8 +1,8 @@ -import { PhishingDetector } from './PhishingDetector'; -import type { PhishingDetectorOptions } from './PhishingDetector'; -import { formatHostnameToUrl } from './tests/utils'; -import { PhishingDetectorResultType } from './types'; -import { sha256Hash } from './utils'; +import { PhishingDetector } from './PhishingDetector.js'; +import type { PhishingDetectorOptions } from './PhishingDetector.js'; +import { formatHostnameToUrl } from './tests/utils.js'; +import { PhishingDetectorResultType } from './types.js'; +import { sha256Hash } from './utils.js'; describe('PhishingDetector', () => { describe('constructor', () => { diff --git a/packages/phishing-controller/src/PhishingDetector.ts b/packages/phishing-controller/src/PhishingDetector.ts index d94e1044b8b..b6064b7d3da 100644 --- a/packages/phishing-controller/src/PhishingDetector.ts +++ b/packages/phishing-controller/src/PhishingDetector.ts @@ -1,9 +1,9 @@ import { distance } from 'fastest-levenshtein'; -import { matchedPathPrefix } from './PathTrie'; -import type { PathTrie } from './PathTrie'; -import { PhishingDetectorResultType } from './types'; -import type { PhishingDetectorResult } from './types'; +import { matchedPathPrefix } from './PathTrie.js'; +import type { PathTrie } from './PathTrie.js'; +import { PhishingDetectorResultType } from './types.js'; +import type { PhishingDetectorResult } from './types.js'; import { domainPartsToDomain, domainPartsToFuzzyForm, @@ -14,7 +14,7 @@ import { matchPartsAgainstList, processConfigs, sha256Hash, -} from './utils'; +} from './utils.js'; export type LegacyPhishingDetectorList = { whitelist?: string[]; diff --git a/packages/phishing-controller/src/address-poisoning.test.ts b/packages/phishing-controller/src/address-poisoning.test.ts index cbf08b3ef62..cd89b4b2b40 100644 --- a/packages/phishing-controller/src/address-poisoning.test.ts +++ b/packages/phishing-controller/src/address-poisoning.test.ts @@ -1,4 +1,4 @@ -import { findSimilarAddresses } from './address-poisoning'; +import { findSimilarAddresses } from './address-poisoning.js'; function getNumberRange(start: number, end: number): number[] { return Array.from({ length: end - start + 1 }, (_, index) => start + index); diff --git a/packages/phishing-controller/src/address-poisoning.ts b/packages/phishing-controller/src/address-poisoning.ts index 89adf2953c2..63bbdbef205 100644 --- a/packages/phishing-controller/src/address-poisoning.ts +++ b/packages/phishing-controller/src/address-poisoning.ts @@ -1,6 +1,6 @@ import { isValidHexAddress } from '@metamask/controller-utils'; -import type { SimilarAddressMatch, SimilarityOptions } from './types'; +import type { SimilarAddressMatch, SimilarityOptions } from './types.js'; const DEFAULT_PREFIX_LEN = 4; const DEFAULT_SUFFIX_LEN = 4; diff --git a/packages/phishing-controller/src/index.ts b/packages/phishing-controller/src/index.ts index bb08ca9bf5b..0f963ea60c4 100644 --- a/packages/phishing-controller/src/index.ts +++ b/packages/phishing-controller/src/index.ts @@ -1,13 +1,13 @@ -export * from './PhishingController'; -export { findSimilarAddresses } from './address-poisoning'; +export * from './PhishingController.js'; +export { findSimilarAddresses } from './address-poisoning.js'; export type { LegacyPhishingDetectorList, PhishingDetectorList, FuzzyTolerance, PhishingDetectorOptions, PhishingDetectorConfiguration, -} from './PhishingDetector'; -export { PhishingDetector } from './PhishingDetector'; +} from './PhishingDetector.js'; +export { PhishingDetector } from './PhishingDetector.js'; export type { PhishingDetectionScanResult, AddressScanResult, @@ -21,22 +21,22 @@ export type { Exposure, Spender, ApprovalFeature, -} from './types'; -export type { TokenScanCacheData } from './types'; -export { TokenScanResultType } from './types'; +} from './types.js'; +export type { TokenScanCacheData } from './types.js'; +export { TokenScanResultType } from './types.js'; export { PhishingDetectorResultType, RecommendedAction, AddressScanResultType, ApprovalResultType, ApprovalFeatureType, -} from './types'; -export type { CacheEntry } from './CacheManager'; +} from './types.js'; +export type { CacheEntry } from './CacheManager.js'; export { PHISHING_DETECTION_PATH_BASED_ROOT_DOMAINS, getPhishingDetectionScanUrlParam, isPhishingDetectionPathBasedHostname, -} from './utils'; +} from './utils.js'; export type { PhishingControllerMaybeUpdateStateAction, @@ -49,4 +49,4 @@ export type { PhishingControllerScanAddressAction, PhishingControllerGetApprovalsAction, PhishingControllerCheckAddressPoisoningAction, -} from './PhishingController-method-action-types'; +} from './PhishingController-method-action-types.js'; diff --git a/packages/phishing-controller/src/utils.test.ts b/packages/phishing-controller/src/utils.test.ts index ca66a68d30b..14330fbdf1e 100644 --- a/packages/phishing-controller/src/utils.test.ts +++ b/packages/phishing-controller/src/utils.test.ts @@ -1,6 +1,6 @@ -import { ListKeys, ListNames } from './PhishingController'; -import type { PhishingListState } from './PhishingController'; -import type { TokenScanResultType } from './types'; +import { ListKeys, ListNames } from './PhishingController.js'; +import type { PhishingListState } from './PhishingController.js'; +import type { TokenScanResultType } from './types.js'; import { applyDiffs, buildCacheKey, @@ -22,7 +22,7 @@ import { sha256Hash, splitCacheHits, validateConfig, -} from './utils'; +} from './utils.js'; const exampleBlockedUrl = 'https://example-blocked-website.com'; const exampleBlockedUrlOne = 'https://another-example-blocked-website.com'; diff --git a/packages/phishing-controller/src/utils.ts b/packages/phishing-controller/src/utils.ts index a654718887b..57dd71ab5b1 100644 --- a/packages/phishing-controller/src/utils.ts +++ b/packages/phishing-controller/src/utils.ts @@ -1,26 +1,26 @@ import { bytesToHex } from '@noble/hashes/utils'; import { sha256 } from 'ethereum-cryptography/sha256'; -import { deleteFromTrie, insertToTrie, deepCopyPathTrie } from './PathTrie'; -import type { Hotlist, PhishingListState } from './PhishingController'; -import { ListKeys, phishingListKeyNameMap } from './PhishingController'; +import { deleteFromTrie, insertToTrie, deepCopyPathTrie } from './PathTrie.js'; +import type { Hotlist, PhishingListState } from './PhishingController.js'; +import { ListKeys, phishingListKeyNameMap } from './PhishingController.js'; import type { PhishingDetectorList, PhishingDetectorConfiguration, -} from './PhishingDetector'; +} from './PhishingDetector.js'; import { ADDRESS_SCAN_SUPPORTED_CHAINS, APPROVAL_SUPPORTED_CHAINS, DEFAULT_CHAIN_ID_TO_NAME, TOKEN_SCAN_SUPPORTED_CHAINS, -} from './types'; +} from './types.js'; import type { AddressScanSupportedChain, ApprovalSupportedChain, TokenScanCacheData, TokenScanResult, TokenScanSupportedChain, -} from './types'; +} from './types.js'; const DEFAULT_TOLERANCE = 3; From ff4f243f86549b7253fbc13c342aff9bd2027024 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:49:58 +0200 Subject: [PATCH 090/136] ESLint fix and `jest` global import for selected-network-controller --- .../SelectedNetworkController-method-action-types.ts | 2 +- .../src/SelectedNetworkController.ts | 2 +- .../src/SelectedNetworkMiddleware.ts | 4 ++-- packages/selected-network-controller/src/index.ts | 10 +++++----- .../tests/SelectedNetworkController.test.ts | 4 ++-- .../tests/SelectedNetworkMiddleware.test.ts | 8 ++++---- 6 files changed, 15 insertions(+), 15 deletions(-) diff --git a/packages/selected-network-controller/src/SelectedNetworkController-method-action-types.ts b/packages/selected-network-controller/src/SelectedNetworkController-method-action-types.ts index 5798ce1b434..cc36282b9f2 100644 --- a/packages/selected-network-controller/src/SelectedNetworkController-method-action-types.ts +++ b/packages/selected-network-controller/src/SelectedNetworkController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { SelectedNetworkController } from './SelectedNetworkController'; +import type { SelectedNetworkController } from './SelectedNetworkController.js'; export type SelectedNetworkControllerSetNetworkClientIdForDomainAction = { type: `SelectedNetworkController:setNetworkClientIdForDomain`; diff --git a/packages/selected-network-controller/src/SelectedNetworkController.ts b/packages/selected-network-controller/src/SelectedNetworkController.ts index bc2e5093236..09d5db907c1 100644 --- a/packages/selected-network-controller/src/SelectedNetworkController.ts +++ b/packages/selected-network-controller/src/SelectedNetworkController.ts @@ -24,7 +24,7 @@ import { } from '@metamask/swappable-obj-proxy'; import type { Hex } from '@metamask/utils'; -import type { SelectedNetworkControllerMethodActions } from './SelectedNetworkController-method-action-types'; +import type { SelectedNetworkControllerMethodActions } from './SelectedNetworkController-method-action-types.js'; const controllerName = 'SelectedNetworkController'; diff --git a/packages/selected-network-controller/src/SelectedNetworkMiddleware.ts b/packages/selected-network-controller/src/SelectedNetworkMiddleware.ts index eb84a503e98..62bcdcc70b9 100644 --- a/packages/selected-network-controller/src/SelectedNetworkMiddleware.ts +++ b/packages/selected-network-controller/src/SelectedNetworkMiddleware.ts @@ -2,8 +2,8 @@ import type { JsonRpcMiddleware } from '@metamask/json-rpc-engine'; import type { NetworkClientId } from '@metamask/network-controller'; import type { Json, JsonRpcParams, JsonRpcRequest } from '@metamask/utils'; -import type { SelectedNetworkControllerMessenger } from './SelectedNetworkController'; -import { SelectedNetworkControllerActionTypes } from './SelectedNetworkController'; +import type { SelectedNetworkControllerMessenger } from './SelectedNetworkController.js'; +import { SelectedNetworkControllerActionTypes } from './SelectedNetworkController.js'; export type SelectedNetworkMiddlewareJsonRpcRequest = JsonRpcRequest & { networkClientId?: NetworkClientId; diff --git a/packages/selected-network-controller/src/index.ts b/packages/selected-network-controller/src/index.ts index f07208bb983..946c94f531e 100644 --- a/packages/selected-network-controller/src/index.ts +++ b/packages/selected-network-controller/src/index.ts @@ -9,17 +9,17 @@ export type { SelectedNetworkControllerOptions, NetworkProxy, Domain, -} from './SelectedNetworkController'; +} from './SelectedNetworkController.js'; export { SelectedNetworkControllerActionTypes, SelectedNetworkControllerEventTypes, SelectedNetworkController, METAMASK_DOMAIN, -} from './SelectedNetworkController'; +} from './SelectedNetworkController.js'; export type { SelectedNetworkControllerSetNetworkClientIdForDomainAction, SelectedNetworkControllerGetNetworkClientIdForDomainAction, SelectedNetworkControllerGetProviderAndBlockTrackerAction, -} from './SelectedNetworkController-method-action-types'; -export type { SelectedNetworkMiddlewareJsonRpcRequest } from './SelectedNetworkMiddleware'; -export { createSelectedNetworkMiddleware } from './SelectedNetworkMiddleware'; +} from './SelectedNetworkController-method-action-types.js'; +export type { SelectedNetworkMiddlewareJsonRpcRequest } from './SelectedNetworkMiddleware.js'; +export { createSelectedNetworkMiddleware } from './SelectedNetworkMiddleware.js'; diff --git a/packages/selected-network-controller/tests/SelectedNetworkController.test.ts b/packages/selected-network-controller/tests/SelectedNetworkController.test.ts index f57aeebbb2f..35f55c4c2d4 100644 --- a/packages/selected-network-controller/tests/SelectedNetworkController.test.ts +++ b/packages/selected-network-controller/tests/SelectedNetworkController.test.ts @@ -25,11 +25,11 @@ import type { Domain, NetworkProxy, SelectedNetworkControllerMessenger, -} from '../src/SelectedNetworkController'; +} from '../src/SelectedNetworkController.js'; import { METAMASK_DOMAIN, SelectedNetworkController, -} from '../src/SelectedNetworkController'; +} from '../src/SelectedNetworkController.js'; const controllerName = 'SelectedNetworkController'; diff --git a/packages/selected-network-controller/tests/SelectedNetworkMiddleware.test.ts b/packages/selected-network-controller/tests/SelectedNetworkMiddleware.test.ts index c57deb36fce..d6a47f92017 100644 --- a/packages/selected-network-controller/tests/SelectedNetworkMiddleware.test.ts +++ b/packages/selected-network-controller/tests/SelectedNetworkMiddleware.test.ts @@ -7,10 +7,10 @@ import type { } from '@metamask/messenger'; import type { JsonRpcResponse } from '@metamask/utils'; -import { SelectedNetworkControllerActionTypes } from '../src/SelectedNetworkController'; -import type { SelectedNetworkControllerMessenger } from '../src/SelectedNetworkController'; -import type { SelectedNetworkMiddlewareJsonRpcRequest } from '../src/SelectedNetworkMiddleware'; -import { createSelectedNetworkMiddleware } from '../src/SelectedNetworkMiddleware'; +import { SelectedNetworkControllerActionTypes } from '../src/SelectedNetworkController.js'; +import type { SelectedNetworkControllerMessenger } from '../src/SelectedNetworkController.js'; +import type { SelectedNetworkMiddlewareJsonRpcRequest } from '../src/SelectedNetworkMiddleware.js'; +import { createSelectedNetworkMiddleware } from '../src/SelectedNetworkMiddleware.js'; type AllSelectedNetworkControllerActions = MessengerActions; From 99836a111443fdcfbba890458ccca9e9e2e834ec Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:49:58 +0200 Subject: [PATCH 091/136] ESLint fix and `jest` global import for profile-sync-controller --- ...nticationController-method-action-types.ts | 2 +- .../AuthenticationController.test.ts | 14 ++++---- .../AuthenticationController.ts | 10 +++--- .../__fixtures__/mockServices.ts | 2 +- .../src/controllers/authentication/index.ts | 8 ++--- .../controllers/authentication/mocks/index.ts | 2 +- .../mocks/mockResponses.test.ts | 2 +- .../authentication/mocks/mockResponses.ts | 2 +- .../src/controllers/index.ts | 4 +-- ...erStorageController-method-action-types.ts | 2 +- .../UserStorageController.test.ts | 21 +++++++----- .../user-storage/UserStorageController.ts | 20 +++++------ .../__fixtures__/mockMessenger.ts | 6 ++-- .../user-storage/__fixtures__/mockServices.ts | 6 ++-- .../user-storage/__fixtures__/test-utils.ts | 6 ++-- .../__fixtures__/mockContacts.ts | 7 ++-- .../__fixtures__/test-utils.ts | 2 +- .../controller-integration.test.ts | 12 +++---- .../contact-syncing/controller-integration.ts | 34 +++++++++---------- .../setup-subscriptions.test.ts | 6 ++-- .../contact-syncing/setup-subscriptions.ts | 8 ++--- .../contact-syncing/sync-utils.test.ts | 4 +-- .../contact-syncing/sync-utils.ts | 2 +- .../user-storage/contact-syncing/types.ts | 6 ++-- .../contact-syncing/utils.test.ts | 8 ++--- .../user-storage/contact-syncing/utils.ts | 4 +-- .../src/controllers/user-storage/index.ts | 14 ++++---- .../controllers/user-storage/mocks/index.ts | 4 +-- .../user-storage/mocks/mockResponses.ts | 10 +++--- .../user-storage/mocks/mockStorage.ts | 2 +- .../src/controllers/user-storage/types.ts | 4 +-- .../controllers/user-storage/utils.test.ts | 2 +- packages/profile-sync-controller/src/index.ts | 6 ++-- .../src/sdk/__fixtures__/auth.ts | 2 +- .../src/sdk/__fixtures__/test-utils.ts | 10 +++--- .../src/sdk/__fixtures__/userstorage.ts | 2 +- .../authentication-jwt-bearer/flow-siwe.ts | 8 ++--- .../flow-srp.test.ts | 12 +++---- .../sdk/authentication-jwt-bearer/flow-srp.ts | 20 +++++------ .../services.test.ts | 8 ++--- .../sdk/authentication-jwt-bearer/services.ts | 22 +++++------- .../sdk/authentication-jwt-bearer/types.ts | 2 +- .../utils/identifier.test.ts | 6 ++-- .../utils/identifier.ts | 4 +-- .../src/sdk/authentication.test.ts | 20 +++++------ .../src/sdk/authentication.ts | 22 ++++++------ .../profile-sync-controller/src/sdk/errors.ts | 2 +- .../profile-sync-controller/src/sdk/index.ts | 14 ++++---- .../src/sdk/mocks/auth.ts | 4 +-- .../src/sdk/mocks/userstorage.ts | 8 ++--- .../src/sdk/user-storage.test.ts | 24 ++++++------- .../src/sdk/user-storage.ts | 18 +++++----- .../utils/eip-6963-metamask-provider.test.ts | 6 ++-- .../messaging-signing-snap-requests.test.ts | 8 ++--- .../sdk/utils/validate-login-response.test.ts | 4 +-- .../src/sdk/utils/validate-login-response.ts | 2 +- .../sdk/utils/validate-pair-response.test.ts | 4 +-- .../src/shared/encryption/cache.ts | 4 +-- .../src/shared/encryption/encryption.test.ts | 4 +-- .../src/shared/encryption/encryption.ts | 10 +++--- .../src/shared/encryption/index.ts | 4 +-- .../src/shared/env.test.ts | 4 +-- .../src/shared/storage-schema.test.ts | 2 +- .../src/shared/storage-schema.ts | 2 +- .../src/shared/types/services.ts | 2 +- .../src/shared/utils/event-queue.test.ts | 2 +- 66 files changed, 255 insertions(+), 253 deletions(-) diff --git a/packages/profile-sync-controller/src/controllers/authentication/AuthenticationController-method-action-types.ts b/packages/profile-sync-controller/src/controllers/authentication/AuthenticationController-method-action-types.ts index 221d5f67f80..29fadebb633 100644 --- a/packages/profile-sync-controller/src/controllers/authentication/AuthenticationController-method-action-types.ts +++ b/packages/profile-sync-controller/src/controllers/authentication/AuthenticationController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { AuthenticationController } from './AuthenticationController'; +import type { AuthenticationController } from './AuthenticationController.js'; export type AuthenticationControllerPerformSignInAction = { type: `AuthenticationController:performSignIn`; diff --git a/packages/profile-sync-controller/src/controllers/authentication/AuthenticationController.test.ts b/packages/profile-sync-controller/src/controllers/authentication/AuthenticationController.test.ts index 0351e8f10be..3d882ab4467 100644 --- a/packages/profile-sync-controller/src/controllers/authentication/AuthenticationController.test.ts +++ b/packages/profile-sync-controller/src/controllers/authentication/AuthenticationController.test.ts @@ -6,23 +6,23 @@ import type { MockAnyNamespace, } from '@metamask/messenger'; -import type { LoginResponse } from '../../sdk'; -import { Platform } from '../../sdk'; -import { arrangeAuthAPIs } from '../../sdk/__fixtures__/auth'; +import type { LoginResponse } from '../../sdk.js'; +import { Platform } from '../../sdk.js'; +import { arrangeAuthAPIs } from '../../sdk/__fixtures__/auth.js'; import { MOCK_ACCESS_JWT, MOCK_USER_PROFILE_LINEAGE_RESPONSE, -} from '../../sdk/mocks/auth'; -import { AuthenticationController } from './AuthenticationController'; +} from '../../sdk/mocks/auth.js'; +import { AuthenticationController } from './AuthenticationController.js'; import type { AuthenticationControllerMessenger, AuthenticationControllerState, ProfileSignInInfo, -} from './AuthenticationController'; +} from './AuthenticationController.js'; import { MOCK_LOGIN_RESPONSE, MOCK_OATH_TOKEN_RESPONSE, -} from './mocks/mockResponses'; +} from './mocks/mockResponses.js'; const MOCK_ENTROPY_SOURCE_IDS = [ 'MOCK_ENTROPY_SOURCE_ID', diff --git a/packages/profile-sync-controller/src/controllers/authentication/AuthenticationController.ts b/packages/profile-sync-controller/src/controllers/authentication/AuthenticationController.ts index 1bc6c14ce57..b8d7cad7b50 100644 --- a/packages/profile-sync-controller/src/controllers/authentication/AuthenticationController.ts +++ b/packages/profile-sync-controller/src/controllers/authentication/AuthenticationController.ts @@ -19,20 +19,20 @@ import type { SRPInterface, UserProfile, UserProfileLineage, -} from '../../sdk'; +} from '../../sdk.js'; import { assertMessageStartsWithMetamask, AuthType, Env, JwtBearerAuth, -} from '../../sdk'; -import type { MetaMetricsAuth } from '../../shared/types/services'; +} from '../../sdk.js'; +import type { MetaMetricsAuth } from '../../shared/types/services.js'; import { createSnapPublicKeyRequest, createSnapAllPublicKeysRequest, createSnapSignMessageRequest, -} from './auth-snap-requests'; -import { AuthenticationControllerMethodActions } from './AuthenticationController-method-action-types'; +} from './auth-snap-requests.js'; +import { AuthenticationControllerMethodActions } from './AuthenticationController-method-action-types.js'; const controllerName = 'AuthenticationController'; diff --git a/packages/profile-sync-controller/src/controllers/authentication/__fixtures__/mockServices.ts b/packages/profile-sync-controller/src/controllers/authentication/__fixtures__/mockServices.ts index aec0aa08b5a..9b47a8abe76 100644 --- a/packages/profile-sync-controller/src/controllers/authentication/__fixtures__/mockServices.ts +++ b/packages/profile-sync-controller/src/controllers/authentication/__fixtures__/mockServices.ts @@ -4,7 +4,7 @@ import { getMockAuthAccessTokenResponse, getMockAuthLoginResponse, getMockAuthNonceResponse, -} from '../mocks/mockResponses'; +} from '../mocks/mockResponses.js'; type MockReply = { status: nock.StatusCode; diff --git a/packages/profile-sync-controller/src/controllers/authentication/index.ts b/packages/profile-sync-controller/src/controllers/authentication/index.ts index 6198e0e2008..6bda2bffb20 100644 --- a/packages/profile-sync-controller/src/controllers/authentication/index.ts +++ b/packages/profile-sync-controller/src/controllers/authentication/index.ts @@ -1,9 +1,9 @@ -import { AuthenticationController } from './AuthenticationController'; +import { AuthenticationController } from './AuthenticationController.js'; export { AuthenticationController as Controller }; export default AuthenticationController; -export * from './AuthenticationController'; -export * as Mocks from './mocks'; +export * from './AuthenticationController.js'; +export * as Mocks from './mocks.js'; export type { AuthenticationControllerPerformSignInAction, @@ -14,4 +14,4 @@ export type { AuthenticationControllerGetUserProfileLineageAction, AuthenticationControllerIsSignedInAction, AuthenticationControllerRequestProfilePairingAction, -} from './AuthenticationController-method-action-types'; +} from './AuthenticationController-method-action-types.js'; diff --git a/packages/profile-sync-controller/src/controllers/authentication/mocks/index.ts b/packages/profile-sync-controller/src/controllers/authentication/mocks/index.ts index ae60f45b28d..9e1db815f4c 100644 --- a/packages/profile-sync-controller/src/controllers/authentication/mocks/index.ts +++ b/packages/profile-sync-controller/src/controllers/authentication/mocks/index.ts @@ -1 +1 @@ -export * from './mockResponses'; +export * from './mockResponses.js'; diff --git a/packages/profile-sync-controller/src/controllers/authentication/mocks/mockResponses.test.ts b/packages/profile-sync-controller/src/controllers/authentication/mocks/mockResponses.test.ts index 8ae5e21883e..629448e97d3 100644 --- a/packages/profile-sync-controller/src/controllers/authentication/mocks/mockResponses.test.ts +++ b/packages/profile-sync-controller/src/controllers/authentication/mocks/mockResponses.test.ts @@ -4,7 +4,7 @@ import { getE2EIdentifierFromJwt, MOCK_CUSTOMER_SERVICE_TOKEN_RESPONSE, MOCK_OATH_TOKEN_RESPONSE, -} from './mockResponses'; +} from './mockResponses.js'; describe('getE2EIdentifierFromJwt()', () => { it('extracts the sub claim from a valid mock JWT', () => { diff --git a/packages/profile-sync-controller/src/controllers/authentication/mocks/mockResponses.ts b/packages/profile-sync-controller/src/controllers/authentication/mocks/mockResponses.ts index 985d4f05fde..2350b2e2331 100644 --- a/packages/profile-sync-controller/src/controllers/authentication/mocks/mockResponses.ts +++ b/packages/profile-sync-controller/src/controllers/authentication/mocks/mockResponses.ts @@ -10,7 +10,7 @@ import { MOCK_OIDC_TOKEN_URL, MOCK_PAIR_PROFILES_URL, MOCK_CUSTOMER_SERVICE_TOKEN_URL, -} from '../../../sdk/mocks/auth'; +} from '../../../sdk/mocks/auth.js'; type MockResponse = { url: string; diff --git a/packages/profile-sync-controller/src/controllers/index.ts b/packages/profile-sync-controller/src/controllers/index.ts index 2522528014b..f4b8b2dcdaa 100644 --- a/packages/profile-sync-controller/src/controllers/index.ts +++ b/packages/profile-sync-controller/src/controllers/index.ts @@ -1,2 +1,2 @@ -export * as Authentication from './authentication'; -export * as UserStorage from './user-storage'; +export * as Authentication from './authentication.js'; +export * as UserStorage from './user-storage.js'; diff --git a/packages/profile-sync-controller/src/controllers/user-storage/UserStorageController-method-action-types.ts b/packages/profile-sync-controller/src/controllers/user-storage/UserStorageController-method-action-types.ts index 3715c2d562f..772dfa02794 100644 --- a/packages/profile-sync-controller/src/controllers/user-storage/UserStorageController-method-action-types.ts +++ b/packages/profile-sync-controller/src/controllers/user-storage/UserStorageController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { UserStorageController } from './UserStorageController'; +import type { UserStorageController } from './UserStorageController.js'; /** * Allows retrieval of stored data. Data stored is string formatted. diff --git a/packages/profile-sync-controller/src/controllers/user-storage/UserStorageController.test.ts b/packages/profile-sync-controller/src/controllers/user-storage/UserStorageController.test.ts index 1081690d8f1..d997f4e4d49 100644 --- a/packages/profile-sync-controller/src/controllers/user-storage/UserStorageController.test.ts +++ b/packages/profile-sync-controller/src/controllers/user-storage/UserStorageController.test.ts @@ -2,14 +2,14 @@ import { deriveStateFromMetadata } from '@metamask/base-controller'; import { KeyringTypes } from '@metamask/keyring-controller'; import nock from 'nock'; -import { Env, getEnvUrls } from '../../sdk'; -import { createSHA256Hash } from '../../shared/encryption'; -import type { UserStorageGenericPathWithFeatureAndKey } from '../../shared/storage-schema'; +import { Env, getEnvUrls } from '../../sdk.js'; +import { createSHA256Hash } from '../../shared/encryption.js'; +import type { UserStorageGenericPathWithFeatureAndKey } from '../../shared/storage-schema.js'; import { createEntryPath, USER_STORAGE_FEATURE_NAMES, -} from '../../shared/storage-schema'; -import { mockUserStorageMessenger } from './__fixtures__/mockMessenger'; +} from '../../shared/storage-schema.js'; +import { mockUserStorageMessenger } from './__fixtures__/mockMessenger.js'; import { mockEndpointBatchUpsertUserStorage, mockEndpointGetUserStorage, @@ -18,10 +18,13 @@ import { mockEndpointDeleteUserStorageAllFeatureEntries, mockEndpointDeleteUserStorage, mockEndpointBatchDeleteUserStorage, -} from './__fixtures__/mockServices'; -import { BACKUPANDSYNC_FEATURES } from './constants'; -import { MOCK_STORAGE_DATA, MOCK_STORAGE_KEY } from './mocks/mockStorage'; -import { UserStorageController, defaultState } from './UserStorageController'; +} from './__fixtures__/mockServices.js'; +import { BACKUPANDSYNC_FEATURES } from './constants.js'; +import { MOCK_STORAGE_DATA, MOCK_STORAGE_KEY } from './mocks/mockStorage.js'; +import { + UserStorageController, + defaultState, +} from './UserStorageController.js'; describe('UserStorageController', () => { describe('constructor', () => { diff --git a/packages/profile-sync-controller/src/controllers/user-storage/UserStorageController.ts b/packages/profile-sync-controller/src/controllers/user-storage/UserStorageController.ts index 2e4d74ea86b..acfc90ea991 100644 --- a/packages/profile-sync-controller/src/controllers/user-storage/UserStorageController.ts +++ b/packages/profile-sync-controller/src/controllers/user-storage/UserStorageController.ts @@ -30,21 +30,21 @@ import type { UserStorageGenericFeatureKey, UserStorageGenericPathWithFeatureAndKey, UserStorageGenericPathWithFeatureOnly, -} from '../../sdk'; -import { Env, UserStorage } from '../../sdk'; -import type { NativeScrypt } from '../../shared/types/encryption'; -import { EventQueue } from '../../shared/utils/event-queue'; -import { createSnapSignMessageRequest } from '../authentication/auth-snap-requests'; +} from '../../sdk.js'; +import { Env, UserStorage } from '../../sdk.js'; +import type { NativeScrypt } from '../../shared/types/encryption.js'; +import { EventQueue } from '../../shared/utils/event-queue.js'; +import { createSnapSignMessageRequest } from '../authentication/auth-snap-requests.js'; import type { AuthenticationControllerGetBearerTokenAction, AuthenticationControllerGetSessionProfileAction, AuthenticationControllerIsSignedInAction, AuthenticationControllerPerformSignInAction, -} from '../authentication/AuthenticationController-method-action-types'; -import { BACKUPANDSYNC_FEATURES } from './constants'; -import { syncContactsWithUserStorage } from './contact-syncing/controller-integration'; -import { setupContactSyncingSubscriptions } from './contact-syncing/setup-subscriptions'; -import type { UserStorageControllerMethodActions } from './UserStorageController-method-action-types'; +} from '../authentication/AuthenticationController-method-action-types.js'; +import { BACKUPANDSYNC_FEATURES } from './constants.js'; +import { syncContactsWithUserStorage } from './contact-syncing/controller-integration.js'; +import { setupContactSyncingSubscriptions } from './contact-syncing/setup-subscriptions.js'; +import type { UserStorageControllerMethodActions } from './UserStorageController-method-action-types.js'; const controllerName = 'UserStorageController'; diff --git a/packages/profile-sync-controller/src/controllers/user-storage/__fixtures__/mockMessenger.ts b/packages/profile-sync-controller/src/controllers/user-storage/__fixtures__/mockMessenger.ts index 74be400a3c4..ec2c6319027 100644 --- a/packages/profile-sync-controller/src/controllers/user-storage/__fixtures__/mockMessenger.ts +++ b/packages/profile-sync-controller/src/controllers/user-storage/__fixtures__/mockMessenger.ts @@ -7,13 +7,13 @@ import type { NotNamespacedBy, } from '@metamask/messenger'; +import { MOCK_LOGIN_RESPONSE } from '../../authentication/mocks.js'; +import { MOCK_STORAGE_KEY_SIGNATURE } from '../mocks.js'; import type { AllowedActions, AllowedEvents, UserStorageControllerMessenger, -} from '..'; -import { MOCK_LOGIN_RESPONSE } from '../../authentication/mocks'; -import { MOCK_STORAGE_KEY_SIGNATURE } from '../mocks'; +} from './...js'; const controllerName = 'UserStorageController'; diff --git a/packages/profile-sync-controller/src/controllers/user-storage/__fixtures__/mockServices.ts b/packages/profile-sync-controller/src/controllers/user-storage/__fixtures__/mockServices.ts index dddac59d2b6..cfabc7b7d6d 100644 --- a/packages/profile-sync-controller/src/controllers/user-storage/__fixtures__/mockServices.ts +++ b/packages/profile-sync-controller/src/controllers/user-storage/__fixtures__/mockServices.ts @@ -1,10 +1,10 @@ import nock from 'nock'; -import { USER_STORAGE_FEATURE_NAMES } from '../../../shared/storage-schema'; +import { USER_STORAGE_FEATURE_NAMES } from '../../../shared/storage-schema.js'; import type { UserStorageGenericPathWithFeatureAndKey, UserStorageGenericPathWithFeatureOnly, -} from '../../../shared/storage-schema'; +} from '../../../shared/storage-schema.js'; import { getMockUserStorageGetResponse, getMockUserStoragePutResponse, @@ -13,7 +13,7 @@ import { getMockUserStorageBatchDeleteResponse, deleteMockUserStorageAllFeatureEntriesResponse, deleteMockUserStorageResponse, -} from '../mocks/mockResponses'; +} from '../mocks/mockResponses.js'; type MockReply = { status: nock.StatusCode; diff --git a/packages/profile-sync-controller/src/controllers/user-storage/__fixtures__/test-utils.ts b/packages/profile-sync-controller/src/controllers/user-storage/__fixtures__/test-utils.ts index 340acef469e..eae66dd5c99 100644 --- a/packages/profile-sync-controller/src/controllers/user-storage/__fixtures__/test-utils.ts +++ b/packages/profile-sync-controller/src/controllers/user-storage/__fixtures__/test-utils.ts @@ -1,11 +1,11 @@ import type nock from 'nock'; -import encryption from '../../../shared/encryption/encryption'; -import { MOCK_STORAGE_KEY } from '../mocks/mockStorage'; +import encryption from '../../../shared/encryption/encryption.js'; +import { MOCK_STORAGE_KEY } from '../mocks/mockStorage.js'; import type { GetUserStorageAllFeatureEntriesResponse, GetUserStorageResponse, -} from '../types'; +} from '../types.js'; /** * Test Utility - creates a realistic mock user-storage entry diff --git a/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/__fixtures__/mockContacts.ts b/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/__fixtures__/mockContacts.ts index eaf6fe2f6ab..aa1677238fd 100644 --- a/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/__fixtures__/mockContacts.ts +++ b/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/__fixtures__/mockContacts.ts @@ -1,7 +1,10 @@ import type { AddressBookEntry } from '@metamask/address-book-controller'; -import { USER_STORAGE_VERSION, USER_STORAGE_VERSION_KEY } from '../constants'; -import type { UserStorageContactEntry } from '../types'; +import { + USER_STORAGE_VERSION, + USER_STORAGE_VERSION_KEY, +} from '../constants.js'; +import type { UserStorageContactEntry } from '../types.js'; // Base timestamp for predictable testing const NOW = 1657000000000; diff --git a/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/__fixtures__/test-utils.ts b/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/__fixtures__/test-utils.ts index 8a1ea37ab54..965c3d82fb1 100644 --- a/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/__fixtures__/test-utils.ts +++ b/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/__fixtures__/test-utils.ts @@ -12,7 +12,7 @@ import { Messenger as MessengerImpl, } from '@metamask/messenger'; -import { MOCK_LOCAL_CONTACTS } from './mockContacts'; +import { MOCK_LOCAL_CONTACTS } from './mockContacts.js'; /** * Test Utility - create a mock user storage messenger for contact syncing tests diff --git a/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/controller-integration.test.ts b/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/controller-integration.test.ts index 214e55c1aae..63c07a9da2a 100644 --- a/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/controller-integration.test.ts +++ b/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/controller-integration.test.ts @@ -1,18 +1,18 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import type { AddressBookEntry } from '@metamask/address-book-controller'; -import { USER_STORAGE_FEATURE_NAMES } from '../../../shared/storage-schema'; +import { USER_STORAGE_FEATURE_NAMES } from '../../../shared/storage-schema.js'; import { MOCK_LOCAL_CONTACTS, MOCK_REMOTE_CONTACTS, -} from './__fixtures__/mockContacts'; +} from './__fixtures__/mockContacts.js'; import { mockUserStorageMessengerForContactSyncing, createMockUserStorageContacts, -} from './__fixtures__/test-utils'; -import * as ContactSyncingControllerIntegrationModule from './controller-integration'; -import * as ContactSyncingUtils from './sync-utils'; -import type { ContactSyncingOptions } from './types'; +} from './__fixtures__/test-utils.js'; +import * as ContactSyncingControllerIntegrationModule from './controller-integration.js'; +import * as ContactSyncingUtils from './sync-utils.js'; +import type { ContactSyncingOptions } from './types.js'; // Mock UserStorageController to avoid json-rpc-engine dependency issues class MockUserStorageController { diff --git a/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/controller-integration.ts b/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/controller-integration.ts index 08e0d05809b..3a2f40004d7 100644 --- a/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/controller-integration.ts +++ b/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/controller-integration.ts @@ -1,16 +1,16 @@ import type { AddressBookEntry } from '@metamask/address-book-controller'; -import { USER_STORAGE_FEATURE_NAMES } from '../../../shared/storage-schema'; -import { TraceName } from '../constants'; -import { canPerformContactSyncing } from './sync-utils'; -import type { ContactSyncingOptions } from './types'; -import type { UserStorageContactEntry } from './types'; -import type { SyncAddressBookEntry } from './utils'; +import { USER_STORAGE_FEATURE_NAMES } from '../../../shared/storage-schema.js'; +import { TraceName } from '../constants.js'; +import { canPerformContactSyncing } from './sync-utils.js'; +import type { ContactSyncingOptions } from './types.js'; +import type { UserStorageContactEntry } from './types.js'; +import type { SyncAddressBookEntry } from './utils.js'; import { mapAddressBookEntryToUserStorageEntry, mapUserStorageEntryToAddressBookEntry, -} from './utils'; -import { isContactBridgedFromAccounts } from './utils'; +} from './utils.js'; +import { isContactBridgedFromAccounts } from './utils.js'; export type SyncContactsWithUserStorageConfig = { onContactSyncErroneousSituation?: ( @@ -81,7 +81,7 @@ export async function syncContactsWithUserStorage( .filter((contact) => !isContactBridgedFromAccounts(contact)) .filter( (contact) => contact.address && contact.chainId && contact.name?.trim(), - ) || []; + ) ?? []; // Get remote contacts from user storage API const remoteContacts = await getRemoteContacts(options); @@ -90,7 +90,7 @@ export async function syncContactsWithUserStorage( const validRemoteContacts = remoteContacts?.filter( (contact) => contact.address && contact.chainId && contact.name?.trim(), - ) || []; + ) ?? []; const performSync = async () => { try { @@ -140,8 +140,8 @@ export async function syncContactsWithUserStorage( if (hasContentDifference) { // Check timestamps to determine which version to keep - const localTimestamp = localContact.lastUpdatedAt || 0; - const remoteTimestamp = remoteContact.lastUpdatedAt || 0; + const localTimestamp = localContact.lastUpdatedAt ?? 0; + const remoteTimestamp = remoteContact.lastUpdatedAt ?? 0; if (localTimestamp >= remoteTimestamp) { // Local is newer (or same age) - use local version @@ -192,9 +192,9 @@ export async function syncContactsWithUserStorage( getMessenger().call( 'AddressBookController:set', contact.address, - contact.name || '', + contact.name ?? '', contact.chainId, - contact.memo || '', + contact.memo ?? '', contact.addressType, ); @@ -383,8 +383,8 @@ export async function updateContactInRemoteStorage( // Create an updated entry with timestamp const updatedEntry = { ...contact, - lastUpdatedAt: contact.lastUpdatedAt || Date.now(), - } as SyncAddressBookEntry; + lastUpdatedAt: contact.lastUpdatedAt ?? Date.now(), + }; const key = createContactKey(contact); const storageEntry = mapAddressBookEntryToUserStorageEntry(updatedEntry); @@ -461,7 +461,7 @@ export async function deleteContactInRemoteStorage( ...existingContact, deletedAt: now, lastUpdatedAt: now, - } as SyncAddressBookEntry; + }; const deletedStorageEntry = mapAddressBookEntryToUserStorageEntry(deletedContact); diff --git a/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/setup-subscriptions.test.ts b/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/setup-subscriptions.test.ts index 00475971500..f10c21b63ee 100644 --- a/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/setup-subscriptions.test.ts +++ b/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/setup-subscriptions.test.ts @@ -1,6 +1,6 @@ -import * as ControllerIntegration from './controller-integration'; -import { setupContactSyncingSubscriptions } from './setup-subscriptions'; -import * as SyncUtils from './sync-utils'; +import * as ControllerIntegration from './controller-integration.js'; +import { setupContactSyncingSubscriptions } from './setup-subscriptions.js'; +import * as SyncUtils from './sync-utils.js'; // Define a type for the contact data type AddressBookContactData = { diff --git a/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/setup-subscriptions.ts b/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/setup-subscriptions.ts index c6d82a875e2..9613efba446 100644 --- a/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/setup-subscriptions.ts +++ b/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/setup-subscriptions.ts @@ -3,10 +3,10 @@ import type { AddressBookEntry } from '@metamask/address-book-controller'; import { updateContactInRemoteStorage, deleteContactInRemoteStorage, -} from './controller-integration'; -import { canPerformContactSyncing } from './sync-utils'; -import type { ContactSyncingOptions } from './types'; -import { isContactBridgedFromAccounts } from './utils'; +} from './controller-integration.js'; +import { canPerformContactSyncing } from './sync-utils.js'; +import type { ContactSyncingOptions } from './types.js'; +import { isContactBridgedFromAccounts } from './utils.js'; /** * Initialize and setup events to listen to for contact syncing diff --git a/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/sync-utils.test.ts b/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/sync-utils.test.ts index 989cb3be494..23e362b6ec2 100644 --- a/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/sync-utils.test.ts +++ b/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/sync-utils.test.ts @@ -1,5 +1,5 @@ -import { canPerformContactSyncing } from './sync-utils'; -import type { ContactSyncingOptions } from './types'; +import { canPerformContactSyncing } from './sync-utils.js'; +import type { ContactSyncingOptions } from './types.js'; describe('user-storage/contact-syncing/sync-utils', () => { describe('canPerformContactSyncing', () => { diff --git a/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/sync-utils.ts b/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/sync-utils.ts index f5767356830..723cbe17128 100644 --- a/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/sync-utils.ts +++ b/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/sync-utils.ts @@ -1,4 +1,4 @@ -import type { ContactSyncingOptions } from './types'; +import type { ContactSyncingOptions } from './types.js'; /** * Check if we can perform contact syncing diff --git a/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/types.ts b/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/types.ts index 9b0c9ff138b..e0bcbe3ed62 100644 --- a/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/types.ts +++ b/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/types.ts @@ -1,12 +1,12 @@ import type { TraceCallback } from '@metamask/controller-utils'; import type { Hex } from '@metamask/utils'; -import type { UserStorageControllerMessenger } from '../UserStorageController'; -import type { UserStorageController } from '../UserStorageController'; +import type { UserStorageControllerMessenger } from '../UserStorageController.js'; +import type { UserStorageController } from '../UserStorageController.js'; import type { USER_STORAGE_VERSION_KEY, USER_STORAGE_VERSION, -} from './constants'; +} from './constants.js'; export type UserStorageContactEntry = { /** diff --git a/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/utils.test.ts b/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/utils.test.ts index c0f2572337e..c40d195c4a8 100644 --- a/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/utils.test.ts +++ b/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/utils.test.ts @@ -1,12 +1,12 @@ import type { AddressBookEntry } from '@metamask/address-book-controller'; -import { USER_STORAGE_VERSION, USER_STORAGE_VERSION_KEY } from './constants'; -import type { UserStorageContactEntry } from './types'; +import { USER_STORAGE_VERSION, USER_STORAGE_VERSION_KEY } from './constants.js'; +import type { UserStorageContactEntry } from './types.js'; import { mapAddressBookEntryToUserStorageEntry, mapUserStorageEntryToAddressBookEntry, -} from './utils'; -import type { SyncAddressBookEntry } from './utils'; +} from './utils.js'; +import type { SyncAddressBookEntry } from './utils.js'; describe('user-storage/contact-syncing/utils', () => { // Use checksum address format for consistent testing diff --git a/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/utils.ts b/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/utils.ts index 889857b2017..15acd3e0c80 100644 --- a/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/utils.ts +++ b/packages/profile-sync-controller/src/controllers/user-storage/contact-syncing/utils.ts @@ -3,8 +3,8 @@ import type { AddressType, } from '@metamask/address-book-controller'; -import { USER_STORAGE_VERSION_KEY, USER_STORAGE_VERSION } from './constants'; -import type { UserStorageContactEntry } from './types'; +import { USER_STORAGE_VERSION_KEY, USER_STORAGE_VERSION } from './constants.js'; +import type { UserStorageContactEntry } from './types.js'; /** * Extends AddressBookEntry with sync metadata diff --git a/packages/profile-sync-controller/src/controllers/user-storage/index.ts b/packages/profile-sync-controller/src/controllers/user-storage/index.ts index c6d746f502b..d9b62c04357 100644 --- a/packages/profile-sync-controller/src/controllers/user-storage/index.ts +++ b/packages/profile-sync-controller/src/controllers/user-storage/index.ts @@ -1,12 +1,12 @@ -import { UserStorageController } from './UserStorageController'; +import { UserStorageController } from './UserStorageController.js'; export { UserStorageController as Controller }; export default UserStorageController; -export * from './UserStorageController'; -export * as Mocks from './mocks'; -export * from './constants'; -export * from '../../shared/encryption'; -export * from '../../shared/storage-schema'; +export * from './UserStorageController.js'; +export * as Mocks from './mocks.js'; +export * from './constants.js'; +export * from '../../shared/encryption.js'; +export * from '../../shared/storage-schema.js'; export type { UserStorageControllerPerformGetStorageAction, UserStorageControllerPerformGetStorageAllFeatureEntriesAction, @@ -20,4 +20,4 @@ export type { UserStorageControllerSetIsBackupAndSyncFeatureEnabledAction, UserStorageControllerSetIsContactSyncingInProgressAction, UserStorageControllerSyncContactsWithUserStorageAction, -} from './UserStorageController-method-action-types'; +} from './UserStorageController-method-action-types.js'; diff --git a/packages/profile-sync-controller/src/controllers/user-storage/mocks/index.ts b/packages/profile-sync-controller/src/controllers/user-storage/mocks/index.ts index bd3cb394f52..bf88958b315 100644 --- a/packages/profile-sync-controller/src/controllers/user-storage/mocks/index.ts +++ b/packages/profile-sync-controller/src/controllers/user-storage/mocks/index.ts @@ -1,2 +1,2 @@ -export * from './mockResponses'; -export * from './mockStorage'; +export * from './mockResponses.js'; +export * from './mockStorage.js'; diff --git a/packages/profile-sync-controller/src/controllers/user-storage/mocks/mockResponses.ts b/packages/profile-sync-controller/src/controllers/user-storage/mocks/mockResponses.ts index ec85757566b..0e6480e09e1 100644 --- a/packages/profile-sync-controller/src/controllers/user-storage/mocks/mockResponses.ts +++ b/packages/profile-sync-controller/src/controllers/user-storage/mocks/mockResponses.ts @@ -1,21 +1,21 @@ -import { Env, getEnvUrls } from '../../../sdk'; +import { Env, getEnvUrls } from '../../../sdk.js'; import type { UserStorageGenericPathWithFeatureAndKey, UserStorageGenericPathWithFeatureOnly, -} from '../../../shared/storage-schema'; +} from '../../../shared/storage-schema.js'; import { createEntryPath, USER_STORAGE_FEATURE_NAMES, -} from '../../../shared/storage-schema'; +} from '../../../shared/storage-schema.js'; import type { GetUserStorageAllFeatureEntriesResponse, GetUserStorageResponse, -} from '../types'; +} from '../types.js'; import { MOCK_ENCRYPTED_STORAGE_DATA, MOCK_STORAGE_DATA, MOCK_STORAGE_KEY, -} from './mockStorage'; +} from './mockStorage.js'; type MockResponse = { url: string; diff --git a/packages/profile-sync-controller/src/controllers/user-storage/mocks/mockStorage.ts b/packages/profile-sync-controller/src/controllers/user-storage/mocks/mockStorage.ts index c6de9beeac0..f5ca9938de6 100644 --- a/packages/profile-sync-controller/src/controllers/user-storage/mocks/mockStorage.ts +++ b/packages/profile-sync-controller/src/controllers/user-storage/mocks/mockStorage.ts @@ -1,4 +1,4 @@ -import encryption, { createSHA256Hash } from '../../../shared/encryption'; +import encryption, { createSHA256Hash } from '../../../shared/encryption.js'; export const MOCK_STORAGE_KEY_SIGNATURE = 'mockStorageKey'; export const MOCK_STORAGE_KEY = createSHA256Hash(MOCK_STORAGE_KEY_SIGNATURE); diff --git a/packages/profile-sync-controller/src/controllers/user-storage/types.ts b/packages/profile-sync-controller/src/controllers/user-storage/types.ts index 1f38d86905b..923954cbc86 100644 --- a/packages/profile-sync-controller/src/controllers/user-storage/types.ts +++ b/packages/profile-sync-controller/src/controllers/user-storage/types.ts @@ -1,8 +1,8 @@ import type { UserStorageGenericPathWithFeatureAndKey, UserStorageGenericPathWithFeatureOnly, -} from '../../shared/storage-schema'; -import type { NativeScrypt } from '../../shared/types/encryption'; +} from '../../shared/storage-schema.js'; +import type { NativeScrypt } from '../../shared/types/encryption.js'; export type UserStorageBaseOptions = { bearerToken: string; diff --git a/packages/profile-sync-controller/src/controllers/user-storage/utils.test.ts b/packages/profile-sync-controller/src/controllers/user-storage/utils.test.ts index cecdf729f25..fd5e4e8171d 100644 --- a/packages/profile-sync-controller/src/controllers/user-storage/utils.test.ts +++ b/packages/profile-sync-controller/src/controllers/user-storage/utils.test.ts @@ -1,4 +1,4 @@ -import { setDifference, setIntersection } from './utils'; +import { setDifference, setIntersection } from './utils.js'; describe('utils - setDifference()', () => { it('should return the difference between 2 sets', () => { diff --git a/packages/profile-sync-controller/src/index.ts b/packages/profile-sync-controller/src/index.ts index 0140b052cbe..91f6974258b 100644 --- a/packages/profile-sync-controller/src/index.ts +++ b/packages/profile-sync-controller/src/index.ts @@ -1,3 +1,3 @@ -export * as SDK from './sdk'; -export * as AuthenticationController from './controllers/authentication'; -export * as UserStorageController from './controllers/user-storage'; +export type * as SDK from './sdk.js'; +export * as AuthenticationController from './controllers/authentication.js'; +export * as UserStorageController from './controllers/user-storage.js'; diff --git a/packages/profile-sync-controller/src/sdk/__fixtures__/auth.ts b/packages/profile-sync-controller/src/sdk/__fixtures__/auth.ts index 791d6658341..1879d580165 100644 --- a/packages/profile-sync-controller/src/sdk/__fixtures__/auth.ts +++ b/packages/profile-sync-controller/src/sdk/__fixtures__/auth.ts @@ -16,7 +16,7 @@ import { MOCK_USER_PROFILE_LINEAGE_RESPONSE, MOCK_CUSTOMER_SERVICE_TOKEN_URL, MOCK_CUSTOMER_SERVICE_TOKEN_RESPONSE, -} from '../mocks/auth'; +} from '../mocks/auth.js'; type MockReply = { status: nock.StatusCode; diff --git a/packages/profile-sync-controller/src/sdk/__fixtures__/test-utils.ts b/packages/profile-sync-controller/src/sdk/__fixtures__/test-utils.ts index b8cd5f72f77..725b522e076 100644 --- a/packages/profile-sync-controller/src/sdk/__fixtures__/test-utils.ts +++ b/packages/profile-sync-controller/src/sdk/__fixtures__/test-utils.ts @@ -1,13 +1,13 @@ import type { Eip1193Provider } from 'ethers'; -import { Env, Platform } from '../../shared/env'; -import { JwtBearerAuth } from '../authentication'; +import { Env, Platform } from '../../shared/env.js'; import type { AuthSigningOptions, AuthStorageOptions, -} from '../authentication-jwt-bearer/types'; -import { AuthType } from '../authentication-jwt-bearer/types'; -import { SNAP_ORIGIN } from '../utils/messaging-signing-snap-requests'; +} from '../authentication-jwt-bearer/types.js'; +import { AuthType } from '../authentication-jwt-bearer/types.js'; +import { JwtBearerAuth } from '../authentication.js'; +import { SNAP_ORIGIN } from '../utils/messaging-signing-snap-requests.js'; // Alias mocking variables with ANY to test runtime safety. // eslint-disable-next-line @typescript-eslint/no-explicit-any diff --git a/packages/profile-sync-controller/src/sdk/__fixtures__/userstorage.ts b/packages/profile-sync-controller/src/sdk/__fixtures__/userstorage.ts index a5678ba6328..052c87b51ac 100644 --- a/packages/profile-sync-controller/src/sdk/__fixtures__/userstorage.ts +++ b/packages/profile-sync-controller/src/sdk/__fixtures__/userstorage.ts @@ -4,7 +4,7 @@ import { MOCK_STORAGE_RESPONSE, MOCK_STORAGE_URL, MOCK_STORAGE_URL_ALL_FEATURE_ENTRIES, -} from '../mocks/userstorage'; +} from '../mocks/userstorage.js'; type MockReply = { status: nock.StatusCode; diff --git a/packages/profile-sync-controller/src/sdk/authentication-jwt-bearer/flow-siwe.ts b/packages/profile-sync-controller/src/sdk/authentication-jwt-bearer/flow-siwe.ts index 487e4f019b5..340a8d98a14 100644 --- a/packages/profile-sync-controller/src/sdk/authentication-jwt-bearer/flow-siwe.ts +++ b/packages/profile-sync-controller/src/sdk/authentication-jwt-bearer/flow-siwe.ts @@ -1,7 +1,7 @@ import { SiweMessage } from 'siwe'; -import { ValidationError } from '../errors'; -import { validateLoginResponse } from '../utils/validate-login-response'; +import { ValidationError } from '../errors.js'; +import { validateLoginResponse } from '../utils/validate-login-response.js'; import { SIWE_LOGIN_URL, authenticate, @@ -9,7 +9,7 @@ import { getCustomerServiceToken, getNonce, getUserProfileLineage, -} from './services'; +} from './services.js'; import type { AuthConfig, AuthStorageOptions, @@ -18,7 +18,7 @@ import type { LoginResponse, UserProfile, UserProfileLineage, -} from './types'; +} from './types.js'; type JwtBearerAuth_SIWE_Options = { storage: AuthStorageOptions; diff --git a/packages/profile-sync-controller/src/sdk/authentication-jwt-bearer/flow-srp.test.ts b/packages/profile-sync-controller/src/sdk/authentication-jwt-bearer/flow-srp.test.ts index 47149e3d78c..07e7e0fb31f 100644 --- a/packages/profile-sync-controller/src/sdk/authentication-jwt-bearer/flow-srp.test.ts +++ b/packages/profile-sync-controller/src/sdk/authentication-jwt-bearer/flow-srp.test.ts @@ -1,9 +1,9 @@ -import { Env, Platform } from '../../shared/env'; -import { RateLimitedError } from '../errors'; -import { PAIR_DEDUPE_TTL_MS, SRPJwtBearerAuth } from './flow-srp'; -import { AuthType } from './types'; -import type { AuthConfig, LoginResponse, UserProfile } from './types'; -import * as timeUtils from './utils/time'; +import { Env, Platform } from '../../shared/env.js'; +import { RateLimitedError } from '../errors.js'; +import { PAIR_DEDUPE_TTL_MS, SRPJwtBearerAuth } from './flow-srp.js'; +import { AuthType } from './types.js'; +import type { AuthConfig, LoginResponse, UserProfile } from './types.js'; +import * as timeUtils from './utils/time.js'; jest.setTimeout(15000); diff --git a/packages/profile-sync-controller/src/sdk/authentication-jwt-bearer/flow-srp.ts b/packages/profile-sync-controller/src/sdk/authentication-jwt-bearer/flow-srp.ts index 5cd06ded822..b2685d70c11 100644 --- a/packages/profile-sync-controller/src/sdk/authentication-jwt-bearer/flow-srp.ts +++ b/packages/profile-sync-controller/src/sdk/authentication-jwt-bearer/flow-srp.ts @@ -1,15 +1,15 @@ import type { Eip1193Provider } from 'ethers'; -import type { MetaMetricsAuth } from '../../shared/types/services'; -import { ValidationError, RateLimitedError } from '../errors'; -import { getMetaMaskProviderEIP6963 } from '../utils/eip-6963-metamask-provider'; +import type { MetaMetricsAuth } from '../../shared/types/services.js'; +import { ValidationError, RateLimitedError } from '../errors.js'; +import { getMetaMaskProviderEIP6963 } from '../utils/eip-6963-metamask-provider.js'; import { MESSAGE_SIGNING_SNAP, assertMessageStartsWithMetamask, connectSnap, isSnapConnected, -} from '../utils/messaging-signing-snap-requests'; -import { validateLoginResponse } from '../utils/validate-login-response'; +} from '../utils/messaging-signing-snap-requests.js'; +import { validateLoginResponse } from '../utils/validate-login-response.js'; import { authenticate, authorizeOIDC, @@ -17,8 +17,8 @@ import { getNonce, getUserProfileLineage, pairProfiles, -} from './services'; -import type { PairProfilesResponse } from './services'; +} from './services.js'; +import type { PairProfilesResponse } from './services.js'; import type { AuthConfig, AuthSigningOptions, @@ -28,9 +28,9 @@ import type { LoginResponse, UserProfile, UserProfileLineage, -} from './types'; -import { computeIdentifierId } from './utils/identifier'; -import * as timeUtils from './utils/time'; +} from './types.js'; +import { computeIdentifierId } from './utils/identifier.js'; +import * as timeUtils from './utils/time.js'; type JwtBearerAuth_SRP_Options = { storage: AuthStorageOptions; diff --git a/packages/profile-sync-controller/src/sdk/authentication-jwt-bearer/services.test.ts b/packages/profile-sync-controller/src/sdk/authentication-jwt-bearer/services.test.ts index d027faf50dd..a34f2e40b5e 100644 --- a/packages/profile-sync-controller/src/sdk/authentication-jwt-bearer/services.test.ts +++ b/packages/profile-sync-controller/src/sdk/authentication-jwt-bearer/services.test.ts @@ -1,10 +1,10 @@ -import { Env, Platform } from '../../shared/env'; +import { Env, Platform } from '../../shared/env.js'; import { NonceRetrievalError, SignInError, PairError, RateLimitedError, -} from '../errors'; +} from '../errors.js'; import { getNonce, authenticate, @@ -21,8 +21,8 @@ import { PAIR_PROFILES_URL, PROFILE_LINEAGE_URL, CUSTOMER_SERVICE_TOKEN_URL, -} from './services'; -import { AuthType } from './types'; +} from './services.js'; +import { AuthType } from './types.js'; // Mock global fetch const mockFetch = jest.fn(); diff --git a/packages/profile-sync-controller/src/sdk/authentication-jwt-bearer/services.ts b/packages/profile-sync-controller/src/sdk/authentication-jwt-bearer/services.ts index 5c3a5be2249..28e00886599 100644 --- a/packages/profile-sync-controller/src/sdk/authentication-jwt-bearer/services.ts +++ b/packages/profile-sync-controller/src/sdk/authentication-jwt-bearer/services.ts @@ -1,23 +1,22 @@ -import type { Env, Platform } from '../../shared/env'; -import { getEnvUrls, getOidcClientId } from '../../shared/env'; -import type { MetaMetricsAuth } from '../../shared/types/services'; -import { HTTP_STATUS_CODES } from '../constants'; +import type { Env, Platform } from '../../shared/env.js'; +import { getEnvUrls, getOidcClientId } from '../../shared/env.js'; +import type { MetaMetricsAuth } from '../../shared/types/services.js'; +import { HTTP_STATUS_CODES } from '../constants.js'; import { NonceRetrievalError, PairError, SignInError, ValidationError, RateLimitedError, -} from '../errors'; -import { validatePairResponse } from '../utils/validate-pair-response'; +} from '../errors.js'; +import { validatePairResponse } from '../utils/validate-pair-response.js'; import type { AccessToken, - ErrorMessage, ProfileAlias, UserProfile, UserProfileLineage, -} from './types'; -import { AuthType } from './types'; +} from './types.js'; +import { AuthType } from './types.js'; /** * Parse Retry-After header into milliseconds if possible. @@ -56,10 +55,7 @@ async function getResponseErrorMessage(response: Response): Promise { let error = 'unknown'; try { - const responseBody = (await response.json()) as - | ErrorMessage - // eslint-disable-next-line @typescript-eslint/naming-convention - | { error_description: string; error: string }; + const responseBody = await response.json(); message = 'message' in responseBody diff --git a/packages/profile-sync-controller/src/sdk/authentication-jwt-bearer/types.ts b/packages/profile-sync-controller/src/sdk/authentication-jwt-bearer/types.ts index 2dae8fa502a..9d2e35fbb2d 100644 --- a/packages/profile-sync-controller/src/sdk/authentication-jwt-bearer/types.ts +++ b/packages/profile-sync-controller/src/sdk/authentication-jwt-bearer/types.ts @@ -1,4 +1,4 @@ -import type { Env, Platform } from '../../shared/env'; +import type { Env, Platform } from '../../shared/env.js'; export enum AuthType { /* sign in using a private key derived from your secret recovery phrase (SRP). diff --git a/packages/profile-sync-controller/src/sdk/authentication-jwt-bearer/utils/identifier.test.ts b/packages/profile-sync-controller/src/sdk/authentication-jwt-bearer/utils/identifier.test.ts index b314092cd6d..7696fb392c3 100644 --- a/packages/profile-sync-controller/src/sdk/authentication-jwt-bearer/utils/identifier.test.ts +++ b/packages/profile-sync-controller/src/sdk/authentication-jwt-bearer/utils/identifier.test.ts @@ -1,6 +1,6 @@ -import { createSHA256Hash } from '../../../shared/encryption'; -import { Env } from '../../../shared/env'; -import { computeIdentifierId, IDENTIFIER_SALT } from './identifier'; +import { createSHA256Hash } from '../../../shared/encryption.js'; +import { Env } from '../../../shared/env.js'; +import { computeIdentifierId, IDENTIFIER_SALT } from './identifier.js'; describe('computeIdentifierId', () => { const MOCK_PUBLIC_KEY = diff --git a/packages/profile-sync-controller/src/sdk/authentication-jwt-bearer/utils/identifier.ts b/packages/profile-sync-controller/src/sdk/authentication-jwt-bearer/utils/identifier.ts index 93bfaaf515b..d991e324171 100644 --- a/packages/profile-sync-controller/src/sdk/authentication-jwt-bearer/utils/identifier.ts +++ b/packages/profile-sync-controller/src/sdk/authentication-jwt-bearer/utils/identifier.ts @@ -1,5 +1,5 @@ -import { createSHA256Hash } from '../../../shared/encryption'; -import type { Env } from '../../../shared/env'; +import { createSHA256Hash } from '../../../shared/encryption.js'; +import type { Env } from '../../../shared/env.js'; export const IDENTIFIER_SALT: Record = { dev: 'Baiche1eu8Oa2een5ieReul0Phooph4e', diff --git a/packages/profile-sync-controller/src/sdk/authentication.test.ts b/packages/profile-sync-controller/src/sdk/authentication.test.ts index f854e8ea776..f37623eb8be 100644 --- a/packages/profile-sync-controller/src/sdk/authentication.test.ts +++ b/packages/profile-sync-controller/src/sdk/authentication.test.ts @@ -1,21 +1,21 @@ import type { Eip1193Provider } from 'ethers'; -import { Env, Platform } from '../shared/env'; -import { arrangeAuthAPIs } from './__fixtures__/auth'; -import type { MockVariable } from './__fixtures__/test-utils'; -import { arrangeAuth, arrangeMockProvider } from './__fixtures__/test-utils'; -import { JwtBearerAuth } from './authentication'; -import * as AuthServices from './authentication-jwt-bearer/services'; -import type { LoginResponse, Pair } from './authentication-jwt-bearer/types'; +import { Env, Platform } from '../shared/env.js'; +import { arrangeAuthAPIs } from './__fixtures__/auth.js'; +import type { MockVariable } from './__fixtures__/test-utils.js'; +import { arrangeAuth, arrangeMockProvider } from './__fixtures__/test-utils.js'; +import * as AuthServices from './authentication-jwt-bearer/services.js'; +import type { LoginResponse, Pair } from './authentication-jwt-bearer/types.js'; +import { JwtBearerAuth } from './authentication.js'; import { NonceRetrievalError, PairError, SignInError, UnsupportedAuthTypeError, ValidationError, -} from './errors'; -import { MOCK_ACCESS_JWT, MOCK_SRP_LOGIN_RESPONSE } from './mocks/auth'; -import * as Eip6963MetamaskProvider from './utils/eip-6963-metamask-provider'; +} from './errors.js'; +import { MOCK_ACCESS_JWT, MOCK_SRP_LOGIN_RESPONSE } from './mocks/auth.js'; +import * as Eip6963MetamaskProvider from './utils/eip-6963-metamask-provider.js'; const MOCK_SRP = '0x6265617665726275696c642e6f7267'; const MOCK_ADDRESS = '0x68757d15a4d8d1421c17003512AFce15D3f3FaDa'; diff --git a/packages/profile-sync-controller/src/sdk/authentication.ts b/packages/profile-sync-controller/src/sdk/authentication.ts index fdff9253a0a..5afeff8c5c3 100644 --- a/packages/profile-sync-controller/src/sdk/authentication.ts +++ b/packages/profile-sync-controller/src/sdk/authentication.ts @@ -1,20 +1,20 @@ import type { Eip1193Provider } from 'ethers'; -import type { Env } from '../shared/env'; -import { SIWEJwtBearerAuth } from './authentication-jwt-bearer/flow-siwe'; -import { SRPJwtBearerAuth } from './authentication-jwt-bearer/flow-srp'; +import type { Env } from '../shared/env.js'; +import { SIWEJwtBearerAuth } from './authentication-jwt-bearer/flow-siwe.js'; +import { SRPJwtBearerAuth } from './authentication-jwt-bearer/flow-srp.js'; import { getNonce, pairIdentifiers, -} from './authentication-jwt-bearer/services'; -import type { PairProfilesResponse } from './authentication-jwt-bearer/services'; +} from './authentication-jwt-bearer/services.js'; +import type { PairProfilesResponse } from './authentication-jwt-bearer/services.js'; import type { UserProfile, Pair, UserProfileLineage, -} from './authentication-jwt-bearer/types'; -import { AuthType } from './authentication-jwt-bearer/types'; -import { PairError, UnsupportedAuthTypeError } from './errors'; +} from './authentication-jwt-bearer/types.js'; +import { AuthType } from './authentication-jwt-bearer/types.js'; +import { PairError, UnsupportedAuthTypeError } from './errors.js'; // Computing the Classes, so we only get back the public methods for the interface. @@ -169,6 +169,6 @@ export class JwtBearerAuth implements SIWEInterface, SRPInterface { } } -export { SIWEJwtBearerAuth } from './authentication-jwt-bearer/flow-siwe'; -export { SRPJwtBearerAuth } from './authentication-jwt-bearer/flow-srp'; -export * from './authentication-jwt-bearer/types'; +export { SIWEJwtBearerAuth } from './authentication-jwt-bearer/flow-siwe.js'; +export { SRPJwtBearerAuth } from './authentication-jwt-bearer/flow-srp.js'; +export * from './authentication-jwt-bearer/types.js'; diff --git a/packages/profile-sync-controller/src/sdk/errors.ts b/packages/profile-sync-controller/src/sdk/errors.ts index ac2c0a7ee3a..38c056ea01b 100644 --- a/packages/profile-sync-controller/src/sdk/errors.ts +++ b/packages/profile-sync-controller/src/sdk/errors.ts @@ -1,4 +1,4 @@ -import { HTTP_STATUS_CODES } from './constants'; +import { HTTP_STATUS_CODES } from './constants.js'; export class NonceRetrievalError extends Error { constructor(message: string) { diff --git a/packages/profile-sync-controller/src/sdk/index.ts b/packages/profile-sync-controller/src/sdk/index.ts index 21bedd22a7e..f0484fea2f4 100644 --- a/packages/profile-sync-controller/src/sdk/index.ts +++ b/packages/profile-sync-controller/src/sdk/index.ts @@ -1,7 +1,7 @@ -export * from './authentication'; -export * from './user-storage'; -export * from './errors'; -export * from './utils/messaging-signing-snap-requests'; -export * from '../shared/encryption'; -export * from '../shared/env'; -export * from '../shared/storage-schema'; +export * from './authentication.js'; +export * from './user-storage.js'; +export * from './errors.js'; +export * from './utils/messaging-signing-snap-requests.js'; +export * from '../shared/encryption.js'; +export * from '../shared/env.js'; +export * from '../shared/storage-schema.js'; diff --git a/packages/profile-sync-controller/src/sdk/mocks/auth.ts b/packages/profile-sync-controller/src/sdk/mocks/auth.ts index 8d50ff88af8..774b53d4776 100644 --- a/packages/profile-sync-controller/src/sdk/mocks/auth.ts +++ b/packages/profile-sync-controller/src/sdk/mocks/auth.ts @@ -1,4 +1,4 @@ -import { Env, Platform } from '../../shared/env'; +import { Env, Platform } from '../../shared/env.js'; import { NONCE_URL, SIWE_LOGIN_URL, @@ -8,7 +8,7 @@ import { PAIR_PROFILES_URL, PROFILE_LINEAGE_URL, CUSTOMER_SERVICE_TOKEN_URL, -} from '../authentication-jwt-bearer/services'; +} from '../authentication-jwt-bearer/services.js'; export const MOCK_NONCE_URL = NONCE_URL(Env.PRD); export const MOCK_SRP_LOGIN_URL = SRP_LOGIN_URL(Env.PRD); diff --git a/packages/profile-sync-controller/src/sdk/mocks/userstorage.ts b/packages/profile-sync-controller/src/sdk/mocks/userstorage.ts index ecd341fc3bd..19737b11d53 100644 --- a/packages/profile-sync-controller/src/sdk/mocks/userstorage.ts +++ b/packages/profile-sync-controller/src/sdk/mocks/userstorage.ts @@ -1,7 +1,7 @@ -import encryption, { createSHA256Hash } from '../../shared/encryption'; -import { Env } from '../../shared/env'; -import { USER_STORAGE_FEATURE_NAMES } from '../../shared/storage-schema'; -import { STORAGE_URL } from '../user-storage'; +import encryption, { createSHA256Hash } from '../../shared/encryption.js'; +import { Env } from '../../shared/env.js'; +import { USER_STORAGE_FEATURE_NAMES } from '../../shared/storage-schema.js'; +import { STORAGE_URL } from '../user-storage.js'; // Example mock notifications storage entry (wildcard) export const MOCK_STORAGE_URL = STORAGE_URL( diff --git a/packages/profile-sync-controller/src/sdk/user-storage.test.ts b/packages/profile-sync-controller/src/sdk/user-storage.test.ts index 397fcbd298c..7e70e023886 100644 --- a/packages/profile-sync-controller/src/sdk/user-storage.test.ts +++ b/packages/profile-sync-controller/src/sdk/user-storage.test.ts @@ -1,12 +1,12 @@ import nock from 'nock'; import type { UserStorageGenericFeatureKey } from 'src/shared/storage-schema'; -import encryption, { createSHA256Hash } from '../shared/encryption'; -import { SHARED_SALT } from '../shared/encryption/constants'; -import { Env } from '../shared/env'; -import { USER_STORAGE_FEATURE_NAMES } from '../shared/storage-schema'; -import { arrangeAuthAPIs } from './__fixtures__/auth'; -import { arrangeAuth, typedMockFn } from './__fixtures__/test-utils'; +import encryption, { createSHA256Hash } from '../shared/encryption.js'; +import { SHARED_SALT } from '../shared/encryption/constants.js'; +import { Env } from '../shared/env.js'; +import { USER_STORAGE_FEATURE_NAMES } from '../shared/storage-schema.js'; +import { arrangeAuthAPIs } from './__fixtures__/auth.js'; +import { arrangeAuth, typedMockFn } from './__fixtures__/test-utils.js'; import { handleMockUserStorageGet, handleMockUserStoragePut, @@ -14,18 +14,18 @@ import { handleMockUserStorageDeleteAllFeatureEntries, handleMockUserStorageDelete, handleMockUserStorageBatchDelete, -} from './__fixtures__/userstorage'; -import type { IBaseAuth } from './authentication-jwt-bearer/types'; -import { NotFoundError, UserStorageError } from './errors'; +} from './__fixtures__/userstorage.js'; +import type { IBaseAuth } from './authentication-jwt-bearer/types.js'; +import { NotFoundError, UserStorageError } from './errors.js'; import { MOCK_NOTIFICATIONS_DATA, MOCK_STORAGE_KEY, MOCK_STORAGE_RESPONSE, MOCK_STORAGE_URL, MOCK_STORAGE_URL_ALL_FEATURE_ENTRIES, -} from './mocks/userstorage'; -import type { StorageOptions } from './user-storage'; -import { STORAGE_URL, UserStorage } from './user-storage'; +} from './mocks/userstorage.js'; +import type { StorageOptions } from './user-storage.js'; +import { STORAGE_URL, UserStorage } from './user-storage.js'; const MOCK_SRP = '0x6265617665726275696c642e6f7267'; const MOCK_ADDRESS = '0x68757d15a4d8d1421c17003512AFce15D3f3FaDa'; diff --git a/packages/profile-sync-controller/src/sdk/user-storage.ts b/packages/profile-sync-controller/src/sdk/user-storage.ts index df3b59754f3..72002623a4b 100644 --- a/packages/profile-sync-controller/src/sdk/user-storage.ts +++ b/packages/profile-sync-controller/src/sdk/user-storage.ts @@ -1,17 +1,17 @@ -import encryption, { createSHA256Hash } from '../shared/encryption'; -import { SHARED_SALT } from '../shared/encryption/constants'; -import type { Env } from '../shared/env'; -import { getEnvUrls } from '../shared/env'; +import encryption, { createSHA256Hash } from '../shared/encryption.js'; +import { SHARED_SALT } from '../shared/encryption/constants.js'; +import type { Env } from '../shared/env.js'; +import { getEnvUrls } from '../shared/env.js'; import type { UserStorageGenericFeatureKey, UserStorageGenericFeatureName, UserStorageGenericPathWithFeatureAndKey, UserStorageGenericPathWithFeatureOnly, -} from '../shared/storage-schema'; -import { createEntryPath } from '../shared/storage-schema'; -import type { NativeScrypt } from '../shared/types/encryption'; -import type { IBaseAuth } from './authentication-jwt-bearer/types'; -import { NotFoundError, UserStorageError } from './errors'; +} from '../shared/storage-schema.js'; +import { createEntryPath } from '../shared/storage-schema.js'; +import type { NativeScrypt } from '../shared/types/encryption.js'; +import type { IBaseAuth } from './authentication-jwt-bearer/types.js'; +import { NotFoundError, UserStorageError } from './errors.js'; export const STORAGE_URL = (env: Env, encryptedPath: string) => `${getEnvUrls(env).userStorageApiUrl}/api/v1/userstorage/${encryptedPath}`; diff --git a/packages/profile-sync-controller/src/sdk/utils/eip-6963-metamask-provider.test.ts b/packages/profile-sync-controller/src/sdk/utils/eip-6963-metamask-provider.test.ts index 5307131830e..db0c8608819 100644 --- a/packages/profile-sync-controller/src/sdk/utils/eip-6963-metamask-provider.test.ts +++ b/packages/profile-sync-controller/src/sdk/utils/eip-6963-metamask-provider.test.ts @@ -1,11 +1,11 @@ import type { Eip1193Provider } from 'ethers'; -import type { MockVariable } from '../__fixtures__/test-utils'; -import type { AnnounceProviderEvent } from './eip-6963-metamask-provider'; +import type { MockVariable } from '../__fixtures__/test-utils.js'; +import type { AnnounceProviderEvent } from './eip-6963-metamask-provider.js'; import { getMetaMaskProviderEIP6963, metamaskClientsRdns, -} from './eip-6963-metamask-provider'; +} from './eip-6963-metamask-provider.js'; describe('getMetaMaskProviderEIP6963() tests', () => { let unsubscribe: undefined | (() => void); diff --git a/packages/profile-sync-controller/src/sdk/utils/messaging-signing-snap-requests.test.ts b/packages/profile-sync-controller/src/sdk/utils/messaging-signing-snap-requests.test.ts index fb9e022890c..9861629c0e2 100644 --- a/packages/profile-sync-controller/src/sdk/utils/messaging-signing-snap-requests.test.ts +++ b/packages/profile-sync-controller/src/sdk/utils/messaging-signing-snap-requests.test.ts @@ -1,13 +1,13 @@ -import { arrangeMockProvider } from '../__fixtures__/test-utils'; -import type { MockVariable } from '../__fixtures__/test-utils'; -import type { Snap } from './messaging-signing-snap-requests'; +import { arrangeMockProvider } from '../__fixtures__/test-utils.js'; +import type { MockVariable } from '../__fixtures__/test-utils.js'; +import type { Snap } from './messaging-signing-snap-requests.js'; import { MESSAGE_SIGNING_SNAP, SNAP_ORIGIN, connectSnap, getSnaps, isSnapConnected, -} from './messaging-signing-snap-requests'; +} from './messaging-signing-snap-requests.js'; /** * Most of these utilities are wrappers around making wallet requests, diff --git a/packages/profile-sync-controller/src/sdk/utils/validate-login-response.test.ts b/packages/profile-sync-controller/src/sdk/utils/validate-login-response.test.ts index 18a7bd914dd..cfe52492afb 100644 --- a/packages/profile-sync-controller/src/sdk/utils/validate-login-response.test.ts +++ b/packages/profile-sync-controller/src/sdk/utils/validate-login-response.test.ts @@ -1,5 +1,5 @@ -import type { LoginResponse } from '../authentication'; -import { validateLoginResponse } from './validate-login-response'; +import type { LoginResponse } from '../authentication.js'; +import { validateLoginResponse } from './validate-login-response.js'; /** * Creates a minimal JWT string with the given payload claims. diff --git a/packages/profile-sync-controller/src/sdk/utils/validate-login-response.ts b/packages/profile-sync-controller/src/sdk/utils/validate-login-response.ts index c8ee45ca260..0346a9e7908 100644 --- a/packages/profile-sync-controller/src/sdk/utils/validate-login-response.ts +++ b/packages/profile-sync-controller/src/sdk/utils/validate-login-response.ts @@ -1,4 +1,4 @@ -import type { LoginResponse } from '../authentication'; +import type { LoginResponse } from '../authentication.js'; /** * Validates that the input is a well-formed, non-expired LoginResponse. diff --git a/packages/profile-sync-controller/src/sdk/utils/validate-pair-response.test.ts b/packages/profile-sync-controller/src/sdk/utils/validate-pair-response.test.ts index 96fcaf89529..5b8899b83af 100644 --- a/packages/profile-sync-controller/src/sdk/utils/validate-pair-response.test.ts +++ b/packages/profile-sync-controller/src/sdk/utils/validate-pair-response.test.ts @@ -1,5 +1,5 @@ -import type { RawPairResponse } from './validate-pair-response'; -import { validatePairResponse } from './validate-pair-response'; +import type { RawPairResponse } from './validate-pair-response.js'; +import { validatePairResponse } from './validate-pair-response.js'; function createValidRawPairResponse(): RawPairResponse { return { diff --git a/packages/profile-sync-controller/src/shared/encryption/cache.ts b/packages/profile-sync-controller/src/shared/encryption/cache.ts index 7552ef60d1a..10c55d90b3f 100644 --- a/packages/profile-sync-controller/src/shared/encryption/cache.ts +++ b/packages/profile-sync-controller/src/shared/encryption/cache.ts @@ -1,5 +1,5 @@ -import { SHARED_SALT } from './constants'; -import { byteArrayToBase64 } from './utils'; +import { SHARED_SALT } from './constants.js'; +import { byteArrayToBase64 } from './utils.js'; type CachedEntry = { salt: Uint8Array; diff --git a/packages/profile-sync-controller/src/shared/encryption/encryption.test.ts b/packages/profile-sync-controller/src/shared/encryption/encryption.test.ts index 3517725ca3a..e83dd937c93 100644 --- a/packages/profile-sync-controller/src/shared/encryption/encryption.test.ts +++ b/packages/profile-sync-controller/src/shared/encryption/encryption.test.ts @@ -1,5 +1,5 @@ -import { MAX_KDF_PROMISE_CACHE_SIZE } from './constants'; -import encryption, { createSHA256Hash } from './encryption'; +import { MAX_KDF_PROMISE_CACHE_SIZE } from './constants.js'; +import encryption, { createSHA256Hash } from './encryption.js'; describe('encryption tests', () => { const PASSWORD = '123'; diff --git a/packages/profile-sync-controller/src/shared/encryption/encryption.ts b/packages/profile-sync-controller/src/shared/encryption/encryption.ts index 956a0fa4933..c96740b83d7 100644 --- a/packages/profile-sync-controller/src/shared/encryption/encryption.ts +++ b/packages/profile-sync-controller/src/shared/encryption/encryption.ts @@ -4,12 +4,12 @@ import { scryptAsync } from '@noble/hashes/scrypt'; import { sha256 } from '@noble/hashes/sha256'; import { utf8ToBytes, concatBytes, bytesToHex } from '@noble/hashes/utils'; -import type { NativeScrypt } from '../types/encryption'; +import type { NativeScrypt } from '../types/encryption.js'; import { getCachedKeyBySalt, getCachedKeyGeneratedWithSharedSalt, setCachedKey, -} from './cache'; +} from './cache.js'; import { ALGORITHM_KEY_SIZE, ALGORITHM_NONCE_SIZE, @@ -19,13 +19,13 @@ import { SCRYPT_r, SCRYPT_SALT_SIZE, SHARED_SALT, -} from './constants'; +} from './constants.js'; import { base64ToByteArray, byteArrayToBase64, bytesToUtf8, stringToByteArray, -} from './utils'; +} from './utils.js'; export type EncryptedPayload = { // version @@ -296,7 +296,7 @@ class EncryptorDecryptor { this.#kdfPromiseCache.set(cacheKey, kdfPromise); // Clean up the cache after completion (both success and failure) - // eslint-disable-next-line no-void + void kdfPromise.finally(() => { this.#kdfPromiseCache.delete(cacheKey); }); diff --git a/packages/profile-sync-controller/src/shared/encryption/index.ts b/packages/profile-sync-controller/src/shared/encryption/index.ts index 90cdb5f5f2e..d8341931f30 100644 --- a/packages/profile-sync-controller/src/shared/encryption/index.ts +++ b/packages/profile-sync-controller/src/shared/encryption/index.ts @@ -1,5 +1,5 @@ -import Encryption from './encryption'; +import Encryption from './encryption.js'; export { Encryption }; -export * from './encryption'; +export * from './encryption.js'; export default Encryption; diff --git a/packages/profile-sync-controller/src/shared/env.test.ts b/packages/profile-sync-controller/src/shared/env.test.ts index 4f9e1403abd..dbac8ed197c 100644 --- a/packages/profile-sync-controller/src/shared/env.test.ts +++ b/packages/profile-sync-controller/src/shared/env.test.ts @@ -1,5 +1,5 @@ -import type { MockVariable } from '../sdk/__fixtures__/test-utils'; -import { getEnvUrls, Env, Platform, getOidcClientId } from './env'; +import type { MockVariable } from '../sdk/__fixtures__/test-utils.js'; +import { getEnvUrls, Env, Platform, getOidcClientId } from './env.js'; describe('getEnvUrls', () => { it('should return URLs if given a valid environment', () => { diff --git a/packages/profile-sync-controller/src/shared/storage-schema.test.ts b/packages/profile-sync-controller/src/shared/storage-schema.test.ts index ca2597b7777..d34d5fa21ed 100644 --- a/packages/profile-sync-controller/src/shared/storage-schema.test.ts +++ b/packages/profile-sync-controller/src/shared/storage-schema.test.ts @@ -2,7 +2,7 @@ import { createEntryPath, getFeatureAndKeyFromPath, USER_STORAGE_FEATURE_NAMES, -} from './storage-schema'; +} from './storage-schema.js'; // eslint-disable-next-line @typescript-eslint/no-explicit-any type ErroneousUserStoragePath = any; diff --git a/packages/profile-sync-controller/src/shared/storage-schema.ts b/packages/profile-sync-controller/src/shared/storage-schema.ts index 90fb314d496..0b0e29b59ca 100644 --- a/packages/profile-sync-controller/src/shared/storage-schema.ts +++ b/packages/profile-sync-controller/src/shared/storage-schema.ts @@ -1,4 +1,4 @@ -import { createSHA256Hash } from './encryption'; +import { createSHA256Hash } from './encryption.js'; /** * The User Storage Endpoint requires a feature name and a namespace key. diff --git a/packages/profile-sync-controller/src/shared/types/services.ts b/packages/profile-sync-controller/src/shared/types/services.ts index 49dbbb2b4fa..c20ca5d6128 100644 --- a/packages/profile-sync-controller/src/shared/types/services.ts +++ b/packages/profile-sync-controller/src/shared/types/services.ts @@ -1,4 +1,4 @@ -import type { Platform } from '../env'; +import type { Platform } from '../env.js'; export type ClientMetaMetrics = { metametricsId: string; diff --git a/packages/profile-sync-controller/src/shared/utils/event-queue.test.ts b/packages/profile-sync-controller/src/shared/utils/event-queue.test.ts index d44a4f81bc1..0b0cd44c947 100644 --- a/packages/profile-sync-controller/src/shared/utils/event-queue.test.ts +++ b/packages/profile-sync-controller/src/shared/utils/event-queue.test.ts @@ -1,4 +1,4 @@ -import { EventQueue } from './event-queue'; +import { EventQueue } from './event-queue.js'; describe('EventQueue', () => { let eventQueue: EventQueue; From 368e3f326bdfa5507d5208ea276037f3c1b21645 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:50:02 +0200 Subject: [PATCH 092/136] ESLint fix and `jest` global import for multichain-transactions-controller --- ...ultichainTransactionsController-method-action-types.ts | 2 +- .../src/MultichainTransactionsController.test.ts | 6 +++--- .../src/MultichainTransactionsController.ts | 6 ++---- packages/multichain-transactions-controller/src/index.ts | 8 ++++---- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/packages/multichain-transactions-controller/src/MultichainTransactionsController-method-action-types.ts b/packages/multichain-transactions-controller/src/MultichainTransactionsController-method-action-types.ts index 6a825efeec0..ca9e32605d6 100644 --- a/packages/multichain-transactions-controller/src/MultichainTransactionsController-method-action-types.ts +++ b/packages/multichain-transactions-controller/src/MultichainTransactionsController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { MultichainTransactionsController } from './MultichainTransactionsController'; +import type { MultichainTransactionsController } from './MultichainTransactionsController.js'; /** * Updates transactions for a specific account. This is used for the initial fetch diff --git a/packages/multichain-transactions-controller/src/MultichainTransactionsController.test.ts b/packages/multichain-transactions-controller/src/MultichainTransactionsController.test.ts index cf1ac2319d2..1de285b33de 100644 --- a/packages/multichain-transactions-controller/src/MultichainTransactionsController.test.ts +++ b/packages/multichain-transactions-controller/src/MultichainTransactionsController.test.ts @@ -24,15 +24,15 @@ import type { import type { CaipChainId } from '@metamask/utils'; import { v4 as uuidv4 } from 'uuid'; -import { MultichainNetwork } from './constants'; +import { MultichainNetwork } from './constants.js'; import { MultichainTransactionsController, getDefaultMultichainTransactionsControllerState, -} from './MultichainTransactionsController'; +} from './MultichainTransactionsController.js'; import type { MultichainTransactionsControllerState, MultichainTransactionsControllerMessenger, -} from './MultichainTransactionsController'; +} from './MultichainTransactionsController.js'; const mockBtcAccount = { address: 'bc1qssdcp5kvwh6nghzg9tuk99xsflwkdv4hgvq58q', diff --git a/packages/multichain-transactions-controller/src/MultichainTransactionsController.ts b/packages/multichain-transactions-controller/src/MultichainTransactionsController.ts index d51575beb8b..d8a96a16dd1 100644 --- a/packages/multichain-transactions-controller/src/MultichainTransactionsController.ts +++ b/packages/multichain-transactions-controller/src/MultichainTransactionsController.ts @@ -24,7 +24,7 @@ import { HandlerType } from '@metamask/snaps-utils'; import type { CaipChainId, Json, JsonRpcRequest } from '@metamask/utils'; import type { Draft } from 'immer'; -import type { MultichainTransactionsControllerMethodActions } from './MultichainTransactionsController-method-action-types'; +import type { MultichainTransactionsControllerMethodActions } from './MultichainTransactionsController-method-action-types.js'; const controllerName = 'MultichainTransactionsController'; @@ -451,9 +451,7 @@ export class MultichainTransactionsController extends BaseController< this.update((state) => { Object.entries(updatedTransactions).forEach(([accountId, chainsData]) => { - if (!state.nonEvmTransactions[accountId]) { - state.nonEvmTransactions[accountId] = {}; - } + state.nonEvmTransactions[accountId] ??= {}; Object.entries(chainsData).forEach(([chain, transactions]) => { state.nonEvmTransactions[accountId][chain as CaipChainId] = { diff --git a/packages/multichain-transactions-controller/src/index.ts b/packages/multichain-transactions-controller/src/index.ts index ed5c590d95f..f9e781a0ec1 100644 --- a/packages/multichain-transactions-controller/src/index.ts +++ b/packages/multichain-transactions-controller/src/index.ts @@ -1,4 +1,4 @@ -export { MultichainTransactionsController } from './MultichainTransactionsController'; +export { MultichainTransactionsController } from './MultichainTransactionsController.js'; export type { MultichainTransactionsControllerState, PaginationOptions, @@ -10,6 +10,6 @@ export type { MultichainTransactionsControllerMessenger, MultichainTransactionsControllerTransactionSubmittedEvent, MultichainTransactionsControllerTransactionConfirmedEvent, -} from './MultichainTransactionsController'; -export type { MultichainTransactionsControllerUpdateTransactionsForAccountAction } from './MultichainTransactionsController-method-action-types'; -export { MultichainNetwork, MultichainNativeAsset } from './constants'; +} from './MultichainTransactionsController.js'; +export type { MultichainTransactionsControllerUpdateTransactionsForAccountAction } from './MultichainTransactionsController-method-action-types.js'; +export { MultichainNetwork, MultichainNativeAsset } from './constants.js'; From 058557ce6185e3b321307ac2245d5f83f02e6ab4 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:50:03 +0200 Subject: [PATCH 093/136] ESLint fix and `jest` global import for multichain-account-service --- .../src/MultichainAccountGroup.test.ts | 12 +++---- .../src/MultichainAccountGroup.ts | 12 +++---- ...chainAccountService-method-action-types.ts | 2 +- .../src/MultichainAccountService.test.ts | 32 +++++++++---------- .../src/MultichainAccountService.ts | 26 +++++++-------- .../src/MultichainAccountWallet.test.ts | 12 +++---- .../src/MultichainAccountWallet.ts | 23 +++++++------ .../src/analytics/index.ts | 2 +- .../src/analytics/perf.test.ts | 6 ++-- .../src/analytics/perf.ts | 4 +-- .../src/analytics/traces.test.ts | 4 +-- .../src/analytics/traces.ts | 2 +- .../src/errors.test.ts | 6 ++-- .../multichain-account-service/src/errors.ts | 6 ++-- .../multichain-account-service/src/index.ts | 12 +++---- .../multichain-account-service/src/logger.ts | 2 +- .../providers/AccountProviderWrapper.test.ts | 6 ++-- .../src/providers/AccountProviderWrapper.ts | 4 +-- .../src/providers/BaseBip44AccountProvider.ts | 2 +- .../src/providers/BtcAccountProvider.test.ts | 17 ++++------ .../src/providers/BtcAccountProvider.ts | 8 ++--- .../src/providers/EvmAccountProvider.test.ts | 8 ++--- .../src/providers/EvmAccountProvider.ts | 12 +++---- .../src/providers/SnapAccountProvider.test.ts | 20 ++++++------ .../src/providers/SnapAccountProvider.ts | 16 +++++----- .../src/providers/SnapKeyringClient.test.ts | 4 +-- .../src/providers/SolAccountProvider.test.ts | 17 ++++------ .../src/providers/SolAccountProvider.ts | 8 ++--- .../src/providers/TrxAccountProvider.test.ts | 17 ++++------ .../src/providers/TrxAccountProvider.ts | 8 ++--- .../src/providers/XlmAccountProvider.test.ts | 15 ++++----- .../src/providers/XlmAccountProvider.ts | 8 ++--- .../src/providers/index.ts | 18 +++++------ .../src/providers/utils.test.ts | 2 +- .../src/tests/index.ts | 8 ++--- .../src/tests/messenger.ts | 2 +- .../src/tests/providers.ts | 4 +-- .../multichain-account-service/src/types.ts | 4 +-- .../src/utils.test.ts | 2 +- 39 files changed, 180 insertions(+), 193 deletions(-) diff --git a/packages/multichain-account-service/src/MultichainAccountGroup.test.ts b/packages/multichain-account-service/src/MultichainAccountGroup.test.ts index 927b6d6e764..3cb3dcb20d1 100644 --- a/packages/multichain-account-service/src/MultichainAccountGroup.test.ts +++ b/packages/multichain-account-service/src/MultichainAccountGroup.test.ts @@ -8,10 +8,10 @@ import { import { EthScope, SolScope } from '@metamask/keyring-api'; import type { InternalAccount } from '@metamask/keyring-internal-api'; -import type { GroupState } from './MultichainAccountGroup'; -import { MultichainAccountGroup } from './MultichainAccountGroup'; -import { MultichainAccountWallet } from './MultichainAccountWallet'; -import type { RootMessenger, MockAccountProvider } from './tests'; +import type { GroupState } from './MultichainAccountGroup.js'; +import { MultichainAccountGroup } from './MultichainAccountGroup.js'; +import { MultichainAccountWallet } from './MultichainAccountWallet.js'; +import type { RootMessenger, MockAccountProvider } from './tests.js'; import { MOCK_SNAP_ACCOUNT_2, MOCK_WALLET_1_BTC_P2TR_ACCOUNT, @@ -22,8 +22,8 @@ import { setupBip44AccountProvider, getMultichainAccountServiceMessenger, getRootMessenger, -} from './tests'; -import type { MultichainAccountServiceMessenger } from './types'; +} from './tests.js'; +import type { MultichainAccountServiceMessenger } from './types.js'; function setup({ groupIndex = 0, diff --git a/packages/multichain-account-service/src/MultichainAccountGroup.ts b/packages/multichain-account-service/src/MultichainAccountGroup.ts index 992dd1e0159..c0acb116c61 100644 --- a/packages/multichain-account-service/src/MultichainAccountGroup.ts +++ b/packages/multichain-account-service/src/MultichainAccountGroup.ts @@ -8,12 +8,12 @@ import type { Bip44Account } from '@metamask/account-api'; import type { AccountSelector } from '@metamask/account-api'; import type { KeyringAccount } from '@metamask/keyring-api'; -import type { Logger } from './logger'; -import { projectLogger as log, createModuleLogger } from './logger'; -import type { ServiceState, StateKeys } from './MultichainAccountService'; -import type { MultichainAccountWallet } from './MultichainAccountWallet'; -import type { Bip44AccountProvider } from './providers'; -import type { MultichainAccountServiceMessenger } from './types'; +import type { Logger } from './logger.js'; +import { projectLogger as log, createModuleLogger } from './logger.js'; +import type { ServiceState, StateKeys } from './MultichainAccountService.js'; +import type { MultichainAccountWallet } from './MultichainAccountWallet.js'; +import type { Bip44AccountProvider } from './providers.js'; +import type { MultichainAccountServiceMessenger } from './types.js'; export type GroupState = ServiceState[StateKeys['entropySource']][StateKeys['groupIndex']]; diff --git a/packages/multichain-account-service/src/MultichainAccountService-method-action-types.ts b/packages/multichain-account-service/src/MultichainAccountService-method-action-types.ts index 7d998dd7610..24a2ee83aaa 100644 --- a/packages/multichain-account-service/src/MultichainAccountService-method-action-types.ts +++ b/packages/multichain-account-service/src/MultichainAccountService-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { MultichainAccountService } from './MultichainAccountService'; +import type { MultichainAccountService } from './MultichainAccountService.js'; /** * Initialize the service and constructs the internal reprensentation of diff --git a/packages/multichain-account-service/src/MultichainAccountService.test.ts b/packages/multichain-account-service/src/MultichainAccountService.test.ts index a9b2dc0fd7a..030195bc449 100644 --- a/packages/multichain-account-service/src/MultichainAccountService.test.ts +++ b/packages/multichain-account-service/src/MultichainAccountService.test.ts @@ -15,33 +15,33 @@ import type { Keyring } from '@metamask/keyring-api/v2'; import { KeyringType } from '@metamask/keyring-api/v2'; import type { KeyringObject } from '@metamask/keyring-controller'; -import { traceFallback } from './analytics'; -import { isPerfEnabled, withLocalPerfTrace } from './analytics/perf'; +import { traceFallback } from './analytics.js'; +import { isPerfEnabled, withLocalPerfTrace } from './analytics/perf.js'; import type { MultichainAccountServiceOptions, RemoveMultichainAccountWalletFailureContext, -} from './MultichainAccountService'; -import { MultichainAccountService } from './MultichainAccountService'; -import type { Bip44AccountProvider } from './providers'; -import { TimeoutError } from './providers'; -import { AccountProviderWrapper } from './providers/AccountProviderWrapper'; +} from './MultichainAccountService.js'; +import { MultichainAccountService } from './MultichainAccountService.js'; +import type { Bip44AccountProvider } from './providers.js'; +import { TimeoutError } from './providers.js'; +import { AccountProviderWrapper } from './providers/AccountProviderWrapper.js'; import { BTC_ACCOUNT_PROVIDER_NAME, BtcAccountProvider, -} from './providers/BtcAccountProvider'; +} from './providers/BtcAccountProvider.js'; import { EVM_ACCOUNT_PROVIDER_NAME, EvmAccountProvider, -} from './providers/EvmAccountProvider'; +} from './providers/EvmAccountProvider.js'; import { SOL_ACCOUNT_PROVIDER_NAME, SolAccountProvider, -} from './providers/SolAccountProvider'; +} from './providers/SolAccountProvider.js'; import { TRX_ACCOUNT_PROVIDER_NAME, TrxAccountProvider, -} from './providers/TrxAccountProvider'; -import type { RootMessenger, MockAccountProvider } from './tests'; +} from './providers/TrxAccountProvider.js'; +import type { RootMessenger, MockAccountProvider } from './tests.js'; import { MOCK_HARDWARE_ACCOUNT_1, MOCK_HD_ACCOUNT_1, @@ -51,7 +51,7 @@ import { MOCK_SNAP_ACCOUNT_2, MOCK_SOL_ACCOUNT_1, MockAccountBuilder, -} from './tests'; +} from './tests.js'; import { MOCK_HD_KEYRING_1, MOCK_HD_KEYRING_2, @@ -59,9 +59,9 @@ import { getRootMessenger, makeMockAccountProvider, setupBip44AccountProvider, -} from './tests'; -import type { MultichainAccountServiceMessenger } from './types'; -import type { SentryError } from './utils'; +} from './tests.js'; +import type { MultichainAccountServiceMessenger } from './types.js'; +import type { SentryError } from './utils.js'; // Mock perf helpers so tests can control isPerfEnabled() without setting DEBUG env var. jest.mock('./analytics/perf', () => ({ diff --git a/packages/multichain-account-service/src/MultichainAccountService.ts b/packages/multichain-account-service/src/MultichainAccountService.ts index c3eb45eb33a..b0b1388dd14 100644 --- a/packages/multichain-account-service/src/MultichainAccountService.ts +++ b/packages/multichain-account-service/src/MultichainAccountService.ts @@ -13,12 +13,12 @@ import { KeyringTypes } from '@metamask/keyring-controller'; import type { InternalAccount } from '@metamask/keyring-internal-api'; import { areUint8ArraysEqual, assert } from '@metamask/utils'; -import { traceFallback } from './analytics'; -import { isPerfEnabled, withLocalPerfTrace } from './analytics/perf'; -import { reportError } from './errors'; -import { projectLogger as log } from './logger'; -import type { MultichainAccountGroup } from './MultichainAccountGroup'; -import { MultichainAccountWallet } from './MultichainAccountWallet'; +import { traceFallback } from './analytics.js'; +import { isPerfEnabled, withLocalPerfTrace } from './analytics/perf.js'; +import { reportError } from './errors.js'; +import { projectLogger as log } from './logger.js'; +import type { MultichainAccountGroup } from './MultichainAccountGroup.js'; +import { MultichainAccountWallet } from './MultichainAccountWallet.js'; import { EvmAccountProviderConfig, Bip44AccountProvider, @@ -29,22 +29,22 @@ import { TRX_ACCOUNT_PROVIDER_NAME, BtcAccountProvider, TrxAccountProvider, -} from './providers'; +} from './providers.js'; import { AccountProviderWrapper, isAccountProviderWrapper, -} from './providers/AccountProviderWrapper'; -import { EvmAccountProvider } from './providers/EvmAccountProvider'; -import { SolAccountProvider } from './providers/SolAccountProvider'; +} from './providers/AccountProviderWrapper.js'; +import { EvmAccountProvider } from './providers/EvmAccountProvider.js'; +import { SolAccountProvider } from './providers/SolAccountProvider.js'; import { SOL_ACCOUNT_PROVIDER_NAME, SolAccountProviderConfig, -} from './providers/SolAccountProvider'; +} from './providers/SolAccountProvider.js'; import type { MultichainAccountServiceConfig, MultichainAccountServiceMessenger, -} from './types'; -import { toErrorMessage } from './utils'; +} from './types.js'; +import { toErrorMessage } from './utils.js'; /** * Per-account failure detail attached to the aggregated Sentry report diff --git a/packages/multichain-account-service/src/MultichainAccountWallet.test.ts b/packages/multichain-account-service/src/MultichainAccountWallet.test.ts index a91654ce4d7..e1a891d6988 100644 --- a/packages/multichain-account-service/src/MultichainAccountWallet.test.ts +++ b/packages/multichain-account-service/src/MultichainAccountWallet.test.ts @@ -16,10 +16,10 @@ import { import type { InternalAccount } from '@metamask/keyring-internal-api'; import { createDeferredPromise } from '@metamask/utils'; -import type { WalletState } from './MultichainAccountWallet'; -import { MultichainAccountWallet } from './MultichainAccountWallet'; -import { TimeoutError } from './providers'; -import type { MockAccountProvider, RootMessenger } from './tests'; +import type { WalletState } from './MultichainAccountWallet.js'; +import { MultichainAccountWallet } from './MultichainAccountWallet.js'; +import { TimeoutError } from './providers.js'; +import type { MockAccountProvider, RootMessenger } from './tests.js'; import { MOCK_HD_ACCOUNT_1, MOCK_HD_KEYRING_1, @@ -35,8 +35,8 @@ import { setupBip44AccountProvider, getMultichainAccountServiceMessenger, getRootMessenger, -} from './tests'; -import type { MultichainAccountServiceMessenger } from './types'; +} from './tests.js'; +import type { MultichainAccountServiceMessenger } from './types.js'; function setup({ entropySource = MOCK_WALLET_1_ENTROPY_SOURCE, diff --git a/packages/multichain-account-service/src/MultichainAccountWallet.ts b/packages/multichain-account-service/src/MultichainAccountWallet.ts index 0018b987b31..d1acbe960e0 100644 --- a/packages/multichain-account-service/src/MultichainAccountWallet.ts +++ b/packages/multichain-account-service/src/MultichainAccountWallet.ts @@ -18,27 +18,27 @@ import type { EntropySourceId, KeyringAccount } from '@metamask/keyring-api'; import { assert } from '@metamask/utils'; import { Mutex } from 'async-mutex'; -import { toProviderDataTraces, traceFallback, TraceName } from './analytics'; -import { reportError } from './errors'; -import type { Logger } from './logger'; +import { toProviderDataTraces, traceFallback, TraceName } from './analytics.js'; +import { reportError } from './errors.js'; +import type { Logger } from './logger.js'; import { createModuleLogger, ERROR_PREFIX, projectLogger as log, WARNING_PREFIX, -} from './logger'; -import type { GroupState } from './MultichainAccountGroup'; -import { MultichainAccountGroup } from './MultichainAccountGroup'; -import type { ServiceState, StateKeys } from './MultichainAccountService'; -import type { Bip44AccountProvider } from './providers'; -import { EvmAccountProvider } from './providers/EvmAccountProvider'; -import type { MultichainAccountServiceMessenger } from './types'; +} from './logger.js'; +import type { GroupState } from './MultichainAccountGroup.js'; +import { MultichainAccountGroup } from './MultichainAccountGroup.js'; +import type { ServiceState, StateKeys } from './MultichainAccountService.js'; +import type { Bip44AccountProvider } from './providers.js'; +import { EvmAccountProvider } from './providers/EvmAccountProvider.js'; +import type { MultichainAccountServiceMessenger } from './types.js'; import { assertGroupIndexIsValid, assertGroupIndexRangeIsValid, GroupIndexRange, toErrorMessage, -} from './utils'; +} from './utils.js'; /** * The context for a provider discovery. @@ -758,7 +758,6 @@ export class MultichainAccountWallet< this.#log('Aligned accounts! (post)'); }; - // eslint-disable-next-line no-void void alignOtherAccounts().catch((error) => { const errorMessage = `Unable to align non-EVM accounts from group index ${from} to ${to}`; this.#log( diff --git a/packages/multichain-account-service/src/analytics/index.ts b/packages/multichain-account-service/src/analytics/index.ts index bc9f922b435..ad422446927 100644 --- a/packages/multichain-account-service/src/analytics/index.ts +++ b/packages/multichain-account-service/src/analytics/index.ts @@ -1 +1 @@ -export * from './traces'; +export * from './traces.js'; diff --git a/packages/multichain-account-service/src/analytics/perf.test.ts b/packages/multichain-account-service/src/analytics/perf.test.ts index eeb6cc7c807..730be4b9734 100644 --- a/packages/multichain-account-service/src/analytics/perf.test.ts +++ b/packages/multichain-account-service/src/analytics/perf.test.ts @@ -1,13 +1,13 @@ import type { TraceCallback, TraceRequest } from '@metamask/controller-utils'; -import { projectLogger } from '../logger'; +import { projectLogger } from '../logger.js'; import { isPerfEnabled, log as perfLog, tick, withLocalPerfTrace, -} from './perf'; -import { now } from './timer'; +} from './perf.js'; +import { now } from './timer.js'; jest.mock('./timer', () => ({ now: jest.fn(), diff --git a/packages/multichain-account-service/src/analytics/perf.ts b/packages/multichain-account-service/src/analytics/perf.ts index 4f31af7d151..62e7fd7938d 100644 --- a/packages/multichain-account-service/src/analytics/perf.ts +++ b/packages/multichain-account-service/src/analytics/perf.ts @@ -4,8 +4,8 @@ import type { TraceRequest, } from '@metamask/controller-utils'; -import { createModuleLogger, projectLogger } from '../logger'; -import { now } from './timer'; +import { createModuleLogger, projectLogger } from '../logger.js'; +import { now } from './timer.js'; export const log = createModuleLogger(projectLogger, 'perf'); diff --git a/packages/multichain-account-service/src/analytics/traces.test.ts b/packages/multichain-account-service/src/analytics/traces.test.ts index b669d8aebbb..6a5eb46cbae 100644 --- a/packages/multichain-account-service/src/analytics/traces.test.ts +++ b/packages/multichain-account-service/src/analytics/traces.test.ts @@ -2,13 +2,13 @@ import type { TraceRequest } from '@metamask/controller-utils'; import { AccountCreationType } from '@metamask/keyring-api'; import type { CreateAccountOptions } from '@metamask/keyring-api'; -import type { Bip44AccountProvider } from '../providers'; +import type { Bip44AccountProvider } from '../providers.js'; import { toCreateAccountsV2DataTraces, toProviderDataTraces, traceFallback, TraceName, -} from './traces'; +} from './traces.js'; describe('MultichainAccountService - Traces', () => { describe('traceFallback', () => { diff --git a/packages/multichain-account-service/src/analytics/traces.ts b/packages/multichain-account-service/src/analytics/traces.ts index eca4f03b3cc..d6e1be0b810 100644 --- a/packages/multichain-account-service/src/analytics/traces.ts +++ b/packages/multichain-account-service/src/analytics/traces.ts @@ -6,7 +6,7 @@ import type { import { CreateAccountOptions } from '@metamask/keyring-api'; // Explicit import to avoid circular dependency between `analytics` and `providers`. -import type { Bip44AccountProvider } from '../providers/BaseBip44AccountProvider'; +import type { Bip44AccountProvider } from '../providers/BaseBip44AccountProvider.js'; /** * Fallback function for tracing. diff --git a/packages/multichain-account-service/src/errors.test.ts b/packages/multichain-account-service/src/errors.test.ts index fdcf21a823a..986a35e123b 100644 --- a/packages/multichain-account-service/src/errors.test.ts +++ b/packages/multichain-account-service/src/errors.test.ts @@ -3,9 +3,9 @@ import { KeyringControllerErrorMessage, } from '@metamask/keyring-controller'; -import { reportError } from './errors'; -import { logErrorAs } from './logger'; -import { TimeoutError } from './providers/utils'; +import { reportError } from './errors.js'; +import { logErrorAs } from './logger.js'; +import { TimeoutError } from './providers/utils.js'; jest.mock('./logger', () => ({ logErrorAs: jest.fn(), diff --git a/packages/multichain-account-service/src/errors.ts b/packages/multichain-account-service/src/errors.ts index 3cf130f0c81..425a882591c 100644 --- a/packages/multichain-account-service/src/errors.ts +++ b/packages/multichain-account-service/src/errors.ts @@ -1,9 +1,9 @@ -import { logErrorAs } from './logger'; +import { logErrorAs } from './logger.js'; import { isKeyringControllerLockedError, isTimeoutError, -} from './providers/utils'; -import { createSentryError } from './utils'; +} from './providers/utils.js'; +import { createSentryError } from './utils.js'; /** * Reports an error by logging it and optionally capturing it in Sentry. diff --git a/packages/multichain-account-service/src/index.ts b/packages/multichain-account-service/src/index.ts index 512c5c0801e..8a0e4df8926 100644 --- a/packages/multichain-account-service/src/index.ts +++ b/packages/multichain-account-service/src/index.ts @@ -5,7 +5,7 @@ export type { MultichainAccountServiceMultichainAccountGroupCreatedEvent, MultichainAccountServiceMultichainAccountGroupUpdatedEvent, MultichainAccountServiceWalletStatusChangeEvent, -} from './types'; +} from './types.js'; export type { MultichainAccountServiceResyncAccountsAction, MultichainAccountServiceGetMultichainAccountWalletAction, @@ -21,7 +21,7 @@ export type { MultichainAccountServiceAlignWalletsAction, MultichainAccountServiceAlignWalletAction, MultichainAccountServiceInitAction, -} from './MultichainAccountService-method-action-types'; +} from './MultichainAccountService-method-action-types.js'; export { AccountProviderWrapper, BaseBip44AccountProvider, @@ -37,7 +37,7 @@ export { TrxAccountProvider, XLM_ACCOUNT_PROVIDER_NAME, XlmAccountProvider, -} from './providers'; -export { MultichainAccountWallet } from './MultichainAccountWallet'; -export { MultichainAccountGroup } from './MultichainAccountGroup'; -export { MultichainAccountService } from './MultichainAccountService'; +} from './providers.js'; +export { MultichainAccountWallet } from './MultichainAccountWallet.js'; +export { MultichainAccountGroup } from './MultichainAccountGroup.js'; +export { MultichainAccountService } from './MultichainAccountService.js'; diff --git a/packages/multichain-account-service/src/logger.ts b/packages/multichain-account-service/src/logger.ts index 76dc8f6592f..98049e7d3d9 100644 --- a/packages/multichain-account-service/src/logger.ts +++ b/packages/multichain-account-service/src/logger.ts @@ -1,6 +1,6 @@ import { createProjectLogger, createModuleLogger } from '@metamask/utils'; -import { toErrorMessage } from './utils'; +import { toErrorMessage } from './utils.js'; export const projectLogger = createProjectLogger('multichain-account-service'); diff --git a/packages/multichain-account-service/src/providers/AccountProviderWrapper.test.ts b/packages/multichain-account-service/src/providers/AccountProviderWrapper.test.ts index dddb9f9a4ed..86a66a127c1 100644 --- a/packages/multichain-account-service/src/providers/AccountProviderWrapper.test.ts +++ b/packages/multichain-account-service/src/providers/AccountProviderWrapper.test.ts @@ -2,9 +2,9 @@ import { getMultichainAccountServiceMessenger, getRootMessenger, MOCK_WALLET_1_ENTROPY_SOURCE, -} from '../tests'; -import { AccountProviderWrapper } from './AccountProviderWrapper'; -import { EvmAccountProvider } from './EvmAccountProvider'; +} from '../tests.js'; +import { AccountProviderWrapper } from './AccountProviderWrapper.js'; +import { EvmAccountProvider } from './EvmAccountProvider.js'; function setup(): { wrapper: AccountProviderWrapper; diff --git a/packages/multichain-account-service/src/providers/AccountProviderWrapper.ts b/packages/multichain-account-service/src/providers/AccountProviderWrapper.ts index f973cab3dea..af9aae270cb 100644 --- a/packages/multichain-account-service/src/providers/AccountProviderWrapper.ts +++ b/packages/multichain-account-service/src/providers/AccountProviderWrapper.ts @@ -7,8 +7,8 @@ import type { import type { KeyringCapabilities } from '@metamask/keyring-api/v2'; import type { InternalAccount } from '@metamask/keyring-internal-api'; -import type { MultichainAccountServiceMessenger } from '../types'; -import { BaseBip44AccountProvider } from './BaseBip44AccountProvider'; +import type { MultichainAccountServiceMessenger } from '../types.js'; +import { BaseBip44AccountProvider } from './BaseBip44AccountProvider.js'; /** * A simple wrapper that adds disable functionality to any BaseBip44AccountProvider. diff --git a/packages/multichain-account-service/src/providers/BaseBip44AccountProvider.ts b/packages/multichain-account-service/src/providers/BaseBip44AccountProvider.ts index 18846f59146..5d2bccf63c1 100644 --- a/packages/multichain-account-service/src/providers/BaseBip44AccountProvider.ts +++ b/packages/multichain-account-service/src/providers/BaseBip44AccountProvider.ts @@ -15,7 +15,7 @@ import type { } from '@metamask/keyring-controller'; import type { InternalAccount } from '@metamask/keyring-internal-api'; -import type { MultichainAccountServiceMessenger } from '../types'; +import type { MultichainAccountServiceMessenger } from '../types.js'; /** * Asserts a keyring account is BIP-44 compatible. diff --git a/packages/multichain-account-service/src/providers/BtcAccountProvider.test.ts b/packages/multichain-account-service/src/providers/BtcAccountProvider.test.ts index eb1325206ef..ff24e1b1b28 100644 --- a/packages/multichain-account-service/src/providers/BtcAccountProvider.test.ts +++ b/packages/multichain-account-service/src/providers/BtcAccountProvider.test.ts @@ -6,7 +6,7 @@ import type { InternalAccount } from '@metamask/keyring-internal-api'; import { SnapControllerState } from '@metamask/snaps-controllers'; import deepmerge from 'deepmerge'; -import { TraceName } from '../analytics/traces'; +import { TraceName } from '../analytics/traces.js'; import { getMultichainAccountServiceMessenger, getRootMessenger, @@ -17,23 +17,20 @@ import { MOCK_HD_KEYRING_1, MockAccountBuilder, toGroupIndexRangeArray, -} from '../tests'; -import type { RootMessenger, DeepPartial } from '../tests'; -import { AccountProviderWrapper } from './AccountProviderWrapper'; +} from '../tests.js'; +import type { RootMessenger, DeepPartial } from '../tests.js'; +import { AccountProviderWrapper } from './AccountProviderWrapper.js'; import { BTC_ACCOUNT_PROVIDER_DEFAULT_CONFIG, BTC_ACCOUNT_PROVIDER_NAME, BtcAccountProvider, -} from './BtcAccountProvider'; -import type { SnapAccountProviderConfig } from './SnapAccountProvider'; +} from './BtcAccountProvider.js'; +import type { SnapAccountProviderConfig } from './SnapAccountProvider.js'; function asConfig( partial: DeepPartial, ): SnapAccountProviderConfig { - return deepmerge( - BTC_ACCOUNT_PROVIDER_DEFAULT_CONFIG, - partial, - ) as SnapAccountProviderConfig; + return deepmerge(BTC_ACCOUNT_PROVIDER_DEFAULT_CONFIG, partial); } /** diff --git a/packages/multichain-account-service/src/providers/BtcAccountProvider.ts b/packages/multichain-account-service/src/providers/BtcAccountProvider.ts index 1095d54935b..f48546752cc 100644 --- a/packages/multichain-account-service/src/providers/BtcAccountProvider.ts +++ b/packages/multichain-account-service/src/providers/BtcAccountProvider.ts @@ -5,10 +5,10 @@ import type { InternalAccount } from '@metamask/keyring-internal-api'; import type { SnapId } from '@metamask/snaps-sdk'; import type { CaipChainId } from '@metamask/utils'; -import { traceFallback } from '../analytics'; -import type { MultichainAccountServiceMessenger } from '../types'; -import { SnapAccountProvider } from './SnapAccountProvider'; -import type { SnapAccountProviderConfig } from './SnapAccountProvider'; +import { traceFallback } from '../analytics.js'; +import type { MultichainAccountServiceMessenger } from '../types.js'; +import { SnapAccountProvider } from './SnapAccountProvider.js'; +import type { SnapAccountProviderConfig } from './SnapAccountProvider.js'; export type BtcAccountProviderConfig = SnapAccountProviderConfig; diff --git a/packages/multichain-account-service/src/providers/EvmAccountProvider.test.ts b/packages/multichain-account-service/src/providers/EvmAccountProvider.test.ts index 7b74221d331..74435a2dfef 100644 --- a/packages/multichain-account-service/src/providers/EvmAccountProvider.test.ts +++ b/packages/multichain-account-service/src/providers/EvmAccountProvider.test.ts @@ -16,7 +16,7 @@ import type { } from '@metamask/network-controller'; import { add0x, bytesToHex } from '@metamask/utils'; -import { TraceName } from '../analytics/traces'; +import { TraceName } from '../analytics/traces.js'; import { asKeyringAccount, getMultichainAccountServiceMessenger, @@ -28,14 +28,14 @@ import { MockAccountBuilder, mockAsInternalAccount, RootMessenger, -} from '../tests'; +} from '../tests.js'; import { EVM_ACCOUNT_PROVIDER_DEFAULT_CONFIG, EVM_ACCOUNT_PROVIDER_NAME, EvmAccountProvider, EvmAccountProviderConfig, -} from './EvmAccountProvider'; -import { TimeoutError } from './utils'; +} from './EvmAccountProvider.js'; +import { TimeoutError } from './utils.js'; // Real HD root rooted at a valid BIP-39 test mnemonic so the address peeked via // `keyring.root.deriveChild(groupIndex)` matches the address that the mock's diff --git a/packages/multichain-account-service/src/providers/EvmAccountProvider.ts b/packages/multichain-account-service/src/providers/EvmAccountProvider.ts index b6a588af07a..e91aa87d27b 100644 --- a/packages/multichain-account-service/src/providers/EvmAccountProvider.ts +++ b/packages/multichain-account-service/src/providers/EvmAccountProvider.ts @@ -21,16 +21,16 @@ import type { Provider } from '@metamask/network-controller'; import { add0x, assert, bytesToHex, isStrictHexString } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import { traceFallback } from '../analytics'; -import { TraceName } from '../analytics/traces'; -import { projectLogger as log, WARNING_PREFIX } from '../logger'; -import type { MultichainAccountServiceMessenger } from '../types'; +import { traceFallback } from '../analytics.js'; +import { TraceName } from '../analytics/traces.js'; +import { projectLogger as log, WARNING_PREFIX } from '../logger.js'; +import type { MultichainAccountServiceMessenger } from '../types.js'; import { assertAreBip44Accounts, assertIsBip44Account, BaseBip44AccountProvider, -} from './BaseBip44AccountProvider'; -import { withRetry, withTimeout } from './utils'; +} from './BaseBip44AccountProvider.js'; +import { withRetry, withTimeout } from './utils.js'; const ETH_MAINNET_CHAIN_ID = '0x1'; diff --git a/packages/multichain-account-service/src/providers/SnapAccountProvider.test.ts b/packages/multichain-account-service/src/providers/SnapAccountProvider.test.ts index 68a21b1db85..8f85af1d0d9 100644 --- a/packages/multichain-account-service/src/providers/SnapAccountProvider.test.ts +++ b/packages/multichain-account-service/src/providers/SnapAccountProvider.test.ts @@ -21,8 +21,8 @@ import type { InternalAccount } from '@metamask/keyring-internal-api'; import type { JsonRpcRequest, SnapId } from '@metamask/snaps-sdk'; import deepmerge from 'deepmerge'; -import { traceFallback } from '../analytics'; -import type { DeepPartial, RootMessenger } from '../tests'; +import { traceFallback } from '../analytics.js'; +import type { DeepPartial, RootMessenger } from '../tests.js'; import { asKeyringAccount, getMultichainAccountServiceMessenger, @@ -30,17 +30,17 @@ import { MOCK_HD_ACCOUNT_1, MOCK_HD_ACCOUNT_2, MockAccountBuilder, -} from '../tests'; -import type { MultichainAccountServiceMessenger } from '../types'; -import { BtcAccountProvider } from './BtcAccountProvider'; -import type { SnapAccountProviderConfig } from './SnapAccountProvider'; +} from '../tests.js'; +import type { MultichainAccountServiceMessenger } from '../types.js'; +import { BtcAccountProvider } from './BtcAccountProvider.js'; +import type { SnapAccountProviderConfig } from './SnapAccountProvider.js'; import { isSnapAccountProvider, SnapAccountProvider, -} from './SnapAccountProvider'; -import { SolAccountProvider } from './SolAccountProvider'; -import { TrxAccountProvider } from './TrxAccountProvider'; -import { TimeoutError } from './utils'; +} from './SnapAccountProvider.js'; +import { SolAccountProvider } from './SolAccountProvider.js'; +import { TrxAccountProvider } from './TrxAccountProvider.js'; +import { TimeoutError } from './utils.js'; jest.mock('../analytics', () => { const actual = jest.requireActual('../analytics'); diff --git a/packages/multichain-account-service/src/providers/SnapAccountProvider.ts b/packages/multichain-account-service/src/providers/SnapAccountProvider.ts index d6feec01cc9..65d86b1c7cf 100644 --- a/packages/multichain-account-service/src/providers/SnapAccountProvider.ts +++ b/packages/multichain-account-service/src/providers/SnapAccountProvider.ts @@ -30,14 +30,14 @@ import { toCreateAccountsV2DataTraces, traceFallback, TraceName, -} from '../analytics'; -import { reportError } from '../errors'; -import { projectLogger as log, WARNING_PREFIX } from '../logger'; -import type { MultichainAccountServiceMessenger } from '../types'; -import { BaseBip44AccountProvider } from './BaseBip44AccountProvider'; -import { createSnapKeyringClient } from './SnapKeyringClient'; -import type { Sender, SnapKeyringClient } from './SnapKeyringClient'; -import { withRetry, withTimeout } from './utils'; +} from '../analytics.js'; +import { reportError } from '../errors.js'; +import { projectLogger as log, WARNING_PREFIX } from '../logger.js'; +import type { MultichainAccountServiceMessenger } from '../types.js'; +import { BaseBip44AccountProvider } from './BaseBip44AccountProvider.js'; +import { createSnapKeyringClient } from './SnapKeyringClient.js'; +import type { Sender, SnapKeyringClient } from './SnapKeyringClient.js'; +import { withRetry, withTimeout } from './utils.js'; /** * A proxy to the Snap's keyring operations that routes every call through the diff --git a/packages/multichain-account-service/src/providers/SnapKeyringClient.test.ts b/packages/multichain-account-service/src/providers/SnapKeyringClient.test.ts index 7c3d5fc6a44..1d10d3e36ff 100644 --- a/packages/multichain-account-service/src/providers/SnapKeyringClient.test.ts +++ b/packages/multichain-account-service/src/providers/SnapKeyringClient.test.ts @@ -1,7 +1,7 @@ import { SolScope } from '@metamask/keyring-api'; -import { createSnapKeyringClient } from './SnapKeyringClient'; -import type { Sender } from './SnapKeyringClient'; +import { createSnapKeyringClient } from './SnapKeyringClient.js'; +import type { Sender } from './SnapKeyringClient.js'; /** * Builds a mock {@link Sender} whose `send` resolves to the given response. diff --git a/packages/multichain-account-service/src/providers/SolAccountProvider.test.ts b/packages/multichain-account-service/src/providers/SolAccountProvider.test.ts index cdbf7a14d3b..333e35518c2 100644 --- a/packages/multichain-account-service/src/providers/SolAccountProvider.test.ts +++ b/packages/multichain-account-service/src/providers/SolAccountProvider.test.ts @@ -6,7 +6,7 @@ import type { InternalAccount } from '@metamask/keyring-internal-api'; import { SnapControllerState } from '@metamask/snaps-controllers'; import deepmerge from 'deepmerge'; -import { TraceName } from '../analytics/traces'; +import { TraceName } from '../analytics/traces.js'; import { getMultichainAccountServiceMessenger, getRootMessenger, @@ -16,23 +16,20 @@ import { MOCK_SOL_ACCOUNT_1, MOCK_SOL_DISCOVERED_ACCOUNT_1, MockAccountBuilder, -} from '../tests'; -import type { RootMessenger, DeepPartial } from '../tests'; -import { AccountProviderWrapper } from './AccountProviderWrapper'; -import type { SnapAccountProviderConfig } from './SnapAccountProvider'; +} from '../tests.js'; +import type { RootMessenger, DeepPartial } from '../tests.js'; +import { AccountProviderWrapper } from './AccountProviderWrapper.js'; +import type { SnapAccountProviderConfig } from './SnapAccountProvider.js'; import { SOL_ACCOUNT_PROVIDER_DEFAULT_CONFIG, SOL_ACCOUNT_PROVIDER_NAME, SolAccountProvider, -} from './SolAccountProvider'; +} from './SolAccountProvider.js'; function asConfig( partial: DeepPartial, ): SnapAccountProviderConfig { - return deepmerge( - SOL_ACCOUNT_PROVIDER_DEFAULT_CONFIG, - partial, - ) as SnapAccountProviderConfig; + return deepmerge(SOL_ACCOUNT_PROVIDER_DEFAULT_CONFIG, partial); } /** diff --git a/packages/multichain-account-service/src/providers/SolAccountProvider.ts b/packages/multichain-account-service/src/providers/SolAccountProvider.ts index 208b25d03a7..c40e6f3129f 100644 --- a/packages/multichain-account-service/src/providers/SolAccountProvider.ts +++ b/packages/multichain-account-service/src/providers/SolAccountProvider.ts @@ -12,10 +12,10 @@ import type { InternalAccount } from '@metamask/keyring-internal-api'; import type { SnapId } from '@metamask/snaps-sdk'; import type { CaipChainId } from '@metamask/utils'; -import { traceFallback } from '../analytics'; -import type { MultichainAccountServiceMessenger } from '../types'; -import { SnapAccountProvider } from './SnapAccountProvider'; -import type { SnapAccountProviderConfig } from './SnapAccountProvider'; +import { traceFallback } from '../analytics.js'; +import type { MultichainAccountServiceMessenger } from '../types.js'; +import { SnapAccountProvider } from './SnapAccountProvider.js'; +import type { SnapAccountProviderConfig } from './SnapAccountProvider.js'; export type SolAccountProviderConfig = SnapAccountProviderConfig; diff --git a/packages/multichain-account-service/src/providers/TrxAccountProvider.test.ts b/packages/multichain-account-service/src/providers/TrxAccountProvider.test.ts index a8fbf169e75..59841431ab2 100644 --- a/packages/multichain-account-service/src/providers/TrxAccountProvider.test.ts +++ b/packages/multichain-account-service/src/providers/TrxAccountProvider.test.ts @@ -6,7 +6,7 @@ import type { InternalAccount } from '@metamask/keyring-internal-api'; import { SnapControllerState } from '@metamask/snaps-controllers'; import deepmerge from 'deepmerge'; -import { TraceName } from '../analytics/traces'; +import { TraceName } from '../analytics/traces.js'; import { getMultichainAccountServiceMessenger, getRootMessenger, @@ -16,23 +16,20 @@ import { MOCK_TRX_DISCOVERED_ACCOUNT_1, MockAccountBuilder, toGroupIndexRangeArray, -} from '../tests'; -import type { RootMessenger, DeepPartial } from '../tests'; -import { AccountProviderWrapper } from './AccountProviderWrapper'; -import type { SnapAccountProviderConfig } from './SnapAccountProvider'; +} from '../tests.js'; +import type { RootMessenger, DeepPartial } from '../tests.js'; +import { AccountProviderWrapper } from './AccountProviderWrapper.js'; +import type { SnapAccountProviderConfig } from './SnapAccountProvider.js'; import { TRX_ACCOUNT_PROVIDER_DEFAULT_CONFIG, TRX_ACCOUNT_PROVIDER_NAME, TrxAccountProvider, -} from './TrxAccountProvider'; +} from './TrxAccountProvider.js'; function asConfig( partial: DeepPartial, ): SnapAccountProviderConfig { - return deepmerge( - TRX_ACCOUNT_PROVIDER_DEFAULT_CONFIG, - partial, - ) as SnapAccountProviderConfig; + return deepmerge(TRX_ACCOUNT_PROVIDER_DEFAULT_CONFIG, partial); } /** diff --git a/packages/multichain-account-service/src/providers/TrxAccountProvider.ts b/packages/multichain-account-service/src/providers/TrxAccountProvider.ts index d232ac1582c..8648d1a2b8d 100644 --- a/packages/multichain-account-service/src/providers/TrxAccountProvider.ts +++ b/packages/multichain-account-service/src/providers/TrxAccountProvider.ts @@ -6,10 +6,10 @@ import type { InternalAccount } from '@metamask/keyring-internal-api'; import type { SnapId } from '@metamask/snaps-sdk'; import type { CaipChainId } from '@metamask/utils'; -import { traceFallback } from '../analytics'; -import type { MultichainAccountServiceMessenger } from '../types'; -import { SnapAccountProvider } from './SnapAccountProvider'; -import type { SnapAccountProviderConfig } from './SnapAccountProvider'; +import { traceFallback } from '../analytics.js'; +import type { MultichainAccountServiceMessenger } from '../types.js'; +import { SnapAccountProvider } from './SnapAccountProvider.js'; +import type { SnapAccountProviderConfig } from './SnapAccountProvider.js'; export type TrxAccountProviderConfig = SnapAccountProviderConfig; diff --git a/packages/multichain-account-service/src/providers/XlmAccountProvider.test.ts b/packages/multichain-account-service/src/providers/XlmAccountProvider.test.ts index d876920e35f..8e4b20a7d9a 100644 --- a/packages/multichain-account-service/src/providers/XlmAccountProvider.test.ts +++ b/packages/multichain-account-service/src/providers/XlmAccountProvider.test.ts @@ -16,23 +16,20 @@ import { MOCK_XLM_DISCOVERED_ACCOUNT_1, MockAccountBuilder, toGroupIndexRangeArray, -} from '../tests'; -import type { RootMessenger, DeepPartial } from '../tests'; -import { AccountProviderWrapper } from './AccountProviderWrapper'; -import type { SnapAccountProviderConfig } from './SnapAccountProvider'; +} from '../tests.js'; +import type { RootMessenger, DeepPartial } from '../tests.js'; +import { AccountProviderWrapper } from './AccountProviderWrapper.js'; +import type { SnapAccountProviderConfig } from './SnapAccountProvider.js'; import { XLM_ACCOUNT_PROVIDER_DEFAULT_CONFIG, XLM_ACCOUNT_PROVIDER_NAME, XlmAccountProvider, -} from './XlmAccountProvider'; +} from './XlmAccountProvider.js'; function asConfig( partial: DeepPartial, ): SnapAccountProviderConfig { - return deepmerge( - XLM_ACCOUNT_PROVIDER_DEFAULT_CONFIG, - partial, - ) as SnapAccountProviderConfig; + return deepmerge(XLM_ACCOUNT_PROVIDER_DEFAULT_CONFIG, partial); } /** diff --git a/packages/multichain-account-service/src/providers/XlmAccountProvider.ts b/packages/multichain-account-service/src/providers/XlmAccountProvider.ts index 677db57fb52..c84a8f35f1c 100644 --- a/packages/multichain-account-service/src/providers/XlmAccountProvider.ts +++ b/packages/multichain-account-service/src/providers/XlmAccountProvider.ts @@ -6,10 +6,10 @@ import type { InternalAccount } from '@metamask/keyring-internal-api'; import type { SnapId } from '@metamask/snaps-sdk'; import type { CaipChainId } from '@metamask/utils'; -import { traceFallback } from '../analytics'; -import type { MultichainAccountServiceMessenger } from '../types'; -import { SnapAccountProvider } from './SnapAccountProvider'; -import type { SnapAccountProviderConfig } from './SnapAccountProvider'; +import { traceFallback } from '../analytics.js'; +import type { MultichainAccountServiceMessenger } from '../types.js'; +import { SnapAccountProvider } from './SnapAccountProvider.js'; +import type { SnapAccountProviderConfig } from './SnapAccountProvider.js'; export type XlmAccountProviderConfig = SnapAccountProviderConfig; diff --git a/packages/multichain-account-service/src/providers/index.ts b/packages/multichain-account-service/src/providers/index.ts index 51f20af248b..3098194fcb6 100644 --- a/packages/multichain-account-service/src/providers/index.ts +++ b/packages/multichain-account-service/src/providers/index.ts @@ -1,13 +1,13 @@ -export * from './BaseBip44AccountProvider'; -export * from './SnapAccountProvider'; -export * from './AccountProviderWrapper'; +export * from './BaseBip44AccountProvider.js'; +export * from './SnapAccountProvider.js'; +export * from './AccountProviderWrapper.js'; // Errors that can bubble up outside of provider calls. -export { TimeoutError, isTimeoutError } from './utils'; +export { TimeoutError, isTimeoutError } from './utils.js'; // Concrete providers: -export * from './SolAccountProvider'; -export * from './EvmAccountProvider'; -export * from './BtcAccountProvider'; -export * from './TrxAccountProvider'; -export * from './XlmAccountProvider'; +export * from './SolAccountProvider.js'; +export * from './EvmAccountProvider.js'; +export * from './BtcAccountProvider.js'; +export * from './TrxAccountProvider.js'; +export * from './XlmAccountProvider.js'; diff --git a/packages/multichain-account-service/src/providers/utils.test.ts b/packages/multichain-account-service/src/providers/utils.test.ts index 5a0c55f053f..b47d20e6226 100644 --- a/packages/multichain-account-service/src/providers/utils.test.ts +++ b/packages/multichain-account-service/src/providers/utils.test.ts @@ -9,7 +9,7 @@ import { isTimeoutError, withRetry, withTimeout, -} from './utils'; +} from './utils.js'; describe('utils', () => { it('retries RPC request up to 3 times if it fails and throws the last error', async () => { diff --git a/packages/multichain-account-service/src/tests/index.ts b/packages/multichain-account-service/src/tests/index.ts index f7f84be2207..2ecfc9d02d3 100644 --- a/packages/multichain-account-service/src/tests/index.ts +++ b/packages/multichain-account-service/src/tests/index.ts @@ -1,4 +1,4 @@ -export type * from './types'; -export * from './accounts'; -export * from './messenger'; -export * from './providers'; +export type * from './types.js'; +export * from './accounts.js'; +export * from './messenger.js'; +export * from './providers.js'; diff --git a/packages/multichain-account-service/src/tests/messenger.ts b/packages/multichain-account-service/src/tests/messenger.ts index a50cdda77db..2380ac2a194 100644 --- a/packages/multichain-account-service/src/tests/messenger.ts +++ b/packages/multichain-account-service/src/tests/messenger.ts @@ -5,7 +5,7 @@ import type { MockAnyNamespace, } from '@metamask/messenger'; -import type { MultichainAccountServiceMessenger } from '../types'; +import type { MultichainAccountServiceMessenger } from '../types.js'; export type AllMultichainAccountServiceActions = MessengerActions; diff --git a/packages/multichain-account-service/src/tests/providers.ts b/packages/multichain-account-service/src/tests/providers.ts index 56ce85a79ee..b5215664b04 100644 --- a/packages/multichain-account-service/src/tests/providers.ts +++ b/packages/multichain-account-service/src/tests/providers.ts @@ -9,8 +9,8 @@ import { import type { KeyringAccount } from '@metamask/keyring-api'; import type { KeyringCapabilities } from '@metamask/keyring-api/v2'; -import { AccountProviderWrapper, EvmAccountProvider } from '../providers'; -import { GroupIndexRange } from '../utils'; +import { AccountProviderWrapper, EvmAccountProvider } from '../providers.js'; +import { GroupIndexRange } from '../utils.js'; export type MockAccountProvider = { mockAccounts: KeyringAccount[]; diff --git a/packages/multichain-account-service/src/types.ts b/packages/multichain-account-service/src/types.ts index 5d86323ca8c..d5d30c85a0f 100644 --- a/packages/multichain-account-service/src/types.ts +++ b/packages/multichain-account-service/src/types.ts @@ -35,8 +35,8 @@ import type { } from '@metamask/snap-account-service'; import type { SnapControllerHandleRequestAction } from '@metamask/snaps-controllers'; -import type { serviceName } from './MultichainAccountService'; -import type { MultichainAccountServiceMethodActions } from './MultichainAccountService-method-action-types'; +import type { MultichainAccountServiceMethodActions } from './MultichainAccountService-method-action-types.js'; +import type { serviceName } from './MultichainAccountService.js'; /** * All actions that {@link MultichainAccountService} registers so that other diff --git a/packages/multichain-account-service/src/utils.test.ts b/packages/multichain-account-service/src/utils.test.ts index 45de314ac4c..c6975c98c90 100644 --- a/packages/multichain-account-service/src/utils.test.ts +++ b/packages/multichain-account-service/src/utils.test.ts @@ -2,7 +2,7 @@ import { toErrorMessage, assertGroupIndexRangeIsValid, assertGroupIndexIsValid, -} from './utils'; +} from './utils.js'; describe('toErrorMessage', () => { it('returns the message of an Error instance', () => { From 4799bf33f2ebf1b623fb33daab99e2e4403070e9 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:50:49 +0200 Subject: [PATCH 094/136] ESLint fix and `jest` global import for authenticated-user-storage --- ...thenticated-user-storage-method-action-types.ts | 2 +- .../src/authenticated-user-storage.test.ts | 14 +++++++------- .../src/authenticated-user-storage.ts | 10 +++++----- packages/authenticated-user-storage/src/index.ts | 14 +++++++------- packages/authenticated-user-storage/src/types.ts | 2 +- .../authenticated-user-storage/src/validators.ts | 2 +- .../tests/fixtures/authenticated-userstorage.ts | 2 +- .../tests/mocks/authenticated-userstorage.ts | 6 +++--- 8 files changed, 26 insertions(+), 26 deletions(-) diff --git a/packages/authenticated-user-storage/src/authenticated-user-storage-method-action-types.ts b/packages/authenticated-user-storage/src/authenticated-user-storage-method-action-types.ts index b400de367c4..39c88ae9c5b 100644 --- a/packages/authenticated-user-storage/src/authenticated-user-storage-method-action-types.ts +++ b/packages/authenticated-user-storage/src/authenticated-user-storage-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { AuthenticatedUserStorageService } from './authenticated-user-storage'; +import type { AuthenticatedUserStorageService } from './authenticated-user-storage.js'; /** * Returns all delegation records belonging to the authenticated user. diff --git a/packages/authenticated-user-storage/src/authenticated-user-storage.test.ts b/packages/authenticated-user-storage/src/authenticated-user-storage.test.ts index 6b8ed45cda6..f0c5c3ee8f8 100644 --- a/packages/authenticated-user-storage/src/authenticated-user-storage.test.ts +++ b/packages/authenticated-user-storage/src/authenticated-user-storage.test.ts @@ -14,7 +14,7 @@ import { handleMockPutNotificationPreferences, handleMockGetAssetsWatchlist, handleMockSetAssetsWatchlist, -} from '../tests/fixtures/authenticated-userstorage'; +} from '../tests/fixtures/authenticated-userstorage.js'; import { MOCK_DELEGATION_RESPONSE, MOCK_DELEGATION_SUBMISSION, @@ -22,15 +22,15 @@ import { MOCK_NOTIFICATION_PREFERENCES, MOCK_ASSETS_WATCHLIST_BLOB, MOCK_ASSETS_WATCHLIST_URL, -} from '../tests/mocks/authenticated-userstorage'; -import type { AuthenticatedUserStorageMessenger } from './authenticated-user-storage'; +} from '../tests/mocks/authenticated-userstorage.js'; +import type { AuthenticatedUserStorageMessenger } from './authenticated-user-storage.js'; import { getAuthenticatedStorageUrl, AuthenticatedUserStorageService, -} from './authenticated-user-storage'; -import type { Environment } from './env'; -import { getUserStorageApiUrl } from './env'; -import { ASSETS_WATCHLIST_MAX_ASSETS } from './validators'; +} from './authenticated-user-storage.js'; +import type { Environment } from './env.js'; +import { getUserStorageApiUrl } from './env.js'; +import { ASSETS_WATCHLIST_MAX_ASSETS } from './validators.js'; const MOCK_ACCESS_TOKEN = 'mock-access-token'; diff --git a/packages/authenticated-user-storage/src/authenticated-user-storage.ts b/packages/authenticated-user-storage/src/authenticated-user-storage.ts index fc84e00555e..2b14522fe3c 100644 --- a/packages/authenticated-user-storage/src/authenticated-user-storage.ts +++ b/packages/authenticated-user-storage/src/authenticated-user-storage.ts @@ -9,22 +9,22 @@ import { HttpError } from '@metamask/controller-utils'; import type { Messenger } from '@metamask/messenger'; import type { Json } from '@metamask/utils'; -import type { AuthenticatedUserStorageServiceMethodActions } from './authenticated-user-storage-method-action-types'; -import type { Environment } from './env'; -import { getUserStorageApiUrl } from './env'; +import type { AuthenticatedUserStorageServiceMethodActions } from './authenticated-user-storage-method-action-types.js'; +import type { Environment } from './env.js'; +import { getUserStorageApiUrl } from './env.js'; import type { AssetsWatchlistBlob, ClientType, DelegationResponse, DelegationSubmission, NotificationPreferences, -} from './types'; +} from './types.js'; import { assertAssetsWatchlistBlob, assertAssetsWatchlistBlobForWrite, assertDelegationResponseArray, assertNotificationPreferences, -} from './validators'; +} from './validators.js'; // === GENERAL === diff --git a/packages/authenticated-user-storage/src/index.ts b/packages/authenticated-user-storage/src/index.ts index 96d3efec1ba..d1bb02bdbca 100644 --- a/packages/authenticated-user-storage/src/index.ts +++ b/packages/authenticated-user-storage/src/index.ts @@ -1,12 +1,12 @@ export { getAuthenticatedStorageUrl, AuthenticatedUserStorageService, -} from './authenticated-user-storage'; +} from './authenticated-user-storage.js'; export { ASSETS_WATCHLIST_MAX_ASSETS, DEFAULT_AGENTIC_CLI_PREFERENCES, DEFAULT_PRICE_ALERT_PREFERENCES, -} from './validators'; +} from './validators.js'; export type { AuthenticatedUserStorageActions, AuthenticatedUserStorageCacheUpdatedEvent, @@ -14,7 +14,7 @@ export type { AuthenticatedUserStorageGranularCacheUpdatedEvent, AuthenticatedUserStorageInvalidateQueriesAction, AuthenticatedUserStorageMessenger, -} from './authenticated-user-storage'; +} from './authenticated-user-storage.js'; export type { AuthenticatedUserStorageServiceListDelegationsAction, AuthenticatedUserStorageServiceCreateDelegationAction, @@ -23,9 +23,9 @@ export type { AuthenticatedUserStorageServicePutNotificationPreferencesAction, AuthenticatedUserStorageServiceGetAssetsWatchlistAction, AuthenticatedUserStorageServiceSetAssetsWatchlistAction, -} from './authenticated-user-storage-method-action-types'; -export { getUserStorageApiUrl } from './env'; -export type { Environment } from './env'; +} from './authenticated-user-storage-method-action-types.js'; +export { getUserStorageApiUrl } from './env.js'; +export type { Environment } from './env.js'; export type { Caveat, SignedDelegation, @@ -44,4 +44,4 @@ export type { NotificationPreferences, AssetsWatchlistBlob, ClientType, -} from './types'; +} from './types.js'; diff --git a/packages/authenticated-user-storage/src/types.ts b/packages/authenticated-user-storage/src/types.ts index f3a2323a19d..8775fc68032 100644 --- a/packages/authenticated-user-storage/src/types.ts +++ b/packages/authenticated-user-storage/src/types.ts @@ -133,7 +133,7 @@ export type NotificationPreferences = { // `./validators` and re-exported here so the public type surface remains in // `./types`. Keeping the runtime schema and the static type co-located in // one file keeps the two in lock-step. -export type { AssetsWatchlistBlob } from './validators'; +export type { AssetsWatchlistBlob } from './validators.js'; // --------------------------------------------------------------------------- // Shared diff --git a/packages/authenticated-user-storage/src/validators.ts b/packages/authenticated-user-storage/src/validators.ts index 8e5eaa0b9a4..8bc6098c6c6 100644 --- a/packages/authenticated-user-storage/src/validators.ts +++ b/packages/authenticated-user-storage/src/validators.ts @@ -18,7 +18,7 @@ import type { DelegationResponse, NotificationPreferences, PriceAlertPreference, -} from './types'; +} from './types.js'; /** * Matches a 0x-prefixed hex string with zero or more hex digits. diff --git a/packages/authenticated-user-storage/tests/fixtures/authenticated-userstorage.ts b/packages/authenticated-user-storage/tests/fixtures/authenticated-userstorage.ts index 564ab5f1a07..10d005b4e90 100644 --- a/packages/authenticated-user-storage/tests/fixtures/authenticated-userstorage.ts +++ b/packages/authenticated-user-storage/tests/fixtures/authenticated-userstorage.ts @@ -7,7 +7,7 @@ import { MOCK_DELEGATION_RESPONSE, MOCK_NOTIFICATION_PREFERENCES, MOCK_NOTIFICATION_PREFERENCES_URL, -} from '../mocks/authenticated-userstorage'; +} from '../mocks/authenticated-userstorage.js'; type MockReply = { status: nock.StatusCode; diff --git a/packages/authenticated-user-storage/tests/mocks/authenticated-userstorage.ts b/packages/authenticated-user-storage/tests/mocks/authenticated-userstorage.ts index 4f82283c601..e959a2fa211 100644 --- a/packages/authenticated-user-storage/tests/mocks/authenticated-userstorage.ts +++ b/packages/authenticated-user-storage/tests/mocks/authenticated-userstorage.ts @@ -1,11 +1,11 @@ -import { getAuthenticatedStorageUrl } from '../../src/authenticated-user-storage'; +import { getAuthenticatedStorageUrl } from '../../src/authenticated-user-storage.js'; import type { AssetsWatchlistBlob, DelegationResponse, DelegationSubmission, NotificationPreferences, -} from '../../src/types'; -import { DEFAULT_PRICE_ALERT_PREFERENCES } from '../../src/validators'; +} from '../../src/types.js'; +import { DEFAULT_PRICE_ALERT_PREFERENCES } from '../../src/validators.js'; export const MOCK_DELEGATIONS_URL = `${getAuthenticatedStorageUrl('prod')}/delegations`; export const MOCK_NOTIFICATION_PREFERENCES_URL = `${getAuthenticatedStorageUrl('prod')}/preferences/notifications`; From 7c2fb6fdeb9a4268cb6a3660b4777c27ff4b61d3 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:50:50 +0200 Subject: [PATCH 095/136] ESLint fix and `jest` global import for chomp-api-service --- .../src/chomp-api-service-method-action-types.ts | 2 +- packages/chomp-api-service/src/chomp-api-service.test.ts | 4 ++-- packages/chomp-api-service/src/chomp-api-service.ts | 4 ++-- packages/chomp-api-service/src/index.ts | 8 ++++---- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/chomp-api-service/src/chomp-api-service-method-action-types.ts b/packages/chomp-api-service/src/chomp-api-service-method-action-types.ts index ba2e1c8c984..26c863b0d9b 100644 --- a/packages/chomp-api-service/src/chomp-api-service-method-action-types.ts +++ b/packages/chomp-api-service/src/chomp-api-service-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { ChompApiService } from './chomp-api-service'; +import type { ChompApiService } from './chomp-api-service.js'; /** * Associates an address with a CHOMP profile. diff --git a/packages/chomp-api-service/src/chomp-api-service.test.ts b/packages/chomp-api-service/src/chomp-api-service.test.ts index 1750ff5fecb..c80b6ba7b5c 100644 --- a/packages/chomp-api-service/src/chomp-api-service.test.ts +++ b/packages/chomp-api-service/src/chomp-api-service.test.ts @@ -7,8 +7,8 @@ import type { } from '@metamask/messenger'; import nock from 'nock'; -import type { ChompApiServiceMessenger } from './chomp-api-service'; -import { ChompApiService } from './chomp-api-service'; +import type { ChompApiServiceMessenger } from './chomp-api-service.js'; +import { ChompApiService } from './chomp-api-service.js'; const BASE_URL = 'https://api.chomp.example.com'; const MOCK_TOKEN = 'mock-jwt-token'; diff --git a/packages/chomp-api-service/src/chomp-api-service.ts b/packages/chomp-api-service/src/chomp-api-service.ts index 2e30d829763..a8d400c1bc5 100644 --- a/packages/chomp-api-service/src/chomp-api-service.ts +++ b/packages/chomp-api-service/src/chomp-api-service.ts @@ -29,7 +29,7 @@ import { } from '@metamask/utils'; import type { QueryClientConfig } from '@tanstack/query-core'; -import type { ChompApiServiceMethodActions } from './chomp-api-service-method-action-types'; +import type { ChompApiServiceMethodActions } from './chomp-api-service-method-action-types.js'; import type { AssociateAddressParams, AssociateAddressResponse, @@ -45,7 +45,7 @@ import type { ServiceDetailsResponse, VerifyDelegationParams, VerifyDelegationResponse, -} from './types'; +} from './types.js'; // === GENERAL === diff --git a/packages/chomp-api-service/src/index.ts b/packages/chomp-api-service/src/index.ts index 72d6cc07f37..ab5b8faa26f 100644 --- a/packages/chomp-api-service/src/index.ts +++ b/packages/chomp-api-service/src/index.ts @@ -1,4 +1,4 @@ -export { ChompApiService } from './chomp-api-service'; +export { ChompApiService } from './chomp-api-service.js'; export type { ChompApiServiceMessenger, ChompApiServiceActions, @@ -6,7 +6,7 @@ export type { ChompApiServiceInvalidateQueriesAction, ChompApiServiceCacheUpdatedEvent, ChompApiServiceGranularCacheUpdatedEvent, -} from './chomp-api-service'; +} from './chomp-api-service.js'; export type { ChompApiServiceAssociateAddressAction, ChompApiServiceGetAssociatedAddressesAction, @@ -17,7 +17,7 @@ export type { ChompApiServiceGetIntentsByAddressAction, ChompApiServiceCreateWithdrawalAction, ChompApiServiceGetServiceDetailsAction, -} from './chomp-api-service-method-action-types'; +} from './chomp-api-service-method-action-types.js'; export type { AccountUpgradeStatus, AssociateAddressParams, @@ -42,4 +42,4 @@ export type { SignedDelegation, VerifyDelegationParams, VerifyDelegationResponse, -} from './types'; +} from './types.js'; From 6d300d55016d5c7994e08da32f117cbac1cb7b7a Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:50:53 +0200 Subject: [PATCH 096/136] ESLint fix and `jest` global import for claims-controller --- .../src/ClaimsController-method-action-types.ts | 2 +- .../claims-controller/src/ClaimsController.test.ts | 10 +++++----- packages/claims-controller/src/ClaimsController.ts | 8 ++++---- .../claims-controller/src/ClaimsService.test.ts | 10 +++++----- packages/claims-controller/src/ClaimsService.ts | 10 +++++----- packages/claims-controller/src/index.ts | 14 +++++++------- packages/claims-controller/src/logger.ts | 2 +- packages/claims-controller/src/types.ts | 2 +- packages/claims-controller/src/utils.test.ts | 2 +- .../claims-controller/tests/mocks/messenger.ts | 4 ++-- packages/claims-controller/tests/types.ts | 6 +++--- 11 files changed, 35 insertions(+), 35 deletions(-) diff --git a/packages/claims-controller/src/ClaimsController-method-action-types.ts b/packages/claims-controller/src/ClaimsController-method-action-types.ts index 6685cd3aedf..4cf63e746c7 100644 --- a/packages/claims-controller/src/ClaimsController-method-action-types.ts +++ b/packages/claims-controller/src/ClaimsController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { ClaimsController } from './ClaimsController'; +import type { ClaimsController } from './ClaimsController.js'; /** * Fetch the required configurations for the claims service. diff --git a/packages/claims-controller/src/ClaimsController.test.ts b/packages/claims-controller/src/ClaimsController.test.ts index 9b096d674e4..e4e1ab9dfbf 100644 --- a/packages/claims-controller/src/ClaimsController.test.ts +++ b/packages/claims-controller/src/ClaimsController.test.ts @@ -1,18 +1,18 @@ import { toHex } from '@metamask/controller-utils'; -import { createMockClaimsControllerMessenger } from '../tests/mocks/messenger'; -import type { WithControllerArgs } from '../tests/types'; +import { createMockClaimsControllerMessenger } from '../tests/mocks/messenger.js'; +import type { WithControllerArgs } from '../tests/types.js'; import { ClaimsController, getDefaultClaimsControllerState, -} from './ClaimsController'; -import { ClaimsControllerErrorMessages, ClaimStatusEnum } from './constants'; +} from './ClaimsController.js'; +import { ClaimsControllerErrorMessages, ClaimStatusEnum } from './constants.js'; import type { Claim, ClaimDraft, ClaimsConfigurationsResponse, CreateClaimRequest, -} from './types'; +} from './types.js'; const mockClaimServiceRequestHeaders = jest.fn(); const mockClaimServiceGetClaimsApiUrl = jest.fn(); diff --git a/packages/claims-controller/src/ClaimsController.ts b/packages/claims-controller/src/ClaimsController.ts index f9ce5070afe..473fe3531ef 100644 --- a/packages/claims-controller/src/ClaimsController.ts +++ b/packages/claims-controller/src/ClaimsController.ts @@ -9,7 +9,7 @@ import type { KeyringControllerSignPersonalMessageAction } from '@metamask/keyri import type { Messenger } from '@metamask/messenger'; import { bytesToHex, stringToBytes } from '@metamask/utils'; -import type { ClaimsControllerMethodActions } from './ClaimsController-method-action-types'; +import type { ClaimsControllerMethodActions } from './ClaimsController-method-action-types.js'; import type { ClaimsServiceFetchClaimsConfigurationsAction, ClaimsServiceGenerateMessageForClaimSignatureAction, @@ -17,13 +17,13 @@ import type { ClaimsServiceGetClaimsAction, ClaimsServiceGetClaimsApiUrlAction, ClaimsServiceGetRequestHeadersAction, -} from './ClaimsService'; +} from './ClaimsService.js'; import { ClaimsControllerErrorMessages, CONTROLLER_NAME, DEFAULT_CLAIMS_CONFIGURATIONS, SERVICE_NAME, -} from './constants'; +} from './constants.js'; import type { Claim, ClaimDraft, @@ -31,7 +31,7 @@ import type { ClaimsControllerState, CreateClaimRequest, SubmitClaimConfig, -} from './types'; +} from './types.js'; export type ClaimsControllerGetStateAction = ControllerGetStateAction< typeof CONTROLLER_NAME, diff --git a/packages/claims-controller/src/ClaimsService.test.ts b/packages/claims-controller/src/ClaimsService.test.ts index 83ddac4a3ec..e760a0a635b 100644 --- a/packages/claims-controller/src/ClaimsService.test.ts +++ b/packages/claims-controller/src/ClaimsService.test.ts @@ -1,17 +1,17 @@ -import { createMockClaimsServiceMessenger } from '../tests/mocks/messenger'; -import { ClaimsService } from './ClaimsService'; +import { createMockClaimsServiceMessenger } from '../tests/mocks/messenger.js'; +import { ClaimsService } from './ClaimsService.js'; import { CLAIMS_API_URL_MAP, ClaimsServiceErrorMessages, ClaimStatusEnum, Env, -} from './constants'; +} from './constants.js'; import type { Claim, ClaimsConfigurationsResponse, GenerateSignatureMessageResponse, -} from './types'; -import { createSentryError } from './utils'; +} from './types.js'; +import { createSentryError } from './utils.js'; const mockAuthenticationControllerGetBearerToken = jest.fn(); const mockFetchFunction = jest.fn(); diff --git a/packages/claims-controller/src/ClaimsService.ts b/packages/claims-controller/src/ClaimsService.ts index 8e09a1a50a0..209cbd92417 100644 --- a/packages/claims-controller/src/ClaimsService.ts +++ b/packages/claims-controller/src/ClaimsService.ts @@ -6,15 +6,15 @@ import { CLAIMS_API_URL_MAP, ClaimsServiceErrorMessages, SERVICE_NAME, -} from './constants'; -import type { Env } from './constants'; -import { createModuleLogger, projectLogger } from './logger'; +} from './constants.js'; +import type { Env } from './constants.js'; +import { createModuleLogger, projectLogger } from './logger.js'; import type { Claim, ClaimsConfigurationsResponse, GenerateSignatureMessageResponse, -} from './types'; -import { createSentryError, getErrorFromResponse } from './utils'; +} from './types.js'; +import { createSentryError, getErrorFromResponse } from './utils.js'; export type ClaimsServiceFetchClaimsConfigurationsAction = { type: `${typeof SERVICE_NAME}:fetchClaimsConfigurations`; diff --git a/packages/claims-controller/src/index.ts b/packages/claims-controller/src/index.ts index 6675c21c470..5c33db2987b 100644 --- a/packages/claims-controller/src/index.ts +++ b/packages/claims-controller/src/index.ts @@ -1,14 +1,14 @@ export { ClaimsController, getDefaultClaimsControllerState, -} from './ClaimsController'; +} from './ClaimsController.js'; export type { ClaimsControllerGetStateAction, ClaimsControllerActions, ClaimsControllerStateChangeEvent, ClaimsControllerMessenger, -} from './ClaimsController'; +} from './ClaimsController.js'; export type { ClaimsControllerFetchClaimsConfigurationsAction, @@ -20,7 +20,7 @@ export type { ClaimsControllerDeleteClaimDraftAction, ClaimsControllerDeleteAllClaimDraftsAction, ClaimsControllerClearStateAction, -} from './ClaimsController-method-action-types'; +} from './ClaimsController-method-action-types.js'; export type { Claim, @@ -30,9 +30,9 @@ export type { CreateClaimRequest, SubmitClaimConfig, ClaimDraft, -} from './types'; +} from './types.js'; -export { ClaimsService } from './ClaimsService'; +export { ClaimsService } from './ClaimsService.js'; export type { ClaimsServiceFetchClaimsConfigurationsAction, @@ -43,7 +43,7 @@ export type { ClaimsServiceGenerateMessageForClaimSignatureAction, ClaimsServiceActions, ClaimsServiceMessenger, -} from './ClaimsService'; +} from './ClaimsService.js'; export { ClaimStatusEnum, @@ -52,4 +52,4 @@ export { DEFAULT_CLAIMS_CONFIGURATIONS, ClaimsServiceErrorMessages, CLAIMS_API_URL_MAP, -} from './constants'; +} from './constants.js'; diff --git a/packages/claims-controller/src/logger.ts b/packages/claims-controller/src/logger.ts index 2a7fd152af5..a122df6b96c 100644 --- a/packages/claims-controller/src/logger.ts +++ b/packages/claims-controller/src/logger.ts @@ -1,6 +1,6 @@ import { createProjectLogger, createModuleLogger } from '@metamask/utils'; -import { CONTROLLER_NAME } from './constants'; +import { CONTROLLER_NAME } from './constants.js'; export const projectLogger = createProjectLogger(CONTROLLER_NAME); diff --git a/packages/claims-controller/src/types.ts b/packages/claims-controller/src/types.ts index 9eae8d3d4d0..9b03109d544 100644 --- a/packages/claims-controller/src/types.ts +++ b/packages/claims-controller/src/types.ts @@ -1,6 +1,6 @@ import type { Hex } from '@metamask/utils'; -import type { ClaimStatusEnum } from './constants'; +import type { ClaimStatusEnum } from './constants.js'; export type Attachment = { publicUrl: string; diff --git a/packages/claims-controller/src/utils.test.ts b/packages/claims-controller/src/utils.test.ts index 7b4a58c363f..6013b070060 100644 --- a/packages/claims-controller/src/utils.test.ts +++ b/packages/claims-controller/src/utils.test.ts @@ -1,4 +1,4 @@ -import { getErrorFromResponse, createSentryError } from './utils'; +import { getErrorFromResponse, createSentryError } from './utils.js'; describe('getErrorFromResponse', () => { it('returns error with message from JSON response', async () => { diff --git a/packages/claims-controller/tests/mocks/messenger.ts b/packages/claims-controller/tests/mocks/messenger.ts index 7836f5b52c1..7022016b65b 100644 --- a/packages/claims-controller/tests/mocks/messenger.ts +++ b/packages/claims-controller/tests/mocks/messenger.ts @@ -8,8 +8,8 @@ import type { import type { ClaimsServiceMessenger, ClaimsControllerMessenger, -} from '../../src'; -import { CONTROLLER_NAME, SERVICE_NAME } from '../../src/constants'; +} from '../../src.js'; +import { CONTROLLER_NAME, SERVICE_NAME } from '../../src/constants.js'; type AllShieldControllerActions = MessengerActions; diff --git a/packages/claims-controller/tests/types.ts b/packages/claims-controller/tests/types.ts index 2160c2b5da9..060136fbe67 100644 --- a/packages/claims-controller/tests/types.ts +++ b/packages/claims-controller/tests/types.ts @@ -2,9 +2,9 @@ import type { ClaimsController, ClaimsControllerMessenger, ClaimsControllerOptions, -} from '../src/ClaimsController'; -import type { ClaimsControllerState } from '../src/types'; -import type { RootControllerMessenger } from './mocks/messenger'; +} from '../src/ClaimsController.js'; +import type { ClaimsControllerState } from '../src/types.js'; +import type { RootControllerMessenger } from './mocks/messenger.js'; /** * Helper function to create controller with options. From 0c4fc4830c006698aa017927b4a12e2ea3a488f1 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:50:54 +0200 Subject: [PATCH 097/136] ESLint fix and `jest` global import for client-utils --- packages/client-utils/src/index.ts | 8 ++++---- .../src/mappers/api-transaction-mapper.test.ts | 6 +++--- .../src/mappers/api-transaction-mapper.ts | 8 ++++---- .../client-utils/src/mappers/helpers/caip.test.ts | 2 +- packages/client-utils/src/mappers/helpers/caip.ts | 2 +- .../src/mappers/helpers/token-metadata.test.ts | 2 +- .../src/mappers/helpers/token-metadata.ts | 2 +- .../src/mappers/helpers/transactions.test.ts | 4 ++-- .../src/mappers/helpers/transactions.ts | 10 +++++----- .../src/mappers/keyring-transaction-mapper.test.ts | 4 ++-- .../src/mappers/keyring-transaction-mapper.ts | 2 +- .../src/mappers/local-transaction-mapper.test.ts | 6 +++--- .../src/mappers/local-transaction-mapper.ts | 14 +++++++------- .../test/fixtures/keyring-transactions.ts | 2 +- .../test/fixtures/local-transactions.ts | 4 ++-- packages/client-utils/test/test-helpers.ts | 4 ++-- 16 files changed, 40 insertions(+), 40 deletions(-) diff --git a/packages/client-utils/src/index.ts b/packages/client-utils/src/index.ts index fb31f08249c..141283712e1 100644 --- a/packages/client-utils/src/index.ts +++ b/packages/client-utils/src/index.ts @@ -1,5 +1,5 @@ -export { mapApiTransaction } from './mappers/api-transaction-mapper'; -export { mapKeyringTransaction } from './mappers/keyring-transaction-mapper'; -export { mapLocalTransaction } from './mappers/local-transaction-mapper'; +export { mapApiTransaction } from './mappers/api-transaction-mapper.js'; +export { mapKeyringTransaction } from './mappers/keyring-transaction-mapper.js'; +export { mapLocalTransaction } from './mappers/local-transaction-mapper.js'; -export type * from './types'; +export type * from './types.js'; diff --git a/packages/client-utils/src/mappers/api-transaction-mapper.test.ts b/packages/client-utils/src/mappers/api-transaction-mapper.test.ts index 2869421cf1f..35ddc89fac8 100644 --- a/packages/client-utils/src/mappers/api-transaction-mapper.test.ts +++ b/packages/client-utils/src/mappers/api-transaction-mapper.test.ts @@ -1,6 +1,6 @@ -import { apiTransactionFixtures } from '../../test/fixtures/api-transactions'; -import { mapApiTransaction } from './api-transaction-mapper'; -import { formatAddressToAssetId } from './helpers/caip'; +import { apiTransactionFixtures } from '../../test/fixtures/api-transactions.js'; +import { mapApiTransaction } from './api-transaction-mapper.js'; +import { formatAddressToAssetId } from './helpers/caip.js'; // Mock known-token lookup with the deterministic test table in `test/`. jest.mock('./helpers/token-metadata', () => ({ diff --git a/packages/client-utils/src/mappers/api-transaction-mapper.ts b/packages/client-utils/src/mappers/api-transaction-mapper.ts index e18751b0e8c..16b2b87c41c 100644 --- a/packages/client-utils/src/mappers/api-transaction-mapper.ts +++ b/packages/client-utils/src/mappers/api-transaction-mapper.ts @@ -10,15 +10,15 @@ import type { Status, TokenAmount, ValueTransfer, -} from '../types'; +} from '../types.js'; import { nativeTokenAddress, supplyMethodIds, swapsWrappedTokensAddresses, withdrawMethodIds, wrapMethodIds, -} from './constants'; -import { formatAddressToAssetId, getNativeAsset } from './helpers/caip'; +} from './constants.js'; +import { formatAddressToAssetId, getNativeAsset } from './helpers/caip.js'; import { getFees, getNftPaymentTransfer, @@ -26,7 +26,7 @@ import { getTokenMetadataFromKnownToken, parseValueTransfers, withFallbackTokenAssetId, -} from './helpers/transactions'; +} from './helpers/transactions.js'; /** * Maps an indexed API transaction into the shared activity item shape. diff --git a/packages/client-utils/src/mappers/helpers/caip.test.ts b/packages/client-utils/src/mappers/helpers/caip.test.ts index 20209510707..67e7462787b 100644 --- a/packages/client-utils/src/mappers/helpers/caip.test.ts +++ b/packages/client-utils/src/mappers/helpers/caip.test.ts @@ -2,7 +2,7 @@ import { formatAddressToAssetId, formatChainIdToCaip, getNativeAsset, -} from './caip'; +} from './caip.js'; describe('caip helpers', () => { describe('formatChainIdToCaip', () => { diff --git a/packages/client-utils/src/mappers/helpers/caip.ts b/packages/client-utils/src/mappers/helpers/caip.ts index 1f8a1c6d3ee..d0d0edc9085 100644 --- a/packages/client-utils/src/mappers/helpers/caip.ts +++ b/packages/client-utils/src/mappers/helpers/caip.ts @@ -7,7 +7,7 @@ import { toCaipAssetType, } from '@metamask/utils'; -import { nativeTokenAddress } from '../constants'; +import { nativeTokenAddress } from '../constants.js'; export type NativeAssetMetadata = { symbol: string; diff --git a/packages/client-utils/src/mappers/helpers/token-metadata.test.ts b/packages/client-utils/src/mappers/helpers/token-metadata.test.ts index 0b324575773..f0d6cfe6989 100644 --- a/packages/client-utils/src/mappers/helpers/token-metadata.test.ts +++ b/packages/client-utils/src/mappers/helpers/token-metadata.test.ts @@ -1,4 +1,4 @@ -import { getKnownTokenMetadata } from './token-metadata'; +import { getKnownTokenMetadata } from './token-metadata.js'; describe('getKnownTokenMetadata', () => { it('returns undefined when the contract address is missing', () => { diff --git a/packages/client-utils/src/mappers/helpers/token-metadata.ts b/packages/client-utils/src/mappers/helpers/token-metadata.ts index f4959967392..1bf72cefaba 100644 --- a/packages/client-utils/src/mappers/helpers/token-metadata.ts +++ b/packages/client-utils/src/mappers/helpers/token-metadata.ts @@ -2,7 +2,7 @@ import contractMap from '@metamask/contract-metadata'; import { toChecksumHexAddress } from '@metamask/controller-utils'; import type { CaipChainId, Hex } from '@metamask/utils'; -import { formatAddressToAssetId } from './caip'; +import { formatAddressToAssetId } from './caip.js'; export type KnownTokenMetadata = { symbol?: string; diff --git a/packages/client-utils/src/mappers/helpers/transactions.test.ts b/packages/client-utils/src/mappers/helpers/transactions.test.ts index 3127f194596..27e69a2277d 100644 --- a/packages/client-utils/src/mappers/helpers/transactions.test.ts +++ b/packages/client-utils/src/mappers/helpers/transactions.test.ts @@ -1,4 +1,4 @@ -import * as tokenMetadata from './token-metadata'; +import * as tokenMetadata from './token-metadata.js'; import { getFees, getLocalTransactionFees, @@ -9,7 +9,7 @@ import { isNftStandard, parseValueTransfers, withFallbackTokenAssetId, -} from './transactions'; +} from './transactions.js'; describe('transaction helpers', () => { afterEach(() => { diff --git a/packages/client-utils/src/mappers/helpers/transactions.ts b/packages/client-utils/src/mappers/helpers/transactions.ts index 332ce98092d..4f1df467292 100644 --- a/packages/client-utils/src/mappers/helpers/transactions.ts +++ b/packages/client-utils/src/mappers/helpers/transactions.ts @@ -11,10 +11,10 @@ import { } from '@metamask/transaction-controller'; import type { CaipChainId, Hex } from '@metamask/utils'; -import type { Fee, Status, TokenAmount, ValueTransfer } from '../../types'; -import { nativeTokenAddress } from '../constants'; -import { formatAddressToAssetId, getNativeAsset } from './caip'; -import { getKnownTokenMetadata } from './token-metadata'; +import type { Fee, Status, TokenAmount, ValueTransfer } from '../../types.js'; +import { nativeTokenAddress } from '../constants.js'; +import { formatAddressToAssetId, getNativeAsset } from './caip.js'; +import { getKnownTokenMetadata } from './token-metadata.js'; // Adds optional `isSmartTransaction` to `TransactionMeta`. export type TransactionGroup = { @@ -326,7 +326,7 @@ export function getTokenAmountFromTransfer( const { transferType, amount } = transfer; const isNftTransfer = isNftStandard(transferType); const symbol = isNftTransfer - ? transfer.name || transfer.symbol + ? (transfer.name ?? transfer.symbol) : transfer.symbol; if (!symbol && amount === undefined) { diff --git a/packages/client-utils/src/mappers/keyring-transaction-mapper.test.ts b/packages/client-utils/src/mappers/keyring-transaction-mapper.test.ts index e1902a92d01..d6624ffef73 100644 --- a/packages/client-utils/src/mappers/keyring-transaction-mapper.test.ts +++ b/packages/client-utils/src/mappers/keyring-transaction-mapper.test.ts @@ -1,7 +1,7 @@ import { SolScope } from '@metamask/keyring-api'; -import { keyringTransactionFixtures } from '../../test/fixtures/keyring-transactions'; -import { mapKeyringTransaction } from './keyring-transaction-mapper'; +import { keyringTransactionFixtures } from '../../test/fixtures/keyring-transactions.js'; +import { mapKeyringTransaction } from './keyring-transaction-mapper.js'; describe('mapKeyringTransaction', () => { it('maps keyring send transactions with token amount data', () => { diff --git a/packages/client-utils/src/mappers/keyring-transaction-mapper.ts b/packages/client-utils/src/mappers/keyring-transaction-mapper.ts index 789f31fe73a..84edd2da9e4 100644 --- a/packages/client-utils/src/mappers/keyring-transaction-mapper.ts +++ b/packages/client-utils/src/mappers/keyring-transaction-mapper.ts @@ -4,7 +4,7 @@ import { TransactionType as KeyringTransactionType, } from '@metamask/keyring-api'; -import type { Fee, ActivityItem, Status, TokenAmount } from '../types'; +import type { Fee, ActivityItem, Status, TokenAmount } from '../types.js'; type Movement = KeyringTransaction['from'][number]; type KeyringFee = KeyringTransaction['fees'][number]; diff --git a/packages/client-utils/src/mappers/local-transaction-mapper.test.ts b/packages/client-utils/src/mappers/local-transaction-mapper.test.ts index 2888cef1e69..bcbbec1dad0 100644 --- a/packages/client-utils/src/mappers/local-transaction-mapper.test.ts +++ b/packages/client-utils/src/mappers/local-transaction-mapper.test.ts @@ -1,6 +1,6 @@ -import { localTransactionFixtures } from '../../test/fixtures/local-transactions'; -import { formatAddressToAssetId } from './helpers/caip'; -import { mapLocalTransaction } from './local-transaction-mapper'; +import { localTransactionFixtures } from '../../test/fixtures/local-transactions.js'; +import { formatAddressToAssetId } from './helpers/caip.js'; +import { mapLocalTransaction } from './local-transaction-mapper.js'; jest.mock('./helpers/token-metadata', () => ({ getKnownTokenMetadata: jest.requireActual('../../test/test-helpers') diff --git a/packages/client-utils/src/mappers/local-transaction-mapper.ts b/packages/client-utils/src/mappers/local-transaction-mapper.ts index 16789381040..ff219ec64f0 100644 --- a/packages/client-utils/src/mappers/local-transaction-mapper.ts +++ b/packages/client-utils/src/mappers/local-transaction-mapper.ts @@ -2,7 +2,7 @@ import { isEqualCaseInsensitive as equalsIgnoreCase } from '@metamask/controller import { TransactionType } from '@metamask/transaction-controller'; import { KnownCaipNamespace, toCaipChainId } from '@metamask/utils'; -import type { Fee, ActivityItem, TokenAmount } from '../types'; +import type { Fee, ActivityItem, TokenAmount } from '../types.js'; import { permit2ApproveMethodId, swapsWrappedTokensAddresses, @@ -11,15 +11,15 @@ import { unwrapMethodIds, withdrawMethodIds, wrapMethodIds, -} from './constants'; -import { formatAddressToAssetId, getNativeAsset } from './helpers/caip'; -import { getKnownTokenMetadata } from './helpers/token-metadata'; +} from './constants.js'; +import { formatAddressToAssetId, getNativeAsset } from './helpers/caip.js'; +import { getKnownTokenMetadata } from './helpers/token-metadata.js'; import { getLocalTransactionFees, getLocalTransactionStatus, isNftStandard, -} from './helpers/transactions'; -import type { TransactionGroup } from './helpers/transactions'; +} from './helpers/transactions.js'; +import type { TransactionGroup } from './helpers/transactions.js'; const evmNativeDecimals = 18; @@ -63,7 +63,7 @@ export function mapLocalTransaction( const isPermit2Approve = methodId === permit2ApproveMethodId; const tokenContractAddress = isPermit2Approve ? undefined - : (transferInformation?.contractAddress ?? (to || undefined)); + : (transferInformation?.contractAddress ?? to ?? undefined); const chainId = toCaipChainId( KnownCaipNamespace.Eip155, Number.parseInt(initialTransaction.chainId, 16).toString(), diff --git a/packages/client-utils/test/fixtures/keyring-transactions.ts b/packages/client-utils/test/fixtures/keyring-transactions.ts index d9bc457b2ed..d79a1ac9a39 100644 --- a/packages/client-utils/test/fixtures/keyring-transactions.ts +++ b/packages/client-utils/test/fixtures/keyring-transactions.ts @@ -5,7 +5,7 @@ import { TransactionType, } from '@metamask/keyring-api'; -import { CustomTransactionTypeLabel } from '../../src/mappers/keyring-transaction-mapper'; +import { CustomTransactionTypeLabel } from '../../src/mappers/keyring-transaction-mapper.js'; const accountId = '00000000-0000-4000-8000-000000000000'; const stellarUsdcAsset = `stellar:pubnet/asset:USDC-GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN`; diff --git a/packages/client-utils/test/fixtures/local-transactions.ts b/packages/client-utils/test/fixtures/local-transactions.ts index 6de26dc2975..5204ac25429 100644 --- a/packages/client-utils/test/fixtures/local-transactions.ts +++ b/packages/client-utils/test/fixtures/local-transactions.ts @@ -3,12 +3,12 @@ import { TransactionType, } from '@metamask/transaction-controller'; -import { formatAddressToAssetId } from '../../src/mappers/helpers/caip'; +import { formatAddressToAssetId } from '../../src/mappers/helpers/caip.js'; import { buildApproveTransactionData, buildPermit2ApproveTransactionData, encodeMerklClaimCalldata, -} from '../test-helpers'; +} from '../test-helpers.js'; const chainIds = { mainnet: '0x1', diff --git a/packages/client-utils/test/test-helpers.ts b/packages/client-utils/test/test-helpers.ts index 0f43a700217..49c1095b1dc 100644 --- a/packages/client-utils/test/test-helpers.ts +++ b/packages/client-utils/test/test-helpers.ts @@ -1,8 +1,8 @@ import { Interface } from '@ethersproject/abi'; import type { CaipChainId, Hex } from '@metamask/utils'; -import { formatAddressToAssetId } from '../src/mappers/helpers/caip'; -import type { KnownTokenMetadata } from '../src/mappers/helpers/token-metadata'; +import { formatAddressToAssetId } from '../src/mappers/helpers/caip.js'; +import type { KnownTokenMetadata } from '../src/mappers/helpers/token-metadata.js'; const knownTokens: Record< string, From d67c57cc6dc58b8485cfc506137d5382311f1cd2 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:50:57 +0200 Subject: [PATCH 098/136] ESLint fix and `jest` global import for delegation-controller --- .../src/DelegationController-method-action-types.ts | 2 +- .../src/DelegationController.test.ts | 11 +++++++---- .../delegation-controller/src/DelegationController.ts | 4 ++-- packages/delegation-controller/src/constants.ts | 2 +- packages/delegation-controller/src/index.ts | 6 +++--- packages/delegation-controller/src/types.ts | 4 ++-- packages/delegation-controller/src/utils.ts | 4 ++-- 7 files changed, 18 insertions(+), 15 deletions(-) diff --git a/packages/delegation-controller/src/DelegationController-method-action-types.ts b/packages/delegation-controller/src/DelegationController-method-action-types.ts index 1a9aef56e27..18d17f8e296 100644 --- a/packages/delegation-controller/src/DelegationController-method-action-types.ts +++ b/packages/delegation-controller/src/DelegationController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { DelegationController } from './DelegationController'; +import type { DelegationController } from './DelegationController.js'; /** * Signs a delegation. diff --git a/packages/delegation-controller/src/DelegationController.test.ts b/packages/delegation-controller/src/DelegationController.test.ts index 5e885b7ed36..1c0a43d7f56 100644 --- a/packages/delegation-controller/src/DelegationController.test.ts +++ b/packages/delegation-controller/src/DelegationController.test.ts @@ -8,8 +8,11 @@ import type { } from '@metamask/messenger'; import { hexToNumber } from '@metamask/utils'; -import { ROOT_AUTHORITY } from './constants'; -import { controllerName, DelegationController } from './DelegationController'; +import { ROOT_AUTHORITY } from './constants.js'; +import { + controllerName, + DelegationController, +} from './DelegationController.js'; import type { Address, Delegation, @@ -17,8 +20,8 @@ import type { DelegationControllerState, DeleGatorEnvironment, Hex, -} from './types'; -import { toDelegationStruct } from './utils'; +} from './types.js'; +import { toDelegationStruct } from './utils.js'; type AllDelegationControllerActions = MessengerActions; diff --git a/packages/delegation-controller/src/DelegationController.ts b/packages/delegation-controller/src/DelegationController.ts index 98e399368ab..3118641fd0f 100644 --- a/packages/delegation-controller/src/DelegationController.ts +++ b/packages/delegation-controller/src/DelegationController.ts @@ -9,8 +9,8 @@ import type { DeleGatorEnvironment, Hex, UnsignedDelegation, -} from './types'; -import { createTypedMessageParams } from './utils'; +} from './types.js'; +import { createTypedMessageParams } from './utils.js'; export const controllerName = 'DelegationController'; diff --git a/packages/delegation-controller/src/constants.ts b/packages/delegation-controller/src/constants.ts index a68f311fdc2..1177f1ad590 100644 --- a/packages/delegation-controller/src/constants.ts +++ b/packages/delegation-controller/src/constants.ts @@ -1,4 +1,4 @@ -import type { Hex } from './types'; +import type { Hex } from './types.js'; export const ROOT_AUTHORITY = '0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' as Hex; diff --git a/packages/delegation-controller/src/index.ts b/packages/delegation-controller/src/index.ts index 493f3caaec6..3e9050f0936 100644 --- a/packages/delegation-controller/src/index.ts +++ b/packages/delegation-controller/src/index.ts @@ -1,9 +1,9 @@ -export type { DelegationControllerSignDelegationAction } from './DelegationController-method-action-types'; +export type { DelegationControllerSignDelegationAction } from './DelegationController-method-action-types.js'; export type { DelegationControllerGetStateAction, DelegationControllerActions, DelegationControllerEvents, DelegationControllerMessenger, -} from './types'; +} from './types.js'; -export { DelegationController } from './DelegationController'; +export { DelegationController } from './DelegationController.js'; diff --git a/packages/delegation-controller/src/types.ts b/packages/delegation-controller/src/types.ts index 7566053570c..9802ca94048 100644 --- a/packages/delegation-controller/src/types.ts +++ b/packages/delegation-controller/src/types.ts @@ -5,8 +5,8 @@ import type { import type { KeyringControllerSignTypedMessageAction } from '@metamask/keyring-controller'; import type { Messenger } from '@metamask/messenger'; -import type { controllerName } from './DelegationController'; -import type { DelegationControllerMethodActions } from './DelegationController-method-action-types'; +import type { DelegationControllerMethodActions } from './DelegationController-method-action-types.js'; +import type { controllerName } from './DelegationController.js'; type Hex = `0x${string}`; type Address = `0x${string}`; diff --git a/packages/delegation-controller/src/utils.ts b/packages/delegation-controller/src/utils.ts index edefcd88ad8..02da461f9ed 100644 --- a/packages/delegation-controller/src/utils.ts +++ b/packages/delegation-controller/src/utils.ts @@ -1,8 +1,8 @@ import type { TypedMessageParams } from '@metamask/keyring-controller'; import { getChecksumAddress } from '@metamask/utils'; -import { SIGNABLE_DELEGATION_TYPED_DATA } from './constants'; -import type { Address, Delegation, DelegationStruct } from './types'; +import { SIGNABLE_DELEGATION_TYPED_DATA } from './constants.js'; +import type { Address, Delegation, DelegationStruct } from './types.js'; type CreateTypedMessageParamsOptions = { chainId: number; From c38db1185b79ea8ee2878452889a7dc899c3ab82 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:50:58 +0200 Subject: [PATCH 099/136] ESLint fix and `jest` global import for earn-controller --- .../src/EarnController-method-action-types.ts | 2 +- packages/earn-controller/src/EarnController.test.ts | 8 ++++---- packages/earn-controller/src/EarnController.ts | 4 ++-- packages/earn-controller/src/index.ts | 8 ++++---- packages/earn-controller/src/selectors.test.ts | 4 ++-- packages/earn-controller/src/selectors.ts | 2 +- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/packages/earn-controller/src/EarnController-method-action-types.ts b/packages/earn-controller/src/EarnController-method-action-types.ts index 6171c7c4887..6d5f29a0620 100644 --- a/packages/earn-controller/src/EarnController-method-action-types.ts +++ b/packages/earn-controller/src/EarnController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { EarnController } from './EarnController'; +import type { EarnController } from './EarnController.js'; /** * Refreshes the pooled stakes data for the current account. diff --git a/packages/earn-controller/src/EarnController.test.ts b/packages/earn-controller/src/EarnController.test.ts index 7dbf3b1ca41..39c48388350 100644 --- a/packages/earn-controller/src/EarnController.test.ts +++ b/packages/earn-controller/src/EarnController.test.ts @@ -20,19 +20,19 @@ import type { LendingMarket, } from '@metamask/stake-sdk'; -import type { TransactionMeta } from '../../transaction-controller/src'; +import type { TransactionMeta } from '../../transaction-controller/src.js'; import { TransactionStatus, TransactionType, -} from '../../transaction-controller/src'; +} from '../../transaction-controller/src.js'; import { EarnController, DEFAULT_POOLED_STAKING_CHAIN_STATE, -} from './EarnController'; +} from './EarnController.js'; import type { EarnControllerState, EarnControllerMessenger, -} from './EarnController'; +} from './EarnController.js'; type AllEarnControllerActions = MessengerActions; diff --git a/packages/earn-controller/src/EarnController.ts b/packages/earn-controller/src/EarnController.ts index 8715795ba48..7a0ade618a6 100644 --- a/packages/earn-controller/src/EarnController.ts +++ b/packages/earn-controller/src/EarnController.ts @@ -47,14 +47,14 @@ import type { TransactionMeta, } from '@metamask/transaction-controller'; -import type { EarnControllerMethodActions } from './EarnController-method-action-types'; +import type { EarnControllerMethodActions } from './EarnController-method-action-types.js'; import type { RefreshEarnEligibilityOptions, RefreshLendingPositionsOptions, RefreshPooledStakesOptions, RefreshPooledStakingDataOptions, RefreshPooledStakingVaultDailyApysOptions, -} from './types'; +} from './types.js'; export const controllerName = 'EarnController'; diff --git a/packages/earn-controller/src/index.ts b/packages/earn-controller/src/index.ts index a81e5525ce5..ee1e978106e 100644 --- a/packages/earn-controller/src/index.ts +++ b/packages/earn-controller/src/index.ts @@ -11,14 +11,14 @@ export type { EarnControllerActions, EarnControllerEvents, EarnControllerMessenger, -} from './EarnController'; +} from './EarnController.js'; export { controllerName, getDefaultEarnControllerState, DEFAULT_TRON_STAKING_STATE, EarnController, -} from './EarnController'; +} from './EarnController.js'; export type { EarnControllerRefreshPooledStakesAction, @@ -40,7 +40,7 @@ export type { EarnControllerGetLendingTokenAllowanceAction, EarnControllerGetLendingTokenMaxWithdrawAction, EarnControllerGetLendingTokenMaxDepositAction, -} from './EarnController-method-action-types'; +} from './EarnController-method-action-types.js'; export { selectLendingMarkets, @@ -62,7 +62,7 @@ export { selectLendingMarketsByChainIdAndTokenAddress, selectTronStaking, selectTronStakingApy, -} from './selectors'; +} from './selectors.js'; export { CHAIN_ID_TO_AAVE_POOL_CONTRACT, diff --git a/packages/earn-controller/src/selectors.test.ts b/packages/earn-controller/src/selectors.test.ts index 3bd1805ba5d..b0d08de1de7 100644 --- a/packages/earn-controller/src/selectors.test.ts +++ b/packages/earn-controller/src/selectors.test.ts @@ -3,7 +3,7 @@ import type { LendingMarket } from '@metamask/stake-sdk'; import type { EarnControllerState, LendingPositionWithMarket, -} from './EarnController'; +} from './EarnController.js'; import { selectLendingMarkets, selectLendingPositions, @@ -24,7 +24,7 @@ import { selectIsLendingEligible, selectTronStaking, selectTronStakingApy, -} from './selectors'; +} from './selectors.js'; describe('Earn Controller Selectors', () => { const mockMarket1: LendingMarket = { diff --git a/packages/earn-controller/src/selectors.ts b/packages/earn-controller/src/selectors.ts index b2d454539c5..21c400fce14 100644 --- a/packages/earn-controller/src/selectors.ts +++ b/packages/earn-controller/src/selectors.ts @@ -6,7 +6,7 @@ import type { LendingMarketWithPosition, LendingPositionWithMarket, LendingPositionWithMarketReference, -} from './EarnController'; +} from './EarnController.js'; export const selectLendingMarkets = ( state: EarnControllerState, From 4c04ef4f2b9458edf26faabb2ed9ee8e3a267813 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:51:01 +0200 Subject: [PATCH 100/136] ESLint fix and `jest` global import for multichain-api-middleware --- .../src/handlers/index.test.ts | 10 +++++----- .../src/handlers/index.ts | 16 ++++++++-------- .../src/handlers/wallet-createSession.test.ts | 2 +- .../src/handlers/wallet-createSession.ts | 6 +++--- .../src/handlers/wallet-getSession.test.ts | 2 +- .../src/handlers/wallet-getSession.ts | 4 ++-- .../src/handlers/wallet-invokeMethod.test.ts | 4 ++-- .../src/handlers/wallet-invokeMethod.ts | 4 ++-- .../src/handlers/wallet-revokeSession.test.ts | 2 +- .../src/handlers/wallet-revokeSession.ts | 4 ++-- .../multichain-api-middleware/src/index.test.ts | 2 +- packages/multichain-api-middleware/src/index.ts | 12 ++++++------ .../MultichainMiddlewareManager.test.ts | 4 ++-- .../MultichainSubscriptionManager.test.ts | 4 ++-- .../middlewares/MultichainSubscriptionManager.ts | 4 ++-- ...ltichainMethodCallValidatorMiddleware.test.ts | 12 ++++++------ 16 files changed, 46 insertions(+), 46 deletions(-) diff --git a/packages/multichain-api-middleware/src/handlers/index.test.ts b/packages/multichain-api-middleware/src/handlers/index.test.ts index cafe8f5d83f..6d28da99732 100644 --- a/packages/multichain-api-middleware/src/handlers/index.test.ts +++ b/packages/multichain-api-middleware/src/handlers/index.test.ts @@ -1,10 +1,10 @@ import { createMethodMiddleware } from '@metamask/json-rpc-engine'; -import { methodHandlers } from '.'; -import type { WalletCreateSessionHooks } from './wallet-createSession'; -import type { WalletGetSessionHooks } from './wallet-getSession'; -import type { WalletInvokeMethodHooks } from './wallet-invokeMethod'; -import type { WalletRevokeSessionHooks } from './wallet-revokeSession'; +import { methodHandlers } from './..js'; +import type { WalletCreateSessionHooks } from './wallet-createSession.js'; +import type { WalletGetSessionHooks } from './wallet-getSession.js'; +import type { WalletInvokeMethodHooks } from './wallet-invokeMethod.js'; +import type { WalletRevokeSessionHooks } from './wallet-revokeSession.js'; type Hooks = WalletCreateSessionHooks & WalletGetSessionHooks & diff --git a/packages/multichain-api-middleware/src/handlers/index.ts b/packages/multichain-api-middleware/src/handlers/index.ts index ab8ad4ea991..aa35e794397 100644 --- a/packages/multichain-api-middleware/src/handlers/index.ts +++ b/packages/multichain-api-middleware/src/handlers/index.ts @@ -1,13 +1,13 @@ import type { UnionToIntersection } from '@metamask/json-rpc-engine/v2'; -import type { WalletCreateSessionHooks } from './wallet-createSession'; -import { walletCreateSessionHandler } from './wallet-createSession'; -import type { WalletGetSessionHooks } from './wallet-getSession'; -import { walletGetSessionHandler } from './wallet-getSession'; -import type { WalletInvokeMethodHooks } from './wallet-invokeMethod'; -import { walletInvokeMethodHandler } from './wallet-invokeMethod'; -import type { WalletRevokeSessionHooks } from './wallet-revokeSession'; -import { walletRevokeSessionHandler } from './wallet-revokeSession'; +import type { WalletCreateSessionHooks } from './wallet-createSession.js'; +import { walletCreateSessionHandler } from './wallet-createSession.js'; +import type { WalletGetSessionHooks } from './wallet-getSession.js'; +import { walletGetSessionHandler } from './wallet-getSession.js'; +import type { WalletInvokeMethodHooks } from './wallet-invokeMethod.js'; +import { walletInvokeMethodHandler } from './wallet-invokeMethod.js'; +import type { WalletRevokeSessionHooks } from './wallet-revokeSession.js'; +import { walletRevokeSessionHandler } from './wallet-revokeSession.js'; export type MethodHandlerHooks = UnionToIntersection< | WalletCreateSessionHooks diff --git a/packages/multichain-api-middleware/src/handlers/wallet-createSession.test.ts b/packages/multichain-api-middleware/src/handlers/wallet-createSession.test.ts index 2b4b6510bc8..e016f7ee3fc 100644 --- a/packages/multichain-api-middleware/src/handlers/wallet-createSession.test.ts +++ b/packages/multichain-api-middleware/src/handlers/wallet-createSession.test.ts @@ -18,7 +18,7 @@ import type { JsonRpcSuccess, } from '@metamask/utils'; -import { walletCreateSessionHandler } from './wallet-createSession'; +import { walletCreateSessionHandler } from './wallet-createSession.js'; jest.mock('@metamask/rpc-errors', () => ({ ...jest.requireActual('@metamask/rpc-errors'), diff --git a/packages/multichain-api-middleware/src/handlers/wallet-createSession.ts b/packages/multichain-api-middleware/src/handlers/wallet-createSession.ts index 53c57048840..79d374b42c0 100644 --- a/packages/multichain-api-middleware/src/handlers/wallet-createSession.ts +++ b/packages/multichain-api-middleware/src/handlers/wallet-createSession.ts @@ -50,7 +50,7 @@ import type { GetCapabilitiesHook, GetNonEvmSupportedMethodsHook, SortAccountIdsByLastSelectedHook, -} from './types'; +} from './types.js'; const SOLANA_CAIP_CHAIN_ID = 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp'; @@ -128,7 +128,7 @@ async function handleWalletCreateSession( try { const { normalizedRequiredScopes, normalizedOptionalScopes } = - validateAndNormalizeScopes(requiredScopes || {}, optionalScopes || {}); + validateAndNormalizeScopes(requiredScopes ?? {}, optionalScopes ?? {}); const requiredScopesWithSupportedMethodsAndNotifications = getSupportedScopeObjects(normalizedRequiredScopes, { @@ -153,7 +153,7 @@ async function handleWalletCreateSession( isNamespaceInScopesObject( requiredScopesWithSupportedMethodsAndNotifications, KnownCaipNamespace.Solana, - ) || + ) ?? isNamespaceInScopesObject( optionalScopesWithSupportedMethodsAndNotifications, KnownCaipNamespace.Solana, diff --git a/packages/multichain-api-middleware/src/handlers/wallet-getSession.test.ts b/packages/multichain-api-middleware/src/handlers/wallet-getSession.test.ts index 788377dd1d2..9ced5262239 100644 --- a/packages/multichain-api-middleware/src/handlers/wallet-getSession.test.ts +++ b/packages/multichain-api-middleware/src/handlers/wallet-getSession.test.ts @@ -1,7 +1,7 @@ import * as chainAgnosticPermissionModule from '@metamask/chain-agnostic-permission'; import type { JsonRpcRequest } from '@metamask/utils'; -import { walletGetSessionHandler } from './wallet-getSession'; +import { walletGetSessionHandler } from './wallet-getSession.js'; jest.mock('@metamask/chain-agnostic-permission', () => ({ ...jest.requireActual('@metamask/chain-agnostic-permission'), diff --git a/packages/multichain-api-middleware/src/handlers/wallet-getSession.ts b/packages/multichain-api-middleware/src/handlers/wallet-getSession.ts index 84cf51ed9c7..109269f76d7 100644 --- a/packages/multichain-api-middleware/src/handlers/wallet-getSession.ts +++ b/packages/multichain-api-middleware/src/handlers/wallet-getSession.ts @@ -23,7 +23,7 @@ import type { GetCaveatForOriginHook, GetNonEvmSupportedMethodsHook, SortAccountIdsByLastSelectedHook, -} from './types'; +} from './types.js'; type WalletGetSessionResult = { sessionScopes: NormalizedScopesObject; @@ -64,7 +64,7 @@ async function handleWalletGetSession( caveat = hooks.getCaveatForOrigin( Caip25EndowmentPermissionName, Caip25CaveatType, - ) as Caip25Caveat | undefined; + ); } catch { // noop } diff --git a/packages/multichain-api-middleware/src/handlers/wallet-invokeMethod.test.ts b/packages/multichain-api-middleware/src/handlers/wallet-invokeMethod.test.ts index ad4f83f9e78..442c90f3ae2 100644 --- a/packages/multichain-api-middleware/src/handlers/wallet-invokeMethod.test.ts +++ b/packages/multichain-api-middleware/src/handlers/wallet-invokeMethod.test.ts @@ -1,8 +1,8 @@ import * as chainAgnosticPermissionModule from '@metamask/chain-agnostic-permission'; import { providerErrors, rpcErrors } from '@metamask/rpc-errors'; -import type { WalletInvokeMethodRequest } from './wallet-invokeMethod'; -import { walletInvokeMethodHandler } from './wallet-invokeMethod'; +import type { WalletInvokeMethodRequest } from './wallet-invokeMethod.js'; +import { walletInvokeMethodHandler } from './wallet-invokeMethod.js'; // Allow individual modules to be mocked jest.mock('@metamask/chain-agnostic-permission', () => ({ diff --git a/packages/multichain-api-middleware/src/handlers/wallet-invokeMethod.ts b/packages/multichain-api-middleware/src/handlers/wallet-invokeMethod.ts index 1305d43ae87..4abcf9fa7c9 100644 --- a/packages/multichain-api-middleware/src/handlers/wallet-invokeMethod.ts +++ b/packages/multichain-api-middleware/src/handlers/wallet-invokeMethod.ts @@ -31,7 +31,7 @@ import type { GetCaveatForOriginHook, GetNonEvmSupportedMethodsHook, SortAccountIdsByLastSelectedHook, -} from './types'; +} from './types.js'; export type WalletInvokeMethodParams = { scope: ExternalScopeString; @@ -92,7 +92,7 @@ async function handleWalletInvokeMethod( caveat = hooks.getCaveatForOrigin( Caip25EndowmentPermissionName, Caip25CaveatType, - ) as Caip25Caveat | undefined; + ); } catch { // noop } diff --git a/packages/multichain-api-middleware/src/handlers/wallet-revokeSession.test.ts b/packages/multichain-api-middleware/src/handlers/wallet-revokeSession.test.ts index 9c14f205366..d4f5035d42d 100644 --- a/packages/multichain-api-middleware/src/handlers/wallet-revokeSession.test.ts +++ b/packages/multichain-api-middleware/src/handlers/wallet-revokeSession.test.ts @@ -9,7 +9,7 @@ import { import { rpcErrors } from '@metamask/rpc-errors'; import type { JsonRpcRequest } from '@metamask/utils'; -import { walletRevokeSessionHandler } from './wallet-revokeSession'; +import { walletRevokeSessionHandler } from './wallet-revokeSession.js'; const baseRequest: JsonRpcRequest & { origin: string; diff --git a/packages/multichain-api-middleware/src/handlers/wallet-revokeSession.ts b/packages/multichain-api-middleware/src/handlers/wallet-revokeSession.ts index ce22f546a68..44c1a4b2242 100644 --- a/packages/multichain-api-middleware/src/handlers/wallet-revokeSession.ts +++ b/packages/multichain-api-middleware/src/handlers/wallet-revokeSession.ts @@ -24,7 +24,7 @@ import type { PendingJsonRpcResponse, } from '@metamask/utils'; -import type { Caip25Caveat, GetCaveatForOriginHook } from './types'; +import type { GetCaveatForOriginHook } from './types.js'; export type WalletRevokeSessionHooks = GetCaveatForOriginHook & { revokePermissionForOrigin: ( @@ -77,7 +77,7 @@ function partialRevokePermissions( const caveat = hooks.getCaveatForOrigin( Caip25EndowmentPermissionName, Caip25CaveatType, - ) as Caip25Caveat | undefined; + ); if (!caveat) { return; } diff --git a/packages/multichain-api-middleware/src/index.test.ts b/packages/multichain-api-middleware/src/index.test.ts index 58bef74e359..79c74ddde42 100644 --- a/packages/multichain-api-middleware/src/index.test.ts +++ b/packages/multichain-api-middleware/src/index.test.ts @@ -1,4 +1,4 @@ -import * as allExports from '.'; +import * as allExports from './..js'; describe('@metamask/multichain-api-middleware', () => { it('has expected JavaScript exports', () => { diff --git a/packages/multichain-api-middleware/src/index.ts b/packages/multichain-api-middleware/src/index.ts index d126c158795..f619daab208 100644 --- a/packages/multichain-api-middleware/src/index.ts +++ b/packages/multichain-api-middleware/src/index.ts @@ -1,7 +1,7 @@ -export { methodHandlers } from './handlers'; -export type { MethodHandlerHooks } from './handlers'; +export { methodHandlers } from './handlers.js'; +export type { MethodHandlerHooks } from './handlers.js'; -export { multichainMethodCallValidatorMiddleware } from './middlewares/multichainMethodCallValidatorMiddleware'; -export { MultichainMiddlewareManager } from './middlewares/MultichainMiddlewareManager'; -export { MultichainSubscriptionManager } from './middlewares/MultichainSubscriptionManager'; -export { MultichainApiNotifications } from './handlers/types'; +export { multichainMethodCallValidatorMiddleware } from './middlewares/multichainMethodCallValidatorMiddleware.js'; +export { MultichainMiddlewareManager } from './middlewares/MultichainMiddlewareManager.js'; +export { MultichainSubscriptionManager } from './middlewares/MultichainSubscriptionManager.js'; +export { MultichainApiNotifications } from './handlers/types.js'; diff --git a/packages/multichain-api-middleware/src/middlewares/MultichainMiddlewareManager.test.ts b/packages/multichain-api-middleware/src/middlewares/MultichainMiddlewareManager.test.ts index cfc9e90f3ed..50f6ca186d4 100644 --- a/packages/multichain-api-middleware/src/middlewares/MultichainMiddlewareManager.test.ts +++ b/packages/multichain-api-middleware/src/middlewares/MultichainMiddlewareManager.test.ts @@ -1,7 +1,7 @@ import { rpcErrors } from '@metamask/rpc-errors'; -import type { ExtendedJsonRpcMiddleware } from './MultichainMiddlewareManager'; -import { MultichainMiddlewareManager } from './MultichainMiddlewareManager'; +import type { ExtendedJsonRpcMiddleware } from './MultichainMiddlewareManager.js'; +import { MultichainMiddlewareManager } from './MultichainMiddlewareManager.js'; const scope = 'eip155:1'; const origin = 'example.com'; diff --git a/packages/multichain-api-middleware/src/middlewares/MultichainSubscriptionManager.test.ts b/packages/multichain-api-middleware/src/middlewares/MultichainSubscriptionManager.test.ts index 811de8bbe2b..59f5390d37d 100644 --- a/packages/multichain-api-middleware/src/middlewares/MultichainSubscriptionManager.test.ts +++ b/packages/multichain-api-middleware/src/middlewares/MultichainSubscriptionManager.test.ts @@ -1,8 +1,8 @@ import createSubscriptionManager from '@metamask/eth-json-rpc-filters/subscriptionManager'; import type SafeEventEmitter from '@metamask/safe-event-emitter'; -import { MultichainApiNotifications } from '../handlers/types'; -import { MultichainSubscriptionManager } from './MultichainSubscriptionManager'; +import { MultichainApiNotifications } from '../handlers/types.js'; +import { MultichainSubscriptionManager } from './MultichainSubscriptionManager.js'; jest.mock('@metamask/eth-json-rpc-filters/subscriptionManager', () => jest.fn(), diff --git a/packages/multichain-api-middleware/src/middlewares/MultichainSubscriptionManager.ts b/packages/multichain-api-middleware/src/middlewares/MultichainSubscriptionManager.ts index 2f819128da4..6d3e8c0958f 100644 --- a/packages/multichain-api-middleware/src/middlewares/MultichainSubscriptionManager.ts +++ b/packages/multichain-api-middleware/src/middlewares/MultichainSubscriptionManager.ts @@ -6,8 +6,8 @@ import SafeEventEmitter from '@metamask/safe-event-emitter'; import type { CaipChainId, Hex } from '@metamask/utils'; import { parseCaipChainId } from '@metamask/utils'; -import { MultichainApiNotifications } from '../handlers/types'; -import type { ExtendedJsonRpcMiddleware } from './MultichainMiddlewareManager'; +import { MultichainApiNotifications } from '../handlers/types.js'; +import type { ExtendedJsonRpcMiddleware } from './MultichainMiddlewareManager.js'; export type SubscriptionManager = { events: SafeEventEmitter; diff --git a/packages/multichain-api-middleware/src/middlewares/multichainMethodCallValidatorMiddleware.test.ts b/packages/multichain-api-middleware/src/middlewares/multichainMethodCallValidatorMiddleware.test.ts index eb68c8b1c27..d795a686576 100644 --- a/packages/multichain-api-middleware/src/middlewares/multichainMethodCallValidatorMiddleware.test.ts +++ b/packages/multichain-api-middleware/src/middlewares/multichainMethodCallValidatorMiddleware.test.ts @@ -4,8 +4,8 @@ import type { JsonRpcResponse, } from '@metamask/utils'; -import { MultichainApiNotifications } from '../handlers/types'; -import { multichainMethodCallValidatorMiddleware } from './multichainMethodCallValidatorMiddleware'; +import { MultichainApiNotifications } from '../handlers/types.js'; +import { multichainMethodCallValidatorMiddleware } from './multichainMethodCallValidatorMiddleware.js'; describe('multichainMethodCallValidatorMiddleware', () => { const mockNext = jest.fn(); @@ -34,7 +34,7 @@ describe('multichainMethodCallValidatorMiddleware', () => { response, mockNext, (error) => { - reject(error); + reject(error instanceof Error ? error : new Error(String(error))); }, ); @@ -246,7 +246,7 @@ describe('multichainMethodCallValidatorMiddleware', () => { response, mockNext, (error) => { - reject(error); + reject(error instanceof Error ? error : new Error(String(error))); }, ); @@ -336,7 +336,7 @@ describe('multichainMethodCallValidatorMiddleware', () => { response, mockNext, (error) => { - reject(error); + reject(error instanceof Error ? error : new Error(String(error))); }, ); @@ -368,7 +368,7 @@ describe('multichainMethodCallValidatorMiddleware', () => { response, mockNext, (error) => { - reject(error); + reject(error instanceof Error ? error : new Error(String(error))); }, ); From c37e2b09e6048a91e2f30587eb769cd3b580c55d Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:51:01 +0200 Subject: [PATCH 101/136] ESLint fix and `jest` global import for eth-json-rpc-middleware --- .../src/block-cache.test.ts | 4 +-- .../src/block-cache.ts | 6 ++-- .../src/block-ref-rewrite.test.ts | 4 +-- .../src/block-ref-rewrite.ts | 2 +- .../src/block-ref.test.ts | 4 +-- .../eth-json-rpc-middleware/src/block-ref.ts | 6 ++-- .../src/block-tracker-inspector.test.ts | 4 +-- .../src/block-tracker-inspector.ts | 2 +- .../eth-json-rpc-middleware/src/fetch.test.ts | 6 ++-- packages/eth-json-rpc-middleware/src/fetch.ts | 2 +- .../eth-json-rpc-middleware/src/index.test.ts | 2 +- packages/eth-json-rpc-middleware/src/index.ts | 30 +++++++++---------- .../src/inflight-cache.test.ts | 4 +-- .../src/inflight-cache.ts | 4 +-- ...-get-granted-execution-permissions.test.ts | 6 ++-- ...allet-get-granted-execution-permissions.ts | 6 ++-- ...et-supported-execution-permissions.test.ts | 6 ++-- ...let-get-supported-execution-permissions.ts | 6 ++-- ...llet-request-execution-permissions.test.ts | 6 ++-- .../wallet-request-execution-permissions.ts | 4 +-- ...wallet-revoke-execution-permission.test.ts | 6 ++-- .../wallet-revoke-execution-permission.ts | 4 +-- .../src/providerAsMiddleware.test.ts | 4 +-- .../src/retryOnEmpty.test.ts | 6 ++-- .../src/retryOnEmpty.ts | 12 ++++---- .../src/utils/cache.test.ts | 2 +- .../src/utils/common.test.ts | 2 +- .../src/utils/error.test.ts | 2 +- .../src/utils/normalize.test.ts | 2 +- .../src/utils/timeout.test.ts | 2 +- .../src/utils/validation.test.ts | 4 +-- .../src/utils/validation.ts | 4 +-- .../src/wallet.test.ts | 8 ++--- .../eth-json-rpc-middleware/src/wallet.ts | 22 +++++++------- .../test/util/helpers.ts | 2 +- 35 files changed, 98 insertions(+), 98 deletions(-) diff --git a/packages/eth-json-rpc-middleware/src/block-cache.test.ts b/packages/eth-json-rpc-middleware/src/block-cache.test.ts index b456789eeaf..3520652f27a 100644 --- a/packages/eth-json-rpc-middleware/src/block-cache.test.ts +++ b/packages/eth-json-rpc-middleware/src/block-cache.test.ts @@ -4,12 +4,12 @@ import { } from '@metamask/json-rpc-engine/v2'; import type { Hex, Json } from '@metamask/utils'; -import { createBlockCacheMiddleware } from '.'; import { createProviderAndBlockTracker, createRequest, stubProviderRequests, -} from '../test/util/helpers'; +} from '../test/util/helpers.js'; +import { createBlockCacheMiddleware } from './..js'; describe('block cache middleware', () => { let provider: ReturnType['provider']; diff --git a/packages/eth-json-rpc-middleware/src/block-cache.ts b/packages/eth-json-rpc-middleware/src/block-cache.ts index 700425a1fa2..6efc528fb00 100644 --- a/packages/eth-json-rpc-middleware/src/block-cache.ts +++ b/packages/eth-json-rpc-middleware/src/block-cache.ts @@ -5,20 +5,20 @@ import type { } from '@metamask/json-rpc-engine/v2'; import type { Json, JsonRpcRequest } from '@metamask/utils'; -import { projectLogger, createModuleLogger } from './logging-utils'; +import { projectLogger, createModuleLogger } from './logging-utils.js'; import type { Block, BlockCache, // eslint-disable-next-line @typescript-eslint/no-shadow Cache, -} from './types'; +} from './types.js'; import { cacheIdentifierForRequest, blockTagForRequest, cacheTypeForMethod, canCache, CacheStrategy, -} from './utils/cache'; +} from './utils/cache.js'; const log = createModuleLogger(projectLogger, 'block-cache'); // `` comes from https://github.com/ethereum/go-ethereum/issues/16925 diff --git a/packages/eth-json-rpc-middleware/src/block-ref-rewrite.test.ts b/packages/eth-json-rpc-middleware/src/block-ref-rewrite.test.ts index 158da99e291..4e260f3b3ba 100644 --- a/packages/eth-json-rpc-middleware/src/block-ref-rewrite.test.ts +++ b/packages/eth-json-rpc-middleware/src/block-ref-rewrite.test.ts @@ -5,8 +5,8 @@ import type { Json, JsonRpcRequest } from '@metamask/utils'; import { createFinalMiddlewareWithDefaultResult, createRequest, -} from '../test/util/helpers'; -import { createBlockRefRewriteMiddleware } from './block-ref-rewrite'; +} from '../test/util/helpers.js'; +import { createBlockRefRewriteMiddleware } from './block-ref-rewrite.js'; const createMockBlockTracker = (): PollingBlockTracker => { return { diff --git a/packages/eth-json-rpc-middleware/src/block-ref-rewrite.ts b/packages/eth-json-rpc-middleware/src/block-ref-rewrite.ts index be2cc882382..7ad43ef900d 100644 --- a/packages/eth-json-rpc-middleware/src/block-ref-rewrite.ts +++ b/packages/eth-json-rpc-middleware/src/block-ref-rewrite.ts @@ -2,7 +2,7 @@ import type { PollingBlockTracker } from '@metamask/eth-block-tracker'; import type { JsonRpcMiddleware } from '@metamask/json-rpc-engine/v2'; import type { Json, JsonRpcRequest } from '@metamask/utils'; -import { blockTagParamIndex } from './utils/cache'; +import { blockTagParamIndex } from './utils/cache.js'; type BlockRefRewriteMiddlewareOptions = { blockTracker?: PollingBlockTracker; diff --git a/packages/eth-json-rpc-middleware/src/block-ref.test.ts b/packages/eth-json-rpc-middleware/src/block-ref.test.ts index e5f5406c546..c8cae296863 100644 --- a/packages/eth-json-rpc-middleware/src/block-ref.test.ts +++ b/packages/eth-json-rpc-middleware/src/block-ref.test.ts @@ -1,6 +1,5 @@ import { MiddlewareContext } from '@metamask/json-rpc-engine/v2'; -import { createBlockRefMiddleware } from '.'; import { createMockParamsWithBlockParamAt, stubProviderRequests, @@ -12,7 +11,8 @@ import { createProviderAndBlockTracker, createEngine, createRequest, -} from '../test/util/helpers'; +} from '../test/util/helpers.js'; +import { createBlockRefMiddleware } from './..js'; describe('createBlockRefMiddleware', () => { let provider: ReturnType['provider']; diff --git a/packages/eth-json-rpc-middleware/src/block-ref.ts b/packages/eth-json-rpc-middleware/src/block-ref.ts index 1fd52d1504c..8462b0eb97e 100644 --- a/packages/eth-json-rpc-middleware/src/block-ref.ts +++ b/packages/eth-json-rpc-middleware/src/block-ref.ts @@ -4,9 +4,9 @@ import type { JsonRpcMiddleware } from '@metamask/json-rpc-engine/v2'; import type { Json, JsonRpcParams, JsonRpcRequest } from '@metamask/utils'; import { klona } from 'klona'; -import { projectLogger, createModuleLogger } from './logging-utils'; -import type { Block } from './types'; -import { blockTagParamIndex } from './utils/cache'; +import { projectLogger, createModuleLogger } from './logging-utils.js'; +import type { Block } from './types.js'; +import { blockTagParamIndex } from './utils/cache.js'; type BlockRefMiddlewareOptions = { blockTracker?: PollingBlockTracker; diff --git a/packages/eth-json-rpc-middleware/src/block-tracker-inspector.test.ts b/packages/eth-json-rpc-middleware/src/block-tracker-inspector.test.ts index a6e6d4a790b..8532922098e 100644 --- a/packages/eth-json-rpc-middleware/src/block-tracker-inspector.test.ts +++ b/packages/eth-json-rpc-middleware/src/block-tracker-inspector.test.ts @@ -6,8 +6,8 @@ import { Hex, Json } from '@metamask/utils'; import { createFinalMiddlewareWithDefaultResult, createRequest, -} from '../test/util/helpers'; -import { createBlockTrackerInspectorMiddleware } from './block-tracker-inspector'; +} from '../test/util/helpers.js'; +import { createBlockTrackerInspectorMiddleware } from './block-tracker-inspector.js'; const createMockBlockTracker = (): PollingBlockTracker => { return { diff --git a/packages/eth-json-rpc-middleware/src/block-tracker-inspector.ts b/packages/eth-json-rpc-middleware/src/block-tracker-inspector.ts index a8885ace130..ba31dba114e 100644 --- a/packages/eth-json-rpc-middleware/src/block-tracker-inspector.ts +++ b/packages/eth-json-rpc-middleware/src/block-tracker-inspector.ts @@ -3,7 +3,7 @@ import type { JsonRpcMiddleware } from '@metamask/json-rpc-engine/v2'; import { hasProperty } from '@metamask/utils'; import type { Json, JsonRpcRequest } from '@metamask/utils'; -import { projectLogger, createModuleLogger } from './logging-utils'; +import { projectLogger, createModuleLogger } from './logging-utils.js'; const log = createModuleLogger(projectLogger, 'block-tracker-inspector'); const futureBlockRefRequests: readonly string[] = [ diff --git a/packages/eth-json-rpc-middleware/src/fetch.test.ts b/packages/eth-json-rpc-middleware/src/fetch.test.ts index 4030442c8e5..b8af7d1de39 100644 --- a/packages/eth-json-rpc-middleware/src/fetch.test.ts +++ b/packages/eth-json-rpc-middleware/src/fetch.test.ts @@ -10,9 +10,9 @@ import type { JsonRpcResponse, } from '@metamask/utils'; -import { createRequest } from '../test/util/helpers'; -import { createFetchMiddleware } from './fetch'; -import type { AbstractRpcServiceLike } from './types'; +import { createRequest } from '../test/util/helpers.js'; +import { createFetchMiddleware } from './fetch.js'; +import type { AbstractRpcServiceLike } from './types.js'; describe('createFetchMiddleware', () => { it.each([ diff --git a/packages/eth-json-rpc-middleware/src/fetch.ts b/packages/eth-json-rpc-middleware/src/fetch.ts index bd5dc886a3d..61b8935c476 100644 --- a/packages/eth-json-rpc-middleware/src/fetch.ts +++ b/packages/eth-json-rpc-middleware/src/fetch.ts @@ -5,7 +5,7 @@ import type { import { rpcErrors } from '@metamask/rpc-errors'; import type { Json, JsonRpcRequest } from '@metamask/utils'; -import type { AbstractRpcServiceLike } from './types'; +import type { AbstractRpcServiceLike } from './types.js'; /** * Creates middleware for sending a JSON-RPC request through the given RPC diff --git a/packages/eth-json-rpc-middleware/src/index.test.ts b/packages/eth-json-rpc-middleware/src/index.test.ts index ff6ab443529..0bd1588d08d 100644 --- a/packages/eth-json-rpc-middleware/src/index.test.ts +++ b/packages/eth-json-rpc-middleware/src/index.test.ts @@ -1,4 +1,4 @@ -import * as indexModule from '.'; +import * as indexModule from './..js'; describe('index module', () => { it('has expected JavaScript exports', () => { diff --git a/packages/eth-json-rpc-middleware/src/index.ts b/packages/eth-json-rpc-middleware/src/index.ts index 8efff9e55d6..73a5dc9f51b 100644 --- a/packages/eth-json-rpc-middleware/src/index.ts +++ b/packages/eth-json-rpc-middleware/src/index.ts @@ -1,38 +1,38 @@ -export * from './block-cache'; -export * from './block-ref-rewrite'; -export * from './block-ref'; -export * from './block-tracker-inspector'; -export { createFetchMiddleware } from './fetch'; -export * from './inflight-cache'; +export * from './block-cache.js'; +export * from './block-ref-rewrite.js'; +export * from './block-ref.js'; +export * from './block-tracker-inspector.js'; +export { createFetchMiddleware } from './fetch.js'; +export * from './inflight-cache.js'; export type { PermissionDependency, RequestExecutionPermissionsRequestParams, RequestExecutionPermissionsResult, ProcessRequestExecutionPermissionsHook, -} from './methods/wallet-request-execution-permissions'; +} from './methods/wallet-request-execution-permissions.js'; export type { ProcessRevokeExecutionPermissionHook, RevokeExecutionPermissionRequestParams, RevokeExecutionPermissionResult, -} from './methods/wallet-revoke-execution-permission'; +} from './methods/wallet-revoke-execution-permission.js'; export type { GrantedExecutionPermission, GetGrantedExecutionPermissionsResult, ProcessGetGrantedExecutionPermissionsHook, -} from './methods/wallet-get-granted-execution-permissions'; +} from './methods/wallet-get-granted-execution-permissions.js'; export { GrantedExecutionPermissionStruct, GetGrantedExecutionPermissionsResultStruct, -} from './methods/wallet-get-granted-execution-permissions'; +} from './methods/wallet-get-granted-execution-permissions.js'; export type { SupportedExecutionPermissionConfig, GetSupportedExecutionPermissionsResult, ProcessGetSupportedExecutionPermissionsHook, -} from './methods/wallet-get-supported-execution-permissions'; +} from './methods/wallet-get-supported-execution-permissions.js'; export { SupportedExecutionPermissionConfigStruct, GetSupportedExecutionPermissionsResultStruct, -} from './methods/wallet-get-supported-execution-permissions'; -export * from './providerAsMiddleware'; -export * from './retryOnEmpty'; -export * from './wallet'; +} from './methods/wallet-get-supported-execution-permissions.js'; +export * from './providerAsMiddleware.js'; +export * from './retryOnEmpty.js'; +export * from './wallet.js'; diff --git a/packages/eth-json-rpc-middleware/src/inflight-cache.test.ts b/packages/eth-json-rpc-middleware/src/inflight-cache.test.ts index 22e1f053d29..4ec89fdf894 100644 --- a/packages/eth-json-rpc-middleware/src/inflight-cache.test.ts +++ b/packages/eth-json-rpc-middleware/src/inflight-cache.test.ts @@ -1,7 +1,7 @@ import { JsonRpcEngineV2 } from '@metamask/json-rpc-engine/v2'; -import { createInflightCacheMiddleware } from '.'; -import { createRequest } from '../test/util/helpers'; +import { createRequest } from '../test/util/helpers.js'; +import { createInflightCacheMiddleware } from './..js'; describe('inflight cache', () => { it('should cache an inflight request and only hit provider once', async () => { diff --git a/packages/eth-json-rpc-middleware/src/inflight-cache.ts b/packages/eth-json-rpc-middleware/src/inflight-cache.ts index 6d2b16c5737..d7c6cc1c0e0 100644 --- a/packages/eth-json-rpc-middleware/src/inflight-cache.ts +++ b/packages/eth-json-rpc-middleware/src/inflight-cache.ts @@ -5,8 +5,8 @@ import type { import { createDeferredPromise } from '@metamask/utils'; import type { Json, JsonRpcRequest } from '@metamask/utils'; -import { projectLogger, createModuleLogger } from './logging-utils'; -import { cacheIdentifierForRequest } from './utils/cache'; +import { projectLogger, createModuleLogger } from './logging-utils.js'; +import { cacheIdentifierForRequest } from './utils/cache.js'; type RequestHandler = [ (result: Readonly) => void, diff --git a/packages/eth-json-rpc-middleware/src/methods/wallet-get-granted-execution-permissions.test.ts b/packages/eth-json-rpc-middleware/src/methods/wallet-get-granted-execution-permissions.test.ts index 19a506fa1f5..5370ea44a8c 100644 --- a/packages/eth-json-rpc-middleware/src/methods/wallet-get-granted-execution-permissions.test.ts +++ b/packages/eth-json-rpc-middleware/src/methods/wallet-get-granted-execution-permissions.test.ts @@ -1,11 +1,11 @@ import type { Hex, Json, JsonRpcRequest } from '@metamask/utils'; -import type { WalletMiddlewareParams } from '../wallet'; +import type { WalletMiddlewareParams } from '../wallet.js'; import type { GetGrantedExecutionPermissionsResult, ProcessGetGrantedExecutionPermissionsHook, -} from './wallet-get-granted-execution-permissions'; -import { createWalletGetGrantedExecutionPermissionsHandler } from './wallet-get-granted-execution-permissions'; +} from './wallet-get-granted-execution-permissions.js'; +import { createWalletGetGrantedExecutionPermissionsHandler } from './wallet-get-granted-execution-permissions.js'; const RESULT_MOCK: GetGrantedExecutionPermissionsResult = [ { diff --git a/packages/eth-json-rpc-middleware/src/methods/wallet-get-granted-execution-permissions.ts b/packages/eth-json-rpc-middleware/src/methods/wallet-get-granted-execution-permissions.ts index d58259d8de9..06d352aa0fd 100644 --- a/packages/eth-json-rpc-middleware/src/methods/wallet-get-granted-execution-permissions.ts +++ b/packages/eth-json-rpc-middleware/src/methods/wallet-get-granted-execution-permissions.ts @@ -12,9 +12,9 @@ import { import { HexChecksumAddressStruct, StrictHexStruct } from '@metamask/utils'; import type { Json, JsonRpcRequest } from '@metamask/utils'; -import { NoParamsStruct } from '../utils/structs'; -import { validateParams } from '../utils/validation'; -import type { WalletMiddlewareContext } from '../wallet'; +import { NoParamsStruct } from '../utils/structs.js'; +import { validateParams } from '../utils/validation.js'; +import type { WalletMiddlewareContext } from '../wallet.js'; /** * Superstruct schema for the `wallet_getGrantedExecutionPermissions` request params. diff --git a/packages/eth-json-rpc-middleware/src/methods/wallet-get-supported-execution-permissions.test.ts b/packages/eth-json-rpc-middleware/src/methods/wallet-get-supported-execution-permissions.test.ts index 2fcec4d658f..283db560df3 100644 --- a/packages/eth-json-rpc-middleware/src/methods/wallet-get-supported-execution-permissions.test.ts +++ b/packages/eth-json-rpc-middleware/src/methods/wallet-get-supported-execution-permissions.test.ts @@ -1,11 +1,11 @@ import type { Hex, Json, JsonRpcRequest } from '@metamask/utils'; -import type { WalletMiddlewareParams } from '../wallet'; +import type { WalletMiddlewareParams } from '../wallet.js'; import type { GetSupportedExecutionPermissionsResult, ProcessGetSupportedExecutionPermissionsHook, -} from './wallet-get-supported-execution-permissions'; -import { createWalletGetSupportedExecutionPermissionsHandler } from './wallet-get-supported-execution-permissions'; +} from './wallet-get-supported-execution-permissions.js'; +import { createWalletGetSupportedExecutionPermissionsHandler } from './wallet-get-supported-execution-permissions.js'; const RESULT_MOCK: GetSupportedExecutionPermissionsResult = { 'native-token-allowance': { diff --git a/packages/eth-json-rpc-middleware/src/methods/wallet-get-supported-execution-permissions.ts b/packages/eth-json-rpc-middleware/src/methods/wallet-get-supported-execution-permissions.ts index 120f947aae1..725bb951547 100644 --- a/packages/eth-json-rpc-middleware/src/methods/wallet-get-supported-execution-permissions.ts +++ b/packages/eth-json-rpc-middleware/src/methods/wallet-get-supported-execution-permissions.ts @@ -5,9 +5,9 @@ import { array, object, record, string } from '@metamask/superstruct'; import { StrictHexStruct } from '@metamask/utils'; import type { Json, JsonRpcRequest } from '@metamask/utils'; -import { NoParamsStruct } from '../utils/structs'; -import { validateParams } from '../utils/validation'; -import type { WalletMiddlewareContext } from '../wallet'; +import { NoParamsStruct } from '../utils/structs.js'; +import { validateParams } from '../utils/validation.js'; +import type { WalletMiddlewareContext } from '../wallet.js'; /** * Superstruct schema for the `wallet_getSupportedExecutionPermissions` request params. diff --git a/packages/eth-json-rpc-middleware/src/methods/wallet-request-execution-permissions.test.ts b/packages/eth-json-rpc-middleware/src/methods/wallet-request-execution-permissions.test.ts index 13e95d44acd..9d0e9ac94f5 100644 --- a/packages/eth-json-rpc-middleware/src/methods/wallet-request-execution-permissions.test.ts +++ b/packages/eth-json-rpc-middleware/src/methods/wallet-request-execution-permissions.test.ts @@ -1,13 +1,13 @@ import type { Json, JsonRpcRequest } from '@metamask/utils'; import { klona } from 'klona'; -import type { WalletMiddlewareParams } from '../wallet'; +import type { WalletMiddlewareParams } from '../wallet.js'; import type { ProcessRequestExecutionPermissionsHook, RequestExecutionPermissionsRequestParams, RequestExecutionPermissionsResult, -} from './wallet-request-execution-permissions'; -import { createWalletRequestExecutionPermissionsHandler } from './wallet-request-execution-permissions'; +} from './wallet-request-execution-permissions.js'; +import { createWalletRequestExecutionPermissionsHandler } from './wallet-request-execution-permissions.js'; const FROM_ADDRESS_MOCK = '0x123abc123abc123abc123abc123abc123abc123A'; const TO_ADDRESS_MOCK = '0x016562aA41A8697720ce0943F003141f5dEAe006'; diff --git a/packages/eth-json-rpc-middleware/src/methods/wallet-request-execution-permissions.ts b/packages/eth-json-rpc-middleware/src/methods/wallet-request-execution-permissions.ts index dc2ec4027a8..67fb5f748ea 100644 --- a/packages/eth-json-rpc-middleware/src/methods/wallet-request-execution-permissions.ts +++ b/packages/eth-json-rpc-middleware/src/methods/wallet-request-execution-permissions.ts @@ -15,8 +15,8 @@ import { import { HexChecksumAddressStruct, StrictHexStruct } from '@metamask/utils'; import type { Hex, Json, JsonRpcRequest } from '@metamask/utils'; -import { validateParams } from '../utils/validation'; -import type { WalletMiddlewareContext } from '../wallet'; +import { validateParams } from '../utils/validation.js'; +import type { WalletMiddlewareContext } from '../wallet.js'; const PermissionStruct = object({ type: string(), diff --git a/packages/eth-json-rpc-middleware/src/methods/wallet-revoke-execution-permission.test.ts b/packages/eth-json-rpc-middleware/src/methods/wallet-revoke-execution-permission.test.ts index 13c92f80238..63f88b90807 100644 --- a/packages/eth-json-rpc-middleware/src/methods/wallet-revoke-execution-permission.test.ts +++ b/packages/eth-json-rpc-middleware/src/methods/wallet-revoke-execution-permission.test.ts @@ -1,12 +1,12 @@ import type { Json, JsonRpcRequest } from '@metamask/utils'; import { klona } from 'klona'; -import type { WalletMiddlewareParams } from '../wallet'; +import type { WalletMiddlewareParams } from '../wallet.js'; import type { ProcessRevokeExecutionPermissionHook, RevokeExecutionPermissionRequestParams, -} from './wallet-revoke-execution-permission'; -import { createWalletRevokeExecutionPermissionHandler } from './wallet-revoke-execution-permission'; +} from './wallet-revoke-execution-permission.js'; +import { createWalletRevokeExecutionPermissionHandler } from './wallet-revoke-execution-permission.js'; const HEX_MOCK = '0x123abc'; diff --git a/packages/eth-json-rpc-middleware/src/methods/wallet-revoke-execution-permission.ts b/packages/eth-json-rpc-middleware/src/methods/wallet-revoke-execution-permission.ts index fe2f7a6d833..a5da3aef542 100644 --- a/packages/eth-json-rpc-middleware/src/methods/wallet-revoke-execution-permission.ts +++ b/packages/eth-json-rpc-middleware/src/methods/wallet-revoke-execution-permission.ts @@ -5,8 +5,8 @@ import { object } from '@metamask/superstruct'; import { StrictHexStruct } from '@metamask/utils'; import type { Json, JsonRpcRequest } from '@metamask/utils'; -import { validateParams } from '../utils/validation'; -import type { WalletMiddlewareContext } from '../wallet'; +import { validateParams } from '../utils/validation.js'; +import type { WalletMiddlewareContext } from '../wallet.js'; export const RevokeExecutionPermissionResultStruct = object({}); diff --git a/packages/eth-json-rpc-middleware/src/providerAsMiddleware.test.ts b/packages/eth-json-rpc-middleware/src/providerAsMiddleware.test.ts index 73c743395b5..02c60a34f61 100644 --- a/packages/eth-json-rpc-middleware/src/providerAsMiddleware.test.ts +++ b/packages/eth-json-rpc-middleware/src/providerAsMiddleware.test.ts @@ -7,11 +7,11 @@ import { assertIsJsonRpcSuccess, } from '@metamask/utils'; -import { createRequest } from '../test/util/helpers'; +import { createRequest } from '../test/util/helpers.js'; import { providerAsMiddleware, providerAsMiddlewareV2, -} from './providerAsMiddleware'; +} from './providerAsMiddleware.js'; const createMockProvider = (resultOrError: Json | Error): InternalProvider => ({ diff --git a/packages/eth-json-rpc-middleware/src/retryOnEmpty.test.ts b/packages/eth-json-rpc-middleware/src/retryOnEmpty.test.ts index c201d8687db..3c03ee0fe9a 100644 --- a/packages/eth-json-rpc-middleware/src/retryOnEmpty.test.ts +++ b/packages/eth-json-rpc-middleware/src/retryOnEmpty.test.ts @@ -1,8 +1,7 @@ import { providerErrors, rpcErrors } from '@metamask/rpc-errors'; import type { Json, JsonRpcParams, JsonRpcRequest } from '@metamask/utils'; -import { createRetryOnEmptyMiddleware } from '.'; -import type { ProviderRequestStub } from '../test/util/helpers'; +import type { ProviderRequestStub } from '../test/util/helpers.js'; import { createMockParamsWithBlockParamAt, createMockParamsWithoutBlockParamAt, @@ -14,7 +13,8 @@ import { createEngine, createRequest, createFinalMiddlewareWithDefaultResult, -} from '../test/util/helpers'; +} from '../test/util/helpers.js'; +import { createRetryOnEmptyMiddleware } from './..js'; const originalSetTimeout = globalThis.setTimeout; diff --git a/packages/eth-json-rpc-middleware/src/retryOnEmpty.ts b/packages/eth-json-rpc-middleware/src/retryOnEmpty.ts index ba615fb2e60..ecf18c05e0c 100644 --- a/packages/eth-json-rpc-middleware/src/retryOnEmpty.ts +++ b/packages/eth-json-rpc-middleware/src/retryOnEmpty.ts @@ -4,11 +4,11 @@ import type { JsonRpcMiddleware } from '@metamask/json-rpc-engine/v2'; import type { Json, JsonRpcParams, JsonRpcRequest } from '@metamask/utils'; import { klona } from 'klona'; -import { projectLogger, createModuleLogger } from './logging-utils'; -import type { Block } from './types'; -import { blockTagParamIndex } from './utils/cache'; -import { isExecutionRevertedError } from './utils/error'; -import { timeout } from './utils/timeout'; +import { projectLogger, createModuleLogger } from './logging-utils.js'; +import type { Block } from './types.js'; +import { blockTagParamIndex } from './utils/cache.js'; +import { isExecutionRevertedError } from './utils/error.js'; +import { timeout } from './utils/timeout.js'; // // RetryOnEmptyMiddleware will retry any request with an empty response that has @@ -137,7 +137,7 @@ async function retry( return await asyncFn(); } catch (error: unknown) { if (isExecutionRevertedError(error)) { - throw error as unknown; + throw error; } log('(call %i) Request failed, waiting 1s to retry again...', index + 1); await timeout(1000); diff --git a/packages/eth-json-rpc-middleware/src/utils/cache.test.ts b/packages/eth-json-rpc-middleware/src/utils/cache.test.ts index d755a82ce26..57f83d7d3b7 100644 --- a/packages/eth-json-rpc-middleware/src/utils/cache.test.ts +++ b/packages/eth-json-rpc-middleware/src/utils/cache.test.ts @@ -4,7 +4,7 @@ import { cacheTypeForMethod, cacheIdentifierForRequest, canCache, -} from './cache'; +} from './cache.js'; const knownMethods = [ 'web3_clientVersion', diff --git a/packages/eth-json-rpc-middleware/src/utils/common.test.ts b/packages/eth-json-rpc-middleware/src/utils/common.test.ts index 304e6634d9e..38d5c80a8d5 100644 --- a/packages/eth-json-rpc-middleware/src/utils/common.test.ts +++ b/packages/eth-json-rpc-middleware/src/utils/common.test.ts @@ -1,4 +1,4 @@ -import { stripArrayTypeIfPresent } from './common'; +import { stripArrayTypeIfPresent } from './common.js'; describe('CommonUtils', () => { describe('stripArrayTypeIfPresent', () => { diff --git a/packages/eth-json-rpc-middleware/src/utils/error.test.ts b/packages/eth-json-rpc-middleware/src/utils/error.test.ts index d51eca67272..ad868fb4fc4 100644 --- a/packages/eth-json-rpc-middleware/src/utils/error.test.ts +++ b/packages/eth-json-rpc-middleware/src/utils/error.test.ts @@ -1,6 +1,6 @@ import { errorCodes } from '@metamask/rpc-errors'; -import { isExecutionRevertedError } from './error'; +import { isExecutionRevertedError } from './error.js'; const executionRevertedError = { code: errorCodes.rpc.invalidInput, diff --git a/packages/eth-json-rpc-middleware/src/utils/normalize.test.ts b/packages/eth-json-rpc-middleware/src/utils/normalize.test.ts index 72bcc706b39..dc489331196 100644 --- a/packages/eth-json-rpc-middleware/src/utils/normalize.test.ts +++ b/packages/eth-json-rpc-middleware/src/utils/normalize.test.ts @@ -2,7 +2,7 @@ import { MessageTypes, TypedMessage } from '@metamask/eth-sig-util'; import deepFreeze from 'deep-freeze-strict'; import { klona } from 'klona'; -import { normalizeTypedMessage } from './normalize'; +import { normalizeTypedMessage } from './normalize.js'; const MESSAGE_DATA_MOCK = { types: { diff --git a/packages/eth-json-rpc-middleware/src/utils/timeout.test.ts b/packages/eth-json-rpc-middleware/src/utils/timeout.test.ts index 8e9e8181991..91f406dfed1 100644 --- a/packages/eth-json-rpc-middleware/src/utils/timeout.test.ts +++ b/packages/eth-json-rpc-middleware/src/utils/timeout.test.ts @@ -1,4 +1,4 @@ -import { timeout } from './timeout'; +import { timeout } from './timeout.js'; describe('timeout', () => { describe('with real timers', () => { diff --git a/packages/eth-json-rpc-middleware/src/utils/validation.test.ts b/packages/eth-json-rpc-middleware/src/utils/validation.test.ts index 230b476a4cf..1760a9bf154 100644 --- a/packages/eth-json-rpc-middleware/src/utils/validation.test.ts +++ b/packages/eth-json-rpc-middleware/src/utils/validation.test.ts @@ -3,13 +3,13 @@ import { providerErrors } from '@metamask/rpc-errors'; import type { StructError } from '@metamask/superstruct'; import { any, validate } from '@metamask/superstruct'; -import type { WalletMiddlewareKeyValues } from '../wallet'; +import type { WalletMiddlewareKeyValues } from '../wallet.js'; import { resemblesAddress, validateAndNormalizeKeyholder, validateParams, validateTypedMessageKeys, -} from './validation'; +} from './validation.js'; jest.mock('@metamask/superstruct', () => ({ ...jest.requireActual('@metamask/superstruct'), diff --git a/packages/eth-json-rpc-middleware/src/utils/validation.ts b/packages/eth-json-rpc-middleware/src/utils/validation.ts index de3782fa67b..031fc0a76ca 100644 --- a/packages/eth-json-rpc-middleware/src/utils/validation.ts +++ b/packages/eth-json-rpc-middleware/src/utils/validation.ts @@ -4,8 +4,8 @@ import type { Struct, StructError } from '@metamask/superstruct'; import { validate } from '@metamask/superstruct'; import type { Hex } from '@metamask/utils'; -import type { WalletMiddlewareContext } from '../wallet'; -import { parseTypedMessage } from './normalize'; +import type { WalletMiddlewareContext } from '../wallet.js'; +import { parseTypedMessage } from './normalize.js'; /** * Validates and normalizes a keyholder address for transaction- and diff --git a/packages/eth-json-rpc-middleware/src/wallet.test.ts b/packages/eth-json-rpc-middleware/src/wallet.test.ts index a9964c0d3a1..3b62e387ea9 100644 --- a/packages/eth-json-rpc-middleware/src/wallet.test.ts +++ b/packages/eth-json-rpc-middleware/src/wallet.test.ts @@ -1,15 +1,15 @@ import { MessageTypes, TypedMessage } from '@metamask/eth-sig-util'; import { JsonRpcEngineV2 } from '@metamask/json-rpc-engine/v2'; +import { createHandleParams, createRequest } from '../test/util/helpers.js'; import type { MessageParams, TransactionParams, TypedMessageParams, TypedMessageV1Params, -} from '.'; -import { createWalletMiddleware } from '.'; -import { createHandleParams, createRequest } from '../test/util/helpers'; -import { DANGEROUS_PROTOTYPE_PROPERTIES } from './utils/validation'; +} from './..js'; +import { createWalletMiddleware } from './..js'; +import { DANGEROUS_PROTOTYPE_PROPERTIES } from './utils/validation.js'; const testAddresses = [ '0xbe93f9bacbcffc8ee6663f2647917ed7a20a57bb', diff --git a/packages/eth-json-rpc-middleware/src/wallet.ts b/packages/eth-json-rpc-middleware/src/wallet.ts index b220be16e09..3b8e6f17f71 100644 --- a/packages/eth-json-rpc-middleware/src/wallet.ts +++ b/packages/eth-json-rpc-middleware/src/wallet.ts @@ -10,23 +10,23 @@ import { rpcErrors } from '@metamask/rpc-errors'; import { isValidHexAddress } from '@metamask/utils'; import type { JsonRpcRequest, Json, Hex } from '@metamask/utils'; -import { createWalletGetGrantedExecutionPermissionsHandler } from './methods/wallet-get-granted-execution-permissions'; -import type { ProcessGetGrantedExecutionPermissionsHook } from './methods/wallet-get-granted-execution-permissions'; -import { createWalletGetSupportedExecutionPermissionsHandler } from './methods/wallet-get-supported-execution-permissions'; -import type { ProcessGetSupportedExecutionPermissionsHook } from './methods/wallet-get-supported-execution-permissions'; -import { createWalletRequestExecutionPermissionsHandler } from './methods/wallet-request-execution-permissions'; -import type { ProcessRequestExecutionPermissionsHook } from './methods/wallet-request-execution-permissions'; -import { createWalletRevokeExecutionPermissionHandler } from './methods/wallet-revoke-execution-permission'; -import type { ProcessRevokeExecutionPermissionHook } from './methods/wallet-revoke-execution-permission'; -import { stripArrayTypeIfPresent } from './utils/common'; -import { normalizeTypedMessage, parseTypedMessage } from './utils/normalize'; +import { createWalletGetGrantedExecutionPermissionsHandler } from './methods/wallet-get-granted-execution-permissions.js'; +import type { ProcessGetGrantedExecutionPermissionsHook } from './methods/wallet-get-granted-execution-permissions.js'; +import { createWalletGetSupportedExecutionPermissionsHandler } from './methods/wallet-get-supported-execution-permissions.js'; +import type { ProcessGetSupportedExecutionPermissionsHook } from './methods/wallet-get-supported-execution-permissions.js'; +import { createWalletRequestExecutionPermissionsHandler } from './methods/wallet-request-execution-permissions.js'; +import type { ProcessRequestExecutionPermissionsHook } from './methods/wallet-request-execution-permissions.js'; +import { createWalletRevokeExecutionPermissionHandler } from './methods/wallet-revoke-execution-permission.js'; +import type { ProcessRevokeExecutionPermissionHook } from './methods/wallet-revoke-execution-permission.js'; +import { stripArrayTypeIfPresent } from './utils/common.js'; +import { normalizeTypedMessage, parseTypedMessage } from './utils/normalize.js'; import { resemblesAddress, validateAndNormalizeKeyholder as validateKeyholder, validateTypedDataForPrototypePollution, validateTypedDataV1ForPrototypePollution, validateTypedMessageKeys, -} from './utils/validation'; +} from './utils/validation.js'; export type TransactionParams = { from: string; diff --git a/packages/eth-json-rpc-middleware/test/util/helpers.ts b/packages/eth-json-rpc-middleware/test/util/helpers.ts index 778eda5a2cc..617fbad474e 100644 --- a/packages/eth-json-rpc-middleware/test/util/helpers.ts +++ b/packages/eth-json-rpc-middleware/test/util/helpers.ts @@ -10,7 +10,7 @@ import type { Json, JsonRpcParams, JsonRpcRequest } from '@metamask/utils'; import { klona } from 'klona/full'; import { isDeepStrictEqual } from 'util'; -import type { WalletMiddlewareKeyValues } from '../../src/wallet'; +import type { WalletMiddlewareKeyValues } from '../../src/wallet.js'; export const createRequest = < Input extends Partial>, From 027dbfe7c30ac4c89ee1abfba6a482620d727247 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:51:05 +0200 Subject: [PATCH 102/136] ESLint fix and `jest` global import for config-registry-controller --- ...gRegistryController-method-action-types.ts | 2 +- .../src/ConfigRegistryController.test.ts | 12 +++++------ .../src/ConfigRegistryController.ts | 6 +++--- ...egistry-api-service-method-action-types.ts | 2 +- .../config-registry-api-service.test.ts | 8 ++++---- .../config-registry-api-service.ts | 6 +++--- .../filters.test.ts | 6 +++--- .../config-registry-api-service/filters.ts | 2 +- .../config-registry-controller/src/index.ts | 20 +++++++++---------- .../src/selectors.test.ts | 4 ++-- .../src/selectors.ts | 6 +++--- .../tests/helpers.ts | 2 +- 12 files changed, 38 insertions(+), 38 deletions(-) diff --git a/packages/config-registry-controller/src/ConfigRegistryController-method-action-types.ts b/packages/config-registry-controller/src/ConfigRegistryController-method-action-types.ts index e40a2bce2fc..4415001e537 100644 --- a/packages/config-registry-controller/src/ConfigRegistryController-method-action-types.ts +++ b/packages/config-registry-controller/src/ConfigRegistryController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { ConfigRegistryController } from './ConfigRegistryController'; +import type { ConfigRegistryController } from './ConfigRegistryController.js'; /** * Stop all polling. diff --git a/packages/config-registry-controller/src/ConfigRegistryController.test.ts b/packages/config-registry-controller/src/ConfigRegistryController.test.ts index c15fed9cf2b..12c5dbb0f23 100644 --- a/packages/config-registry-controller/src/ConfigRegistryController.test.ts +++ b/packages/config-registry-controller/src/ConfigRegistryController.test.ts @@ -5,15 +5,15 @@ import type { } from '@metamask/messenger'; import { Messenger, MOCK_ANY_NAMESPACE } from '@metamask/messenger'; -import { createMockNetworkConfig } from '../tests/helpers'; -import type { RegistryNetworkConfig } from './config-registry-api-service/types'; -import type { FetchConfigResult } from './config-registry-api-service/types'; -import type { ConfigRegistryControllerMessenger } from './ConfigRegistryController'; +import { createMockNetworkConfig } from '../tests/helpers.js'; +import type { RegistryNetworkConfig } from './config-registry-api-service/types.js'; +import type { FetchConfigResult } from './config-registry-api-service/types.js'; +import type { ConfigRegistryControllerMessenger } from './ConfigRegistryController.js'; import { ConfigRegistryController, DEFAULT_POLLING_INTERVAL, -} from './ConfigRegistryController'; -import { selectFeaturedNetworks, selectNetworks } from './selectors'; +} from './ConfigRegistryController.js'; +import { selectFeaturedNetworks, selectNetworks } from './selectors.js'; const namespace = 'ConfigRegistryController' as const; diff --git a/packages/config-registry-controller/src/ConfigRegistryController.ts b/packages/config-registry-controller/src/ConfigRegistryController.ts index f1be853dfcb..2d5e5ec2f56 100644 --- a/packages/config-registry-controller/src/ConfigRegistryController.ts +++ b/packages/config-registry-controller/src/ConfigRegistryController.ts @@ -14,9 +14,9 @@ import type { RemoteFeatureFlagControllerGetStateAction } from '@metamask/remote import type { RemoteFeatureFlagControllerStateChangeEvent } from '@metamask/remote-feature-flag-controller'; import { Duration, inMilliseconds, Json } from '@metamask/utils'; -import type { ConfigRegistryApiServiceFetchConfigAction } from './config-registry-api-service/config-registry-api-service-method-action-types'; -import type { RegistryNetworkConfig } from './config-registry-api-service/types'; -import type { ConfigRegistryControllerMethodActions } from './ConfigRegistryController-method-action-types'; +import type { ConfigRegistryApiServiceFetchConfigAction } from './config-registry-api-service/config-registry-api-service-method-action-types.js'; +import type { RegistryNetworkConfig } from './config-registry-api-service/types.js'; +import type { ConfigRegistryControllerMethodActions } from './ConfigRegistryController-method-action-types.js'; const controllerName = 'ConfigRegistryController'; diff --git a/packages/config-registry-controller/src/config-registry-api-service/config-registry-api-service-method-action-types.ts b/packages/config-registry-controller/src/config-registry-api-service/config-registry-api-service-method-action-types.ts index 5bdba1c73df..5f2f15c4025 100644 --- a/packages/config-registry-controller/src/config-registry-api-service/config-registry-api-service-method-action-types.ts +++ b/packages/config-registry-controller/src/config-registry-api-service/config-registry-api-service-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { ConfigRegistryApiService } from './config-registry-api-service'; +import type { ConfigRegistryApiService } from './config-registry-api-service.js'; export type ConfigRegistryApiServiceFetchConfigAction = { type: `ConfigRegistryApiService:fetchConfig`; diff --git a/packages/config-registry-controller/src/config-registry-api-service/config-registry-api-service.test.ts b/packages/config-registry-controller/src/config-registry-api-service/config-registry-api-service.test.ts index fa3c1a5027b..efcdf648bfc 100644 --- a/packages/config-registry-controller/src/config-registry-api-service/config-registry-api-service.test.ts +++ b/packages/config-registry-controller/src/config-registry-api-service/config-registry-api-service.test.ts @@ -1,13 +1,13 @@ import { SDK } from '@metamask/profile-sync-controller'; import nock from 'nock'; -import { createMockNetworkConfig } from '../../tests/helpers'; -import { ConfigRegistryApiService } from './config-registry-api-service'; +import { createMockNetworkConfig } from '../../tests/helpers.js'; +import { ConfigRegistryApiService } from './config-registry-api-service.js'; import type { ConfigRegistryApiServiceMessenger, ConfigRegistryApiServiceOptions, -} from './config-registry-api-service'; -import type { RegistryConfigApiResponse } from './types'; +} from './config-registry-api-service.js'; +import type { RegistryConfigApiResponse } from './types.js'; function createMockServiceMessenger(): ConfigRegistryApiServiceMessenger { return { diff --git a/packages/config-registry-controller/src/config-registry-api-service/config-registry-api-service.ts b/packages/config-registry-controller/src/config-registry-api-service/config-registry-api-service.ts index b023e2bdb42..1c8767ec9f0 100644 --- a/packages/config-registry-controller/src/config-registry-api-service/config-registry-api-service.ts +++ b/packages/config-registry-controller/src/config-registry-api-service/config-registry-api-service.ts @@ -7,13 +7,13 @@ import type { Messenger } from '@metamask/messenger'; import { SDK } from '@metamask/profile-sync-controller'; import type { IDisposable } from 'cockatiel'; -import type { ConfigRegistryApiServiceMethodActions } from './config-registry-api-service-method-action-types'; +import type { ConfigRegistryApiServiceMethodActions } from './config-registry-api-service-method-action-types.js'; import type { FetchConfigOptions, FetchConfigResult, RegistryConfigApiResponse, -} from './types'; -import { validateRegistryConfigApiResponse } from './types'; +} from './types.js'; +import { validateRegistryConfigApiResponse } from './types.js'; const ENDPOINT_PATH = '/config/networks'; diff --git a/packages/config-registry-controller/src/config-registry-api-service/filters.test.ts b/packages/config-registry-controller/src/config-registry-api-service/filters.test.ts index a9a15e14514..b81120efd16 100644 --- a/packages/config-registry-controller/src/config-registry-api-service/filters.test.ts +++ b/packages/config-registry-controller/src/config-registry-api-service/filters.test.ts @@ -1,6 +1,6 @@ -import { createMockNetworkConfig } from '../../tests/helpers'; -import { filterNetworks } from './filters'; -import type { RegistryNetworkConfig } from './types'; +import { createMockNetworkConfig } from '../../tests/helpers.js'; +import { filterNetworks } from './filters.js'; +import type { RegistryNetworkConfig } from './types.js'; describe('filters', () => { describe('filterNetworks', () => { diff --git a/packages/config-registry-controller/src/config-registry-api-service/filters.ts b/packages/config-registry-controller/src/config-registry-api-service/filters.ts index 0827d6ad65d..e0add5261f0 100644 --- a/packages/config-registry-controller/src/config-registry-api-service/filters.ts +++ b/packages/config-registry-controller/src/config-registry-api-service/filters.ts @@ -1,4 +1,4 @@ -import type { RegistryNetworkConfig } from './types'; +import type { RegistryNetworkConfig } from './types.js'; export type NetworkFilterOptions = { isFeatured?: boolean; diff --git a/packages/config-registry-controller/src/index.ts b/packages/config-registry-controller/src/index.ts index 1c650078617..bcc085962d1 100644 --- a/packages/config-registry-controller/src/index.ts +++ b/packages/config-registry-controller/src/index.ts @@ -6,33 +6,33 @@ export type { ConfigRegistryControllerEvents, ConfigRegistryControllerStateChangeEvent, ConfigRegistryControllerMessenger, -} from './ConfigRegistryController'; +} from './ConfigRegistryController.js'; export type { ConfigRegistryControllerStartPollingAction, ConfigRegistryControllerStopPollingAction, ConfigRegistryControllerMethodActions, -} from './ConfigRegistryController-method-action-types'; +} from './ConfigRegistryController-method-action-types.js'; export { ConfigRegistryController, DEFAULT_POLLING_INTERVAL, -} from './ConfigRegistryController'; -export { selectFeaturedNetworks, selectNetworks } from './selectors'; +} from './ConfigRegistryController.js'; +export { selectFeaturedNetworks, selectNetworks } from './selectors.js'; export type { FetchConfigOptions, FetchConfigResult, RegistryNetworkConfig, RegistryConfigApiResponse, -} from './config-registry-api-service/types'; +} from './config-registry-api-service/types.js'; export type { ConfigRegistryApiServiceOptions, ConfigRegistryApiServiceActions, ConfigRegistryApiServiceEvents, ConfigRegistryApiServiceMessenger, -} from './config-registry-api-service/config-registry-api-service'; +} from './config-registry-api-service/config-registry-api-service.js'; export type { ConfigRegistryApiServiceFetchConfigAction, ConfigRegistryApiServiceMethodActions, -} from './config-registry-api-service/config-registry-api-service-method-action-types'; -export type { NetworkFilterOptions } from './config-registry-api-service/filters'; -export { ConfigRegistryApiService } from './config-registry-api-service/config-registry-api-service'; -export { filterNetworks } from './config-registry-api-service/filters'; +} from './config-registry-api-service/config-registry-api-service-method-action-types.js'; +export type { NetworkFilterOptions } from './config-registry-api-service/filters.js'; +export { ConfigRegistryApiService } from './config-registry-api-service/config-registry-api-service.js'; +export { filterNetworks } from './config-registry-api-service/filters.js'; diff --git a/packages/config-registry-controller/src/selectors.test.ts b/packages/config-registry-controller/src/selectors.test.ts index fe7b6e6a7cf..1120c15eb55 100644 --- a/packages/config-registry-controller/src/selectors.test.ts +++ b/packages/config-registry-controller/src/selectors.test.ts @@ -1,5 +1,5 @@ -import { createMockNetworkConfig } from '../tests/helpers'; -import { selectFeaturedNetworks, selectNetworks } from './selectors'; +import { createMockNetworkConfig } from '../tests/helpers.js'; +import { selectFeaturedNetworks, selectNetworks } from './selectors.js'; describe('selectors', () => { describe('selectNetworks', () => { diff --git a/packages/config-registry-controller/src/selectors.ts b/packages/config-registry-controller/src/selectors.ts index 7d44c486a59..5c8c608dd33 100644 --- a/packages/config-registry-controller/src/selectors.ts +++ b/packages/config-registry-controller/src/selectors.ts @@ -1,8 +1,8 @@ import { createSelector } from 'reselect'; -import { filterNetworks } from './config-registry-api-service/filters'; -import type { RegistryNetworkConfig } from './config-registry-api-service/types'; -import type { ConfigRegistryControllerState } from './ConfigRegistryController'; +import { filterNetworks } from './config-registry-api-service/filters.js'; +import type { RegistryNetworkConfig } from './config-registry-api-service/types.js'; +import type { ConfigRegistryControllerState } from './ConfigRegistryController.js'; /** * Base selector to get all networks from the controller state. diff --git a/packages/config-registry-controller/tests/helpers.ts b/packages/config-registry-controller/tests/helpers.ts index a096f0e9143..38e9544d46c 100644 --- a/packages/config-registry-controller/tests/helpers.ts +++ b/packages/config-registry-controller/tests/helpers.ts @@ -1,4 +1,4 @@ -import type { RegistryNetworkConfig } from '../src/config-registry-api-service/types'; +import type { RegistryNetworkConfig } from '../src/config-registry-api-service/types.js'; /** * Creates a mock RegistryNetworkConfig (CAIP-2 chain) for testing. From 6d0a1cd40219d5d229e49625f0103164d284f08a Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:51:06 +0200 Subject: [PATCH 103/136] ESLint fix and `jest` global import for core-backend --- ...atformClientService-method-action-types.ts | 2 +- .../src/ApiPlatformClientService.test.ts | 4 +-- .../src/ApiPlatformClientService.ts | 6 ++--- .../src/api/ApiPlatformClient.test.ts | 4 +-- .../core-backend/src/api/ApiPlatformClient.ts | 14 +++++----- .../src/api/accounts/client.test.ts | 8 +++--- .../core-backend/src/api/accounts/client.ts | 13 +++++++--- .../core-backend/src/api/accounts/index.ts | 4 +-- .../core-backend/src/api/accounts/types.ts | 2 +- .../core-backend/src/api/base-client.test.ts | 4 +-- packages/core-backend/src/api/base-client.ts | 4 +-- packages/core-backend/src/api/index.ts | 26 +++++++++---------- .../src/api/prices/client.test.ts | 10 +++---- .../core-backend/src/api/prices/client.ts | 13 +++++++--- packages/core-backend/src/api/prices/index.ts | 4 +-- packages/core-backend/src/api/test-utils.ts | 2 +- .../core-backend/src/api/token/client.test.ts | 8 +++--- packages/core-backend/src/api/token/client.ts | 13 +++++++--- packages/core-backend/src/api/token/index.ts | 4 +-- .../src/api/tokens/client.test.ts | 6 ++--- .../core-backend/src/api/tokens/client.ts | 13 +++++++--- packages/core-backend/src/api/tokens/index.ts | 4 +-- packages/core-backend/src/index.ts | 22 ++++++++-------- ...ountActivityService-method-action-types.ts | 2 +- .../src/ws/AccountActivityService.test.ts | 14 +++++----- .../src/ws/AccountActivityService.ts | 20 +++++++------- ...endWebSocketService-method-action-types.ts | 2 +- .../src/ws/BackendWebSocketService.test.ts | 24 +++++++---------- .../src/ws/BackendWebSocketService.ts | 7 +++-- .../ohlcv/OHLCVService-method-action-types.ts | 2 +- .../src/ws/ohlcv/OHLCVService.test.ts | 12 ++++----- .../core-backend/src/ws/ohlcv/OHLCVService.ts | 15 +++++------ packages/core-backend/src/ws/ohlcv/index.ts | 8 +++--- 33 files changed, 154 insertions(+), 142 deletions(-) diff --git a/packages/core-backend/src/ApiPlatformClientService-method-action-types.ts b/packages/core-backend/src/ApiPlatformClientService-method-action-types.ts index 1debb137c08..4ff7a560e78 100644 --- a/packages/core-backend/src/ApiPlatformClientService-method-action-types.ts +++ b/packages/core-backend/src/ApiPlatformClientService-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { ApiPlatformClientService } from './ApiPlatformClientService'; +import type { ApiPlatformClientService } from './ApiPlatformClientService.js'; /** * Returns the shared ApiPlatformClient instance. diff --git a/packages/core-backend/src/ApiPlatformClientService.test.ts b/packages/core-backend/src/ApiPlatformClientService.test.ts index 8ff627f83cd..abb2a5fa372 100644 --- a/packages/core-backend/src/ApiPlatformClientService.test.ts +++ b/packages/core-backend/src/ApiPlatformClientService.test.ts @@ -5,8 +5,8 @@ import type { MockAnyNamespace, } from '@metamask/messenger'; -import { ApiPlatformClientService } from './ApiPlatformClientService'; -import type { ApiPlatformClientServiceMessenger } from './ApiPlatformClientService'; +import { ApiPlatformClientService } from './ApiPlatformClientService.js'; +import type { ApiPlatformClientServiceMessenger } from './ApiPlatformClientService.js'; type AllApiPlatformClientServiceActions = MessengerActions; diff --git a/packages/core-backend/src/ApiPlatformClientService.ts b/packages/core-backend/src/ApiPlatformClientService.ts index 5aeca2fddc2..a0de602acca 100644 --- a/packages/core-backend/src/ApiPlatformClientService.ts +++ b/packages/core-backend/src/ApiPlatformClientService.ts @@ -1,8 +1,8 @@ import type { Messenger } from '@metamask/messenger'; -import { ApiPlatformClient } from './api'; -import type { ApiPlatformClientOptions } from './api'; -import type { ApiPlatformClientServiceMethodActions } from './ApiPlatformClientService-method-action-types'; +import { ApiPlatformClient } from './api.js'; +import type { ApiPlatformClientOptions } from './api.js'; +import type { ApiPlatformClientServiceMethodActions } from './ApiPlatformClientService-method-action-types.js'; // === GENERAL === diff --git a/packages/core-backend/src/api/ApiPlatformClient.test.ts b/packages/core-backend/src/api/ApiPlatformClient.test.ts index 397193c6a36..a33d1fe3b95 100644 --- a/packages/core-backend/src/api/ApiPlatformClient.test.ts +++ b/packages/core-backend/src/api/ApiPlatformClient.test.ts @@ -24,12 +24,12 @@ import { HttpError, shouldRetry, calculateRetryDelay, -} from '.'; +} from './..js'; import { mockFetch, createMockResponse, setupTestEnvironment, -} from './test-utils'; +} from './test-utils.js'; describe('ApiPlatformClient', () => { let client: ApiPlatformClient; diff --git a/packages/core-backend/src/api/ApiPlatformClient.ts b/packages/core-backend/src/api/ApiPlatformClient.ts index 4a47f933599..7e697fb2248 100644 --- a/packages/core-backend/src/api/ApiPlatformClient.ts +++ b/packages/core-backend/src/api/ApiPlatformClient.ts @@ -38,18 +38,18 @@ import { QueryClient } from '@tanstack/query-core'; import type { QueryKey } from '@tanstack/query-core'; // Import API clients from subfolders -import { AccountsApiClient } from './accounts'; -import { authQueryKeys } from './base-client'; -import { PricesApiClient } from './prices'; +import { AccountsApiClient } from './accounts.js'; +import { authQueryKeys } from './base-client.js'; +import { PricesApiClient } from './prices.js'; import { STALE_TIMES, GC_TIMES, shouldRetry, calculateRetryDelay, -} from './shared-types'; -import type { ApiPlatformClientOptions } from './shared-types'; -import { TokenApiClient } from './token'; -import { TokensApiClient } from './tokens'; +} from './shared-types.js'; +import type { ApiPlatformClientOptions } from './shared-types.js'; +import { TokenApiClient } from './token.js'; +import { TokensApiClient } from './tokens.js'; // ============================================================================ // UNIFIED API CLIENT diff --git a/packages/core-backend/src/api/accounts/client.test.ts b/packages/core-backend/src/api/accounts/client.test.ts index bdd5ec32367..0230be1e933 100644 --- a/packages/core-backend/src/api/accounts/client.test.ts +++ b/packages/core-backend/src/api/accounts/client.test.ts @@ -2,20 +2,20 @@ * Accounts API Client Tests - accounts.api.cx.metamask.io */ -import type { ApiPlatformClient } from '../ApiPlatformClient'; -import { API_URLS, HttpError } from '../shared-types'; +import type { ApiPlatformClient } from '../ApiPlatformClient.js'; +import { API_URLS, HttpError } from '../shared-types.js'; import { mockFetch, createMockResponse, setupTestEnvironment, -} from '../test-utils'; +} from '../test-utils.js'; import type { V1SupportedNetworksResponse, V2SupportedNetworksResponse, V2BalancesResponse, V5BalancesResponse, V6BalancesResponse, -} from './types'; +} from './types.js'; describe('AccountsApiClient', () => { let client: ApiPlatformClient; diff --git a/packages/core-backend/src/api/accounts/client.ts b/packages/core-backend/src/api/accounts/client.ts index e5cec8f0f7e..575746c63eb 100644 --- a/packages/core-backend/src/api/accounts/client.ts +++ b/packages/core-backend/src/api/accounts/client.ts @@ -17,9 +17,14 @@ import type { QueryFunctionContext, } from '@tanstack/query-core'; -import { BaseApiClient, API_URLS, STALE_TIMES, GC_TIMES } from '../base-client'; -import { getQueryOptionsOverrides } from '../shared-types'; -import type { FetchOptions } from '../shared-types'; +import { + BaseApiClient, + API_URLS, + STALE_TIMES, + GC_TIMES, +} from '../base-client.js'; +import { getQueryOptionsOverrides } from '../shared-types.js'; +import type { FetchOptions } from '../shared-types.js'; import type { V1SupportedNetworksResponse, V2SupportedNetworksResponse, @@ -35,7 +40,7 @@ import type { V1AccountRelationshipResult, V2NftsResponse, V2TokensResponse, -} from './types'; +} from './types.js'; /** * Accounts API Client. diff --git a/packages/core-backend/src/api/accounts/index.ts b/packages/core-backend/src/api/accounts/index.ts index 3f08819c3fa..e9cce03f246 100644 --- a/packages/core-backend/src/api/accounts/index.ts +++ b/packages/core-backend/src/api/accounts/index.ts @@ -2,7 +2,7 @@ * Accounts API barrel export. */ -export { AccountsApiClient } from './client'; +export { AccountsApiClient } from './client.js'; export type { V5BalanceItem, V5BalancesResponse, @@ -27,4 +27,4 @@ export type { V2NftsResponse, TokenDiscoveryItem, V2TokensResponse, -} from './types'; +} from './types.js'; diff --git a/packages/core-backend/src/api/accounts/types.ts b/packages/core-backend/src/api/accounts/types.ts index 41eeb031767..a01caaaa4de 100644 --- a/packages/core-backend/src/api/accounts/types.ts +++ b/packages/core-backend/src/api/accounts/types.ts @@ -3,7 +3,7 @@ * API: accounts.api.cx.metamask.io */ -import type { PageInfo } from '../shared-types'; +import type { PageInfo } from '../shared-types.js'; // ============================================================================ // BALANCE TYPES diff --git a/packages/core-backend/src/api/base-client.test.ts b/packages/core-backend/src/api/base-client.test.ts index 3db0eda66e6..41a458d9b00 100644 --- a/packages/core-backend/src/api/base-client.test.ts +++ b/packages/core-backend/src/api/base-client.test.ts @@ -4,8 +4,8 @@ import { QueryClient } from '@tanstack/query-core'; -import { AccountsApiClient } from './accounts'; -import { authQueryKeys } from './base-client'; +import { AccountsApiClient } from './accounts.js'; +import { authQueryKeys } from './base-client.js'; describe('BaseApiClient', () => { describe('invalidateAuthToken', () => { diff --git a/packages/core-backend/src/api/base-client.ts b/packages/core-backend/src/api/base-client.ts index c8a1d1e01a1..db8ff3fbe1b 100644 --- a/packages/core-backend/src/api/base-client.ts +++ b/packages/core-backend/src/api/base-client.ts @@ -12,8 +12,8 @@ import { calculateRetryDelay, shouldRetry, HttpError, -} from './shared-types'; -import type { ApiPlatformClientOptions } from './shared-types'; +} from './shared-types.js'; +import type { ApiPlatformClientOptions } from './shared-types.js'; // Auth query keys - shared for token management across clients export const authQueryKeys = { diff --git a/packages/core-backend/src/api/index.ts b/packages/core-backend/src/api/index.ts index 02c01b9838e..c2920f14153 100644 --- a/packages/core-backend/src/api/index.ts +++ b/packages/core-backend/src/api/index.ts @@ -10,7 +10,7 @@ export type { MarketDataDetails, ApiPlatformClientOptions, FetchOptions, -} from './shared-types'; +} from './shared-types.js'; export { API_URLS, STALE_TIMES, @@ -20,10 +20,10 @@ export { getQueryOptionsOverrides, shouldRetry, HttpError, -} from './shared-types'; +} from './shared-types.js'; // Accounts API -export { AccountsApiClient } from './accounts'; +export { AccountsApiClient } from './accounts.js'; export type { V5BalanceItem, V5BalancesResponse, @@ -48,10 +48,10 @@ export type { V2NftsResponse, TokenDiscoveryItem, V2TokensResponse, -} from './accounts'; +} from './accounts.js'; // Prices API -export { PricesApiClient } from './prices'; +export { PricesApiClient } from './prices.js'; export type { V3SpotPricesResponse, CoinGeckoSpotPrice, @@ -60,10 +60,10 @@ export type { PriceSupportedNetworksResponse, V1HistoricalPricesResponse, V3HistoricalPricesResponse, -} from './prices'; +} from './prices.js'; // Token API -export { TokenApiClient } from './token'; +export { TokenApiClient } from './token.js'; export type { TokenMetadata, V1TokenDescriptionResponse, @@ -74,22 +74,22 @@ export type { TopGainersSortOption, TrendingSortOption, V1SuggestedOccurrenceFloorsResponse, -} from './token'; +} from './token.js'; // Tokens API -export { TokensApiClient } from './tokens'; +export { TokensApiClient } from './tokens.js'; export type { V1TokenSupportedNetworksResponse, V2TokenSupportedNetworksResponse, V3AssetResponse, -} from './tokens'; +} from './tokens.js'; // Base client -export { BaseApiClient } from './base-client'; -export type { InternalFetchOptions } from './base-client'; +export { BaseApiClient } from './base-client.js'; +export type { InternalFetchOptions } from './base-client.js'; // API Platform Client (unified client) export { ApiPlatformClient, createApiPlatformClient, -} from './ApiPlatformClient'; +} from './ApiPlatformClient.js'; diff --git a/packages/core-backend/src/api/prices/client.test.ts b/packages/core-backend/src/api/prices/client.test.ts index 80cf8c5f095..237d4ed5a5a 100644 --- a/packages/core-backend/src/api/prices/client.test.ts +++ b/packages/core-backend/src/api/prices/client.test.ts @@ -2,19 +2,19 @@ * Prices API Client Tests - price.api.cx.metamask.io */ -import type { ApiPlatformClient } from '../ApiPlatformClient'; -import { API_URLS } from '../shared-types'; -import type { FetchOptions } from '../shared-types'; +import type { ApiPlatformClient } from '../ApiPlatformClient.js'; +import { API_URLS } from '../shared-types.js'; +import type { FetchOptions } from '../shared-types.js'; import { createMockResponse, mockFetch, setupTestEnvironment, -} from '../test-utils'; +} from '../test-utils.js'; import type { PriceSupportedNetworksResponse, V1ExchangeRatesResponse, V3SpotPricesResponse, -} from './types'; +} from './types.js'; describe('PricesApiClient', () => { let client: ApiPlatformClient; diff --git a/packages/core-backend/src/api/prices/client.ts b/packages/core-backend/src/api/prices/client.ts index 0cd31afe65e..f8cc86fa993 100644 --- a/packages/core-backend/src/api/prices/client.ts +++ b/packages/core-backend/src/api/prices/client.ts @@ -14,13 +14,18 @@ import type { QueryFunctionContext, } from '@tanstack/query-core'; -import { BaseApiClient, API_URLS, STALE_TIMES, GC_TIMES } from '../base-client'; -import { getQueryOptionsOverrides } from '../shared-types'; +import { + BaseApiClient, + API_URLS, + STALE_TIMES, + GC_TIMES, +} from '../base-client.js'; +import { getQueryOptionsOverrides } from '../shared-types.js'; import type { FetchOptions, MarketDataDetails, SupportedCurrency, -} from '../shared-types'; +} from '../shared-types.js'; import type { CoinGeckoSpotPrice, V1ExchangeRatesResponse, @@ -28,7 +33,7 @@ import type { V1HistoricalPricesResponse, V3SpotPricesResponse, V3HistoricalPricesResponse, -} from './types'; +} from './types.js'; /** * Prices API Client. diff --git a/packages/core-backend/src/api/prices/index.ts b/packages/core-backend/src/api/prices/index.ts index ca41dab5191..f8f24383a96 100644 --- a/packages/core-backend/src/api/prices/index.ts +++ b/packages/core-backend/src/api/prices/index.ts @@ -2,7 +2,7 @@ * Prices API barrel export. */ -export { PricesApiClient } from './client'; +export { PricesApiClient } from './client.js'; export type { V3SpotPricesResponse, CoinGeckoSpotPrice, @@ -11,4 +11,4 @@ export type { PriceSupportedNetworksResponse, V1HistoricalPricesResponse, V3HistoricalPricesResponse, -} from './types'; +} from './types.js'; diff --git a/packages/core-backend/src/api/test-utils.ts b/packages/core-backend/src/api/test-utils.ts index ce14c505222..cb6a6f6529d 100644 --- a/packages/core-backend/src/api/test-utils.ts +++ b/packages/core-backend/src/api/test-utils.ts @@ -4,7 +4,7 @@ import { QueryClient } from '@tanstack/query-core'; -import { ApiPlatformClient } from './ApiPlatformClient'; +import { ApiPlatformClient } from './ApiPlatformClient.js'; // Mock fetch globally export const mockFetch = jest.fn(); diff --git a/packages/core-backend/src/api/token/client.test.ts b/packages/core-backend/src/api/token/client.test.ts index d09900257f2..9d8e95a9e22 100644 --- a/packages/core-backend/src/api/token/client.test.ts +++ b/packages/core-backend/src/api/token/client.test.ts @@ -2,14 +2,14 @@ * Token API Client Tests - token.api.cx.metamask.io */ -import type { ApiPlatformClient } from '../ApiPlatformClient'; -import { API_URLS } from '../shared-types'; +import type { ApiPlatformClient } from '../ApiPlatformClient.js'; +import { API_URLS } from '../shared-types.js'; import { mockFetch, createMockResponse, setupTestEnvironment, -} from '../test-utils'; -import type { NetworkInfo, TokenMetadata } from './types'; +} from '../test-utils.js'; +import type { NetworkInfo, TokenMetadata } from './types.js'; describe('TokenApiClient', () => { let client: ApiPlatformClient; diff --git a/packages/core-backend/src/api/token/client.ts b/packages/core-backend/src/api/token/client.ts index 1194c0df487..520a9602209 100644 --- a/packages/core-backend/src/api/token/client.ts +++ b/packages/core-backend/src/api/token/client.ts @@ -17,9 +17,14 @@ import type { QueryFunctionContext, } from '@tanstack/query-core'; -import { BaseApiClient, API_URLS, STALE_TIMES, GC_TIMES } from '../base-client'; -import { getQueryOptionsOverrides } from '../shared-types'; -import type { FetchOptions } from '../shared-types'; +import { + BaseApiClient, + API_URLS, + STALE_TIMES, + GC_TIMES, +} from '../base-client.js'; +import { getQueryOptionsOverrides } from '../shared-types.js'; +import type { FetchOptions } from '../shared-types.js'; import type { TokenMetadata, V1TokenDescriptionResponse, @@ -29,7 +34,7 @@ import type { TrendingSortOption, TopGainersSortOption, V1SuggestedOccurrenceFloorsResponse, -} from './types'; +} from './types.js'; /** * Token API Client. diff --git a/packages/core-backend/src/api/token/index.ts b/packages/core-backend/src/api/token/index.ts index dbf9047e995..c141ba43739 100644 --- a/packages/core-backend/src/api/token/index.ts +++ b/packages/core-backend/src/api/token/index.ts @@ -2,7 +2,7 @@ * Token API barrel export. */ -export { TokenApiClient } from './client'; +export { TokenApiClient } from './client.js'; export type { TokenMetadata, V1TokenDescriptionResponse, @@ -20,4 +20,4 @@ export type { TokenSecurityFees, TokenSecurityFinancialStats, TokenSecurityMetadata, -} from './types'; +} from './types.js'; diff --git a/packages/core-backend/src/api/tokens/client.test.ts b/packages/core-backend/src/api/tokens/client.test.ts index a0559a44129..a619505b6eb 100644 --- a/packages/core-backend/src/api/tokens/client.test.ts +++ b/packages/core-backend/src/api/tokens/client.test.ts @@ -2,13 +2,13 @@ * Tokens API Client Tests - tokens.api.cx.metamask.io */ -import type { ApiPlatformClient } from '../ApiPlatformClient'; -import { API_URLS } from '../shared-types'; +import type { ApiPlatformClient } from '../ApiPlatformClient.js'; +import { API_URLS } from '../shared-types.js'; import { mockFetch, createMockResponse, setupTestEnvironment, -} from '../test-utils'; +} from '../test-utils.js'; describe('TokensApiClient', () => { let client: ApiPlatformClient; diff --git a/packages/core-backend/src/api/tokens/client.ts b/packages/core-backend/src/api/tokens/client.ts index ad3a57e1e15..37d5d3ea589 100644 --- a/packages/core-backend/src/api/tokens/client.ts +++ b/packages/core-backend/src/api/tokens/client.ts @@ -11,15 +11,20 @@ import type { QueryFunctionContext, } from '@tanstack/query-core'; -import { BaseApiClient, API_URLS, STALE_TIMES, GC_TIMES } from '../base-client'; -import { getQueryOptionsOverrides } from '../shared-types'; -import type { FetchOptions } from '../shared-types'; +import { + BaseApiClient, + API_URLS, + STALE_TIMES, + GC_TIMES, +} from '../base-client.js'; +import { getQueryOptionsOverrides } from '../shared-types.js'; +import type { FetchOptions } from '../shared-types.js'; import type { V1TokenSupportedNetworksResponse, V2TokenSupportedNetworksResponse, V3AssetResponse, V3AssetsQueryOptions, -} from './types'; +} from './types.js'; /** * Tokens API Client. diff --git a/packages/core-backend/src/api/tokens/index.ts b/packages/core-backend/src/api/tokens/index.ts index c8fe69c1cea..1b4207f79b3 100644 --- a/packages/core-backend/src/api/tokens/index.ts +++ b/packages/core-backend/src/api/tokens/index.ts @@ -2,7 +2,7 @@ * Tokens API barrel export. */ -export { TokensApiClient } from './client'; +export { TokensApiClient } from './client.js'; export type { V1TokenSupportedNetworksResponse, V2TokenSupportedNetworksResponse, @@ -12,4 +12,4 @@ export type { V3AssetHoneypotStatus, V3AssetStorage, V3AssetDescription, -} from './types'; +} from './types.js'; diff --git a/packages/core-backend/src/index.ts b/packages/core-backend/src/index.ts index f88d719373e..8ebe658aa55 100644 --- a/packages/core-backend/src/index.ts +++ b/packages/core-backend/src/index.ts @@ -9,7 +9,7 @@ export { getCloseReason, WebSocketState, WebSocketEventType, -} from './ws/BackendWebSocketService'; +} from './ws/BackendWebSocketService.js'; export type { BackendWebSocketServiceOptions, @@ -24,7 +24,7 @@ export type { BackendWebSocketServiceConnectionStateChangedEvent, BackendWebSocketServiceEvents, BackendWebSocketServiceMessenger, -} from './ws/BackendWebSocketService'; +} from './ws/BackendWebSocketService.js'; // ============================================================================ // ACCOUNT ACTIVITY SERVICE @@ -34,7 +34,7 @@ export { AccountActivityService, ACCOUNT_ACTIVITY_SERVICE_ALLOWED_ACTIONS, ACCOUNT_ACTIVITY_SERVICE_ALLOWED_EVENTS, -} from './ws/AccountActivityService'; +} from './ws/AccountActivityService.js'; export type { SystemNotificationData, @@ -49,7 +49,7 @@ export type { AccountActivityServiceEvents, AllowedEvents as AccountActivityServiceAllowedEvents, AccountActivityServiceMessenger, -} from './ws/AccountActivityService'; +} from './ws/AccountActivityService.js'; // ============================================================================ // SHARED TYPES @@ -62,7 +62,7 @@ export type { Transfer, BalanceUpdate, AccountActivityMessage, -} from './types'; +} from './types.js'; // ============================================================================ // API PLATFORM CLIENT SERVICE @@ -71,14 +71,14 @@ export type { export { ApiPlatformClientService, apiPlatformClientServiceName, -} from './ApiPlatformClientService'; +} from './ApiPlatformClientService.js'; export type { ApiPlatformClientServiceOptions, ApiPlatformClientServiceActions, ApiPlatformClientServiceEvents, ApiPlatformClientServiceMessenger, -} from './ApiPlatformClientService'; +} from './ApiPlatformClientService.js'; // ============================================================================ // OHLCV SERVICE @@ -88,7 +88,7 @@ export { OHLCVService, OHLCV_SERVICE_ALLOWED_ACTIONS, OHLCV_SERVICE_ALLOWED_EVENTS, -} from './ws/ohlcv'; +} from './ws/ohlcv.js'; export type { OHLCVBar, @@ -103,7 +103,7 @@ export type { OHLCVServiceEvents, OHLCVServiceAllowedEvents, OHLCVServiceMessenger, -} from './ws/ohlcv'; +} from './ws/ohlcv.js'; // ============================================================================ // API PLATFORM CLIENT @@ -127,7 +127,7 @@ export { shouldRetry, // Errors HttpError, -} from './api'; +} from './api.js'; // ============================================================================ // API PLATFORM CLIENT TYPES @@ -187,4 +187,4 @@ export type { V1TokenSupportedNetworksResponse, V2TokenSupportedNetworksResponse, V3AssetResponse, -} from './api'; +} from './api.js'; diff --git a/packages/core-backend/src/ws/AccountActivityService-method-action-types.ts b/packages/core-backend/src/ws/AccountActivityService-method-action-types.ts index b9e97818b98..249caf8ad0d 100644 --- a/packages/core-backend/src/ws/AccountActivityService-method-action-types.ts +++ b/packages/core-backend/src/ws/AccountActivityService-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { AccountActivityService } from './AccountActivityService'; +import type { AccountActivityService } from './AccountActivityService.js'; /** * Subscribe to account activity (transactions and balance updates) diff --git a/packages/core-backend/src/ws/AccountActivityService.test.ts b/packages/core-backend/src/ws/AccountActivityService.test.ts index 2db21d4e867..929815b16e1 100644 --- a/packages/core-backend/src/ws/AccountActivityService.test.ts +++ b/packages/core-backend/src/ws/AccountActivityService.test.ts @@ -7,16 +7,16 @@ import type { } from '@metamask/messenger'; import type { Hex, Json } from '@metamask/utils'; -import { flushPromises } from '../../../../tests/helpers'; -import type { Transaction, BalanceUpdate } from '../types'; -import type { AccountActivityMessage } from '../types'; -import { AccountActivityService } from './AccountActivityService'; +import { flushPromises } from '../../../../tests/helpers.js'; +import type { Transaction, BalanceUpdate } from '../types.js'; +import type { AccountActivityMessage } from '../types.js'; +import { AccountActivityService } from './AccountActivityService.js'; import type { AccountActivityServiceMessenger, SubscriptionOptions, -} from './AccountActivityService'; -import type { ServerNotificationMessage } from './BackendWebSocketService'; -import { WebSocketState } from './BackendWebSocketService'; +} from './AccountActivityService.js'; +import type { ServerNotificationMessage } from './BackendWebSocketService.js'; +import { WebSocketState } from './BackendWebSocketService.js'; type AllAccountActivityServiceActions = MessengerActions; diff --git a/packages/core-backend/src/ws/AccountActivityService.ts b/packages/core-backend/src/ws/AccountActivityService.ts index 8245b6b9de1..35245580d35 100644 --- a/packages/core-backend/src/ws/AccountActivityService.ts +++ b/packages/core-backend/src/ws/AccountActivityService.ts @@ -19,20 +19,20 @@ import type { } from '@metamask/remote-feature-flag-controller'; import { isObject } from '@metamask/utils'; -import { projectLogger, createModuleLogger } from '../logger'; +import { projectLogger, createModuleLogger } from '../logger.js'; import type { Transaction, AccountActivityMessage, BalanceUpdate, -} from '../types'; -import type { AccountActivityServiceMethodActions } from './AccountActivityService-method-action-types'; +} from '../types.js'; +import type { AccountActivityServiceMethodActions } from './AccountActivityService-method-action-types.js'; +import type { BackendWebSocketServiceMethodActions } from './BackendWebSocketService-method-action-types.js'; import type { WebSocketConnectionInfo, BackendWebSocketServiceConnectionStateChangedEvent, ServerNotificationMessage, -} from './BackendWebSocketService'; -import { WebSocketState } from './BackendWebSocketService'; -import type { BackendWebSocketServiceMethodActions } from './BackendWebSocketService-method-action-types'; +} from './BackendWebSocketService.js'; +import { WebSocketState } from './BackendWebSocketService.js'; // ============================================================================= // Types and Constants @@ -254,13 +254,13 @@ export class AccountActivityService { this.#messenger.subscribe( 'AccountTreeController:selectedAccountGroupChange', // Promise result intentionally not awaited - // eslint-disable-next-line @typescript-eslint/no-misused-promises + async () => await this.#handleSelectedAccountChange(), ); this.#messenger.subscribe( 'BackendWebSocketService:connectionStateChanged', // Promise result intentionally not awaited - // eslint-disable-next-line @typescript-eslint/no-misused-promises + (connectionInfo: WebSocketConnectionInfo) => this.#handleWebSocketStateChange(connectionInfo), ); @@ -268,7 +268,7 @@ export class AccountActivityService { // eslint-disable-next-line no-restricted-syntax 'RemoteFeatureFlagController:stateChange', // Promise result intentionally not awaited - // eslint-disable-next-line @typescript-eslint/no-misused-promises + async () => await this.#handleFeatureFlagsStateChange(), // Only react to changes in the set of enabled chain prefixes. The // messenger compares selector results with strict equality, so the @@ -393,7 +393,7 @@ export class AccountActivityService { // Trace message receipt with latency from transaction time to now // Promise result intentionally not awaited - // eslint-disable-next-line @typescript-eslint/no-floating-promises + this.#trace( { name: `${SERVICE_NAME} Transaction Message`, diff --git a/packages/core-backend/src/ws/BackendWebSocketService-method-action-types.ts b/packages/core-backend/src/ws/BackendWebSocketService-method-action-types.ts index deb59311c3d..2390ec62dcc 100644 --- a/packages/core-backend/src/ws/BackendWebSocketService-method-action-types.ts +++ b/packages/core-backend/src/ws/BackendWebSocketService-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { BackendWebSocketService } from './BackendWebSocketService'; +import type { BackendWebSocketService } from './BackendWebSocketService.js'; /** * Establishes WebSocket connection with smart reconnection behavior diff --git a/packages/core-backend/src/ws/BackendWebSocketService.test.ts b/packages/core-backend/src/ws/BackendWebSocketService.test.ts index 21dc19dcd90..75e7baf4482 100644 --- a/packages/core-backend/src/ws/BackendWebSocketService.test.ts +++ b/packages/core-backend/src/ws/BackendWebSocketService.test.ts @@ -5,18 +5,18 @@ import type { MockAnyNamespace, } from '@metamask/messenger'; -import { flushPromises } from '../../../../tests/helpers'; +import { flushPromises } from '../../../../tests/helpers.js'; import { BackendWebSocketService, getCloseReason, WebSocketState, WebSocketSubscription, -} from './BackendWebSocketService'; +} from './BackendWebSocketService.js'; import type { BackendWebSocketServiceOptions, BackendWebSocketServiceMessenger, ServerNotificationMessage, -} from './BackendWebSocketService'; +} from './BackendWebSocketService.js'; // ===================================================== // TYPES @@ -906,8 +906,7 @@ describe('BackendWebSocketService', () => { // Mock Math.random to make Cockatiel's jitter deterministic jest.spyOn(Math, 'random').mockReturnValue(0); - // eslint-disable-next-line @typescript-eslint/no-floating-promises - service.connect(); + void service.connect(); // Advance time past the timeout await completeAsyncOperations(101); @@ -956,8 +955,7 @@ describe('BackendWebSocketService', () => { // Mock Math.random to make Cockatiel's jitter deterministic jest.spyOn(Math, 'random').mockReturnValue(0); - // eslint-disable-next-line @typescript-eslint/no-floating-promises - service.connect(); + void service.connect(); await completeAsyncOperations(10); // Verify we're in CONNECTING state @@ -1028,8 +1026,7 @@ describe('BackendWebSocketService', () => { jest.spyOn(Math, 'random').mockReturnValue(0); // Start connection (this sets connectionTimeout) - // eslint-disable-next-line @typescript-eslint/no-floating-promises - service.connect(); + void service.connect(); await completeAsyncOperations(10); const mockWs = getMockWebSocket(); @@ -1138,8 +1135,7 @@ describe('BackendWebSocketService', () => { jest.spyOn(Math, 'random').mockReturnValue(0); // Trigger a connection failure to schedule a reconnect - // eslint-disable-next-line @typescript-eslint/no-floating-promises - service.connect(); + void service.connect(); await completeAsyncOperations(10); const mockWs = getMockWebSocket(); @@ -1178,8 +1174,7 @@ describe('BackendWebSocketService', () => { jest.spyOn(Math, 'random').mockReturnValue(0); // Trigger a connection failure to schedule a reconnect - // eslint-disable-next-line @typescript-eslint/no-floating-promises - service.connect(); + void service.connect(); await completeAsyncOperations(10); const mockWs = getMockWebSocket(); @@ -1260,8 +1255,7 @@ describe('BackendWebSocketService', () => { }, async ({ service, getMockWebSocket, completeAsyncOperations }) => { // Start connecting - // eslint-disable-next-line @typescript-eslint/no-floating-promises - service.connect(); + void service.connect(); await completeAsyncOperations(0); expect(service.getConnectionInfo().state).toBe( diff --git a/packages/core-backend/src/ws/BackendWebSocketService.ts b/packages/core-backend/src/ws/BackendWebSocketService.ts index b456a678c7c..df0cf5e0b86 100644 --- a/packages/core-backend/src/ws/BackendWebSocketService.ts +++ b/packages/core-backend/src/ws/BackendWebSocketService.ts @@ -9,8 +9,8 @@ import type { AuthenticationController } from '@metamask/profile-sync-controller import { getErrorMessage } from '@metamask/utils'; import { v4 as uuidV4 } from 'uuid'; -import { projectLogger, createModuleLogger } from '../logger'; -import type { BackendWebSocketServiceMethodActions } from './BackendWebSocketService-method-action-types'; +import { projectLogger, createModuleLogger } from '../logger.js'; +import type { BackendWebSocketServiceMethodActions } from './BackendWebSocketService-method-action-types.js'; const SERVICE_NAME = 'BackendWebSocketService' as const; @@ -1178,7 +1178,6 @@ export class BackendWebSocketService { this.#scheduleReconnect(); } - // eslint-disable-next-line @typescript-eslint/no-floating-promises this.#trace({ name: `${SERVICE_NAME} Disconnection`, data: { @@ -1426,7 +1425,7 @@ export class BackendWebSocketService { // Trace notification processing wi th latency data // Use stored channelType instead of parsing each time // Promise result intentionally not awaited - // eslint-disable-next-line @typescript-eslint/no-floating-promises + this.#trace( { name: `${SERVICE_NAME} Notification`, diff --git a/packages/core-backend/src/ws/ohlcv/OHLCVService-method-action-types.ts b/packages/core-backend/src/ws/ohlcv/OHLCVService-method-action-types.ts index 6c30d853829..26b5e564ef5 100644 --- a/packages/core-backend/src/ws/ohlcv/OHLCVService-method-action-types.ts +++ b/packages/core-backend/src/ws/ohlcv/OHLCVService-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { OHLCVService } from './OHLCVService'; +import type { OHLCVService } from './OHLCVService.js'; /** * Subscribe to an OHLCV channel. If this is the first subscriber for the diff --git a/packages/core-backend/src/ws/ohlcv/OHLCVService.test.ts b/packages/core-backend/src/ws/ohlcv/OHLCVService.test.ts index 19a442779df..8a4709effcf 100644 --- a/packages/core-backend/src/ws/ohlcv/OHLCVService.test.ts +++ b/packages/core-backend/src/ws/ohlcv/OHLCVService.test.ts @@ -5,12 +5,12 @@ import type { MockAnyNamespace, } from '@metamask/messenger'; -import { flushPromises } from '../../../../../tests/helpers'; -import type { ServerNotificationMessage } from '../BackendWebSocketService'; -import { WebSocketState } from '../BackendWebSocketService'; -import { OHLCVService } from './OHLCVService'; -import type { OHLCVServiceMessenger } from './OHLCVService'; -import type { OHLCVSubscriptionOptions } from './types'; +import { flushPromises } from '../../../../../tests/helpers.js'; +import type { ServerNotificationMessage } from '../BackendWebSocketService.js'; +import { WebSocketState } from '../BackendWebSocketService.js'; +import { OHLCVService } from './OHLCVService.js'; +import type { OHLCVServiceMessenger } from './OHLCVService.js'; +import type { OHLCVSubscriptionOptions } from './types.js'; // ============================================================================= // Test Helpers diff --git a/packages/core-backend/src/ws/ohlcv/OHLCVService.ts b/packages/core-backend/src/ws/ohlcv/OHLCVService.ts index f729bbf8fea..6bacc2a0514 100644 --- a/packages/core-backend/src/ws/ohlcv/OHLCVService.ts +++ b/packages/core-backend/src/ws/ohlcv/OHLCVService.ts @@ -15,16 +15,16 @@ import type { import type { Messenger } from '@metamask/messenger'; import { Mutex } from 'async-mutex'; -import { projectLogger, createModuleLogger } from '../../logger'; +import { projectLogger, createModuleLogger } from '../../logger.js'; +import type { BackendWebSocketServiceMethodActions } from '../BackendWebSocketService-method-action-types.js'; import type { WebSocketConnectionInfo, BackendWebSocketServiceConnectionStateChangedEvent, ServerNotificationMessage, -} from '../BackendWebSocketService'; -import { WebSocketState } from '../BackendWebSocketService'; -import type { BackendWebSocketServiceMethodActions } from '../BackendWebSocketService-method-action-types'; -import type { OHLCVServiceMethodActions } from './OHLCVService-method-action-types'; -import type { OHLCVBar, OHLCVSubscriptionOptions } from './types'; +} from '../BackendWebSocketService.js'; +import { WebSocketState } from '../BackendWebSocketService.js'; +import type { OHLCVServiceMethodActions } from './OHLCVService-method-action-types.js'; +import type { OHLCVBar, OHLCVSubscriptionOptions } from './types.js'; // ============================================================================= // Constants @@ -184,7 +184,7 @@ export class OHLCVService { this.#messenger.subscribe( 'BackendWebSocketService:connectionStateChanged', - // eslint-disable-next-line @typescript-eslint/no-misused-promises + (connectionInfo: WebSocketConnectionInfo) => this.#handleWebSocketStateChange(connectionInfo), ); @@ -442,7 +442,6 @@ export class OHLCVService { ): void { const bar = notification.data as OHLCVBar; - // eslint-disable-next-line @typescript-eslint/no-floating-promises this.#trace( { name: `${SERVICE_NAME} Bar Update`, diff --git a/packages/core-backend/src/ws/ohlcv/index.ts b/packages/core-backend/src/ws/ohlcv/index.ts index e40d24d8c36..7f99a9178c9 100644 --- a/packages/core-backend/src/ws/ohlcv/index.ts +++ b/packages/core-backend/src/ws/ohlcv/index.ts @@ -1,8 +1,8 @@ -export { OHLCVService } from './OHLCVService'; +export { OHLCVService } from './OHLCVService.js'; export { OHLCV_SERVICE_ALLOWED_ACTIONS, OHLCV_SERVICE_ALLOWED_EVENTS, -} from './OHLCVService'; +} from './OHLCVService.js'; export type { OHLCVSystemNotificationData, OHLCVServiceOptions, @@ -14,5 +14,5 @@ export type { OHLCVServiceEvents, AllowedEvents as OHLCVServiceAllowedEvents, OHLCVServiceMessenger, -} from './OHLCVService'; -export type { OHLCVBar, OHLCVSubscriptionOptions } from './types'; +} from './OHLCVService.js'; +export type { OHLCVBar, OHLCVSubscriptionOptions } from './types.js'; From 7bfe88099262c98e893a97641905480c1c3458ad Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:51:09 +0200 Subject: [PATCH 104/136] ESLint fix and `jest` global import for gator-permissions-controller --- ...rmissionsController-method-action-types.ts | 2 +- .../src/GatorPermissionsController.test.ts | 14 ++++++------ .../src/GatorPermissionsController.ts | 22 +++++++++---------- .../decodePermission/decodePermission.test.ts | 8 +++---- .../src/decodePermission/decodePermission.ts | 2 +- .../decoders/erc20PayeeRule.test.ts | 6 ++--- .../decoders/erc20PayeeRule.ts | 6 ++--- .../decoders/erc20TokenAllowance.test.ts | 4 ++-- .../decoders/erc20TokenAllowance.ts | 12 +++++----- .../decoders/erc20TokenPeriodic.test.ts | 4 ++-- .../decoders/erc20TokenPeriodic.ts | 12 +++++----- .../decoders/erc20TokenRevocation.test.ts | 2 +- .../decoders/erc20TokenRevocation.ts | 10 ++++----- .../decoders/erc20TokenStream.test.ts | 4 ++-- .../decoders/erc20TokenStream.ts | 12 +++++----- .../decoders/expiryRule.test.ts | 6 ++--- .../decodePermission/decoders/expiryRule.ts | 6 ++--- .../src/decodePermission/decoders/index.ts | 22 +++++++++---------- .../decoders/makePermissionDecoder.test.ts | 12 +++++----- .../decoders/makePermissionDecoder.ts | 6 ++--- .../decoders/nativePayeeRule.test.ts | 6 ++--- .../decoders/nativePayeeRule.ts | 4 ++-- .../decoders/nativeTokenAllowance.test.ts | 2 +- .../decoders/nativeTokenAllowance.ts | 12 +++++----- .../decoders/nativeTokenPeriodic.test.ts | 4 ++-- .../decoders/nativeTokenPeriodic.ts | 12 +++++----- .../decoders/nativeTokenStream.test.ts | 2 +- .../decoders/nativeTokenStream.ts | 12 +++++----- .../decoders/redeemerRule.test.ts | 6 ++--- .../decodePermission/decoders/redeemerRule.ts | 6 ++--- .../decoders/tokenApprovalRevocation.test.ts | 4 ++-- .../decoders/tokenApprovalRevocation.ts | 8 +++---- .../src/decodePermission/index.ts | 6 ++--- .../src/decodePermission/utils.test.ts | 6 ++--- .../src/decodePermission/utils.ts | 2 +- .../src/errors.test.ts | 4 ++-- .../src/errors.ts | 4 ++-- .../gator-permissions-controller/src/index.ts | 16 +++++++------- .../src/permissionOnChainStatus.test.ts | 6 ++--- .../src/permissionOnChainStatus.ts | 8 +++---- .../src/utils.test.ts | 8 +++---- .../gator-permissions-controller/src/utils.ts | 8 +++---- .../tests/mock.test.ts | 4 ++-- .../tests/mocks.ts | 2 +- 44 files changed, 162 insertions(+), 162 deletions(-) diff --git a/packages/gator-permissions-controller/src/GatorPermissionsController-method-action-types.ts b/packages/gator-permissions-controller/src/GatorPermissionsController-method-action-types.ts index cd8e92e7ab2..1acd3f0e7a2 100644 --- a/packages/gator-permissions-controller/src/GatorPermissionsController-method-action-types.ts +++ b/packages/gator-permissions-controller/src/GatorPermissionsController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { GatorPermissionsController } from './GatorPermissionsController'; +import type { GatorPermissionsController } from './GatorPermissionsController.js'; /** * Fetches granted permissions from the gator permissions provider Snap and updates state. diff --git a/packages/gator-permissions-controller/src/GatorPermissionsController.test.ts b/packages/gator-permissions-controller/src/GatorPermissionsController.test.ts index 22c08aab8fb..bddd80635ff 100644 --- a/packages/gator-permissions-controller/src/GatorPermissionsController.test.ts +++ b/packages/gator-permissions-controller/src/GatorPermissionsController.test.ts @@ -25,22 +25,22 @@ import { TransactionStatus } from '@metamask/transaction-controller'; import { hexToBigInt, numberToHex } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import { flushPromises } from '../../../tests/helpers'; +import { flushPromises } from '../../../tests/helpers.js'; import { mockGatorPermissionsStorageEntriesFactory, mockNativeTokenStreamStorageEntry, -} from '../tests/mocks'; -import { DELEGATION_FRAMEWORK_VERSION } from './constants'; -import { GatorPermissionsFetchError } from './errors'; -import type { GatorPermissionsControllerMessenger } from './GatorPermissionsController'; -import { GatorPermissionsController } from './GatorPermissionsController'; +} from '../tests/mocks.js'; +import { DELEGATION_FRAMEWORK_VERSION } from './constants.js'; +import { GatorPermissionsFetchError } from './errors.js'; +import type { GatorPermissionsControllerMessenger } from './GatorPermissionsController.js'; +import { GatorPermissionsController } from './GatorPermissionsController.js'; import type { PermissionInfoWithMetadata, GatorPermissionStatus, StoredGatorPermission, RevocationParams, SupportedPermissionType, -} from './types'; +} from './types.js'; const PERMISSION_STATUSES: GatorPermissionStatus[] = [ 'Active', diff --git a/packages/gator-permissions-controller/src/GatorPermissionsController.ts b/packages/gator-permissions-controller/src/GatorPermissionsController.ts index 652513bdf97..6906cb39fb4 100644 --- a/packages/gator-permissions-controller/src/GatorPermissionsController.ts +++ b/packages/gator-permissions-controller/src/GatorPermissionsController.ts @@ -27,25 +27,25 @@ import type { } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; -import { DELEGATION_FRAMEWORK_VERSION } from './constants'; -import type { DecodedPermission } from './decodePermission'; +import { DELEGATION_FRAMEWORK_VERSION } from './constants.js'; +import type { DecodedPermission } from './decodePermission.js'; import { createPermissionDecodersForContracts, findDecodersWithMatchingCaveatAddresses, reconstructDecodedPermission, selectUniqueDecoderAndDecodedPermission, -} from './decodePermission'; +} from './decodePermission.js'; import { GatorPermissionsFetchError, GatorPermissionsProviderError, OriginNotAllowedError, PermissionDecodingError, -} from './errors'; -import type { GatorPermissionsControllerMethodActions } from './GatorPermissionsController-method-action-types'; -import { controllerLog } from './logger'; -import { updateGrantedPermissionsStatus } from './permissionOnChainStatus'; -import type { PermissionStatusEip1193Provider } from './permissionOnChainStatus'; -import { GatorPermissionsSnapRpcMethod } from './types'; +} from './errors.js'; +import type { GatorPermissionsControllerMethodActions } from './GatorPermissionsController-method-action-types.js'; +import { controllerLog } from './logger.js'; +import { updateGrantedPermissionsStatus } from './permissionOnChainStatus.js'; +import type { PermissionStatusEip1193Provider } from './permissionOnChainStatus.js'; +import { GatorPermissionsSnapRpcMethod } from './types.js'; import type { StoredGatorPermission, PermissionInfoWithMetadata, @@ -54,8 +54,8 @@ import type { DelegationDetails, RevocationParams, PendingRevocationParams, -} from './types'; -import { executeSnapRpc } from './utils'; +} from './types.js'; +import { executeSnapRpc } from './utils.js'; // === GENERAL === diff --git a/packages/gator-permissions-controller/src/decodePermission/decodePermission.test.ts b/packages/gator-permissions-controller/src/decodePermission/decodePermission.test.ts index 40762254890..3316ec68f22 100644 --- a/packages/gator-permissions-controller/src/decodePermission/decodePermission.test.ts +++ b/packages/gator-permissions-controller/src/decodePermission/decodePermission.test.ts @@ -10,14 +10,14 @@ import { findDecodersWithMatchingCaveatAddresses, reconstructDecodedPermission, selectUniqueDecoderAndDecodedPermission, -} from './decodePermission'; -import { createPermissionDecodersForContracts } from './decoders'; +} from './decodePermission.js'; +import { createPermissionDecodersForContracts } from './decoders.js'; import type { DecodedPermission, DeployedContractsByName, PermissionDecoder, -} from './types'; -import { getChecksumEnforcersByChainId } from './utils'; +} from './types.js'; +import { getChecksumEnforcersByChainId } from './utils.js'; // These tests use the live deployments table for version 1.3.0 to // construct deterministic caveat address sets for a known chain. diff --git a/packages/gator-permissions-controller/src/decodePermission/decodePermission.ts b/packages/gator-permissions-controller/src/decodePermission/decodePermission.ts index 949b1a4096e..63c22021177 100644 --- a/packages/gator-permissions-controller/src/decodePermission/decodePermission.ts +++ b/packages/gator-permissions-controller/src/decodePermission/decodePermission.ts @@ -7,7 +7,7 @@ import type { PermissionType, PermissionDecoder, ValidateAndDecodeResult, -} from './types'; +} from './types.js'; /** * Returns every permission decoder whose caveat-address pattern matches the diff --git a/packages/gator-permissions-controller/src/decodePermission/decoders/erc20PayeeRule.test.ts b/packages/gator-permissions-controller/src/decodePermission/decoders/erc20PayeeRule.test.ts index 9d0acec9120..f4b448b8cb9 100644 --- a/packages/gator-permissions-controller/src/decodePermission/decoders/erc20PayeeRule.test.ts +++ b/packages/gator-permissions-controller/src/decodePermission/decoders/erc20PayeeRule.test.ts @@ -6,9 +6,9 @@ import { import { getChecksumAddress } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import type { ChecksumCaveat } from '../types'; -import { getChecksumEnforcersByChainId } from '../utils'; -import { erc20PayeeRule } from './erc20PayeeRule'; +import type { ChecksumCaveat } from '../types.js'; +import { getChecksumEnforcersByChainId } from '../utils.js'; +import { erc20PayeeRule } from './erc20PayeeRule.js'; describe('erc20PayeeRule', () => { const contracts = DELEGATOR_CONTRACTS['1.3.0'][CHAIN_ID.sepolia]; diff --git a/packages/gator-permissions-controller/src/decodePermission/decoders/erc20PayeeRule.ts b/packages/gator-permissions-controller/src/decodePermission/decoders/erc20PayeeRule.ts index 6e1f24a6226..2f2ad4227cb 100644 --- a/packages/gator-permissions-controller/src/decodePermission/decoders/erc20PayeeRule.ts +++ b/packages/gator-permissions-controller/src/decodePermission/decoders/erc20PayeeRule.ts @@ -2,9 +2,9 @@ import { decodeAllowedCalldataTerms } from '@metamask/delegation-core'; import { getChecksumAddress } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import { EXECUTION_PERMISSION_PAYEE_RULE_TYPE } from '../../constants'; -import type { RuleDecoder } from '../types'; -import { getByteLength } from '../utils'; +import { EXECUTION_PERMISSION_PAYEE_RULE_TYPE } from '../../constants.js'; +import type { RuleDecoder } from '../types.js'; +import { getByteLength } from '../utils.js'; const ERC20_TRANSFER_PAYEE_START_INDEX = 4; const ERC20_PAYEE_VALUE_BYTE_LENGTH = 32; diff --git a/packages/gator-permissions-controller/src/decodePermission/decoders/erc20TokenAllowance.test.ts b/packages/gator-permissions-controller/src/decodePermission/decoders/erc20TokenAllowance.test.ts index c09e8caa4f3..29f03fccc13 100644 --- a/packages/gator-permissions-controller/src/decodePermission/decoders/erc20TokenAllowance.test.ts +++ b/packages/gator-permissions-controller/src/decodePermission/decoders/erc20TokenAllowance.test.ts @@ -5,8 +5,8 @@ import { DELEGATOR_CONTRACTS, } from '@metamask/delegation-deployments'; -import { createPermissionDecodersForContracts } from '.'; -import { ZERO_32_BYTES } from '../utils'; +import { ZERO_32_BYTES } from '../utils.js'; +import { createPermissionDecodersForContracts } from './..js'; describe('erc20-token-allowance decoder', () => { const chainId = CHAIN_ID.sepolia; diff --git a/packages/gator-permissions-controller/src/decodePermission/decoders/erc20TokenAllowance.ts b/packages/gator-permissions-controller/src/decodePermission/decoders/erc20TokenAllowance.ts index 26e342cb676..5c96763f40b 100644 --- a/packages/gator-permissions-controller/src/decodePermission/decoders/erc20TokenAllowance.ts +++ b/packages/gator-permissions-controller/src/decodePermission/decoders/erc20TokenAllowance.ts @@ -4,18 +4,18 @@ import type { ChecksumCaveat, ChecksumEnforcersByChainId, DecodedPermission, -} from '../types'; +} from '../types.js'; import { getByteLength, getTermsByEnforcer, splitHex, UINT256_MAX, ZERO_32_BYTES, -} from '../utils'; -import { erc20PayeeRule } from './erc20PayeeRule'; -import { expiryRule } from './expiryRule'; -import type { MakePermissionDecoderConfig } from './makePermissionDecoder'; -import { redeemerRule } from './redeemerRule'; +} from '../utils.js'; +import { erc20PayeeRule } from './erc20PayeeRule.js'; +import { expiryRule } from './expiryRule.js'; +import type { MakePermissionDecoderConfig } from './makePermissionDecoder.js'; +import { redeemerRule } from './redeemerRule.js'; /** * Builds the configuration for the erc20-token-allowance permission decoder. diff --git a/packages/gator-permissions-controller/src/decodePermission/decoders/erc20TokenPeriodic.test.ts b/packages/gator-permissions-controller/src/decodePermission/decoders/erc20TokenPeriodic.test.ts index e77c5cd4543..028fdde69c6 100644 --- a/packages/gator-permissions-controller/src/decodePermission/decoders/erc20TokenPeriodic.test.ts +++ b/packages/gator-permissions-controller/src/decodePermission/decoders/erc20TokenPeriodic.test.ts @@ -8,8 +8,8 @@ import { DELEGATOR_CONTRACTS, } from '@metamask/delegation-deployments'; -import { createPermissionDecodersForContracts } from '.'; -import { MAX_PERIOD_DURATION, ZERO_32_BYTES } from '../utils'; +import { MAX_PERIOD_DURATION, ZERO_32_BYTES } from '../utils.js'; +import { createPermissionDecodersForContracts } from './..js'; describe('erc20-token-periodic decoder', () => { const chainId = CHAIN_ID.sepolia; diff --git a/packages/gator-permissions-controller/src/decodePermission/decoders/erc20TokenPeriodic.ts b/packages/gator-permissions-controller/src/decodePermission/decoders/erc20TokenPeriodic.ts index 52614cae437..1ab4c1eb6f2 100644 --- a/packages/gator-permissions-controller/src/decodePermission/decoders/erc20TokenPeriodic.ts +++ b/packages/gator-permissions-controller/src/decodePermission/decoders/erc20TokenPeriodic.ts @@ -4,18 +4,18 @@ import type { ChecksumCaveat, ChecksumEnforcersByChainId, DecodedPermission, -} from '../types'; +} from '../types.js'; import { getByteLength, getTermsByEnforcer, MAX_PERIOD_DURATION, splitHex, ZERO_32_BYTES, -} from '../utils'; -import { erc20PayeeRule } from './erc20PayeeRule'; -import { expiryRule } from './expiryRule'; -import type { MakePermissionDecoderConfig } from './makePermissionDecoder'; -import { redeemerRule } from './redeemerRule'; +} from '../utils.js'; +import { erc20PayeeRule } from './erc20PayeeRule.js'; +import { expiryRule } from './expiryRule.js'; +import type { MakePermissionDecoderConfig } from './makePermissionDecoder.js'; +import { redeemerRule } from './redeemerRule.js'; /** * Builds the configuration for the erc20-token-periodic permission decoder. diff --git a/packages/gator-permissions-controller/src/decodePermission/decoders/erc20TokenRevocation.test.ts b/packages/gator-permissions-controller/src/decodePermission/decoders/erc20TokenRevocation.test.ts index d23bb16a76e..1937673df25 100644 --- a/packages/gator-permissions-controller/src/decodePermission/decoders/erc20TokenRevocation.test.ts +++ b/packages/gator-permissions-controller/src/decodePermission/decoders/erc20TokenRevocation.test.ts @@ -5,7 +5,7 @@ import { } from '@metamask/delegation-deployments'; import { getChecksumAddress } from '@metamask/utils'; -import { createPermissionDecodersForContracts } from '.'; +import { createPermissionDecodersForContracts } from './..js'; describe('erc20-token-revocation decoder', () => { const chainId = CHAIN_ID.sepolia; diff --git a/packages/gator-permissions-controller/src/decodePermission/decoders/erc20TokenRevocation.ts b/packages/gator-permissions-controller/src/decodePermission/decoders/erc20TokenRevocation.ts index 1021fa6f0e2..0e933dd0fea 100644 --- a/packages/gator-permissions-controller/src/decodePermission/decoders/erc20TokenRevocation.ts +++ b/packages/gator-permissions-controller/src/decodePermission/decoders/erc20TokenRevocation.ts @@ -2,16 +2,16 @@ import type { ChecksumCaveat, ChecksumEnforcersByChainId, DecodedPermission, -} from '../types'; +} from '../types.js'; import { ERC20_APPROVE_SELECTOR_TERMS, ERC20_APPROVE_ZERO_AMOUNT_TERMS, getTermsByEnforcer, ZERO_32_BYTES, -} from '../utils'; -import { expiryRule } from './expiryRule'; -import type { MakePermissionDecoderConfig } from './makePermissionDecoder'; -import { redeemerRule } from './redeemerRule'; +} from '../utils.js'; +import { expiryRule } from './expiryRule.js'; +import type { MakePermissionDecoderConfig } from './makePermissionDecoder.js'; +import { redeemerRule } from './redeemerRule.js'; /** * Builds the configuration for the erc20-token-revocation permission decoder. diff --git a/packages/gator-permissions-controller/src/decodePermission/decoders/erc20TokenStream.test.ts b/packages/gator-permissions-controller/src/decodePermission/decoders/erc20TokenStream.test.ts index 19304a8c440..41f9505207d 100644 --- a/packages/gator-permissions-controller/src/decodePermission/decoders/erc20TokenStream.test.ts +++ b/packages/gator-permissions-controller/src/decodePermission/decoders/erc20TokenStream.test.ts @@ -8,8 +8,8 @@ import { DELEGATOR_CONTRACTS, } from '@metamask/delegation-deployments'; -import { createPermissionDecodersForContracts } from '.'; -import { ZERO_32_BYTES } from '../utils'; +import { ZERO_32_BYTES } from '../utils.js'; +import { createPermissionDecodersForContracts } from './..js'; describe('erc20-token-stream decoder', () => { const chainId = CHAIN_ID.sepolia; diff --git a/packages/gator-permissions-controller/src/decodePermission/decoders/erc20TokenStream.ts b/packages/gator-permissions-controller/src/decodePermission/decoders/erc20TokenStream.ts index 75478391393..314bbbae932 100644 --- a/packages/gator-permissions-controller/src/decodePermission/decoders/erc20TokenStream.ts +++ b/packages/gator-permissions-controller/src/decodePermission/decoders/erc20TokenStream.ts @@ -4,17 +4,17 @@ import type { ChecksumCaveat, ChecksumEnforcersByChainId, DecodedPermission, -} from '../types'; +} from '../types.js'; import { getByteLength, getTermsByEnforcer, splitHex, ZERO_32_BYTES, -} from '../utils'; -import { erc20PayeeRule } from './erc20PayeeRule'; -import { expiryRule } from './expiryRule'; -import type { MakePermissionDecoderConfig } from './makePermissionDecoder'; -import { redeemerRule } from './redeemerRule'; +} from '../utils.js'; +import { erc20PayeeRule } from './erc20PayeeRule.js'; +import { expiryRule } from './expiryRule.js'; +import type { MakePermissionDecoderConfig } from './makePermissionDecoder.js'; +import { redeemerRule } from './redeemerRule.js'; /** * Builds the configuration for the erc20-token-stream permission decoder. diff --git a/packages/gator-permissions-controller/src/decodePermission/decoders/expiryRule.test.ts b/packages/gator-permissions-controller/src/decodePermission/decoders/expiryRule.test.ts index 6966a6694a1..8ead3bcf3e5 100644 --- a/packages/gator-permissions-controller/src/decodePermission/decoders/expiryRule.test.ts +++ b/packages/gator-permissions-controller/src/decodePermission/decoders/expiryRule.test.ts @@ -5,9 +5,9 @@ import { } from '@metamask/delegation-deployments'; import type { Hex } from '@metamask/utils'; -import type { ChecksumCaveat } from '../types'; -import { getChecksumEnforcersByChainId } from '../utils'; -import { expiryRule } from './expiryRule'; +import type { ChecksumCaveat } from '../types.js'; +import { getChecksumEnforcersByChainId } from '../utils.js'; +import { expiryRule } from './expiryRule.js'; describe('expiryRule', () => { const contracts = DELEGATOR_CONTRACTS['1.3.0'][CHAIN_ID.sepolia]; diff --git a/packages/gator-permissions-controller/src/decodePermission/decoders/expiryRule.ts b/packages/gator-permissions-controller/src/decodePermission/decoders/expiryRule.ts index 14b7127966f..c9c2b4f8116 100644 --- a/packages/gator-permissions-controller/src/decodePermission/decoders/expiryRule.ts +++ b/packages/gator-permissions-controller/src/decodePermission/decoders/expiryRule.ts @@ -1,6 +1,6 @@ -import { EXECUTION_PERMISSION_EXPIRY_RULE_TYPE } from '../../constants'; -import type { RuleDecoder } from '../types'; -import { extractExpiryFromCaveatTerms, getTermsByEnforcer } from '../utils'; +import { EXECUTION_PERMISSION_EXPIRY_RULE_TYPE } from '../../constants.js'; +import type { RuleDecoder } from '../types.js'; +import { extractExpiryFromCaveatTerms, getTermsByEnforcer } from '../utils.js'; /** * Rule decoder that extracts the expiry timestamp from a TimestampEnforcer diff --git a/packages/gator-permissions-controller/src/decodePermission/decoders/index.ts b/packages/gator-permissions-controller/src/decodePermission/decoders/index.ts index 58d818b8a80..ed2bf230934 100644 --- a/packages/gator-permissions-controller/src/decodePermission/decoders/index.ts +++ b/packages/gator-permissions-controller/src/decodePermission/decoders/index.ts @@ -1,14 +1,14 @@ -import type { DeployedContractsByName, PermissionDecoder } from '../types'; -import { getChecksumEnforcersByChainId } from '../utils'; -import { makeErc20TokenAllowanceDecoderConfig } from './erc20TokenAllowance'; -import { makeErc20TokenPeriodicDecoderConfig } from './erc20TokenPeriodic'; -import { makeErc20TokenRevocationDecoderConfig } from './erc20TokenRevocation'; -import { makeErc20TokenStreamDecoderConfig } from './erc20TokenStream'; -import { makePermissionDecoder } from './makePermissionDecoder'; -import { makeNativeTokenAllowanceDecoderConfig } from './nativeTokenAllowance'; -import { makeNativeTokenPeriodicDecoderConfig } from './nativeTokenPeriodic'; -import { makeNativeTokenStreamDecoderConfig } from './nativeTokenStream'; -import { makeTokenApprovalRevocationDecoderConfig } from './tokenApprovalRevocation'; +import type { DeployedContractsByName, PermissionDecoder } from '../types.js'; +import { getChecksumEnforcersByChainId } from '../utils.js'; +import { makeErc20TokenAllowanceDecoderConfig } from './erc20TokenAllowance.js'; +import { makeErc20TokenPeriodicDecoderConfig } from './erc20TokenPeriodic.js'; +import { makeErc20TokenRevocationDecoderConfig } from './erc20TokenRevocation.js'; +import { makeErc20TokenStreamDecoderConfig } from './erc20TokenStream.js'; +import { makePermissionDecoder } from './makePermissionDecoder.js'; +import { makeNativeTokenAllowanceDecoderConfig } from './nativeTokenAllowance.js'; +import { makeNativeTokenPeriodicDecoderConfig } from './nativeTokenPeriodic.js'; +import { makeNativeTokenStreamDecoderConfig } from './nativeTokenStream.js'; +import { makeTokenApprovalRevocationDecoderConfig } from './tokenApprovalRevocation.js'; /** * Builds the canonical set of permission decoders for a chain. diff --git a/packages/gator-permissions-controller/src/decodePermission/decoders/makePermissionDecoder.test.ts b/packages/gator-permissions-controller/src/decodePermission/decoders/makePermissionDecoder.test.ts index 817b2cf7ef0..75ffc9480f4 100644 --- a/packages/gator-permissions-controller/src/decodePermission/decoders/makePermissionDecoder.test.ts +++ b/packages/gator-permissions-controller/src/decodePermission/decoders/makePermissionDecoder.test.ts @@ -10,12 +10,12 @@ import { import { getChecksumAddress } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import { getChecksumEnforcersByChainId } from '../utils'; -import { erc20PayeeRule } from './erc20PayeeRule'; -import { expiryRule } from './expiryRule'; -import { makePermissionDecoder } from './makePermissionDecoder'; -import { nativePayeeRule } from './nativePayeeRule'; -import { redeemerRule } from './redeemerRule'; +import { getChecksumEnforcersByChainId } from '../utils.js'; +import { erc20PayeeRule } from './erc20PayeeRule.js'; +import { expiryRule } from './expiryRule.js'; +import { makePermissionDecoder } from './makePermissionDecoder.js'; +import { nativePayeeRule } from './nativePayeeRule.js'; +import { redeemerRule } from './redeemerRule.js'; describe('makePermissionDecoder', () => { const contracts = DELEGATOR_CONTRACTS['1.3.0'][CHAIN_ID.sepolia]; diff --git a/packages/gator-permissions-controller/src/decodePermission/decoders/makePermissionDecoder.ts b/packages/gator-permissions-controller/src/decodePermission/decoders/makePermissionDecoder.ts index bb15e243f11..7d2b9bb993f 100644 --- a/packages/gator-permissions-controller/src/decodePermission/decoders/makePermissionDecoder.ts +++ b/packages/gator-permissions-controller/src/decodePermission/decoders/makePermissionDecoder.ts @@ -3,7 +3,7 @@ import type { Caveat } from '@metamask/delegation-core'; import { getChecksumAddress, isStrictHexString } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import { EXECUTION_PERMISSION_EXPIRY_RULE_TYPE } from '../../constants'; +import { EXECUTION_PERMISSION_EXPIRY_RULE_TYPE } from '../../constants.js'; import type { ChecksumCaveat, ChecksumEnforcersByChainId, @@ -12,8 +12,8 @@ import type { PermissionType, RuleDecoder, ValidateAndDecodeResult, -} from '../types'; -import { buildEnforcerCountsAndSet, enforcersMatchRule } from '../utils'; +} from '../types.js'; +import { buildEnforcerCountsAndSet, enforcersMatchRule } from '../utils.js'; /** * Configuration object describing how to decode a single permission type. diff --git a/packages/gator-permissions-controller/src/decodePermission/decoders/nativePayeeRule.test.ts b/packages/gator-permissions-controller/src/decodePermission/decoders/nativePayeeRule.test.ts index d7e29cef562..c5c720d2f5c 100644 --- a/packages/gator-permissions-controller/src/decodePermission/decoders/nativePayeeRule.test.ts +++ b/packages/gator-permissions-controller/src/decodePermission/decoders/nativePayeeRule.test.ts @@ -6,9 +6,9 @@ import { import { getChecksumAddress } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import type { ChecksumCaveat } from '../types'; -import { getChecksumEnforcersByChainId } from '../utils'; -import { nativePayeeRule } from './nativePayeeRule'; +import type { ChecksumCaveat } from '../types.js'; +import { getChecksumEnforcersByChainId } from '../utils.js'; +import { nativePayeeRule } from './nativePayeeRule.js'; describe('nativePayeeRule', () => { const contracts = DELEGATOR_CONTRACTS['1.3.0'][CHAIN_ID.sepolia]; diff --git a/packages/gator-permissions-controller/src/decodePermission/decoders/nativePayeeRule.ts b/packages/gator-permissions-controller/src/decodePermission/decoders/nativePayeeRule.ts index c30279deee3..77d444ad8e4 100644 --- a/packages/gator-permissions-controller/src/decodePermission/decoders/nativePayeeRule.ts +++ b/packages/gator-permissions-controller/src/decodePermission/decoders/nativePayeeRule.ts @@ -1,8 +1,8 @@ import { decodeAllowedTargetsTerms } from '@metamask/delegation-core'; import { getChecksumAddress } from '@metamask/utils'; -import { EXECUTION_PERMISSION_PAYEE_RULE_TYPE } from '../../constants'; -import type { RuleDecoder } from '../types'; +import { EXECUTION_PERMISSION_PAYEE_RULE_TYPE } from '../../constants.js'; +import type { RuleDecoder } from '../types.js'; /** * Rule decoder for native-token style payees, where the payee address(es) are diff --git a/packages/gator-permissions-controller/src/decodePermission/decoders/nativeTokenAllowance.test.ts b/packages/gator-permissions-controller/src/decodePermission/decoders/nativeTokenAllowance.test.ts index 383428beedd..c696756b7a3 100644 --- a/packages/gator-permissions-controller/src/decodePermission/decoders/nativeTokenAllowance.test.ts +++ b/packages/gator-permissions-controller/src/decodePermission/decoders/nativeTokenAllowance.test.ts @@ -5,7 +5,7 @@ import { DELEGATOR_CONTRACTS, } from '@metamask/delegation-deployments'; -import { createPermissionDecodersForContracts } from '.'; +import { createPermissionDecodersForContracts } from './..js'; describe('native-token-allowance decoder', () => { const chainId = CHAIN_ID.sepolia; diff --git a/packages/gator-permissions-controller/src/decodePermission/decoders/nativeTokenAllowance.ts b/packages/gator-permissions-controller/src/decodePermission/decoders/nativeTokenAllowance.ts index 5683910071e..9345709a87e 100644 --- a/packages/gator-permissions-controller/src/decodePermission/decoders/nativeTokenAllowance.ts +++ b/packages/gator-permissions-controller/src/decodePermission/decoders/nativeTokenAllowance.ts @@ -4,18 +4,18 @@ import type { ChecksumCaveat, ChecksumEnforcersByChainId, DecodedPermission, -} from '../types'; +} from '../types.js'; import { getByteLength, getTermsByEnforcer, splitHex, UINT256_MAX, ZERO_32_BYTES, -} from '../utils'; -import { expiryRule } from './expiryRule'; -import type { MakePermissionDecoderConfig } from './makePermissionDecoder'; -import { nativePayeeRule } from './nativePayeeRule'; -import { redeemerRule } from './redeemerRule'; +} from '../utils.js'; +import { expiryRule } from './expiryRule.js'; +import type { MakePermissionDecoderConfig } from './makePermissionDecoder.js'; +import { nativePayeeRule } from './nativePayeeRule.js'; +import { redeemerRule } from './redeemerRule.js'; /** * Builds the configuration for the native-token-allowance permission decoder. diff --git a/packages/gator-permissions-controller/src/decodePermission/decoders/nativeTokenPeriodic.test.ts b/packages/gator-permissions-controller/src/decodePermission/decoders/nativeTokenPeriodic.test.ts index 677f0fdcc99..de155077e43 100644 --- a/packages/gator-permissions-controller/src/decodePermission/decoders/nativeTokenPeriodic.test.ts +++ b/packages/gator-permissions-controller/src/decodePermission/decoders/nativeTokenPeriodic.test.ts @@ -8,8 +8,8 @@ import { DELEGATOR_CONTRACTS, } from '@metamask/delegation-deployments'; -import { createPermissionDecodersForContracts } from '.'; -import { MAX_PERIOD_DURATION } from '../utils'; +import { MAX_PERIOD_DURATION } from '../utils.js'; +import { createPermissionDecodersForContracts } from './..js'; describe('native-token-periodic decoder', () => { const chainId = CHAIN_ID.sepolia; diff --git a/packages/gator-permissions-controller/src/decodePermission/decoders/nativeTokenPeriodic.ts b/packages/gator-permissions-controller/src/decodePermission/decoders/nativeTokenPeriodic.ts index 23d2d098adf..7632af05f54 100644 --- a/packages/gator-permissions-controller/src/decodePermission/decoders/nativeTokenPeriodic.ts +++ b/packages/gator-permissions-controller/src/decodePermission/decoders/nativeTokenPeriodic.ts @@ -4,17 +4,17 @@ import type { ChecksumCaveat, ChecksumEnforcersByChainId, DecodedPermission, -} from '../types'; +} from '../types.js'; import { getByteLength, getTermsByEnforcer, MAX_PERIOD_DURATION, splitHex, -} from '../utils'; -import { expiryRule } from './expiryRule'; -import type { MakePermissionDecoderConfig } from './makePermissionDecoder'; -import { nativePayeeRule } from './nativePayeeRule'; -import { redeemerRule } from './redeemerRule'; +} from '../utils.js'; +import { expiryRule } from './expiryRule.js'; +import type { MakePermissionDecoderConfig } from './makePermissionDecoder.js'; +import { nativePayeeRule } from './nativePayeeRule.js'; +import { redeemerRule } from './redeemerRule.js'; /** * Builds the configuration for the native-token-periodic permission decoder. diff --git a/packages/gator-permissions-controller/src/decodePermission/decoders/nativeTokenStream.test.ts b/packages/gator-permissions-controller/src/decodePermission/decoders/nativeTokenStream.test.ts index 28edc4be5bc..0cb7e23546b 100644 --- a/packages/gator-permissions-controller/src/decodePermission/decoders/nativeTokenStream.test.ts +++ b/packages/gator-permissions-controller/src/decodePermission/decoders/nativeTokenStream.test.ts @@ -8,7 +8,7 @@ import { DELEGATOR_CONTRACTS, } from '@metamask/delegation-deployments'; -import { createPermissionDecodersForContracts } from '.'; +import { createPermissionDecodersForContracts } from './..js'; describe('native-token-stream decoder', () => { const chainId = CHAIN_ID.sepolia; diff --git a/packages/gator-permissions-controller/src/decodePermission/decoders/nativeTokenStream.ts b/packages/gator-permissions-controller/src/decodePermission/decoders/nativeTokenStream.ts index b2dbffa8d45..0f9fcecfef1 100644 --- a/packages/gator-permissions-controller/src/decodePermission/decoders/nativeTokenStream.ts +++ b/packages/gator-permissions-controller/src/decodePermission/decoders/nativeTokenStream.ts @@ -4,12 +4,12 @@ import type { ChecksumCaveat, ChecksumEnforcersByChainId, DecodedPermission, -} from '../types'; -import { getByteLength, getTermsByEnforcer, splitHex } from '../utils'; -import { expiryRule } from './expiryRule'; -import type { MakePermissionDecoderConfig } from './makePermissionDecoder'; -import { nativePayeeRule } from './nativePayeeRule'; -import { redeemerRule } from './redeemerRule'; +} from '../types.js'; +import { getByteLength, getTermsByEnforcer, splitHex } from '../utils.js'; +import { expiryRule } from './expiryRule.js'; +import type { MakePermissionDecoderConfig } from './makePermissionDecoder.js'; +import { nativePayeeRule } from './nativePayeeRule.js'; +import { redeemerRule } from './redeemerRule.js'; /** * Builds the configuration for the native-token-stream permission decoder. diff --git a/packages/gator-permissions-controller/src/decodePermission/decoders/redeemerRule.test.ts b/packages/gator-permissions-controller/src/decodePermission/decoders/redeemerRule.test.ts index c397fccf608..0ae564ae915 100644 --- a/packages/gator-permissions-controller/src/decodePermission/decoders/redeemerRule.test.ts +++ b/packages/gator-permissions-controller/src/decodePermission/decoders/redeemerRule.test.ts @@ -6,9 +6,9 @@ import { import { getChecksumAddress } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import type { ChecksumCaveat } from '../types'; -import { getChecksumEnforcersByChainId } from '../utils'; -import { redeemerRule } from './redeemerRule'; +import type { ChecksumCaveat } from '../types.js'; +import { getChecksumEnforcersByChainId } from '../utils.js'; +import { redeemerRule } from './redeemerRule.js'; describe('redeemerRule', () => { const contracts = DELEGATOR_CONTRACTS['1.3.0'][CHAIN_ID.sepolia]; diff --git a/packages/gator-permissions-controller/src/decodePermission/decoders/redeemerRule.ts b/packages/gator-permissions-controller/src/decodePermission/decoders/redeemerRule.ts index f7f283a8958..2c3aa94f6ee 100644 --- a/packages/gator-permissions-controller/src/decodePermission/decoders/redeemerRule.ts +++ b/packages/gator-permissions-controller/src/decodePermission/decoders/redeemerRule.ts @@ -1,9 +1,9 @@ import { decodeRedeemerTerms } from '@metamask/delegation-core'; import { getChecksumAddress } from '@metamask/utils'; -import { EXECUTION_PERMISSION_REDEEMER_RULE_TYPE } from '../../constants'; -import type { RuleDecoder } from '../types'; -import { getTermsByEnforcer } from '../utils'; +import { EXECUTION_PERMISSION_REDEEMER_RULE_TYPE } from '../../constants.js'; +import type { RuleDecoder } from '../types.js'; +import { getTermsByEnforcer } from '../utils.js'; /** * Rule decoder that extracts a redeemer allowlist from a RedeemerEnforcer diff --git a/packages/gator-permissions-controller/src/decodePermission/decoders/tokenApprovalRevocation.test.ts b/packages/gator-permissions-controller/src/decodePermission/decoders/tokenApprovalRevocation.test.ts index 0d8b48a99a0..e685717a746 100644 --- a/packages/gator-permissions-controller/src/decodePermission/decoders/tokenApprovalRevocation.test.ts +++ b/packages/gator-permissions-controller/src/decodePermission/decoders/tokenApprovalRevocation.test.ts @@ -4,8 +4,8 @@ import { DELEGATOR_CONTRACTS, } from '@metamask/delegation-deployments'; -import { createPermissionDecodersForContracts } from '.'; -import { getChecksumEnforcersByChainId } from '../utils'; +import { getChecksumEnforcersByChainId } from '../utils.js'; +import { createPermissionDecodersForContracts } from './..js'; describe('token-approval-revocation decoder', () => { const chainId = CHAIN_ID.sepolia; diff --git a/packages/gator-permissions-controller/src/decodePermission/decoders/tokenApprovalRevocation.ts b/packages/gator-permissions-controller/src/decodePermission/decoders/tokenApprovalRevocation.ts index 0b4758148d0..62d6344300d 100644 --- a/packages/gator-permissions-controller/src/decodePermission/decoders/tokenApprovalRevocation.ts +++ b/packages/gator-permissions-controller/src/decodePermission/decoders/tokenApprovalRevocation.ts @@ -5,10 +5,10 @@ import type { ChecksumCaveat, ChecksumEnforcersByChainId, DecodedPermission, -} from '../types'; -import { getTermsByEnforcer } from '../utils'; -import { expiryRule } from './expiryRule'; -import type { MakePermissionDecoderConfig } from './makePermissionDecoder'; +} from '../types.js'; +import { getTermsByEnforcer } from '../utils.js'; +import { expiryRule } from './expiryRule.js'; +import type { MakePermissionDecoderConfig } from './makePermissionDecoder.js'; enum ApprovalRevocationFlag { Erc20Approve = 0x01, diff --git a/packages/gator-permissions-controller/src/decodePermission/index.ts b/packages/gator-permissions-controller/src/decodePermission/index.ts index 696f123f69d..cc86a11556e 100644 --- a/packages/gator-permissions-controller/src/decodePermission/index.ts +++ b/packages/gator-permissions-controller/src/decodePermission/index.ts @@ -2,11 +2,11 @@ export { findDecodersWithMatchingCaveatAddresses, reconstructDecodedPermission, selectUniqueDecoderAndDecodedPermission, -} from './decodePermission'; -export { createPermissionDecodersForContracts } from './decoders'; +} from './decodePermission.js'; +export { createPermissionDecodersForContracts } from './decoders.js'; export type { DecodedPermission, PermissionDecoder, ValidateAndDecodeResult, -} from './types'; +} from './types.js'; diff --git a/packages/gator-permissions-controller/src/decodePermission/utils.test.ts b/packages/gator-permissions-controller/src/decodePermission/utils.test.ts index d28bc61de4b..26fd381f8c0 100644 --- a/packages/gator-permissions-controller/src/decodePermission/utils.test.ts +++ b/packages/gator-permissions-controller/src/decodePermission/utils.test.ts @@ -2,13 +2,13 @@ import type { Caveat } from '@metamask/delegation-core'; import { getChecksumAddress } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import { createPermissionDecodersForContracts } from './decoders'; -import type { DeployedContractsByName } from './types'; +import { createPermissionDecodersForContracts } from './decoders.js'; +import type { DeployedContractsByName } from './types.js'; import { getChecksumEnforcersByChainId, getTermsByEnforcer, splitHex, -} from './utils'; +} from './utils.js'; // Helper to build a contracts map with lowercase addresses const buildContracts = (): DeployedContractsByName => ({ diff --git a/packages/gator-permissions-controller/src/decodePermission/utils.ts b/packages/gator-permissions-controller/src/decodePermission/utils.ts index a1dac594723..9492c6ac75f 100644 --- a/packages/gator-permissions-controller/src/decodePermission/utils.ts +++ b/packages/gator-permissions-controller/src/decodePermission/utils.ts @@ -5,7 +5,7 @@ import type { Hex } from '@metamask/utils'; import type { ChecksumEnforcersByChainId, DeployedContractsByName, -} from './types'; +} from './types.js'; /** * The names of the enforcer contracts for each permission type. diff --git a/packages/gator-permissions-controller/src/errors.test.ts b/packages/gator-permissions-controller/src/errors.test.ts index f7be32427fc..b1874474126 100644 --- a/packages/gator-permissions-controller/src/errors.test.ts +++ b/packages/gator-permissions-controller/src/errors.test.ts @@ -4,11 +4,11 @@ import { GatorPermissionsProviderError, OriginNotAllowedError, PermissionDecodingError, -} from './errors'; +} from './errors.js'; import { GatorPermissionsControllerErrorCode, GatorPermissionsSnapRpcMethod, -} from './types'; +} from './types.js'; describe('errors', () => { describe('GatorPermissionsControllerError', () => { diff --git a/packages/gator-permissions-controller/src/errors.ts b/packages/gator-permissions-controller/src/errors.ts index 4bd806742f7..45e1ccc3c6f 100644 --- a/packages/gator-permissions-controller/src/errors.ts +++ b/packages/gator-permissions-controller/src/errors.ts @@ -1,5 +1,5 @@ -import type { GatorPermissionsSnapRpcMethod } from './types'; -import { GatorPermissionsControllerErrorCode } from './types'; +import type { GatorPermissionsSnapRpcMethod } from './types.js'; +import { GatorPermissionsControllerErrorCode } from './types.js'; /** * Represents a base gator permissions error. diff --git a/packages/gator-permissions-controller/src/index.ts b/packages/gator-permissions-controller/src/index.ts index b424cad0005..2a2765c7d65 100644 --- a/packages/gator-permissions-controller/src/index.ts +++ b/packages/gator-permissions-controller/src/index.ts @@ -1,10 +1,10 @@ -export { default as GatorPermissionsController } from './GatorPermissionsController'; +export { default as GatorPermissionsController } from './GatorPermissionsController.js'; export { DELEGATION_FRAMEWORK_VERSION, EXECUTION_PERMISSION_EXPIRY_RULE_TYPE, EXECUTION_PERMISSION_PAYEE_RULE_TYPE, EXECUTION_PERMISSION_REDEEMER_RULE_TYPE, -} from './constants'; +} from './constants.js'; export type { GatorPermissionsControllerFetchAndUpdateGatorPermissionsAction, GatorPermissionsControllerAddPendingRevocationAction, @@ -13,7 +13,7 @@ export type { GatorPermissionsControllerIsPendingRevocationAction, GatorPermissionsControllerSubmitDirectRevocationAction, GatorPermissionsControllerSubmitRevocationAction, -} from './GatorPermissionsController-method-action-types'; +} from './GatorPermissionsController-method-action-types.js'; export type { GatorPermissionsControllerState, GatorPermissionsControllerConfig, @@ -22,8 +22,8 @@ export type { GatorPermissionsControllerActions, GatorPermissionsControllerEvents, GatorPermissionsControllerStateChangeEvent, -} from './GatorPermissionsController'; -export type { DecodedPermission } from './decodePermission'; +} from './GatorPermissionsController.js'; +export type { DecodedPermission } from './decodePermission.js'; export type { GatorPermissionsControllerErrorCode, GatorPermissionsSnapRpcMethod, @@ -37,10 +37,10 @@ export type { RevocationParams, RevocationMetadata, SupportedPermissionType, -} from './types'; +} from './types.js'; -export type { PayeeRule } from './payeeRule'; -export type { RedeemerRule } from './redeemerRule'; +export type { PayeeRule } from './payeeRule.js'; +export type { RedeemerRule } from './redeemerRule.js'; export type { NativeTokenStreamPermission, NativeTokenPeriodicPermission, diff --git a/packages/gator-permissions-controller/src/permissionOnChainStatus.test.ts b/packages/gator-permissions-controller/src/permissionOnChainStatus.test.ts index 2b7eb658394..1d65e01bfa0 100644 --- a/packages/gator-permissions-controller/src/permissionOnChainStatus.test.ts +++ b/packages/gator-permissions-controller/src/permissionOnChainStatus.test.ts @@ -12,7 +12,7 @@ import { import { hexToBigInt, numberToHex } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import { DELEGATION_FRAMEWORK_VERSION } from './constants'; +import { DELEGATION_FRAMEWORK_VERSION } from './constants.js'; import { encodeDisabledDelegationsCalldata, getExpiryFromDelegation, @@ -20,8 +20,8 @@ import { readLatestBlockTimestampSeconds, resolveGrantedPermissionOnChainStatus, updateGrantedPermissionsStatus, -} from './permissionOnChainStatus'; -import type { PermissionInfoWithMetadata } from './types'; +} from './permissionOnChainStatus.js'; +import type { PermissionInfoWithMetadata } from './types.js'; const contracts = DELEGATOR_CONTRACTS[DELEGATION_FRAMEWORK_VERSION][CHAIN_ID.sepolia]; diff --git a/packages/gator-permissions-controller/src/permissionOnChainStatus.ts b/packages/gator-permissions-controller/src/permissionOnChainStatus.ts index 6ac35cfde3a..91c04b3f9d4 100644 --- a/packages/gator-permissions-controller/src/permissionOnChainStatus.ts +++ b/packages/gator-permissions-controller/src/permissionOnChainStatus.ts @@ -4,16 +4,16 @@ import type { Delegation } from '@metamask/delegation-core'; import { bytesToHex, getChecksumAddress, hexToNumber } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import type { DeployedContractsByName } from './decodePermission/types'; +import type { DeployedContractsByName } from './decodePermission/types.js'; import { extractExpiryFromCaveatTerms, getChecksumEnforcersByChainId, -} from './decodePermission/utils'; -import { controllerLog } from './logger'; +} from './decodePermission/utils.js'; +import { controllerLog } from './logger.js'; import type { PermissionInfoWithMetadata, GatorPermissionStatus, -} from './types'; +} from './types.js'; /** Function selector for `DelegationManager.disabledDelegations(bytes32)`. */ const DISABLED_DELEGATIONS_SELECTOR = '0x2d40d052'; diff --git a/packages/gator-permissions-controller/src/utils.test.ts b/packages/gator-permissions-controller/src/utils.test.ts index d97067d5814..de5d1c2d45b 100644 --- a/packages/gator-permissions-controller/src/utils.test.ts +++ b/packages/gator-permissions-controller/src/utils.test.ts @@ -1,10 +1,10 @@ import type { SnapId } from '@metamask/snaps-sdk'; import { HandlerType } from '@metamask/snaps-utils'; -import { GatorPermissionsProviderError } from './errors'; -import type { GatorPermissionsControllerMessenger } from './GatorPermissionsController'; -import { GatorPermissionsSnapRpcMethod } from './types'; -import { executeSnapRpc } from './utils'; +import { GatorPermissionsProviderError } from './errors.js'; +import type { GatorPermissionsControllerMessenger } from './GatorPermissionsController.js'; +import { GatorPermissionsSnapRpcMethod } from './types.js'; +import { executeSnapRpc } from './utils.js'; describe('executeSnapRpc', () => { const mockSnapId = 'npm:@metamask/test-snap' as SnapId; diff --git a/packages/gator-permissions-controller/src/utils.ts b/packages/gator-permissions-controller/src/utils.ts index d0de1d7c229..27336d82e51 100644 --- a/packages/gator-permissions-controller/src/utils.ts +++ b/packages/gator-permissions-controller/src/utils.ts @@ -2,10 +2,10 @@ import type { SnapId } from '@metamask/snaps-sdk'; import { HandlerType } from '@metamask/snaps-utils'; import type { Json } from '@metamask/utils'; -import { GatorPermissionsProviderError } from './errors'; -import { GatorPermissionsControllerMessenger } from './GatorPermissionsController'; -import { utilsLog } from './logger'; -import type { GatorPermissionsSnapRpcMethod } from './types'; +import { GatorPermissionsProviderError } from './errors.js'; +import { GatorPermissionsControllerMessenger } from './GatorPermissionsController.js'; +import { utilsLog } from './logger.js'; +import type { GatorPermissionsSnapRpcMethod } from './types.js'; /** * Executes an RPC request against a Snap and returns the typed response. diff --git a/packages/gator-permissions-controller/tests/mock.test.ts b/packages/gator-permissions-controller/tests/mock.test.ts index 65e965ed921..fe5c446a683 100644 --- a/packages/gator-permissions-controller/tests/mock.test.ts +++ b/packages/gator-permissions-controller/tests/mock.test.ts @@ -1,5 +1,5 @@ -import { mockGatorPermissionsStorageEntriesFactory } from './mocks'; -import type { MockGatorPermissionsStorageEntriesConfig } from './mocks'; +import { mockGatorPermissionsStorageEntriesFactory } from './mocks.js'; +import type { MockGatorPermissionsStorageEntriesConfig } from './mocks.js'; describe('mockGatorPermissionsStorageEntriesFactory', () => { it('should create mock storage entries for all permission types', () => { diff --git a/packages/gator-permissions-controller/tests/mocks.ts b/packages/gator-permissions-controller/tests/mocks.ts index 7d9f13c4e6d..5d62cce3b57 100644 --- a/packages/gator-permissions-controller/tests/mocks.ts +++ b/packages/gator-permissions-controller/tests/mocks.ts @@ -6,7 +6,7 @@ import type { } from '@metamask/7715-permission-types'; import type { Hex } from '@metamask/utils'; -import type { StoredGatorPermission } from '../src/types'; +import type { StoredGatorPermission } from '../src/types.js'; /** * Mock stored gator permission: native-token-stream (as returned by the Snap). From 010058139eb47654614beb2537095c27014549bc Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:51:09 +0200 Subject: [PATCH 105/136] ESLint fix and `jest` global import for network-connection-banner-controller --- ...rkConnectionBannerController-method-action-types.ts | 2 +- .../src/NetworkConnectionBannerController.test.ts | 10 +++++----- .../src/NetworkConnectionBannerController.ts | 4 ++-- .../network-connection-banner-controller/src/index.ts | 8 ++++---- .../src/selectors.test.ts | 4 ++-- .../src/selectors.ts | 2 +- .../src/url-utils.test.ts | 2 +- 7 files changed, 16 insertions(+), 16 deletions(-) diff --git a/packages/network-connection-banner-controller/src/NetworkConnectionBannerController-method-action-types.ts b/packages/network-connection-banner-controller/src/NetworkConnectionBannerController-method-action-types.ts index 9cbda05c26b..980b79d2f9e 100644 --- a/packages/network-connection-banner-controller/src/NetworkConnectionBannerController-method-action-types.ts +++ b/packages/network-connection-banner-controller/src/NetworkConnectionBannerController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { NetworkConnectionBannerController } from './NetworkConnectionBannerController'; +import type { NetworkConnectionBannerController } from './NetworkConnectionBannerController.js'; /** * Clears the banner state such that the banner will be hidden. diff --git a/packages/network-connection-banner-controller/src/NetworkConnectionBannerController.test.ts b/packages/network-connection-banner-controller/src/NetworkConnectionBannerController.test.ts index c1488bd93e5..9e127055029 100644 --- a/packages/network-connection-banner-controller/src/NetworkConnectionBannerController.test.ts +++ b/packages/network-connection-banner-controller/src/NetworkConnectionBannerController.test.ts @@ -18,8 +18,8 @@ import type { NetworkEnablementControllerState } from '@metamask/network-enablem import { KnownCaipNamespace } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import type { NetworkConnectionBannerControllerMessenger } from './NetworkConnectionBannerController'; -import { NetworkConnectionBannerController } from './NetworkConnectionBannerController'; +import type { NetworkConnectionBannerControllerMessenger } from './NetworkConnectionBannerController.js'; +import { NetworkConnectionBannerController } from './NetworkConnectionBannerController.js'; const TEST_INFURA_PROJECT_ID = 'test-infura-project-id'; const MAINNET_CLIENT_ID = 'mainnet' satisfies BuiltInNetworkClientId; @@ -1783,7 +1783,7 @@ async function withController( rootMessenger.registerActionHandler( 'NetworkController:getState', - () => currentState.NetworkController as NetworkState, + () => currentState.NetworkController, ); rootMessenger.registerActionHandler( 'NetworkController:getNetworkConfigurationByChainId', @@ -1879,7 +1879,7 @@ async function withController( }; rootMessenger.publish( 'NetworkController:stateChange', - currentState.NetworkController as NetworkState, + currentState.NetworkController, [], ); }; @@ -1911,7 +1911,7 @@ async function withController( }; rootMessenger.publish( 'NetworkController:stateChange', - currentState.NetworkController as NetworkState, + currentState.NetworkController, [], ); rootMessenger.publish( diff --git a/packages/network-connection-banner-controller/src/NetworkConnectionBannerController.ts b/packages/network-connection-banner-controller/src/NetworkConnectionBannerController.ts index 5dfdb6528c1..f3cc67e8079 100644 --- a/packages/network-connection-banner-controller/src/NetworkConnectionBannerController.ts +++ b/packages/network-connection-banner-controller/src/NetworkConnectionBannerController.ts @@ -41,8 +41,8 @@ import type { Hex } from '@metamask/utils'; import { KnownCaipNamespace } from '@metamask/utils'; import { createSelector } from 'reselect'; -import type { NetworkConnectionBannerControllerMethodActions } from './NetworkConnectionBannerController-method-action-types'; -import { getIsInfuraEndpoint } from './url-utils'; +import type { NetworkConnectionBannerControllerMethodActions } from './NetworkConnectionBannerController-method-action-types.js'; +import { getIsInfuraEndpoint } from './url-utils.js'; /** * The name of the {@link NetworkConnectionBannerController}, used to namespace diff --git a/packages/network-connection-banner-controller/src/index.ts b/packages/network-connection-banner-controller/src/index.ts index 825f079000f..08b47d81af6 100644 --- a/packages/network-connection-banner-controller/src/index.ts +++ b/packages/network-connection-banner-controller/src/index.ts @@ -8,15 +8,15 @@ export type { NetworkConnectionBannerControllerOptions, FailedNetwork, NetworkConnectionBannerStatus, -} from './NetworkConnectionBannerController'; +} from './NetworkConnectionBannerController.js'; export type { NetworkConnectionBannerControllerDismissBannerAction, NetworkConnectionBannerControllerSwitchToDefaultInfuraRpcEndpointAction, -} from './NetworkConnectionBannerController-method-action-types'; +} from './NetworkConnectionBannerController-method-action-types.js'; export { NetworkConnectionBannerController, getDefaultNetworkConnectionBannerControllerState, DEFAULT_DEGRADED_BANNER_TIMEOUT, DEFAULT_UNAVAILABLE_BANNER_TIMEOUT, -} from './NetworkConnectionBannerController'; -export { networkConnectionBannerControllerSelectors } from './selectors'; +} from './NetworkConnectionBannerController.js'; +export { networkConnectionBannerControllerSelectors } from './selectors.js'; diff --git a/packages/network-connection-banner-controller/src/selectors.test.ts b/packages/network-connection-banner-controller/src/selectors.test.ts index 1f6c8fa5985..b51be9af5af 100644 --- a/packages/network-connection-banner-controller/src/selectors.test.ts +++ b/packages/network-connection-banner-controller/src/selectors.test.ts @@ -1,8 +1,8 @@ import type { NetworkConnectionBannerControllerState, FailedNetwork, -} from './NetworkConnectionBannerController'; -import { networkConnectionBannerControllerSelectors } from './selectors'; +} from './NetworkConnectionBannerController.js'; +import { networkConnectionBannerControllerSelectors } from './selectors.js'; const failedNetwork: FailedNetwork = { chainId: '0x1', diff --git a/packages/network-connection-banner-controller/src/selectors.ts b/packages/network-connection-banner-controller/src/selectors.ts index 4f17e6292b6..4e15222d572 100644 --- a/packages/network-connection-banner-controller/src/selectors.ts +++ b/packages/network-connection-banner-controller/src/selectors.ts @@ -4,7 +4,7 @@ import type { NetworkConnectionBannerControllerState, FailedNetwork, NetworkConnectionBannerStatus, -} from './NetworkConnectionBannerController'; +} from './NetworkConnectionBannerController.js'; /** * Selects the banner status from the controller state. diff --git a/packages/network-connection-banner-controller/src/url-utils.test.ts b/packages/network-connection-banner-controller/src/url-utils.test.ts index c6e1c121abb..304afcad3c0 100644 --- a/packages/network-connection-banner-controller/src/url-utils.test.ts +++ b/packages/network-connection-banner-controller/src/url-utils.test.ts @@ -1,4 +1,4 @@ -import { getIsInfuraEndpoint } from './url-utils'; +import { getIsInfuraEndpoint } from './url-utils.js'; const INFURA_PROJECT_ID = 'abc123def456'; From d81ae51d0b8d329d467b3d318e94b54be441bc88 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:51:13 +0200 Subject: [PATCH 106/136] ESLint fix and `jest` global import for network-enablement-controller --- .../NetworkEnablementController-method-action-types.ts | 2 +- .../src/NetworkEnablementController.test.ts | 10 +++++----- .../src/NetworkEnablementController.ts | 9 ++++----- packages/network-enablement-controller/src/index.ts | 10 +++++----- .../src/selectors.test.ts | 4 ++-- .../network-enablement-controller/src/selectors.ts | 4 ++-- .../src/services/Slip44Service.test.ts | 2 +- .../src/services/index.ts | 2 +- .../network-enablement-controller/src/utils.test.ts | 4 ++-- packages/network-enablement-controller/src/utils.ts | 4 ++-- 10 files changed, 25 insertions(+), 26 deletions(-) diff --git a/packages/network-enablement-controller/src/NetworkEnablementController-method-action-types.ts b/packages/network-enablement-controller/src/NetworkEnablementController-method-action-types.ts index b3245a03936..4301ca30cad 100644 --- a/packages/network-enablement-controller/src/NetworkEnablementController-method-action-types.ts +++ b/packages/network-enablement-controller/src/NetworkEnablementController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { NetworkEnablementController } from './NetworkEnablementController'; +import type { NetworkEnablementController } from './NetworkEnablementController.js'; /** * Enables or disables a network for the user. diff --git a/packages/network-enablement-controller/src/NetworkEnablementController.test.ts b/packages/network-enablement-controller/src/NetworkEnablementController.test.ts index 410e68a089a..035579dc846 100644 --- a/packages/network-enablement-controller/src/NetworkEnablementController.test.ts +++ b/packages/network-enablement-controller/src/NetworkEnablementController.test.ts @@ -14,14 +14,14 @@ import type { TransactionMeta } from '@metamask/transaction-controller'; import { KnownCaipNamespace } from '@metamask/utils'; import type { CaipChainId, CaipNamespace, Hex } from '@metamask/utils'; -import { jestAdvanceTime } from '../../../tests/helpers'; -import { POPULAR_NETWORKS } from './constants'; -import { NetworkEnablementController } from './NetworkEnablementController'; +import { jestAdvanceTime } from '../../../tests/helpers.js'; +import { POPULAR_NETWORKS } from './constants.js'; +import { NetworkEnablementController } from './NetworkEnablementController.js'; import type { NetworkEnablementControllerMessenger, NativeAssetIdentifiersMap, -} from './NetworkEnablementController'; -import { Slip44Service } from './services'; +} from './NetworkEnablementController.js'; +import { Slip44Service } from './services.js'; // Known chainId mappings from chainid.network for mocking const chainIdToSlip44: Record = { diff --git a/packages/network-enablement-controller/src/NetworkEnablementController.ts b/packages/network-enablement-controller/src/NetworkEnablementController.ts index 844955887c5..5417b4d08de 100644 --- a/packages/network-enablement-controller/src/NetworkEnablementController.ts +++ b/packages/network-enablement-controller/src/NetworkEnablementController.ts @@ -18,14 +18,14 @@ import type { TransactionControllerTransactionSubmittedEvent } from '@metamask/t import type { CaipChainId, CaipNamespace, Hex } from '@metamask/utils'; import { KnownCaipNamespace } from '@metamask/utils'; -import { POPULAR_NETWORKS } from './constants'; -import type { NetworkEnablementControllerMethodActions } from './NetworkEnablementController-method-action-types'; -import { Slip44Service } from './services'; +import { POPULAR_NETWORKS } from './constants.js'; +import type { NetworkEnablementControllerMethodActions } from './NetworkEnablementController-method-action-types.js'; +import { Slip44Service } from './services.js'; import { deriveKeys, isOnlyNetworkEnabledInNamespace, isPopularNetwork, -} from './utils'; +} from './utils.js'; const controllerName = 'NetworkEnablementController'; @@ -251,7 +251,6 @@ export class NetworkEnablementController extends BaseController< messenger.registerMethodActionHandlers(this, MESSENGER_EXPOSED_METHODS); messenger.subscribe('NetworkController:networkAdded', ({ chainId }) => { - // eslint-disable-next-line no-void void this.#onAddNetwork(chainId); }); diff --git a/packages/network-enablement-controller/src/index.ts b/packages/network-enablement-controller/src/index.ts index adf30c5d02b..9aeaa02ffb6 100644 --- a/packages/network-enablement-controller/src/index.ts +++ b/packages/network-enablement-controller/src/index.ts @@ -1,4 +1,4 @@ -export { NetworkEnablementController } from './NetworkEnablementController'; +export { NetworkEnablementController } from './NetworkEnablementController.js'; export type { NetworkEnablementControllerState, @@ -10,7 +10,7 @@ export type { NativeAssetIdentifier, NativeAssetIdentifiersMap, NetworkConfig, -} from './NetworkEnablementController'; +} from './NetworkEnablementController.js'; export type { NetworkEnablementControllerEnableNetworkAction, @@ -23,7 +23,7 @@ export type { NetworkEnablementControllerListPopularEvmNetworksAction, NetworkEnablementControllerListPopularMultichainNetworksAction, NetworkEnablementControllerListPopularNetworksAction, -} from './NetworkEnablementController-method-action-types'; +} from './NetworkEnablementController-method-action-types.js'; export { selectEnabledNetworkMap, @@ -33,6 +33,6 @@ export { selectEnabledNetworksCount, selectEnabledEvmNetworks, selectEnabledSolanaNetworks, -} from './selectors'; +} from './selectors.js'; -export { Slip44Service, getEvmSlip44, getSlip44BySymbol } from './services'; +export { Slip44Service, getEvmSlip44, getSlip44BySymbol } from './services.js'; diff --git a/packages/network-enablement-controller/src/selectors.test.ts b/packages/network-enablement-controller/src/selectors.test.ts index 1410080bb47..ad6cda8fab2 100644 --- a/packages/network-enablement-controller/src/selectors.test.ts +++ b/packages/network-enablement-controller/src/selectors.test.ts @@ -1,6 +1,6 @@ import { KnownCaipNamespace } from '@metamask/utils'; -import type { NetworkEnablementControllerState } from './NetworkEnablementController'; +import type { NetworkEnablementControllerState } from './NetworkEnablementController.js'; import { selectEnabledNetworkMap, selectIsNetworkEnabled, @@ -9,7 +9,7 @@ import { selectEnabledNetworksCount, selectEnabledEvmNetworks, selectEnabledSolanaNetworks, -} from './selectors'; +} from './selectors.js'; describe('NetworkEnablementController Selectors', () => { const mockState: NetworkEnablementControllerState = { diff --git a/packages/network-enablement-controller/src/selectors.ts b/packages/network-enablement-controller/src/selectors.ts index dae9938a419..553940e6d5e 100644 --- a/packages/network-enablement-controller/src/selectors.ts +++ b/packages/network-enablement-controller/src/selectors.ts @@ -2,8 +2,8 @@ import type { CaipChainId, CaipNamespace, Hex } from '@metamask/utils'; import { KnownCaipNamespace } from '@metamask/utils'; import { createSelector } from 'reselect'; -import type { NetworkEnablementControllerState } from './NetworkEnablementController'; -import { deriveKeys } from './utils'; +import type { NetworkEnablementControllerState } from './NetworkEnablementController.js'; +import { deriveKeys } from './utils.js'; /** * Base selector to get the enabled network map from the controller state. diff --git a/packages/network-enablement-controller/src/services/Slip44Service.test.ts b/packages/network-enablement-controller/src/services/Slip44Service.test.ts index 1263cb59a52..0f60a7afe8d 100644 --- a/packages/network-enablement-controller/src/services/Slip44Service.test.ts +++ b/packages/network-enablement-controller/src/services/Slip44Service.test.ts @@ -1,6 +1,6 @@ import { fetchWithErrorHandling } from '@metamask/controller-utils'; -import { Slip44Service } from './Slip44Service'; +import { Slip44Service } from './Slip44Service.js'; jest.mock('@metamask/controller-utils', () => ({ fetchWithErrorHandling: jest.fn(), diff --git a/packages/network-enablement-controller/src/services/index.ts b/packages/network-enablement-controller/src/services/index.ts index 5d87168f7ff..72bc55b9a5e 100644 --- a/packages/network-enablement-controller/src/services/index.ts +++ b/packages/network-enablement-controller/src/services/index.ts @@ -1,4 +1,4 @@ -import { Slip44Service } from './Slip44Service'; +import { Slip44Service } from './Slip44Service.js'; export { Slip44Service }; diff --git a/packages/network-enablement-controller/src/utils.test.ts b/packages/network-enablement-controller/src/utils.test.ts index ed975ab5641..40844e326b3 100644 --- a/packages/network-enablement-controller/src/utils.test.ts +++ b/packages/network-enablement-controller/src/utils.test.ts @@ -1,11 +1,11 @@ import { KnownCaipNamespace } from '@metamask/utils'; -import type { NetworkEnablementControllerState } from './NetworkEnablementController'; +import type { NetworkEnablementControllerState } from './NetworkEnablementController.js'; import { deriveKeys, isOnlyNetworkEnabledInNamespace, isPopularNetwork, -} from './utils'; +} from './utils.js'; describe('Utils', () => { describe('deriveKeys', () => { diff --git a/packages/network-enablement-controller/src/utils.ts b/packages/network-enablement-controller/src/utils.ts index 09973e01120..c7534f9ad90 100644 --- a/packages/network-enablement-controller/src/utils.ts +++ b/packages/network-enablement-controller/src/utils.ts @@ -8,8 +8,8 @@ import { parseCaipChainId, } from '@metamask/utils'; -import { POPULAR_NETWORKS } from './constants'; -import type { NetworkEnablementControllerState } from './NetworkEnablementController'; +import { POPULAR_NETWORKS } from './constants.js'; +import type { NetworkEnablementControllerState } from './NetworkEnablementController.js'; /** * Represents the parsed keys derived from a chain ID. From cd3bf2ab7594bab077ba86f5094ab52b1aa00ae6 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:51:13 +0200 Subject: [PATCH 107/136] ESLint fix and `jest` global import for perps-controller --- .../PerpsController-method-action-types.ts | 2 +- .../perps-controller/src/PerpsController.ts | 71 ++++++----- .../aggregation/SubscriptionMultiplexer.ts | 6 +- .../perps-controller/src/aggregation/index.ts | 4 +- .../src/constants/hyperLiquidConfig.ts | 6 +- .../perps-controller/src/constants/index.ts | 16 +-- .../src/constants/myxConfig.ts | 2 +- packages/perps-controller/src/index.ts | 116 +++++++++--------- .../src/providers/AggregatedPerpsProvider.ts | 8 +- .../src/providers/HyperLiquidProvider.ts | 66 +++++----- .../src/providers/MYXProvider.ts | 26 ++-- .../src/routing/ProviderRouter.ts | 2 +- .../perps-controller/src/routing/index.ts | 4 +- packages/perps-controller/src/selectors.ts | 6 +- .../src/services/AccountService.ts | 22 ++-- .../src/services/DataLakeService.ts | 16 +-- .../src/services/DepositService.ts | 12 +- .../src/services/DexDiscoveryCacheManager.ts | 7 +- .../src/services/EligibilityService.ts | 6 +- .../FeatureFlagConfigurationService.ts | 14 +-- .../src/services/HyperLiquidClientService.ts | 30 +++-- .../HyperLiquidSubscriptionService.ts | 34 ++--- .../src/services/HyperLiquidWalletService.ts | 10 +- .../src/services/MYXClientService.ts | 10 +- .../src/services/MYXWalletService.ts | 10 +- .../src/services/MarketDataService.ts | 22 ++-- .../src/services/RewardsIntegrationService.ts | 14 +-- .../src/services/ServiceContext.ts | 4 +- .../src/services/TerminalMarketService.ts | 11 +- .../src/services/TradingService.ts | 22 ++-- packages/perps-controller/src/types/index.ts | 10 +- .../perps-controller/src/types/perps-types.ts | 6 +- .../src/utils/accountUtils.ts | 6 +- .../src/utils/coalescePerpsRestRequest.ts | 2 +- .../perps-controller/src/utils/errorUtils.ts | 2 +- .../src/utils/hyperLiquidAbstraction.ts | 2 +- .../src/utils/hyperLiquidAdapter.ts | 10 +- .../utils/hyperLiquidOrderBookProcessor.ts | 2 +- .../src/utils/hyperLiquidValidation.ts | 8 +- packages/perps-controller/src/utils/index.ts | 38 +++--- .../src/utils/marketDataTransform.ts | 10 +- .../src/utils/marketSearch.ts | 2 +- .../perps-controller/src/utils/marketUtils.ts | 7 +- .../perps-controller/src/utils/myxAdapter.ts | 8 +- .../src/utils/orderCalculations.ts | 12 +- .../src/utils/perpsDiskPersistence.ts | 9 +- .../src/utils/perpsFormatters.ts | 2 +- .../src/utils/rewardsUtils.ts | 4 +- .../src/utils/significantFigures.ts | 2 +- .../perps-controller/src/utils/sortMarkets.ts | 6 +- .../src/utils/standaloneInfoClient.ts | 4 +- .../tests/defer-eligibility.test.ts | 6 +- .../tests/placeholder.test.ts | 2 +- .../SubscriptionMultiplexer.test.ts | 2 +- .../tests/src/constants/eventNames.test.ts | 4 +- .../src/constants/hyperLiquidConfig.test.ts | 6 +- .../providers/AggregatedPerpsProvider.test.ts | 8 +- .../tests/src/services/AccountService.test.ts | 10 +- .../src/services/DataLakeService.test.ts | 6 +- .../src/services/EligibilityService.test.ts | 6 +- .../src/services/MarketDataService.test.ts | 12 +- .../RewardsIntegrationService.test.ts | 4 +- .../services/TerminalMarketService.test.ts | 8 +- .../tests/src/services/TradingService.test.ts | 10 +- .../tests/src/types/hyperliquid-types.test.ts | 2 +- .../utils/coalescePerpsRestRequest.test.ts | 2 +- .../tests/src/utils/errorUtils.test.ts | 2 +- .../src/utils/hyperLiquidAbstraction.test.ts | 2 +- .../src/utils/hyperLiquidAdapter.test.ts | 4 +- .../src/utils/marketDataTransform.test.ts | 8 +- .../tests/src/utils/marketSearch.test.ts | 4 +- .../tests/src/utils/marketUtils.test.ts | 4 +- .../tests/src/utils/rewardsUtils.test.ts | 2 +- .../src/utils/significantFigures.test.ts | 2 +- .../tests/src/utils/sortMarkets.test.ts | 6 +- .../tests/src/utils/transferData.test.ts | 2 +- 76 files changed, 441 insertions(+), 414 deletions(-) diff --git a/packages/perps-controller/src/PerpsController-method-action-types.ts b/packages/perps-controller/src/PerpsController-method-action-types.ts index bd9abaa38c8..6297e2b79f6 100644 --- a/packages/perps-controller/src/PerpsController-method-action-types.ts +++ b/packages/perps-controller/src/PerpsController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { PerpsController } from './PerpsController'; +import type { PerpsController } from './PerpsController.js'; /** * Read cached market data for the currently active provider (or aggregated). diff --git a/packages/perps-controller/src/PerpsController.ts b/packages/perps-controller/src/PerpsController.ts index a7689aed4d0..5ebbdbe8c9d 100644 --- a/packages/perps-controller/src/PerpsController.ts +++ b/packages/perps-controller/src/PerpsController.ts @@ -14,14 +14,14 @@ import type { Messenger } from '@metamask/messenger'; import type { Json } from '@metamask/utils'; import { v4 as uuidv4 } from 'uuid'; -import { CandlePeriod } from './constants/chartConfig'; +import { CandlePeriod } from './constants/chartConfig.js'; import { PERPS_EVENT_PROPERTY, PERPS_EVENT_VALUE, -} from './constants/eventNames'; -import { USDC_SYMBOL } from './constants/hyperLiquidConfig'; -import { PerpsMeasurementName } from './constants/performanceMetrics'; -import type { SortOptionId } from './constants/perpsConfig'; +} from './constants/eventNames.js'; +import { USDC_SYMBOL } from './constants/hyperLiquidConfig.js'; +import { PerpsMeasurementName } from './constants/performanceMetrics.js'; +import type { SortOptionId } from './constants/perpsConfig.js'; import { PERPS_CONSTANTS, MARKET_SORTING_CONFIG, @@ -29,21 +29,21 @@ import { PERPS_DISK_CACHE_USER_DATA, buildProviderCacheKey, MAX_SLIPPAGE_BOUNDS, -} from './constants/perpsConfig'; -import type { PerpsControllerMethodActions } from './PerpsController-method-action-types'; -import { PERPS_ERROR_CODES } from './perpsErrorCodes'; -import { AggregatedPerpsProvider } from './providers/AggregatedPerpsProvider'; -import { HyperLiquidProvider } from './providers/HyperLiquidProvider'; -import { AccountService } from './services/AccountService'; -import { DataLakeService } from './services/DataLakeService'; -import { DepositService } from './services/DepositService'; -import { EligibilityService } from './services/EligibilityService'; -import { FeatureFlagConfigurationService } from './services/FeatureFlagConfigurationService'; -import { MarketDataService } from './services/MarketDataService'; -import { RewardsIntegrationService } from './services/RewardsIntegrationService'; -import type { ServiceContext } from './services/ServiceContext'; -import { TerminalMarketService } from './services/TerminalMarketService'; -import { TradingService } from './services/TradingService'; +} from './constants/perpsConfig.js'; +import type { PerpsControllerMethodActions } from './PerpsController-method-action-types.js'; +import { PERPS_ERROR_CODES } from './perpsErrorCodes.js'; +import { AggregatedPerpsProvider } from './providers/AggregatedPerpsProvider.js'; +import { HyperLiquidProvider } from './providers/HyperLiquidProvider.js'; +import { AccountService } from './services/AccountService.js'; +import { DataLakeService } from './services/DataLakeService.js'; +import { DepositService } from './services/DepositService.js'; +import { EligibilityService } from './services/EligibilityService.js'; +import { FeatureFlagConfigurationService } from './services/FeatureFlagConfigurationService.js'; +import { MarketDataService } from './services/MarketDataService.js'; +import { RewardsIntegrationService } from './services/RewardsIntegrationService.js'; +import type { ServiceContext } from './services/ServiceContext.js'; +import { TerminalMarketService } from './services/TerminalMarketService.js'; +import { TradingService } from './services/TradingService.js'; // PerpsStreamChannelKey removed: using string for channel keys (PerpsStreamManager.pauseChannel takes string) import { WebSocketConnectionState, @@ -53,7 +53,7 @@ import { isVersionGatedFeatureFlag, MARKET_CATEGORIES, // Platform dependencies interface for core migration (bundles all platform-specific deps) -} from './types'; +} from './types.js'; import type { AccountState, AssetRoute, @@ -120,28 +120,31 @@ import type { PerpsAddTransactionOptions, MarketTypeFilter, MYXCredentials, -} from './types'; -import type { SortDirection } from './types'; +} from './types.js'; +import type { SortDirection } from './types.js'; import type { PerpsControllerAllowedActions, PerpsControllerAllowedEvents, -} from './types/messenger'; -import type { CandleData } from './types/perps-types'; +} from './types/messenger.js'; +import type { CandleData } from './types/perps-types.js'; import { LastTransactionResult, TransactionStatus, -} from './types/transactionTypes'; -import { getSelectedEvmAccountFromMessenger } from './utils/accountUtils'; -import { ensureError } from './utils/errorUtils'; -import { parseAssetName } from './utils/hyperLiquidAdapter'; -import { compileMarketPattern, shouldIncludeMarket } from './utils/marketUtils'; -import type { CompiledMarketPattern } from './utils/marketUtils'; +} from './types/transactionTypes.js'; +import { getSelectedEvmAccountFromMessenger } from './utils/accountUtils.js'; +import { ensureError } from './utils/errorUtils.js'; +import { parseAssetName } from './utils/hyperLiquidAdapter.js'; +import { + compileMarketPattern, + shouldIncludeMarket, +} from './utils/marketUtils.js'; +import type { CompiledMarketPattern } from './utils/marketUtils.js'; import { hydrateFromDiskSync, persistMarketEntriesToDisk, persistUserEntriesToDisk, -} from './utils/perpsDiskPersistence'; -import { wait } from './utils/wait'; +} from './utils/perpsDiskPersistence.js'; +import { wait } from './utils/wait.js'; /** Derived type for logger options from PerpsLogger interface */ type PerpsLoggerOptions = Parameters[1]; @@ -222,7 +225,7 @@ export type SelectedPaymentTokenSnapshot = { }; // Re-export error codes from separate file to avoid circular dependencies -export { PERPS_ERROR_CODES, type PerpsErrorCode } from './perpsErrorCodes'; +export { PERPS_ERROR_CODES, type PerpsErrorCode } from './perpsErrorCodes.js'; /** * Initialization state enum for state machine tracking diff --git a/packages/perps-controller/src/aggregation/SubscriptionMultiplexer.ts b/packages/perps-controller/src/aggregation/SubscriptionMultiplexer.ts index 3822072ca79..2a520cd9e3c 100644 --- a/packages/perps-controller/src/aggregation/SubscriptionMultiplexer.ts +++ b/packages/perps-controller/src/aggregation/SubscriptionMultiplexer.ts @@ -8,7 +8,7 @@ * - Cache latest updates per provider per symbol for aggregation */ -import { PERPS_CONSTANTS } from '../constants/perpsConfig'; +import { PERPS_CONSTANTS } from '../constants/perpsConfig.js'; import type { PerpsProviderType, PerpsProvider, @@ -23,8 +23,8 @@ import type { SubscribeOrderFillsParams, SubscribeOrdersParams, SubscribeAccountParams, -} from '../types'; -import { ensureError } from '../utils/errorUtils'; +} from '../types.js'; +import { ensureError } from '../utils/errorUtils.js'; /** * Options for constructing SubscriptionMultiplexer diff --git a/packages/perps-controller/src/aggregation/index.ts b/packages/perps-controller/src/aggregation/index.ts index 00b4fbfec0f..bc4b3e19c38 100644 --- a/packages/perps-controller/src/aggregation/index.ts +++ b/packages/perps-controller/src/aggregation/index.ts @@ -1,7 +1,7 @@ /** * Provider aggregation module exports */ -export { SubscriptionMultiplexer } from './SubscriptionMultiplexer'; +export { SubscriptionMultiplexer } from './SubscriptionMultiplexer.js'; export type { PriceAggregationMode, MultiplexedPricesParams, @@ -9,4 +9,4 @@ export type { MultiplexedOrderFillsParams, MultiplexedOrdersParams, MultiplexedAccountParams, -} from './SubscriptionMultiplexer'; +} from './SubscriptionMultiplexer.js'; diff --git a/packages/perps-controller/src/constants/hyperLiquidConfig.ts b/packages/perps-controller/src/constants/hyperLiquidConfig.ts index 667598b3548..a8fc9927c15 100644 --- a/packages/perps-controller/src/constants/hyperLiquidConfig.ts +++ b/packages/perps-controller/src/constants/hyperLiquidConfig.ts @@ -1,7 +1,7 @@ import type { CaipAssetId, CaipChainId, Hex } from '@metamask/utils'; -import { MarketCategory } from '../types'; -import type { MarketType } from '../types'; +import { MarketCategory } from '../types.js'; +import type { MarketType } from '../types.js'; import type { HyperLiquidNetwork, HyperLiquidEndpoints, @@ -11,7 +11,7 @@ import type { HyperLiquidTransportConfig, TradingDefaultsConfig, FeeRatesConfig, -} from '../types/perps-types'; +} from '../types/perps-types.js'; // Network constants export const ARBITRUM_MAINNET_CHAIN_ID_HEX = '0xa4b1' as const; diff --git a/packages/perps-controller/src/constants/index.ts b/packages/perps-controller/src/constants/index.ts index aedcaaec560..cd510d8579c 100644 --- a/packages/perps-controller/src/constants/index.ts +++ b/packages/perps-controller/src/constants/index.ts @@ -1,11 +1,11 @@ /** * Barrel re-export for all portable constants in controllers/ */ -export * from './chartConfig'; -export * from './eventNames'; -export * from './hyperLiquidConfig'; -export * from './orderTypes'; -export * from './perpsConfig'; -export * from './transactionsHistoryConfig'; -export * from './performanceMetrics'; -export * from './myxConfig'; +export * from './chartConfig.js'; +export * from './eventNames.js'; +export * from './hyperLiquidConfig.js'; +export * from './orderTypes.js'; +export * from './perpsConfig.js'; +export * from './transactionsHistoryConfig.js'; +export * from './performanceMetrics.js'; +export * from './myxConfig.js'; diff --git a/packages/perps-controller/src/constants/myxConfig.ts b/packages/perps-controller/src/constants/myxConfig.ts index 5c0abacaa5a..3eaf86976b1 100644 --- a/packages/perps-controller/src/constants/myxConfig.ts +++ b/packages/perps-controller/src/constants/myxConfig.ts @@ -12,7 +12,7 @@ import type { MYXNetwork, MYXEndpoints, MYXAssetConfigs, -} from '../types/myx-types'; +} from '../types/myx-types.js'; // ============================================================================ // Network Constants diff --git a/packages/perps-controller/src/index.ts b/packages/perps-controller/src/index.ts index 6e3e15352a5..bab97d648cd 100644 --- a/packages/perps-controller/src/index.ts +++ b/packages/perps-controller/src/index.ts @@ -32,7 +32,7 @@ export { PerpsController, getDefaultPerpsControllerState, InitializationState, -} from './PerpsController'; +} from './PerpsController.js'; export type { PerpsControllerState, PerpsControllerOptions, @@ -40,7 +40,7 @@ export type { PerpsControllerGetStateAction, PerpsControllerActions, PerpsControllerEvents, -} from './PerpsController'; +} from './PerpsController.js'; export type { PerpsControllerCalculateFeesAction, PerpsControllerCalculateLiquidationPriceAction, @@ -132,10 +132,10 @@ export type { PerpsControllerValidateOrderAction, PerpsControllerValidateWithdrawalAction, PerpsControllerWithdrawAction, -} from './PerpsController-method-action-types'; +} from './PerpsController-method-action-types.js'; // Provider interfaces and implementations -export { HyperLiquidProvider } from './providers/HyperLiquidProvider'; +export { HyperLiquidProvider } from './providers/HyperLiquidProvider.js'; // Type definitions (explicit named exports) export { @@ -143,7 +143,7 @@ export { PerpsAnalyticsEvent, MARKET_CATEGORIES, MarketCategory, -} from './types'; +} from './types.js'; export type { RawLedgerUpdate, UserHistoryItem, @@ -259,12 +259,12 @@ export type { PaymentToken, PerpsSelectedPaymentToken, VersionGatedFeatureFlag, -} from './types'; +} from './types.js'; export { PerpsTraceNames, PerpsTraceOperations, isVersionGatedFeatureFlag, -} from './types'; +} from './types.js'; // Types from sub-modules (re-exported via types/index.ts) export type { @@ -279,14 +279,14 @@ export type { ReconnectOptions, ExtendedAssetMeta, ExtendedPerpDex, -} from './types'; +} from './types.js'; export type { BaseTransactionResult, LastTransactionResult, TransactionStatus, TransactionRecord, -} from './types'; -export { isTransactionRecord, isLastTransactionResult } from './types'; +} from './types.js'; +export { isTransactionRecord, isLastTransactionResult } from './types.js'; export type { AssetPosition, SpotBalance, @@ -303,7 +303,7 @@ export type { MetaAndAssetCtxsResponse, PredictedFundingsResponse, SpotMetaResponse, -} from './types'; +} from './types.js'; export type { HyperLiquidEndpoints, AssetNetworkConfig, @@ -317,8 +317,8 @@ export type { TradingDefaultsConfig, FeeRatesConfig, HyperLiquidNetwork, -} from './types'; -export type { PerpsToken } from './types'; +} from './types.js'; +export type { PerpsToken } from './types.js'; // Constants (explicit named exports) export { @@ -332,10 +332,10 @@ export { getCandlePeriodsForDuration, getDefaultCandlePeriodForDuration, calculateCandleCount, -} from './constants'; -export { PERPS_EVENT_PROPERTY, PERPS_EVENT_VALUE } from './constants'; -export { DETAILED_ORDER_TYPES, isTPSLOrder } from './constants'; -export { PERPS_TRANSACTIONS_HISTORY_CONSTANTS } from './constants'; +} from './constants.js'; +export { PERPS_EVENT_PROPERTY, PERPS_EVENT_VALUE } from './constants.js'; +export { DETAILED_ORDER_TYPES, isTPSLOrder } from './constants.js'; +export { PERPS_TRANSACTIONS_HISTORY_CONSTANTS } from './constants.js'; export { ARBITRUM_MAINNET_CHAIN_ID_HEX, ARBITRUM_MAINNET_CHAIN_ID, @@ -389,9 +389,9 @@ export { INITIAL_AMOUNT_UI_PROGRESS, WITHDRAWAL_PROGRESS_STAGES, PROGRESS_BAR_COMPLETION_DELAY_MS, -} from './constants'; -export type { SupportedAsset } from './constants'; -export { PerpsMeasurementName } from './constants'; +} from './constants.js'; +export type { SupportedAsset } from './constants.js'; +export { PerpsMeasurementName } from './constants.js'; export { MYX_MAINNET_CHAIN_ID, MYX_TESTNET_CHAIN_ID, @@ -420,7 +420,7 @@ export { MYX_DEFAULT_SLIPPAGE_BPS, MYX_MINIMUM_ORDER_SIZE_USD, MYX_EXECUTION_FEE_TOKEN, -} from './constants'; +} from './constants.js'; export { PERPS_CONSTANTS, WITHDRAWAL_CONSTANTS, @@ -437,8 +437,8 @@ export { MARKET_SORTING_CONFIG, PROVIDER_CONFIG, FUNDING_RATE_CONFIG, -} from './constants'; -export type { SortOptionId } from './constants'; +} from './constants.js'; +export type { SortOptionId } from './constants.js'; // Utilities (explicit named exports) export { @@ -447,16 +447,16 @@ export { getSelectedEvmAccount, calculateWeightedReturnOnEquity, aggregateAccountStates, -} from './utils'; -export type { ReturnOnEquityInput } from './utils'; -export { ensureError, isAbortError } from './utils'; +} from './utils.js'; +export type { ReturnOnEquityInput } from './utils.js'; +export { ensureError, isAbortError } from './utils.js'; export type { OrderBookCacheEntry, ProcessL2BookDataParams, ProcessBboDataParams, -} from './utils'; -export { processL2BookData, processBboData } from './utils'; -export type { ValidationDebugLogger } from './utils'; +} from './utils.js'; +export { processL2BookData, processBboData } from './utils.js'; +export type { ValidationDebugLogger } from './utils.js'; export { createErrorResult, validateWithdrawalParams, @@ -468,26 +468,26 @@ export { getMaxOrderValue, validateOrderParams, validateCoinExists, -} from './utils'; +} from './utils.js'; export { generatePerpsId, generateDepositId, generateWithdrawalId, generateOrderId, generateTransactionId, -} from './utils'; +} from './utils.js'; export { calculateOpenInterestUSD, isMarketTradable, transformMarketData, formatChange, -} from './utils'; -export type { HyperLiquidMarketData } from './utils'; +} from './utils.js'; +export type { HyperLiquidMarketData } from './utils.js'; export { getPerpsConnectionAttemptContext, withPerpsConnectionAttemptContext, -} from './utils/perpsConnectionAttemptContext'; -export type { PerpsConnectionAttemptContext } from './utils/perpsConnectionAttemptContext'; +} from './utils/perpsConnectionAttemptContext.js'; +export type { PerpsConnectionAttemptContext } from './utils/perpsConnectionAttemptContext.js'; export { MAX_MARKET_PATTERN_LENGTH, escapeRegex, @@ -506,9 +506,9 @@ export { isHip3Market, rankMarketsByQuery, getMarketMatchRank, -} from './utils'; -export { MarketMatchRank } from './utils'; -export type { MarketPatternMatcher, CompiledMarketPattern } from './utils'; +} from './utils.js'; +export { MarketMatchRank } from './utils.js'; +export type { MarketPatternMatcher, CompiledMarketPattern } from './utils.js'; export type { OrderCalculationsDebugLogger, CalculateFinalPositionSizeParams, @@ -517,7 +517,7 @@ export type { CalculateOrderPriceAndSizeResult, BuildOrdersArrayParams, BuildOrdersArrayResult, -} from './utils'; +} from './utils.js'; export { calculatePositionSize, calculateMarginRequired, @@ -525,28 +525,28 @@ export { calculateFinalPositionSize, calculateOrderPriceAndSize, buildOrdersArray, -} from './utils'; +} from './utils.js'; export { formatAccountToCaipAccountId, isCaipAccountId, handleRewardsError, -} from './utils'; +} from './utils.js'; export { countSignificantFigures, hasExceededSignificantFigures, roundToSignificantFigures, -} from './utils'; -export type { SortMarketsParams } from './utils'; -export { parseVolume, sortMarkets } from './utils'; -export type { StandaloneInfoClientOptions } from './utils'; +} from './utils.js'; +export type { SortMarketsParams } from './utils.js'; +export { parseVolume, sortMarkets } from './utils.js'; +export type { StandaloneInfoClientOptions } from './utils.js'; export { createStandaloneInfoClient, queryStandaloneClearinghouseStates, queryStandaloneOpenOrders, -} from './utils'; -export { stripQuotes, parseCommaSeparatedString } from './utils'; -export { generateERC20TransferData } from './utils'; -export { wait } from './utils'; +} from './utils.js'; +export { stripQuotes, parseCommaSeparatedString } from './utils.js'; +export { generateERC20TransferData } from './utils.js'; +export { wait } from './utils.js'; export { adaptOrderToSDK, adaptPositionFromSDK, @@ -559,9 +559,9 @@ export { calculateHip3AssetId, parseAssetName, adaptHyperLiquidLedgerUpdateToUserHistoryItem, -} from './utils'; -export { getEnvironment } from './utils'; -export type { FiatRangeConfig } from './utils'; +} from './utils.js'; +export { getEnvironment } from './utils.js'; +export type { FiatRangeConfig } from './utils.js'; export { PRICE_THRESHOLD, formatWithSignificantDigits, @@ -572,11 +572,11 @@ export { formatPnl, formatPercentage, formatFundingRate, -} from './utils'; +} from './utils.js'; // Error codes (explicit named exports) -export { PERPS_ERROR_CODES } from './perpsErrorCodes'; -export type { PerpsErrorCode } from './perpsErrorCodes'; +export { PERPS_ERROR_CODES } from './perpsErrorCodes.js'; +export type { PerpsErrorCode } from './perpsErrorCodes.js'; // Selectors (explicit named exports) export { @@ -589,11 +589,11 @@ export { selectPendingTradeConfiguration, selectMarketFilterPreferences, selectOrderBookGrouping, -} from './selectors'; +} from './selectors.js'; // Services (only externally consumed items) -export { TradingReadinessCache } from './services/TradingReadinessCache'; -export type { ServiceContext } from './services/ServiceContext'; +export { TradingReadinessCache } from './services/TradingReadinessCache.js'; +export type { ServiceContext } from './services/ServiceContext.js'; // Removed with Live Market Prices component: // - usePerpsPrices diff --git a/packages/perps-controller/src/providers/AggregatedPerpsProvider.ts b/packages/perps-controller/src/providers/AggregatedPerpsProvider.ts index 1235af2f6da..3f842e3d257 100644 --- a/packages/perps-controller/src/providers/AggregatedPerpsProvider.ts +++ b/packages/perps-controller/src/providers/AggregatedPerpsProvider.ts @@ -16,9 +16,9 @@ import type { CaipAccountId } from '@metamask/utils'; -import { SubscriptionMultiplexer } from '../aggregation/SubscriptionMultiplexer'; -import { ProviderRouter } from '../routing/ProviderRouter'; -import { WebSocketConnectionState } from '../types'; +import { SubscriptionMultiplexer } from '../aggregation/SubscriptionMultiplexer.js'; +import { ProviderRouter } from '../routing/ProviderRouter.js'; +import { WebSocketConnectionState } from '../types.js'; import type { AccountState, AggregatedProviderConfig, @@ -80,7 +80,7 @@ import type { WithdrawResult, RawLedgerUpdate, PerpsReadOptions, -} from '../types'; +} from '../types.js'; /** * AggregatedPerpsProvider implements PerpsProvider by coordinating diff --git a/packages/perps-controller/src/providers/HyperLiquidProvider.ts b/packages/perps-controller/src/providers/HyperLiquidProvider.ts index aecd3627e03..062e6599e26 100644 --- a/packages/perps-controller/src/providers/HyperLiquidProvider.ts +++ b/packages/perps-controller/src/providers/HyperLiquidProvider.ts @@ -6,11 +6,11 @@ import type { } from '@nktkas/hyperliquid'; import { v4 as uuidv4 } from 'uuid'; -import type { CandlePeriod } from '../constants/chartConfig'; +import type { CandlePeriod } from '../constants/chartConfig.js'; import { PERPS_EVENT_PROPERTY, PERPS_EVENT_VALUE, -} from '../constants/eventNames'; +} from '../constants/eventNames.js'; import { BASIS_POINTS_DIVISOR, BUILDER_FEE_CONFIG, @@ -28,28 +28,28 @@ import { TRADING_DEFAULTS, USDC_DECIMALS, USDH_CONFIG, -} from '../constants/hyperLiquidConfig'; +} from '../constants/hyperLiquidConfig.js'; import { ORDER_SLIPPAGE_CONFIG, PERFORMANCE_CONFIG, PERPS_CONSTANTS, TP_SL_CONFIG, WITHDRAWAL_CONSTANTS, -} from '../constants/perpsConfig'; -import { PERPS_TRANSACTIONS_HISTORY_CONSTANTS } from '../constants/transactionsHistoryConfig'; -import { PERPS_ERROR_CODES } from '../perpsErrorCodes'; -import { DexDiscoveryCacheManager } from '../services/DexDiscoveryCacheManager'; +} from '../constants/perpsConfig.js'; +import { PERPS_TRANSACTIONS_HISTORY_CONSTANTS } from '../constants/transactionsHistoryConfig.js'; +import { PERPS_ERROR_CODES } from '../perpsErrorCodes.js'; +import { DexDiscoveryCacheManager } from '../services/DexDiscoveryCacheManager.js'; import { HyperLiquidClientService, WebSocketConnectionState, -} from '../services/HyperLiquidClientService'; -import { HyperLiquidSubscriptionService } from '../services/HyperLiquidSubscriptionService'; -import { HyperLiquidWalletService } from '../services/HyperLiquidWalletService'; +} from '../services/HyperLiquidClientService.js'; +import { HyperLiquidSubscriptionService } from '../services/HyperLiquidSubscriptionService.js'; +import { HyperLiquidWalletService } from '../services/HyperLiquidWalletService.js'; import { TradingReadinessCache, PerpsSigningCache, -} from '../services/TradingReadinessCache'; -import { PerpsAnalyticsEvent } from '../types'; +} from '../services/TradingReadinessCache.js'; +import { PerpsAnalyticsEvent } from '../types.js'; import type { AccountState, AssetRoute, @@ -111,30 +111,33 @@ import type { WithdrawResult, RawLedgerUpdate, PerpsReadOptions, -} from '../types'; +} from '../types.js'; import type { SDKOrderParams, MetaResponse, PerpsAssetCtx, SpotMetaResponse, -} from '../types/hyperliquid-types'; +} from '../types/hyperliquid-types.js'; import { HL_ABSTRACTION_WIRE, HL_UNIFIED_ACCOUNT_MODE, hyperLiquidModeFoldsSpot, -} from '../types/hyperliquid-types'; -import type { PerpsControllerMessengerBase } from '../types/messenger'; -import type { ExtendedAssetMeta, ExtendedPerpDex } from '../types/perps-types'; +} from '../types/hyperliquid-types.js'; +import type { PerpsControllerMessengerBase } from '../types/messenger.js'; +import type { + ExtendedAssetMeta, + ExtendedPerpDex, +} from '../types/perps-types.js'; import { addSpotBalanceToAccountState, aggregateAccountStates, -} from '../utils/accountUtils'; +} from '../utils/accountUtils.js'; import { ensureError, isHyperLiquidUserNotFoundError, isKeyringLockedError, -} from '../utils/errorUtils'; -import { shouldDeferUnifiedAccountSetup } from '../utils/hyperLiquidAbstraction'; +} from '../utils/errorUtils.js'; +import { shouldDeferUnifiedAccountSetup } from '../utils/hyperLiquidAbstraction.js'; import { adaptAccountStateFromSDK, adaptHyperLiquidLedgerUpdateToUserHistoryItem, @@ -145,7 +148,7 @@ import { formatHyperLiquidPrice, formatHyperLiquidSize, parseAssetName, -} from '../utils/hyperLiquidAdapter'; +} from '../utils/hyperLiquidAdapter.js'; import { createErrorResult, getMaxOrderValue, @@ -156,23 +159,23 @@ import { validateDepositParams, validateOrderParams, validateWithdrawalParams, -} from '../utils/hyperLiquidValidation'; -import { transformMarketData } from '../utils/marketDataTransform'; +} from '../utils/hyperLiquidValidation.js'; +import { transformMarketData } from '../utils/marketDataTransform.js'; import { compileMarketPattern, shouldIncludeMarket, -} from '../utils/marketUtils'; -import type { CompiledMarketPattern } from '../utils/marketUtils'; +} from '../utils/marketUtils.js'; +import type { CompiledMarketPattern } from '../utils/marketUtils.js'; import { buildOrdersArray, calculateFinalPositionSize, calculateOrderPriceAndSize, -} from '../utils/orderCalculations'; +} from '../utils/orderCalculations.js'; import { createStandaloneInfoClient, queryStandaloneClearinghouseStates, queryStandaloneOpenOrders, -} from '../utils/standaloneInfoClient'; +} from '../utils/standaloneInfoClient.js'; // getStreamManagerInstance removed: use this.#deps.streamManager instead /** @@ -3946,7 +3949,7 @@ export class HyperLiquidProvider implements PerpsProvider { this.#deps.debugLogger.log('Editing order:', params); // Validate size is positive (validateOrderParams no longer validates size) - const size = parseFloat(params.newOrder.size || '0'); + const size = parseFloat(params.newOrder.size ?? '0'); if (size <= 0) { return { success: false, @@ -4581,6 +4584,7 @@ export class HyperLiquidProvider implements PerpsProvider { order.isPositionTpsl === Boolean(TP_SL_CONFIG.UsePositionBoundTpsl) && order.detailedOrderType && + // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing (order.detailedOrderType.includes('Take Profit') || order.detailedOrderType.includes('Stop')), ); @@ -6907,7 +6911,7 @@ export class HyperLiquidProvider implements PerpsProvider { ); } else { // Fallback: Calculate from size × price - const size = parseFloat(params.size || '0'); + const size = parseFloat(params.size ?? '0'); let priceForValidation = params.currentPrice; // For limit orders without currentPrice, use limit price as fallback @@ -7419,8 +7423,8 @@ export class HyperLiquidProvider implements PerpsProvider { this.#deps.debugLogger.log( 'HyperLiquidProvider: CALLING SEND_ASSET API', { - sourceDex: params.sourceDex || '(main)', - destinationDex: params.destinationDex || '(main)', + sourceDex: params.sourceDex ?? '(main)', + destinationDex: params.destinationDex ?? '(main)', amount: params.amount, }, ); diff --git a/packages/perps-controller/src/providers/MYXProvider.ts b/packages/perps-controller/src/providers/MYXProvider.ts index 47845cac67a..4cf40bdccb1 100644 --- a/packages/perps-controller/src/providers/MYXProvider.ts +++ b/packages/perps-controller/src/providers/MYXProvider.ts @@ -14,17 +14,17 @@ import type { CaipAccountId } from '@metamask/utils'; import type { KlineResolution } from '@myx-trade/sdk'; -import { calculateCandleCount } from '../constants/chartConfig'; +import { calculateCandleCount } from '../constants/chartConfig.js'; import { MYX_MAX_LEVERAGE, MYX_FEE_RATE, MYX_PROTOCOL_FEE_RATE, -} from '../constants/myxConfig'; -import { PERPS_CONSTANTS } from '../constants/perpsConfig'; -import type { PerpsControllerMessenger } from '../PerpsController'; -import { MYXClientService } from '../services/MYXClientService'; -import { MYXWalletService } from '../services/MYXWalletService'; -import { WebSocketConnectionState } from '../types'; +} from '../constants/myxConfig.js'; +import { PERPS_CONSTANTS } from '../constants/perpsConfig.js'; +import type { PerpsControllerMessenger } from '../PerpsController.js'; +import { MYXClientService } from '../services/MYXClientService.js'; +import { MYXWalletService } from '../services/MYXWalletService.js'; +import { WebSocketConnectionState } from '../types.js'; import type { AccountState, AssetRoute, @@ -83,16 +83,16 @@ import type { WithdrawResult, RawLedgerUpdate, PerpsReadOptions, -} from '../types'; -import { MYXOrderStatusEnum } from '../types/myx-types'; +} from '../types.js'; +import { MYXOrderStatusEnum } from '../types/myx-types.js'; import type { MYXAuthConfig, MYXKlineDataResponse, MYXPoolSymbol, MYXTicker, -} from '../types/myx-types'; -import type { CandleData } from '../types/perps-types'; -import { ensureError } from '../utils/errorUtils'; +} from '../types/myx-types.js'; +import type { CandleData } from '../types/perps-types.js'; +import { ensureError } from '../utils/errorUtils.js'; import { adaptMarketFromMYX, adaptMarketDataFromMYX, @@ -108,7 +108,7 @@ import { filterMYXExclusiveMarkets, buildPoolSymbolMap, toMYXKlineResolution, -} from '../utils/myxAdapter'; +} from '../utils/myxAdapter.js'; // ============================================================================ // Constants diff --git a/packages/perps-controller/src/routing/ProviderRouter.ts b/packages/perps-controller/src/routing/ProviderRouter.ts index 2693d078071..099538c51d8 100644 --- a/packages/perps-controller/src/routing/ProviderRouter.ts +++ b/packages/perps-controller/src/routing/ProviderRouter.ts @@ -9,7 +9,7 @@ * are deferred to Phase 3. */ -import type { PerpsProviderType, RoutingStrategy } from '../types'; +import type { PerpsProviderType, RoutingStrategy } from '../types.js'; /** * Parameters for selecting a provider for an operation diff --git a/packages/perps-controller/src/routing/index.ts b/packages/perps-controller/src/routing/index.ts index e918f93fd85..12b69c6d5ea 100644 --- a/packages/perps-controller/src/routing/index.ts +++ b/packages/perps-controller/src/routing/index.ts @@ -1,5 +1,5 @@ /** * Provider routing module exports */ -export { ProviderRouter } from './ProviderRouter'; -export type { RouterSelectParams } from './ProviderRouter'; +export { ProviderRouter } from './ProviderRouter.js'; +export type { RouterSelectParams } from './ProviderRouter.js'; diff --git a/packages/perps-controller/src/selectors.ts b/packages/perps-controller/src/selectors.ts index 9f3813c531e..965680da6e5 100644 --- a/packages/perps-controller/src/selectors.ts +++ b/packages/perps-controller/src/selectors.ts @@ -4,9 +4,9 @@ import { MARKET_SORTING_CONFIG, PERPS_CONSTANTS, SortOptionId, -} from './constants/perpsConfig'; -import type { PerpsControllerState } from './PerpsController'; -import type { PerpsSelectedPaymentToken, SortDirection } from './types'; +} from './constants/perpsConfig.js'; +import type { PerpsControllerState } from './PerpsController.js'; +import type { PerpsSelectedPaymentToken, SortDirection } from './types.js'; /** * Select whether the user is a first-time perps user diff --git a/packages/perps-controller/src/services/AccountService.ts b/packages/perps-controller/src/services/AccountService.ts index 105beaab8f8..7abf0ed5cba 100644 --- a/packages/perps-controller/src/services/AccountService.ts +++ b/packages/perps-controller/src/services/AccountService.ts @@ -3,29 +3,29 @@ import { v4 as uuidv4 } from 'uuid'; import { PERPS_EVENT_PROPERTY, PERPS_EVENT_VALUE, -} from '../constants/eventNames'; -import { USDC_SYMBOL } from '../constants/hyperLiquidConfig'; +} from '../constants/eventNames.js'; +import { USDC_SYMBOL } from '../constants/hyperLiquidConfig.js'; import { PERPS_CONSTANTS, WITHDRAWAL_CONSTANTS, -} from '../constants/perpsConfig'; -import { PERPS_ERROR_CODES } from '../perpsErrorCodes'; +} from '../constants/perpsConfig.js'; +import { PERPS_ERROR_CODES } from '../perpsErrorCodes.js'; import { PerpsAnalyticsEvent, PerpsTraceNames, PerpsTraceOperations, -} from '../types'; +} from '../types.js'; import type { PerpsProvider, WithdrawParams, WithdrawResult, PerpsPlatformDependencies, -} from '../types'; -import type { PerpsControllerMessengerBase } from '../types/messenger'; -import type { TransactionStatus } from '../types/transactionTypes'; -import { getSelectedEvmAccountFromMessenger } from '../utils/accountUtils'; -import { ensureError } from '../utils/errorUtils'; -import type { ServiceContext } from './ServiceContext'; +} from '../types.js'; +import type { PerpsControllerMessengerBase } from '../types/messenger.js'; +import type { TransactionStatus } from '../types/transactionTypes.js'; +import { getSelectedEvmAccountFromMessenger } from '../utils/accountUtils.js'; +import { ensureError } from '../utils/errorUtils.js'; +import type { ServiceContext } from './ServiceContext.js'; /** * AccountService diff --git a/packages/perps-controller/src/services/DataLakeService.ts b/packages/perps-controller/src/services/DataLakeService.ts index 67ad5115c5a..e926581edaf 100644 --- a/packages/perps-controller/src/services/DataLakeService.ts +++ b/packages/perps-controller/src/services/DataLakeService.ts @@ -1,16 +1,16 @@ import { v4 as uuidv4 } from 'uuid'; -import { PerpsMeasurementName } from '../constants/performanceMetrics'; +import { PerpsMeasurementName } from '../constants/performanceMetrics.js'; import { DATA_LAKE_API_CONFIG, PERPS_CONSTANTS, -} from '../constants/perpsConfig'; -import { PerpsTraceNames, PerpsTraceOperations } from '../types'; -import type { PerpsPlatformDependencies } from '../types'; -import type { PerpsControllerMessengerBase } from '../types/messenger'; -import { getSelectedEvmAccountFromMessenger } from '../utils/accountUtils'; -import { ensureError } from '../utils/errorUtils'; -import type { ServiceContext } from './ServiceContext'; +} from '../constants/perpsConfig.js'; +import { PerpsTraceNames, PerpsTraceOperations } from '../types.js'; +import type { PerpsPlatformDependencies } from '../types.js'; +import type { PerpsControllerMessengerBase } from '../types/messenger.js'; +import { getSelectedEvmAccountFromMessenger } from '../utils/accountUtils.js'; +import { ensureError } from '../utils/errorUtils.js'; +import type { ServiceContext } from './ServiceContext.js'; /** * DataLakeService diff --git a/packages/perps-controller/src/services/DepositService.ts b/packages/perps-controller/src/services/DepositService.ts index d1feadcf475..ad22ebde834 100644 --- a/packages/perps-controller/src/services/DepositService.ts +++ b/packages/perps-controller/src/services/DepositService.ts @@ -2,16 +2,16 @@ import { toHex } from '@metamask/controller-utils'; import { parseCaipAssetId } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import { DEPOSIT_CONFIG } from '../constants/hyperLiquidConfig'; +import { DEPOSIT_CONFIG } from '../constants/hyperLiquidConfig.js'; import type { PerpsProvider, PerpsPlatformDependencies, PerpsTransactionParams, -} from '../types'; -import type { PerpsControllerMessengerBase } from '../types/messenger'; -import { getSelectedEvmAccountFromMessenger } from '../utils/accountUtils'; -import { generateDepositId } from '../utils/idUtils'; -import { generateERC20TransferData } from '../utils/transferData'; +} from '../types.js'; +import type { PerpsControllerMessengerBase } from '../types/messenger.js'; +import { getSelectedEvmAccountFromMessenger } from '../utils/accountUtils.js'; +import { generateDepositId } from '../utils/idUtils.js'; +import { generateERC20TransferData } from '../utils/transferData.js'; // Temporary to avoid estimation failures due to insufficient balance const DEPOSIT_GAS_LIMIT = toHex(DEPOSIT_CONFIG.EstimatedGasLimit); diff --git a/packages/perps-controller/src/services/DexDiscoveryCacheManager.ts b/packages/perps-controller/src/services/DexDiscoveryCacheManager.ts index 4413ffa8992..3ed2a912489 100644 --- a/packages/perps-controller/src/services/DexDiscoveryCacheManager.ts +++ b/packages/perps-controller/src/services/DexDiscoveryCacheManager.ts @@ -1,8 +1,11 @@ import { MAINNET_HIP3_CONFIG, TESTNET_HIP3_CONFIG, -} from '../constants/hyperLiquidConfig'; -import type { DexDiscoveryState, ExtendedPerpDex } from '../types/perps-types'; +} from '../constants/hyperLiquidConfig.js'; +import type { + DexDiscoveryState, + ExtendedPerpDex, +} from '../types/perps-types.js'; type DexDiscoveryDeps = { isTestnetMode: () => boolean; diff --git a/packages/perps-controller/src/services/EligibilityService.ts b/packages/perps-controller/src/services/EligibilityService.ts index 2e6770ba25b..c175c265cf8 100644 --- a/packages/perps-controller/src/services/EligibilityService.ts +++ b/packages/perps-controller/src/services/EligibilityService.ts @@ -1,9 +1,9 @@ -import { PERPS_CONSTANTS } from '../constants/perpsConfig'; +import { PERPS_CONSTANTS } from '../constants/perpsConfig.js'; import type { PerpsPlatformDependencies, CheckEligibilityParams, -} from '../types'; -import { ensureError } from '../utils/errorUtils'; +} from '../types.js'; +import { ensureError } from '../utils/errorUtils.js'; /** * EligibilityService diff --git a/packages/perps-controller/src/services/FeatureFlagConfigurationService.ts b/packages/perps-controller/src/services/FeatureFlagConfigurationService.ts index 6b1cbb6fa3d..2a0b62045a9 100644 --- a/packages/perps-controller/src/services/FeatureFlagConfigurationService.ts +++ b/packages/perps-controller/src/services/FeatureFlagConfigurationService.ts @@ -1,18 +1,18 @@ import { hasProperty } from '@metamask/utils'; -import { PERPS_CONSTANTS } from '../constants/perpsConfig'; -import { isVersionGatedFeatureFlag } from '../types'; +import { PERPS_CONSTANTS } from '../constants/perpsConfig.js'; +import { isVersionGatedFeatureFlag } from '../types.js'; import type { PerpsPlatformDependencies, PerpsRemoteFeatureFlagState, -} from '../types'; -import { ensureError } from '../utils/errorUtils'; -import { validateMarketPattern } from '../utils/marketUtils'; +} from '../types.js'; +import { ensureError } from '../utils/errorUtils.js'; +import { validateMarketPattern } from '../utils/marketUtils.js'; import { parseCommaSeparatedString, stripQuotes, -} from '../utils/stringParseUtils'; -import type { ServiceContext } from './ServiceContext'; +} from '../utils/stringParseUtils.js'; +import type { ServiceContext } from './ServiceContext.js'; /** * FeatureFlagConfigurationService diff --git a/packages/perps-controller/src/services/HyperLiquidClientService.ts b/packages/perps-controller/src/services/HyperLiquidClientService.ts index e668e938eb4..c9ba9b59da7 100644 --- a/packages/perps-controller/src/services/HyperLiquidClientService.ts +++ b/packages/perps-controller/src/services/HyperLiquidClientService.ts @@ -8,20 +8,26 @@ import { } from '@nktkas/hyperliquid'; import type { HistoricalOrdersResponse } from '@nktkas/hyperliquid'; -import { CandlePeriod, calculateCandleCount } from '../constants/chartConfig'; -import { HYPERLIQUID_TRANSPORT_CONFIG } from '../constants/hyperLiquidConfig'; -import { PERFORMANCE_CONFIG, PERPS_CONSTANTS } from '../constants/perpsConfig'; -import { PERPS_ERROR_CODES } from '../perpsErrorCodes'; -import { WebSocketConnectionState } from '../types'; +import { + CandlePeriod, + calculateCandleCount, +} from '../constants/chartConfig.js'; +import { HYPERLIQUID_TRANSPORT_CONFIG } from '../constants/hyperLiquidConfig.js'; +import { + PERFORMANCE_CONFIG, + PERPS_CONSTANTS, +} from '../constants/perpsConfig.js'; +import { PERPS_ERROR_CODES } from '../perpsErrorCodes.js'; +import { WebSocketConnectionState } from '../types.js'; import type { SubscribeCandlesParams, PerpsPlatformDependencies, -} from '../types'; -import type { HyperLiquidNetwork } from '../types/config'; -import type { CandleData } from '../types/perps-types'; -import { coalescePerpsRestRequest } from '../utils/coalescePerpsRestRequest'; -import { ensureError, isAbortError } from '../utils/errorUtils'; -import { getPerpsConnectionAttemptContext } from '../utils/perpsConnectionAttemptContext'; +} from '../types.js'; +import type { HyperLiquidNetwork } from '../types/config.js'; +import type { CandleData } from '../types/perps-types.js'; +import { coalescePerpsRestRequest } from '../utils/coalescePerpsRestRequest.js'; +import { ensureError, isAbortError } from '../utils/errorUtils.js'; +import { getPerpsConnectionAttemptContext } from '../utils/perpsConnectionAttemptContext.js'; /** * Maximum number of reconnection attempts before giving up. @@ -57,7 +63,7 @@ export type HyperLiquidWalletParams = { // WebSocketConnectionState is now imported from controllers/types // Re-export for backward compatibility with existing consumers -export { WebSocketConnectionState } from '../types'; +export { WebSocketConnectionState } from '../types.js'; /** * Service for managing HyperLiquid SDK clients diff --git a/packages/perps-controller/src/services/HyperLiquidSubscriptionService.ts b/packages/perps-controller/src/services/HyperLiquidSubscriptionService.ts index 533ce74f1e8..d9c76a01796 100644 --- a/packages/perps-controller/src/services/HyperLiquidSubscriptionService.ts +++ b/packages/perps-controller/src/services/HyperLiquidSubscriptionService.ts @@ -16,13 +16,13 @@ import type { SpotStateWsEvent, } from '@nktkas/hyperliquid'; -import { HYPERLIQUID_CONFIG } from '../constants/hyperLiquidConfig'; +import { HYPERLIQUID_CONFIG } from '../constants/hyperLiquidConfig.js'; import { TP_SL_CONFIG, PERPS_CONSTANTS, ABSTRACTION_MODE_REFRESH_THROTTLE_MS, -} from '../constants/perpsConfig'; -import { WebSocketConnectionState } from '../types'; +} from '../constants/perpsConfig.js'; +import { WebSocketConnectionState } from '../types.js'; import type { PriceUpdate, Position, @@ -40,32 +40,32 @@ import type { OrderBookLevel, PerpsPlatformDependencies, PerpsLogger, -} from '../types'; +} from '../types.js'; import type { SpotClearinghouseStateResponse, HyperLiquidAbstractionMode, UserAbstractionResponse, -} from '../types/hyperliquid-types'; -import { hyperLiquidModeFoldsSpot } from '../types/hyperliquid-types'; +} from '../types/hyperliquid-types.js'; +import { hyperLiquidModeFoldsSpot } from '../types/hyperliquid-types.js'; import { addSpotBalanceToAccountState, calculateWeightedReturnOnEquity, -} from '../utils/accountUtils'; -import type { AddSpotBalanceOptions } from '../utils/accountUtils'; -import { ensureError } from '../utils/errorUtils'; +} from '../utils/accountUtils.js'; +import type { AddSpotBalanceOptions } from '../utils/accountUtils.js'; +import { ensureError } from '../utils/errorUtils.js'; import { adaptPositionFromSDK, adaptOrderFromSDK, adaptAccountStateFromSDK, parseAssetName, -} from '../utils/hyperLiquidAdapter'; -import { processBboData } from '../utils/hyperLiquidOrderBookProcessor'; +} from '../utils/hyperLiquidAdapter.js'; +import { processBboData } from '../utils/hyperLiquidOrderBookProcessor.js'; import { calculateOpenInterestUSD, isMarketTradable, -} from '../utils/marketDataTransform'; -import type { HyperLiquidClientService } from './HyperLiquidClientService'; -import type { HyperLiquidWalletService } from './HyperLiquidWalletService'; +} from '../utils/marketDataTransform.js'; +import type { HyperLiquidClientService } from './HyperLiquidClientService.js'; +import type { HyperLiquidWalletService } from './HyperLiquidWalletService.js'; /** * Service for managing HyperLiquid WebSocket subscriptions @@ -781,7 +781,7 @@ export class HyperLiquidSubscriptionService { pos.takeProfitPrice ?? '' }:${pos.stopLossPrice ?? ''}:${pos.takeProfitCount}:${pos.stopLossCount}:${ pos.unrealizedPnl - }:${pos.returnOnEquity}:${pos.liquidationPrice ?? ''}:${pos.marginUsed || ''}`, + }:${pos.returnOnEquity}:${pos.liquidationPrice ?? ''}:${pos.marginUsed ?? ''}`, ) .join('|'); } @@ -872,7 +872,7 @@ export class HyperLiquidSubscriptionService { // Fallback: determine based on trigger price vs entry price // This handles orders with ambiguous type 'Trigger' const triggerPrice = parseFloat(tpslPrice); - const entryPrice = parseFloat(matchingPosition.entryPrice || '0'); + const entryPrice = parseFloat(matchingPosition.entryPrice ?? '0'); const isLong = parseFloat(matchingPosition.size) > 0; if (isLong) { @@ -961,7 +961,7 @@ export class HyperLiquidSubscriptionService { // Fallback: determine based on trigger price vs entry price // This handles orders with ambiguous type 'Trigger' const triggerPrice = parseFloat(order.triggerPx); - const entryPrice = parseFloat(position.entryPrice || '0'); + const entryPrice = parseFloat(position.entryPrice ?? '0'); const isLong = parseFloat(position.size) > 0; if (isLong) { diff --git a/packages/perps-controller/src/services/HyperLiquidWalletService.ts b/packages/perps-controller/src/services/HyperLiquidWalletService.ts index ee6688609db..636ceb2d1ee 100644 --- a/packages/perps-controller/src/services/HyperLiquidWalletService.ts +++ b/packages/perps-controller/src/services/HyperLiquidWalletService.ts @@ -5,17 +5,17 @@ import { } from '@metamask/utils'; import type { CaipAccountId, Hex } from '@metamask/utils'; -import { getChainId } from '../constants/hyperLiquidConfig'; -import { PERPS_ERROR_CODES } from '../perpsErrorCodes'; +import { getChainId } from '../constants/hyperLiquidConfig.js'; +import { PERPS_ERROR_CODES } from '../perpsErrorCodes.js'; import type { PerpsPlatformDependencies, PerpsTypedMessageParams, -} from '../types'; -import type { PerpsControllerMessengerBase } from '../types/messenger'; +} from '../types.js'; +import type { PerpsControllerMessengerBase } from '../types/messenger.js'; import { getSelectedEvmAccountDetailsFromMessenger, getSelectedEvmAccountFromMessenger, -} from '../utils/accountUtils'; +} from '../utils/accountUtils.js'; // Mirrors KeyringTypes from @metamask/keyring-controller. Inlined to keep this // service portable between mobile and the core monorepo. diff --git a/packages/perps-controller/src/services/MYXClientService.ts b/packages/perps-controller/src/services/MYXClientService.ts index e8bbbc47328..e6c5b29bf23 100644 --- a/packages/perps-controller/src/services/MYXClientService.ts +++ b/packages/perps-controller/src/services/MYXClientService.ts @@ -19,9 +19,9 @@ import { MYX_PRICE_POLLING_INTERVAL_MS, getMYXChainId, getMYXHttpEndpoint, -} from '../constants/myxConfig'; -import { PERPS_CONSTANTS, ZERO_ADDRESS } from '../constants/perpsConfig'; -import type { PerpsPlatformDependencies } from '../types'; +} from '../constants/myxConfig.js'; +import { PERPS_CONSTANTS, ZERO_ADDRESS } from '../constants/perpsConfig.js'; +import type { PerpsPlatformDependencies } from '../types.js'; import type { MYXAuthConfig, MYXPoolSymbol, @@ -31,8 +31,8 @@ import type { MYXPositionHistoryItem, MYXTradeFlowItem, MYXGetHistoryOrdersParams, -} from '../types/myx-types'; -import { ensureError } from '../utils/errorUtils'; +} from '../types/myx-types.js'; +import { ensureError } from '../utils/errorUtils.js'; // ============================================================================ // Types diff --git a/packages/perps-controller/src/services/MYXWalletService.ts b/packages/perps-controller/src/services/MYXWalletService.ts index a2720fab7f7..3f96a97d027 100644 --- a/packages/perps-controller/src/services/MYXWalletService.ts +++ b/packages/perps-controller/src/services/MYXWalletService.ts @@ -22,11 +22,11 @@ import { getMYXChainId, MYX_TESTNET_CHAIN_ID, MYX_MAINNET_CHAIN_ID, -} from '../constants/myxConfig'; -import type { PerpsControllerMessenger } from '../PerpsController'; -import { PERPS_ERROR_CODES } from '../perpsErrorCodes'; -import type { PerpsPlatformDependencies } from '../types'; -import { getSelectedEvmAccountFromMessenger } from '../utils/accountUtils'; +} from '../constants/myxConfig.js'; +import type { PerpsControllerMessenger } from '../PerpsController.js'; +import { PERPS_ERROR_CODES } from '../perpsErrorCodes.js'; +import type { PerpsPlatformDependencies } from '../types.js'; +import { getSelectedEvmAccountFromMessenger } from '../utils/accountUtils.js'; export class MYXWalletService { #isTestnet: boolean; diff --git a/packages/perps-controller/src/services/MarketDataService.ts b/packages/perps-controller/src/services/MarketDataService.ts index eeda1c8d2ba..d0a833748d9 100644 --- a/packages/perps-controller/src/services/MarketDataService.ts +++ b/packages/perps-controller/src/services/MarketDataService.ts @@ -1,10 +1,10 @@ import { v4 as uuidv4 } from 'uuid'; -import type { CandlePeriod } from '../constants/chartConfig'; -import { PerpsMeasurementName } from '../constants/performanceMetrics'; -import { PERPS_CONSTANTS } from '../constants/perpsConfig'; -import { PERPS_ERROR_CODES } from '../perpsErrorCodes'; -import { PerpsTraceNames, PerpsTraceOperations } from '../types'; +import type { CandlePeriod } from '../constants/chartConfig.js'; +import { PerpsMeasurementName } from '../constants/performanceMetrics.js'; +import { PERPS_CONSTANTS } from '../constants/perpsConfig.js'; +import { PERPS_ERROR_CODES } from '../perpsErrorCodes.js'; +import { PerpsTraceNames, PerpsTraceOperations } from '../types.js'; import type { PerpsProvider, Position, @@ -33,12 +33,12 @@ import type { PerpsPlatformDependencies, PerpsMarketData, TerminalAssetMetadata, -} from '../types'; -import type { CandleData } from '../types/perps-types'; -import { coalescePerpsRestRequest } from '../utils/coalescePerpsRestRequest'; -import { ensureError, isAbortError } from '../utils/errorUtils'; -import { applyMarketFilters } from '../utils/marketUtils'; -import type { ServiceContext } from './ServiceContext'; +} from '../types.js'; +import type { CandleData } from '../types/perps-types.js'; +import { coalescePerpsRestRequest } from '../utils/coalescePerpsRestRequest.js'; +import { ensureError, isAbortError } from '../utils/errorUtils.js'; +import { applyMarketFilters } from '../utils/marketUtils.js'; +import type { ServiceContext } from './ServiceContext.js'; /** * MarketDataService diff --git a/packages/perps-controller/src/services/RewardsIntegrationService.ts b/packages/perps-controller/src/services/RewardsIntegrationService.ts index 6717d5da976..0e501fdd207 100644 --- a/packages/perps-controller/src/services/RewardsIntegrationService.ts +++ b/packages/perps-controller/src/services/RewardsIntegrationService.ts @@ -1,13 +1,13 @@ import { BASIS_POINTS_DIVISOR, BUILDER_FEE_CONFIG, -} from '../constants/hyperLiquidConfig'; -import { PERPS_CONSTANTS } from '../constants/perpsConfig'; -import type { PerpsPlatformDependencies } from '../types'; -import type { PerpsControllerMessengerBase } from '../types/messenger'; -import { getSelectedEvmAccountFromMessenger } from '../utils/accountUtils'; -import { ensureError } from '../utils/errorUtils'; -import { formatAccountToCaipAccountId } from '../utils/rewardsUtils'; +} from '../constants/hyperLiquidConfig.js'; +import { PERPS_CONSTANTS } from '../constants/perpsConfig.js'; +import type { PerpsPlatformDependencies } from '../types.js'; +import type { PerpsControllerMessengerBase } from '../types/messenger.js'; +import { getSelectedEvmAccountFromMessenger } from '../utils/accountUtils.js'; +import { ensureError } from '../utils/errorUtils.js'; +import { formatAccountToCaipAccountId } from '../utils/rewardsUtils.js'; /** * RewardsIntegrationService diff --git a/packages/perps-controller/src/services/ServiceContext.ts b/packages/perps-controller/src/services/ServiceContext.ts index a14cd024b93..9f2f9aebcbf 100644 --- a/packages/perps-controller/src/services/ServiceContext.ts +++ b/packages/perps-controller/src/services/ServiceContext.ts @@ -1,5 +1,5 @@ -import type { PerpsControllerState } from '../PerpsController'; -import type { Order, Position } from '../types'; +import type { PerpsControllerState } from '../PerpsController.js'; +import type { Order, Position } from '../types.js'; /** * ServiceContext diff --git a/packages/perps-controller/src/services/TerminalMarketService.ts b/packages/perps-controller/src/services/TerminalMarketService.ts index adbe5598b28..feaa6d98114 100644 --- a/packages/perps-controller/src/services/TerminalMarketService.ts +++ b/packages/perps-controller/src/services/TerminalMarketService.ts @@ -11,14 +11,17 @@ import { union, } from '@metamask/superstruct'; -import { PERPS_CONSTANTS, TERMINAL_API_CONFIG } from '../constants/perpsConfig'; +import { + PERPS_CONSTANTS, + TERMINAL_API_CONFIG, +} from '../constants/perpsConfig.js'; import type { MarketInfo, PerpsPlatformDependencies, TerminalAssetMetadata, -} from '../types'; -import { MarketCategory } from '../types'; -import { ensureError } from '../utils/errorUtils'; +} from '../types.js'; +import { MarketCategory } from '../types.js'; +import { ensureError } from '../utils/errorUtils.js'; const VALID_MARKET_TYPES = new Set(Object.values(MarketCategory)); diff --git a/packages/perps-controller/src/services/TradingService.ts b/packages/perps-controller/src/services/TradingService.ts index a5427bad03a..15efbd878ec 100644 --- a/packages/perps-controller/src/services/TradingService.ts +++ b/packages/perps-controller/src/services/TradingService.ts @@ -4,15 +4,15 @@ import { v4 as uuidv4 } from 'uuid'; import { PERPS_EVENT_PROPERTY, PERPS_EVENT_VALUE, -} from '../constants/eventNames'; -import { isTPSLOrder } from '../constants/orderTypes'; -import { PerpsMeasurementName } from '../constants/performanceMetrics'; -import { PERPS_CONSTANTS } from '../constants/perpsConfig'; +} from '../constants/eventNames.js'; +import { isTPSLOrder } from '../constants/orderTypes.js'; +import { PerpsMeasurementName } from '../constants/performanceMetrics.js'; +import { PERPS_CONSTANTS } from '../constants/perpsConfig.js'; import { PerpsAnalyticsEvent, PerpsTraceNames, PerpsTraceOperations, -} from '../types'; +} from '../types.js'; import type { PerpsProvider, OrderParams, @@ -30,10 +30,10 @@ import type { UpdatePositionTPSLParams, PerpsAnalyticsProperties, PerpsPlatformDependencies, -} from '../types'; -import { ensureError } from '../utils/errorUtils'; -import type { RewardsIntegrationService } from './RewardsIntegrationService'; -import type { ServiceContext } from './ServiceContext'; +} from '../types.js'; +import { ensureError } from '../utils/errorUtils.js'; +import type { RewardsIntegrationService } from './RewardsIntegrationService.js'; +import type { ServiceContext } from './ServiceContext.js'; /** * Controller-level dependencies for TradingService. @@ -2362,7 +2362,7 @@ export class TradingService { ? PERPS_EVENT_VALUE.DIRECTION.LONG : PERPS_EVENT_VALUE.DIRECTION.SHORT, [PERPS_EVENT_PROPERTY.ORDER_TYPE]: 'market', - [PERPS_EVENT_PROPERTY.LEVERAGE]: position.leverage?.value || 1, + [PERPS_EVENT_PROPERTY.LEVERAGE]: position.leverage?.value ?? 1, [PERPS_EVENT_PROPERTY.ORDER_SIZE]: positionSize, [PERPS_EVENT_PROPERTY.ACTION]: flipAction, ...this.#buildAttributionProperties(trackingData), @@ -2395,7 +2395,7 @@ export class TradingService { ? PERPS_EVENT_VALUE.DIRECTION.LONG : PERPS_EVENT_VALUE.DIRECTION.SHORT, [PERPS_EVENT_PROPERTY.ORDER_TYPE]: 'market', - [PERPS_EVENT_PROPERTY.LEVERAGE]: position.leverage?.value || 1, + [PERPS_EVENT_PROPERTY.LEVERAGE]: position.leverage?.value ?? 1, [PERPS_EVENT_PROPERTY.ORDER_SIZE]: positionSize, [PERPS_EVENT_PROPERTY.COMPLETION_DURATION]: completionDuration, [PERPS_EVENT_PROPERTY.ACTION]: flipAction, diff --git a/packages/perps-controller/src/types/index.ts b/packages/perps-controller/src/types/index.ts index 7e9bee75f06..75324414d64 100644 --- a/packages/perps-controller/src/types/index.ts +++ b/packages/perps-controller/src/types/index.ts @@ -6,8 +6,8 @@ import type { Hex, } from '@metamask/utils'; -import type { CandlePeriod, TimeDuration } from '../constants/chartConfig'; -import type { CandleData, OrderType } from './perps-types'; +import type { CandlePeriod, TimeDuration } from '../constants/chartConfig.js'; +import type { CandleData, OrderType } from './perps-types.js'; /** * Connection states for WebSocket management. @@ -1961,8 +1961,8 @@ export function isVersionGatedFeatureFlag( // These types live in separate files within types/ and need to be accessible // from the root barrel via `export * from './types'`. // ============================================================================ -export type * from './perps-types'; -export * from './transactionTypes'; +export type * from './perps-types.js'; +export * from './transactionTypes.js'; // hyperliquid-types: selective export to avoid OrderType clash with main types export type { AssetPosition, @@ -1980,4 +1980,4 @@ export type { MetaAndAssetCtxsResponse, PredictedFundingsResponse, SpotMetaResponse, -} from './hyperliquid-types'; +} from './hyperliquid-types.js'; diff --git a/packages/perps-controller/src/types/perps-types.ts b/packages/perps-controller/src/types/perps-types.ts index c393ae46796..126ad9c31c0 100644 --- a/packages/perps-controller/src/types/perps-types.ts +++ b/packages/perps-controller/src/types/perps-types.ts @@ -1,7 +1,7 @@ /** * Test result states for SDK validation */ -import { CandlePeriod } from '../constants/chartConfig'; +import { CandlePeriod } from '../constants/chartConfig.js'; // Order type enumeration export type OrderType = 'market' | 'limit'; @@ -71,10 +71,10 @@ export type { TradingDefaultsConfig, FeeRatesConfig, HyperLiquidNetwork, -} from './config'; +} from './config.js'; // Token types -export type { PerpsToken } from './token'; +export type { PerpsToken } from './token.js'; /** * Order form state for the Perps order view diff --git a/packages/perps-controller/src/utils/accountUtils.ts b/packages/perps-controller/src/utils/accountUtils.ts index 2d50fffd2dc..de6bd52f6f9 100644 --- a/packages/perps-controller/src/utils/accountUtils.ts +++ b/packages/perps-controller/src/utils/accountUtils.ts @@ -4,9 +4,9 @@ */ import type { InternalAccount } from '@metamask/keyring-internal-api'; -import { PERPS_CONSTANTS } from '../constants/perpsConfig'; -import type { AccountState, PerpsInternalAccount } from '../types'; -import type { SpotClearinghouseStateResponse } from '../types/hyperliquid-types'; +import { PERPS_CONSTANTS } from '../constants/perpsConfig.js'; +import type { AccountState, PerpsInternalAccount } from '../types.js'; +import type { SpotClearinghouseStateResponse } from '../types/hyperliquid-types.js'; const EVM_ACCOUNT_TYPES = new Set(['eip155:eoa', 'eip155:erc4337']); diff --git a/packages/perps-controller/src/utils/coalescePerpsRestRequest.ts b/packages/perps-controller/src/utils/coalescePerpsRestRequest.ts index 4632aa522fb..31d80c999d0 100644 --- a/packages/perps-controller/src/utils/coalescePerpsRestRequest.ts +++ b/packages/perps-controller/src/utils/coalescePerpsRestRequest.ts @@ -1,4 +1,4 @@ -import { PERFORMANCE_CONFIG } from '../constants/perpsConfig'; +import { PERFORMANCE_CONFIG } from '../constants/perpsConfig.js'; // Rapid perps market switching (candle bridge + activity tab burst) drives // duplicate REST calls against api.hyperliquid.xyz and occasionally trips 429. diff --git a/packages/perps-controller/src/utils/errorUtils.ts b/packages/perps-controller/src/utils/errorUtils.ts index c0c6e6b1439..c3e7c581d9f 100644 --- a/packages/perps-controller/src/utils/errorUtils.ts +++ b/packages/perps-controller/src/utils/errorUtils.ts @@ -4,7 +4,7 @@ */ import { hasProperty } from '@metamask/utils'; -import { PERPS_ERROR_CODES } from '../perpsErrorCodes'; +import { PERPS_ERROR_CODES } from '../perpsErrorCodes.js'; /** * Detects expected cancellation/abort errors that should not be reported to Sentry. diff --git a/packages/perps-controller/src/utils/hyperLiquidAbstraction.ts b/packages/perps-controller/src/utils/hyperLiquidAbstraction.ts index 7f45768b26a..606befac4d4 100644 --- a/packages/perps-controller/src/utils/hyperLiquidAbstraction.ts +++ b/packages/perps-controller/src/utils/hyperLiquidAbstraction.ts @@ -1,4 +1,4 @@ -import type { HyperLiquidAbstractionMode } from '../types/hyperliquid-types'; +import type { HyperLiquidAbstractionMode } from '../types/hyperliquid-types.js'; const MIGRATABLE_ABSTRACTION_MODES = new Set([ 'dexAbstraction', diff --git a/packages/perps-controller/src/utils/hyperLiquidAdapter.ts b/packages/perps-controller/src/utils/hyperLiquidAdapter.ts index ac4aafed9eb..191ae3002c2 100644 --- a/packages/perps-controller/src/utils/hyperLiquidAdapter.ts +++ b/packages/perps-controller/src/utils/hyperLiquidAdapter.ts @@ -1,7 +1,7 @@ import { hasProperty, Hex, isHexString } from '@metamask/utils'; -import { HIP3_ASSET_ID_CONFIG } from '../constants/hyperLiquidConfig'; -import { DECIMAL_PRECISION_CONFIG } from '../constants/perpsConfig'; +import { HIP3_ASSET_ID_CONFIG } from '../constants/hyperLiquidConfig.js'; +import { DECIMAL_PRECISION_CONFIG } from '../constants/perpsConfig.js'; import type { AccountState, MarketInfo, @@ -10,18 +10,18 @@ import type { Position, RawLedgerUpdate, UserHistoryItem, -} from '../types'; +} from '../types.js'; import type { AssetPosition, FrontendOrder, ClearinghouseStateResponse, MetaResponse, SDKOrderParams, -} from '../types/hyperliquid-types'; +} from '../types/hyperliquid-types.js'; import { countSignificantFigures, roundToSignificantFigures, -} from './significantFigures'; +} from './significantFigures.js'; type FrontendOrderWithParentTpsl = FrontendOrder & { takeProfitPrice?: unknown; diff --git a/packages/perps-controller/src/utils/hyperLiquidOrderBookProcessor.ts b/packages/perps-controller/src/utils/hyperLiquidOrderBookProcessor.ts index c1fb1e1065f..c8946f2b578 100644 --- a/packages/perps-controller/src/utils/hyperLiquidOrderBookProcessor.ts +++ b/packages/perps-controller/src/utils/hyperLiquidOrderBookProcessor.ts @@ -1,6 +1,6 @@ import type { BboWsEvent, L2BookResponse } from '@nktkas/hyperliquid'; -import type { PriceUpdate } from '../types'; +import type { PriceUpdate } from '../types.js'; /** * HyperLiquid Order Book Processor diff --git a/packages/perps-controller/src/utils/hyperLiquidValidation.ts b/packages/perps-controller/src/utils/hyperLiquidValidation.ts index cdd593c5b44..8d61e9742e3 100644 --- a/packages/perps-controller/src/utils/hyperLiquidValidation.ts +++ b/packages/perps-controller/src/utils/hyperLiquidValidation.ts @@ -5,10 +5,10 @@ import { HYPERLIQUID_ASSET_CONFIGS, getSupportedAssets, TRADING_DEFAULTS, -} from '../constants/hyperLiquidConfig'; -import { HYPERLIQUID_ORDER_LIMITS } from '../constants/perpsConfig'; -import { PERPS_ERROR_CODES } from '../perpsErrorCodes'; -import type { GetSupportedPathsParams, PerpsDebugLogger } from '../types'; +} from '../constants/hyperLiquidConfig.js'; +import { HYPERLIQUID_ORDER_LIMITS } from '../constants/perpsConfig.js'; +import { PERPS_ERROR_CODES } from '../perpsErrorCodes.js'; +import type { GetSupportedPathsParams, PerpsDebugLogger } from '../types.js'; /** * Optional debug logger for validation functions. diff --git a/packages/perps-controller/src/utils/index.ts b/packages/perps-controller/src/utils/index.ts index 95e5e99cae3..079adb1abf9 100644 --- a/packages/perps-controller/src/utils/index.ts +++ b/packages/perps-controller/src/utils/index.ts @@ -4,8 +4,8 @@ * Note: hyperLiquidAdapter and orderCalculations both export calculatePositionSize. * We use selective exports to avoid the name collision. */ -export * from './accountUtils'; -export * from './errorUtils'; +export * from './accountUtils.js'; +export * from './errorUtils.js'; // hyperLiquidAdapter: selective export to avoid calculatePositionSize clash with orderCalculations export { adaptOrderToSDK, @@ -19,26 +19,26 @@ export { calculateHip3AssetId, parseAssetName, adaptHyperLiquidLedgerUpdateToUserHistoryItem, -} from './hyperLiquidAdapter'; -export * from './hyperLiquidOrderBookProcessor'; -export * from './hyperLiquidValidation'; -export * from './idUtils'; -export * from './marketDataTransform'; -export * from './marketSearch'; -export * from './marketUtils'; -export * from './orderCalculations'; -export * from './perpsDiskPersistence'; -export * from './rewardsUtils'; -export * from './significantFigures'; -export * from './sortMarkets'; -export * from './standaloneInfoClient'; -export * from './stringParseUtils'; -export * from './transferData'; -export * from './wait'; +} from './hyperLiquidAdapter.js'; +export * from './hyperLiquidOrderBookProcessor.js'; +export * from './hyperLiquidValidation.js'; +export * from './idUtils.js'; +export * from './marketDataTransform.js'; +export * from './marketSearch.js'; +export * from './marketUtils.js'; +export * from './orderCalculations.js'; +export * from './perpsDiskPersistence.js'; +export * from './rewardsUtils.js'; +export * from './significantFigures.js'; +export * from './sortMarkets.js'; +export * from './standaloneInfoClient.js'; +export * from './stringParseUtils.js'; +export * from './transferData.js'; +export * from './wait.js'; // Inline from former utils.ts (getEnvironment was previously at perps/utils.ts root) export const getEnvironment = (): 'DEV' | 'PROD' => { const env = globalThis.process?.env?.NODE_ENV ?? 'production'; return env === 'production' ? 'PROD' : 'DEV'; }; -export * from './perpsFormatters'; +export * from './perpsFormatters.js'; diff --git a/packages/perps-controller/src/utils/marketDataTransform.ts b/packages/perps-controller/src/utils/marketDataTransform.ts index 8ac968d4d52..8ad8d030ef4 100644 --- a/packages/perps-controller/src/utils/marketDataTransform.ts +++ b/packages/perps-controller/src/utils/marketDataTransform.ts @@ -9,20 +9,20 @@ import { hasProperty } from '@metamask/utils'; import { HYPERLIQUID_CONFIG, getHyperLiquidAssetName, -} from '../constants/hyperLiquidConfig'; -import { PERPS_CONSTANTS } from '../constants/perpsConfig'; +} from '../constants/hyperLiquidConfig.js'; +import { PERPS_CONSTANTS } from '../constants/perpsConfig.js'; import type { PerpsMarketData, MarketType, MarketDataFormatters, -} from '../types'; +} from '../types.js'; import type { AllMidsResponse, PerpsUniverse, PerpsAssetCtx, PredictedFunding, -} from '../types/hyperliquid-types'; -import { parseAssetName } from './hyperLiquidAdapter'; +} from '../types/hyperliquid-types.js'; +import { parseAssetName } from './hyperLiquidAdapter.js'; /** * Calculate open interest in USD diff --git a/packages/perps-controller/src/utils/marketSearch.ts b/packages/perps-controller/src/utils/marketSearch.ts index 95956f37289..74d47d170e7 100644 --- a/packages/perps-controller/src/utils/marketSearch.ts +++ b/packages/perps-controller/src/utils/marketSearch.ts @@ -14,7 +14,7 @@ * * Portable: no platform-specific imports. */ -import type { PerpsMarketData } from '../types'; +import type { PerpsMarketData } from '../types.js'; /** * Relevance tier for a market/query match. Lower values sort first. diff --git a/packages/perps-controller/src/utils/marketUtils.ts b/packages/perps-controller/src/utils/marketUtils.ts index 1e9d51b1d10..3d7df7d29d9 100644 --- a/packages/perps-controller/src/utils/marketUtils.ts +++ b/packages/perps-controller/src/utils/marketUtils.ts @@ -2,9 +2,9 @@ import type { GetMarketDataWithPricesParams, MarketTypeFilter, PerpsMarketData, -} from '../types'; -import type { CandleData, CandleStick } from '../types/perps-types'; -import { sortMarkets } from './sortMarkets'; +} from '../types.js'; +import type { CandleData, CandleStick } from '../types/perps-types.js'; +import { sortMarkets } from './sortMarkets.js'; // ============================================================================ // Market category classification (pure functions) @@ -350,6 +350,7 @@ export const filterMarketsByQuery = ( return markets.filter( (market) => + // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing market.symbol?.toLowerCase().includes(lowerQuery) || market.name?.toLowerCase().includes(lowerQuery), ); diff --git a/packages/perps-controller/src/utils/myxAdapter.ts b/packages/perps-controller/src/utils/myxAdapter.ts index 80659026ec4..ad9c6539ca7 100644 --- a/packages/perps-controller/src/utils/myxAdapter.ts +++ b/packages/perps-controller/src/utils/myxAdapter.ts @@ -20,7 +20,7 @@ import { fromMYXCollateral, MYX_MAX_LEVERAGE, MYX_MINIMUM_ORDER_SIZE_USD, -} from '../constants/myxConfig'; +} from '../constants/myxConfig.js'; import type { AccountState, CandleStick, @@ -32,7 +32,7 @@ import type { Position, MarketDataFormatters, UserHistoryItem, -} from '../types'; +} from '../types.js'; import { MYX_HL_OVERLAPPING_MARKETS, MYXDirection, @@ -42,7 +42,7 @@ import { MYXOrderTypeEnum, MYXExecTypeEnum, MYXTradeFlowTypeEnum, -} from '../types/myx-types'; +} from '../types/myx-types.js'; import type { MYXPoolSymbol, MYXTicker, @@ -51,7 +51,7 @@ import type { MYXTradeFlowItem, MYXKlineData, MYXKlineWsData, -} from '../types/myx-types'; +} from '../types/myx-types.js'; /** * Format a price change value with sign prefix. diff --git a/packages/perps-controller/src/utils/orderCalculations.ts b/packages/perps-controller/src/utils/orderCalculations.ts index b33d00c7ac5..d7395111b13 100644 --- a/packages/perps-controller/src/utils/orderCalculations.ts +++ b/packages/perps-controller/src/utils/orderCalculations.ts @@ -1,17 +1,17 @@ import type { Hex } from '@metamask/utils'; -import { BASIS_POINTS_DIVISOR } from '../constants/hyperLiquidConfig'; +import { BASIS_POINTS_DIVISOR } from '../constants/hyperLiquidConfig.js'; import { MAX_ORDER_MARGIN_BUFFER, ORDER_SLIPPAGE_CONFIG, -} from '../constants/perpsConfig'; -import { PERPS_ERROR_CODES } from '../perpsErrorCodes'; -import type { PerpsDebugLogger } from '../types'; -import type { SDKOrderParams } from '../types/hyperliquid-types'; +} from '../constants/perpsConfig.js'; +import { PERPS_ERROR_CODES } from '../perpsErrorCodes.js'; +import type { PerpsDebugLogger } from '../types.js'; +import type { SDKOrderParams } from '../types/hyperliquid-types.js'; import { formatHyperLiquidPrice, formatHyperLiquidSize, -} from './hyperLiquidAdapter'; +} from './hyperLiquidAdapter.js'; /** * Optional debug logger for order calculation functions. diff --git a/packages/perps-controller/src/utils/perpsDiskPersistence.ts b/packages/perps-controller/src/utils/perpsDiskPersistence.ts index 6744e59629e..1f8ef0da9c7 100644 --- a/packages/perps-controller/src/utils/perpsDiskPersistence.ts +++ b/packages/perps-controller/src/utils/perpsDiskPersistence.ts @@ -4,8 +4,13 @@ import { PERPS_DISK_CACHE_MARKETS, PERPS_DISK_CACHE_USER_DATA, PROVIDER_CONFIG, -} from '../constants/perpsConfig'; -import type { AccountState, Order, PerpsMarketData, Position } from '../types'; +} from '../constants/perpsConfig.js'; +import type { + AccountState, + Order, + PerpsMarketData, + Position, +} from '../types.js'; /** * Multiplier applied to staleGuardMs (preloadGuardMs, currently 30s) to compute diff --git a/packages/perps-controller/src/utils/perpsFormatters.ts b/packages/perps-controller/src/utils/perpsFormatters.ts index 0ed9b9f5db5..335214c9526 100644 --- a/packages/perps-controller/src/utils/perpsFormatters.ts +++ b/packages/perps-controller/src/utils/perpsFormatters.ts @@ -12,7 +12,7 @@ import { DECIMAL_PRECISION_CONFIG, FUNDING_RATE_CONFIG, PERPS_CONSTANTS, -} from '../constants/perpsConfig'; +} from '../constants/perpsConfig.js'; // Module-level Intl.NumberFormat cache (keyed by serialized options). const _fmtCache = new Map(); diff --git a/packages/perps-controller/src/utils/rewardsUtils.ts b/packages/perps-controller/src/utils/rewardsUtils.ts index afb4f2c37aa..e8a20639b84 100644 --- a/packages/perps-controller/src/utils/rewardsUtils.ts +++ b/packages/perps-controller/src/utils/rewardsUtils.ts @@ -12,8 +12,8 @@ import { parseCaipChainId, } from '@metamask/utils'; -import type { PerpsLogger } from '../types'; -import { ensureError } from './errorUtils'; +import type { PerpsLogger } from '../types.js'; +import { ensureError } from './errorUtils.js'; /** * Converts a numeric or hex chain ID to a CAIP-2 chain ID string. diff --git a/packages/perps-controller/src/utils/significantFigures.ts b/packages/perps-controller/src/utils/significantFigures.ts index b398397192e..4fe05c1f8f2 100644 --- a/packages/perps-controller/src/utils/significantFigures.ts +++ b/packages/perps-controller/src/utils/significantFigures.ts @@ -1,4 +1,4 @@ -import { DECIMAL_PRECISION_CONFIG } from '../constants/perpsConfig'; +import { DECIMAL_PRECISION_CONFIG } from '../constants/perpsConfig.js'; /** * Count significant figures in a price string. diff --git a/packages/perps-controller/src/utils/sortMarkets.ts b/packages/perps-controller/src/utils/sortMarkets.ts index cb643c4a0de..cd3109e7e90 100644 --- a/packages/perps-controller/src/utils/sortMarkets.ts +++ b/packages/perps-controller/src/utils/sortMarkets.ts @@ -1,8 +1,8 @@ import { MARKET_SORTING_CONFIG, PERPS_CONSTANTS, -} from '../constants/perpsConfig'; -import type { PerpsMarketData, SortDirection, SortField } from '../types'; +} from '../constants/perpsConfig.js'; +import type { PerpsMarketData, SortDirection, SortField } from '../types.js'; export type SortMarketsParams = { markets: PerpsMarketData[]; @@ -87,9 +87,11 @@ export const sortMarkets = ({ case MARKET_SORTING_CONFIG.SortFields.PriceChange: { const changeA = parseFloat( + // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing a.change24hPercent?.replace(/[%+]/gu, '') || '0', ); const changeB = parseFloat( + // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing b.change24hPercent?.replace(/[%+]/gu, '') || '0', ); compareValue = changeA - changeB; diff --git a/packages/perps-controller/src/utils/standaloneInfoClient.ts b/packages/perps-controller/src/utils/standaloneInfoClient.ts index 10eb6575841..66ac7541518 100644 --- a/packages/perps-controller/src/utils/standaloneInfoClient.ts +++ b/packages/perps-controller/src/utils/standaloneInfoClient.ts @@ -1,10 +1,10 @@ import { HttpTransport, InfoClient } from '@nktkas/hyperliquid'; -import { PERPS_CONSTANTS } from '../constants/perpsConfig'; +import { PERPS_CONSTANTS } from '../constants/perpsConfig.js'; import type { ClearinghouseStateResponse, FrontendOpenOrdersResponse, -} from '../types/hyperliquid-types'; +} from '../types/hyperliquid-types.js'; export type StandaloneInfoClientOptions = { /** Whether to use testnet API endpoint */ diff --git a/packages/perps-controller/tests/defer-eligibility.test.ts b/packages/perps-controller/tests/defer-eligibility.test.ts index e41f035f160..e8ddf052666 100644 --- a/packages/perps-controller/tests/defer-eligibility.test.ts +++ b/packages/perps-controller/tests/defer-eligibility.test.ts @@ -5,9 +5,9 @@ import type { MessengerEvents, } from '@metamask/messenger'; -import { PerpsController } from '../src/PerpsController'; -import type { PerpsControllerMessenger } from '../src/PerpsController'; -import type { PerpsPlatformDependencies } from '../src/types'; +import { PerpsController } from '../src/PerpsController.js'; +import type { PerpsControllerMessenger } from '../src/PerpsController.js'; +import type { PerpsPlatformDependencies } from '../src/types.js'; jest.mock('@nktkas/hyperliquid', () => ({})); jest.mock('@myx-trade/sdk', () => ({})); diff --git a/packages/perps-controller/tests/placeholder.test.ts b/packages/perps-controller/tests/placeholder.test.ts index 0a6ba41fd68..798b4c6ad30 100644 --- a/packages/perps-controller/tests/placeholder.test.ts +++ b/packages/perps-controller/tests/placeholder.test.ts @@ -8,7 +8,7 @@ // Remove this file when tests are migrated from Mobile to Core. // Satisfies import-x/unambiguous (file must be an ES module). -import type { PerpsControllerState } from '../src'; +import type { PerpsControllerState } from '../src.js'; describe('PerpsController', () => { it('exports PerpsControllerState type', () => { diff --git a/packages/perps-controller/tests/src/aggregation/SubscriptionMultiplexer.test.ts b/packages/perps-controller/tests/src/aggregation/SubscriptionMultiplexer.test.ts index 08ad4a2f6dc..fa4ab1a4db4 100644 --- a/packages/perps-controller/tests/src/aggregation/SubscriptionMultiplexer.test.ts +++ b/packages/perps-controller/tests/src/aggregation/SubscriptionMultiplexer.test.ts @@ -1,4 +1,4 @@ -import { SubscriptionMultiplexer } from '../../../src/aggregation/SubscriptionMultiplexer'; +import { SubscriptionMultiplexer } from '../../../src/aggregation/SubscriptionMultiplexer.js'; /* eslint-disable */ import type { PerpsProvider, diff --git a/packages/perps-controller/tests/src/constants/eventNames.test.ts b/packages/perps-controller/tests/src/constants/eventNames.test.ts index dde1c1a9986..08813b0638e 100644 --- a/packages/perps-controller/tests/src/constants/eventNames.test.ts +++ b/packages/perps-controller/tests/src/constants/eventNames.test.ts @@ -1,8 +1,8 @@ import { PERPS_EVENT_PROPERTY, PERPS_EVENT_VALUE, -} from '../../../src/constants/eventNames'; -import { PerpsAnalyticsEvent } from '../../../src/types'; +} from '../../../src/constants/eventNames.js'; +import { PerpsAnalyticsEvent } from '../../../src/types.js'; describe('PERPS_EVENT_PROPERTY', () => { describe('advanced chart analytics property keys', () => { diff --git a/packages/perps-controller/tests/src/constants/hyperLiquidConfig.test.ts b/packages/perps-controller/tests/src/constants/hyperLiquidConfig.test.ts index 79fe690ad29..6e285289150 100644 --- a/packages/perps-controller/tests/src/constants/hyperLiquidConfig.test.ts +++ b/packages/perps-controller/tests/src/constants/hyperLiquidConfig.test.ts @@ -1,6 +1,6 @@ -import { HIP3_ASSET_MARKET_TYPES } from '../../../src/constants/hyperLiquidConfig'; -import { MarketCategory, MARKET_CATEGORIES } from '../../../src/types'; -import type { MarketType, MarketTypeFilter } from '../../../src/types'; +import { HIP3_ASSET_MARKET_TYPES } from '../../../src/constants/hyperLiquidConfig.js'; +import { MarketCategory, MARKET_CATEGORIES } from '../../../src/types.js'; +import type { MarketType, MarketTypeFilter } from '../../../src/types.js'; describe('HIP3_ASSET_MARKET_TYPES', () => { it('classifies known US stocks correctly', () => { diff --git a/packages/perps-controller/tests/src/providers/AggregatedPerpsProvider.test.ts b/packages/perps-controller/tests/src/providers/AggregatedPerpsProvider.test.ts index e3ef2186446..42dba8948c0 100644 --- a/packages/perps-controller/tests/src/providers/AggregatedPerpsProvider.test.ts +++ b/packages/perps-controller/tests/src/providers/AggregatedPerpsProvider.test.ts @@ -1,13 +1,13 @@ -import { CandlePeriod } from '../../../src/constants/chartConfig'; -import { AggregatedPerpsProvider } from '../../../src/providers/AggregatedPerpsProvider'; +import { CandlePeriod } from '../../../src/constants/chartConfig.js'; +import { AggregatedPerpsProvider } from '../../../src/providers/AggregatedPerpsProvider.js'; import type { PerpsProvider, PerpsProviderType, Position, MarketInfo, Order, -} from '../../../src/types'; -import { WebSocketConnectionState } from '../../../src/types'; +} from '../../../src/types.js'; +import { WebSocketConnectionState } from '../../../src/types.js'; /* eslint-disable */ import { createMockInfrastructure } from '../../helpers/serviceMocks'; diff --git a/packages/perps-controller/tests/src/services/AccountService.test.ts b/packages/perps-controller/tests/src/services/AccountService.test.ts index 2f6bb9b7505..3352dbd7db2 100644 --- a/packages/perps-controller/tests/src/services/AccountService.test.ts +++ b/packages/perps-controller/tests/src/services/AccountService.test.ts @@ -1,13 +1,13 @@ -import type { PerpsControllerState } from '../../../src/PerpsController'; -import { AccountService } from '../../../src/services/AccountService'; -import type { ServiceContext } from '../../../src/services/ServiceContext'; -import { PerpsAnalyticsEvent } from '../../../src/types'; +import type { PerpsControllerState } from '../../../src/PerpsController.js'; +import { AccountService } from '../../../src/services/AccountService.js'; +import type { ServiceContext } from '../../../src/services/ServiceContext.js'; +import { PerpsAnalyticsEvent } from '../../../src/types.js'; import type { PerpsProvider, WithdrawParams, WithdrawResult, PerpsPlatformDependencies, -} from '../../../src/types'; +} from '../../../src/types.js'; /* eslint-disable */ import { createMockHyperLiquidProvider } from '../../helpers/providerMocks'; import { diff --git a/packages/perps-controller/tests/src/services/DataLakeService.test.ts b/packages/perps-controller/tests/src/services/DataLakeService.test.ts index f51f0596a99..f321321052d 100644 --- a/packages/perps-controller/tests/src/services/DataLakeService.test.ts +++ b/packages/perps-controller/tests/src/services/DataLakeService.test.ts @@ -1,6 +1,6 @@ -import { DataLakeService } from '../../../src/services/DataLakeService'; -import type { ServiceContext } from '../../../src/services/ServiceContext'; -import type { PerpsPlatformDependencies } from '../../../src/types'; +import { DataLakeService } from '../../../src/services/DataLakeService.js'; +import type { ServiceContext } from '../../../src/services/ServiceContext.js'; +import type { PerpsPlatformDependencies } from '../../../src/types.js'; /* eslint-disable */ import { createMockServiceContext, diff --git a/packages/perps-controller/tests/src/services/EligibilityService.test.ts b/packages/perps-controller/tests/src/services/EligibilityService.test.ts index ab162e1b226..be90725b5ff 100644 --- a/packages/perps-controller/tests/src/services/EligibilityService.test.ts +++ b/packages/perps-controller/tests/src/services/EligibilityService.test.ts @@ -1,6 +1,6 @@ -import { EligibilityService } from '../../../src/services/EligibilityService'; -import type { PerpsPlatformDependencies } from '../../../src/types'; -import { createMockInfrastructure } from '../../helpers/serviceMocks'; +import { EligibilityService } from '../../../src/services/EligibilityService.js'; +import type { PerpsPlatformDependencies } from '../../../src/types.js'; +import { createMockInfrastructure } from '../../helpers/serviceMocks.js'; describe('EligibilityService', () => { let mockDeps: jest.Mocked; diff --git a/packages/perps-controller/tests/src/services/MarketDataService.test.ts b/packages/perps-controller/tests/src/services/MarketDataService.test.ts index 77dfea8a5d4..5fca481b9ad 100644 --- a/packages/perps-controller/tests/src/services/MarketDataService.test.ts +++ b/packages/perps-controller/tests/src/services/MarketDataService.test.ts @@ -1,6 +1,6 @@ -import type { CandlePeriod } from '../../../src/constants/chartConfig'; -import { MarketDataService } from '../../../src/services/MarketDataService'; -import type { ServiceContext } from '../../../src/services/ServiceContext'; +import type { CandlePeriod } from '../../../src/constants/chartConfig.js'; +import { MarketDataService } from '../../../src/services/MarketDataService.js'; +import type { ServiceContext } from '../../../src/services/ServiceContext.js'; import type { PerpsProvider, Position, @@ -16,9 +16,9 @@ import type { PerpsMarketData, PerpsTerminalMarketService, TerminalAssetMetadata, -} from '../../../src/types'; -import type { CandleData } from '../../../src/types/perps-types'; -import { resetPerpsRestCacheForTests } from '../../../src/utils/coalescePerpsRestRequest'; +} from '../../../src/types.js'; +import type { CandleData } from '../../../src/types/perps-types.js'; +import { resetPerpsRestCacheForTests } from '../../../src/utils/coalescePerpsRestRequest.js'; /* eslint-disable */ import { createMockHyperLiquidProvider, diff --git a/packages/perps-controller/tests/src/services/RewardsIntegrationService.test.ts b/packages/perps-controller/tests/src/services/RewardsIntegrationService.test.ts index f733177cb89..1d61b5a2644 100644 --- a/packages/perps-controller/tests/src/services/RewardsIntegrationService.test.ts +++ b/packages/perps-controller/tests/src/services/RewardsIntegrationService.test.ts @@ -1,5 +1,5 @@ -import { RewardsIntegrationService } from '../../../src/services/RewardsIntegrationService'; -import type { PerpsPlatformDependencies } from '../../../src/types'; +import { RewardsIntegrationService } from '../../../src/services/RewardsIntegrationService.js'; +import type { PerpsPlatformDependencies } from '../../../src/types.js'; /* eslint-disable */ import { createMockEvmAccount, diff --git a/packages/perps-controller/tests/src/services/TerminalMarketService.test.ts b/packages/perps-controller/tests/src/services/TerminalMarketService.test.ts index d7b21620582..87201f956bb 100644 --- a/packages/perps-controller/tests/src/services/TerminalMarketService.test.ts +++ b/packages/perps-controller/tests/src/services/TerminalMarketService.test.ts @@ -1,7 +1,7 @@ -import { TERMINAL_API_CONFIG } from '../../../src/constants/perpsConfig'; -import { TerminalMarketService } from '../../../src/services/TerminalMarketService'; -import type { PerpsPlatformDependencies } from '../../../src/types'; -import { createMockInfrastructure } from '../../helpers/serviceMocks'; +import { TERMINAL_API_CONFIG } from '../../../src/constants/perpsConfig.js'; +import { TerminalMarketService } from '../../../src/services/TerminalMarketService.js'; +import type { PerpsPlatformDependencies } from '../../../src/types.js'; +import { createMockInfrastructure } from '../../helpers/serviceMocks.js'; describe('TerminalMarketService', () => { let mockDeps: jest.Mocked; diff --git a/packages/perps-controller/tests/src/services/TradingService.test.ts b/packages/perps-controller/tests/src/services/TradingService.test.ts index 6065ce58d72..c4fae9d8d06 100644 --- a/packages/perps-controller/tests/src/services/TradingService.test.ts +++ b/packages/perps-controller/tests/src/services/TradingService.test.ts @@ -1,7 +1,7 @@ -import { PERPS_EVENT_VALUE } from '../../../src/constants/eventNames'; -import type { ServiceContext } from '../../../src/services/ServiceContext'; -import { TradingService } from '../../../src/services/TradingService'; -import { PerpsAnalyticsEvent } from '../../../src/types'; +import { PERPS_EVENT_VALUE } from '../../../src/constants/eventNames.js'; +import type { ServiceContext } from '../../../src/services/ServiceContext.js'; +import { TradingService } from '../../../src/services/TradingService.js'; +import { PerpsAnalyticsEvent } from '../../../src/types.js'; import type { PerpsProvider, OrderParams, @@ -15,7 +15,7 @@ import type { Order, UpdatePositionTPSLParams, PerpsPlatformDependencies, -} from '../../../src/types'; +} from '../../../src/types.js'; /* eslint-disable */ import { createMockHyperLiquidProvider } from '../../helpers/providerMocks'; import { diff --git a/packages/perps-controller/tests/src/types/hyperliquid-types.test.ts b/packages/perps-controller/tests/src/types/hyperliquid-types.test.ts index f506659f41e..f1c7762a70d 100644 --- a/packages/perps-controller/tests/src/types/hyperliquid-types.test.ts +++ b/packages/perps-controller/tests/src/types/hyperliquid-types.test.ts @@ -1,4 +1,4 @@ -import { hyperLiquidModeFoldsSpot } from '../../../src/types/hyperliquid-types'; +import { hyperLiquidModeFoldsSpot } from '../../../src/types/hyperliquid-types.js'; describe('hyperLiquidModeFoldsSpot', () => { it('folds for unifiedAccount', () => { diff --git a/packages/perps-controller/tests/src/utils/coalescePerpsRestRequest.test.ts b/packages/perps-controller/tests/src/utils/coalescePerpsRestRequest.test.ts index 63771180c39..e21b1da3e11 100644 --- a/packages/perps-controller/tests/src/utils/coalescePerpsRestRequest.test.ts +++ b/packages/perps-controller/tests/src/utils/coalescePerpsRestRequest.test.ts @@ -1,7 +1,7 @@ import { coalescePerpsRestRequest, resetPerpsRestCacheForTests, -} from '../../../src/utils/coalescePerpsRestRequest'; +} from '../../../src/utils/coalescePerpsRestRequest.js'; describe('coalescePerpsRestRequest', () => { beforeEach(() => { diff --git a/packages/perps-controller/tests/src/utils/errorUtils.test.ts b/packages/perps-controller/tests/src/utils/errorUtils.test.ts index b948e427685..cb52b7e57a2 100644 --- a/packages/perps-controller/tests/src/utils/errorUtils.test.ts +++ b/packages/perps-controller/tests/src/utils/errorUtils.test.ts @@ -2,7 +2,7 @@ import { isAbortError, ensureError, isKeyringLockedError, -} from '../../../src/utils/errorUtils'; +} from '../../../src/utils/errorUtils.js'; describe('errorUtils', () => { describe('isAbortError', () => { diff --git a/packages/perps-controller/tests/src/utils/hyperLiquidAbstraction.test.ts b/packages/perps-controller/tests/src/utils/hyperLiquidAbstraction.test.ts index 7694db7165c..7ed3364ed91 100644 --- a/packages/perps-controller/tests/src/utils/hyperLiquidAbstraction.test.ts +++ b/packages/perps-controller/tests/src/utils/hyperLiquidAbstraction.test.ts @@ -1,4 +1,4 @@ -import { shouldDeferUnifiedAccountSetup } from '../../../src/utils/hyperLiquidAbstraction'; +import { shouldDeferUnifiedAccountSetup } from '../../../src/utils/hyperLiquidAbstraction.js'; describe('shouldDeferUnifiedAccountSetup', () => { it.each(['dexAbstraction', 'default', 'disabled'] as const)( diff --git a/packages/perps-controller/tests/src/utils/hyperLiquidAdapter.test.ts b/packages/perps-controller/tests/src/utils/hyperLiquidAdapter.test.ts index ab9959ddb45..04ebe449fb5 100644 --- a/packages/perps-controller/tests/src/utils/hyperLiquidAdapter.test.ts +++ b/packages/perps-controller/tests/src/utils/hyperLiquidAdapter.test.ts @@ -1,5 +1,5 @@ -import type { FrontendOrder } from '../../../src/types/hyperliquid-types'; -import { adaptOrderFromSDK } from '../../../src/utils/hyperLiquidAdapter'; +import type { FrontendOrder } from '../../../src/types/hyperliquid-types.js'; +import { adaptOrderFromSDK } from '../../../src/utils/hyperLiquidAdapter.js'; /** * Builds a minimal valid `FrontendOrder` fixture, overridable per test. diff --git a/packages/perps-controller/tests/src/utils/marketDataTransform.test.ts b/packages/perps-controller/tests/src/utils/marketDataTransform.test.ts index a2f31c55e0a..abd68af53e0 100644 --- a/packages/perps-controller/tests/src/utils/marketDataTransform.test.ts +++ b/packages/perps-controller/tests/src/utils/marketDataTransform.test.ts @@ -2,17 +2,17 @@ import { HYPERLIQUID_ASSET_NAMES, HYPERLIQUID_CONFIG, getHyperLiquidAssetName, -} from '../../../src/constants/hyperLiquidConfig'; -import type { MarketDataFormatters } from '../../../src/types'; +} from '../../../src/constants/hyperLiquidConfig.js'; +import type { MarketDataFormatters } from '../../../src/types.js'; import type { AllMidsResponse, PerpsAssetCtx, PerpsUniverse, -} from '../../../src/types/hyperliquid-types'; +} from '../../../src/types/hyperliquid-types.js'; import { isMarketTradable, transformMarketData, -} from '../../../src/utils/marketDataTransform'; +} from '../../../src/utils/marketDataTransform.js'; // Mock formatters matching the MarketDataFormatters interface const mockFormatters: MarketDataFormatters = { diff --git a/packages/perps-controller/tests/src/utils/marketSearch.test.ts b/packages/perps-controller/tests/src/utils/marketSearch.test.ts index bddbd76d145..b30e085fb4c 100644 --- a/packages/perps-controller/tests/src/utils/marketSearch.test.ts +++ b/packages/perps-controller/tests/src/utils/marketSearch.test.ts @@ -1,9 +1,9 @@ -import type { PerpsMarketData } from '../../../src/types'; +import type { PerpsMarketData } from '../../../src/types.js'; import { MarketMatchRank, getMarketMatchRank, rankMarketsByQuery, -} from '../../../src/utils/marketSearch'; +} from '../../../src/utils/marketSearch.js'; /** * Build a minimal market fixture. Only `symbol`, `name`, and optional diff --git a/packages/perps-controller/tests/src/utils/marketUtils.test.ts b/packages/perps-controller/tests/src/utils/marketUtils.test.ts index 070f07803f2..2b480705d45 100644 --- a/packages/perps-controller/tests/src/utils/marketUtils.test.ts +++ b/packages/perps-controller/tests/src/utils/marketUtils.test.ts @@ -1,9 +1,9 @@ -import type { PerpsMarketData } from '../../../src/types'; +import type { PerpsMarketData } from '../../../src/types.js'; import { getMarketTypeFilter, isHip3Market, matchesCategory, -} from '../../../src/utils/marketUtils'; +} from '../../../src/utils/marketUtils.js'; const market = (overrides: Partial): PerpsMarketData => ({ diff --git a/packages/perps-controller/tests/src/utils/rewardsUtils.test.ts b/packages/perps-controller/tests/src/utils/rewardsUtils.test.ts index 88a5bcef568..b57bda8bb5e 100644 --- a/packages/perps-controller/tests/src/utils/rewardsUtils.test.ts +++ b/packages/perps-controller/tests/src/utils/rewardsUtils.test.ts @@ -1,4 +1,4 @@ -import type { PerpsLogger } from '../../../src/types'; +import type { PerpsLogger } from '../../../src/types.js'; /* eslint-disable */ import { formatAccountToCaipAccountId, diff --git a/packages/perps-controller/tests/src/utils/significantFigures.test.ts b/packages/perps-controller/tests/src/utils/significantFigures.test.ts index 68256f14530..b9bac0cb973 100644 --- a/packages/perps-controller/tests/src/utils/significantFigures.test.ts +++ b/packages/perps-controller/tests/src/utils/significantFigures.test.ts @@ -2,7 +2,7 @@ import { countSignificantFigures, hasExceededSignificantFigures, roundToSignificantFigures, -} from '../../../src/utils/significantFigures'; +} from '../../../src/utils/significantFigures.js'; describe('significantFigures utilities', () => { describe('countSignificantFigures', () => { diff --git a/packages/perps-controller/tests/src/utils/sortMarkets.test.ts b/packages/perps-controller/tests/src/utils/sortMarkets.test.ts index cc100510307..533d35c2c9d 100644 --- a/packages/perps-controller/tests/src/utils/sortMarkets.test.ts +++ b/packages/perps-controller/tests/src/utils/sortMarkets.test.ts @@ -1,6 +1,6 @@ -import { MARKET_SORTING_CONFIG } from '../../../src/constants/perpsConfig'; -import type { PerpsMarketData } from '../../../src/types'; -import { parseVolume, sortMarkets } from '../../../src/utils/sortMarkets'; +import { MARKET_SORTING_CONFIG } from '../../../src/constants/perpsConfig.js'; +import type { PerpsMarketData } from '../../../src/types.js'; +import { parseVolume, sortMarkets } from '../../../src/utils/sortMarkets.js'; const market = (overrides: Partial): PerpsMarketData => ({ diff --git a/packages/perps-controller/tests/src/utils/transferData.test.ts b/packages/perps-controller/tests/src/utils/transferData.test.ts index 87d14ca2a3d..7a4bb2074f4 100644 --- a/packages/perps-controller/tests/src/utils/transferData.test.ts +++ b/packages/perps-controller/tests/src/utils/transferData.test.ts @@ -1,4 +1,4 @@ -import { generateERC20TransferData } from '../../../src/utils/transferData'; +import { generateERC20TransferData } from '../../../src/utils/transferData.js'; describe('generateERC20TransferData', () => { it('encodes ERC-20 transfer calldata', () => { From e440eca598ded34350b49e16246f06d9bae28c14 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:51:17 +0200 Subject: [PATCH 108/136] ESLint fix and `jest` global import for profile-metrics-controller --- ...ofileMetricsController-method-action-types.ts | 2 +- .../src/ProfileMetricsController.test.ts | 10 +++++----- .../src/ProfileMetricsController.ts | 15 +++++++-------- .../ProfileMetricsService-method-action-types.ts | 2 +- .../src/ProfileMetricsService.test.ts | 6 +++--- .../src/ProfileMetricsService.ts | 2 +- ...roofOfOwnershipService-method-action-types.ts | 2 +- .../src/ProofOfOwnershipService.test.ts | 8 ++++---- .../src/ProofOfOwnershipService.ts | 6 +++--- packages/profile-metrics-controller/src/index.ts | 16 ++++++++-------- .../src/utils/canonicalize.test.ts | 2 +- 11 files changed, 35 insertions(+), 36 deletions(-) diff --git a/packages/profile-metrics-controller/src/ProfileMetricsController-method-action-types.ts b/packages/profile-metrics-controller/src/ProfileMetricsController-method-action-types.ts index 8a98132f744..2b9faeec11c 100644 --- a/packages/profile-metrics-controller/src/ProfileMetricsController-method-action-types.ts +++ b/packages/profile-metrics-controller/src/ProfileMetricsController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { ProfileMetricsController } from './ProfileMetricsController'; +import type { ProfileMetricsController } from './ProfileMetricsController.js'; /** * Skip the initial delay period by setting the end timestamp to the current time. diff --git a/packages/profile-metrics-controller/src/ProfileMetricsController.test.ts b/packages/profile-metrics-controller/src/ProfileMetricsController.test.ts index 155d4a3a5b3..daac6019019 100644 --- a/packages/profile-metrics-controller/src/ProfileMetricsController.test.ts +++ b/packages/profile-metrics-controller/src/ProfileMetricsController.test.ts @@ -10,16 +10,16 @@ import type { import { DEFAULT_INITIAL_DELAY_DURATION, ProfileMetricsController, -} from './ProfileMetricsController'; -import type { ProfileMetricsControllerMessenger } from './ProfileMetricsController'; +} from './ProfileMetricsController.js'; +import type { ProfileMetricsControllerMessenger } from './ProfileMetricsController.js'; import type { AccountOwnershipProof, AccountWithScopes, ProfileMetricsFetchNoncesRequest, ProfileMetricsSubmitMetricsRequest, -} from './ProfileMetricsService'; -import type { ProofOfOwnershipSignRequest } from './ProofOfOwnershipService'; -import { ProofUnsupportedNamespaceError } from './utils/canonicalize'; +} from './ProfileMetricsService.js'; +import type { ProofOfOwnershipSignRequest } from './ProofOfOwnershipService.js'; +import { ProofUnsupportedNamespaceError } from './utils/canonicalize.js'; /** * Creates a mock InternalAccount object for testing purposes. diff --git a/packages/profile-metrics-controller/src/ProfileMetricsController.ts b/packages/profile-metrics-controller/src/ProfileMetricsController.ts index d53580dcbce..854b4e904ae 100644 --- a/packages/profile-metrics-controller/src/ProfileMetricsController.ts +++ b/packages/profile-metrics-controller/src/ProfileMetricsController.ts @@ -19,17 +19,17 @@ import { TransactionControllerTransactionSubmittedEvent } from '@metamask/transa import { Duration, inMilliseconds, parseCaipChainId } from '@metamask/utils'; import { Mutex } from 'async-mutex'; -import type { ProfileMetricsControllerMethodActions } from './ProfileMetricsController-method-action-types'; +import type { ProfileMetricsControllerMethodActions } from './ProfileMetricsController-method-action-types.js'; +import type { ProfileMetricsServiceMethodActions } from './ProfileMetricsService-method-action-types.js'; import type { AccountOwnershipProof, AccountWithScopes, -} from './ProfileMetricsService'; -import type { ProfileMetricsServiceMethodActions } from './ProfileMetricsService-method-action-types'; -import type { ProofOfOwnershipServiceMethodActions } from './ProofOfOwnershipService-method-action-types'; +} from './ProfileMetricsService.js'; +import type { ProofOfOwnershipServiceMethodActions } from './ProofOfOwnershipService-method-action-types.js'; import { canonicalizeAddress, ProofUnsupportedNamespaceError, -} from './utils/canonicalize'; +} from './utils/canonicalize.js'; /** * The name of the {@link ProfileMetricsController}, used to namespace the @@ -259,6 +259,7 @@ export class ProfileMetricsController extends StaticIntervalPollingController()< // it must have opted in during onboarding, or during a previous session. this.skipInitialDelay(); } + // eslint-disable-next-line @typescript-eslint/no-floating-promises this.#enqueueAccountsIfNeeded().catch( this.messenger.captureException ?? console.error, ); @@ -543,9 +544,7 @@ export class ProfileMetricsController extends StaticIntervalPollingController()< await this.#mutex.runExclusive(async () => { this.update((state) => { const entropySourceId = getAccountEntropySourceId(account) ?? 'null'; - if (!state.syncQueue[entropySourceId]) { - state.syncQueue[entropySourceId] = []; - } + state.syncQueue[entropySourceId] ??= []; state.syncQueue[entropySourceId].push({ address: account.address, scopes: account.scopes, diff --git a/packages/profile-metrics-controller/src/ProfileMetricsService-method-action-types.ts b/packages/profile-metrics-controller/src/ProfileMetricsService-method-action-types.ts index 862d5afce90..e0dcf906916 100644 --- a/packages/profile-metrics-controller/src/ProfileMetricsService-method-action-types.ts +++ b/packages/profile-metrics-controller/src/ProfileMetricsService-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { ProfileMetricsService } from './ProfileMetricsService'; +import type { ProfileMetricsService } from './ProfileMetricsService.js'; /** * Fetch single-use nonces from the auth API, one per identifier. diff --git a/packages/profile-metrics-controller/src/ProfileMetricsService.test.ts b/packages/profile-metrics-controller/src/ProfileMetricsService.test.ts index ba6b30be880..4f588494f8d 100644 --- a/packages/profile-metrics-controller/src/ProfileMetricsService.test.ts +++ b/packages/profile-metrics-controller/src/ProfileMetricsService.test.ts @@ -8,12 +8,12 @@ import type { import { SDK } from '@metamask/profile-sync-controller'; import nock from 'nock'; -import { ProfileMetricsService } from '.'; +import { ProfileMetricsService } from './..js'; import type { ProfileMetricsSubmitMetricsRequest, ProfileMetricsServiceMessenger, -} from '.'; -import { getAuthUrl } from './ProfileMetricsService'; +} from './..js'; +import { getAuthUrl } from './ProfileMetricsService.js'; const defaultBaseEndpoint = getAuthUrl(SDK.Env.DEV); diff --git a/packages/profile-metrics-controller/src/ProfileMetricsService.ts b/packages/profile-metrics-controller/src/ProfileMetricsService.ts index 677a0a4f7d5..dd443167ff2 100644 --- a/packages/profile-metrics-controller/src/ProfileMetricsService.ts +++ b/packages/profile-metrics-controller/src/ProfileMetricsService.ts @@ -14,7 +14,7 @@ import { } from '@metamask/superstruct'; import type { IDisposable } from 'cockatiel'; -import type { ProfileMetricsServiceMethodActions } from './ProfileMetricsService-method-action-types'; +import type { ProfileMetricsServiceMethodActions } from './ProfileMetricsService-method-action-types.js'; /** * The shape of an entry in the `POST /api/v2/nonce/batch` response body. diff --git a/packages/profile-metrics-controller/src/ProofOfOwnershipService-method-action-types.ts b/packages/profile-metrics-controller/src/ProofOfOwnershipService-method-action-types.ts index 28436e645f2..650ecfe26e0 100644 --- a/packages/profile-metrics-controller/src/ProofOfOwnershipService-method-action-types.ts +++ b/packages/profile-metrics-controller/src/ProofOfOwnershipService-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { ProofOfOwnershipService } from './ProofOfOwnershipService'; +import type { ProofOfOwnershipService } from './ProofOfOwnershipService.js'; /** * Sign a proof of ownership for the given account and server-issued nonce. diff --git a/packages/profile-metrics-controller/src/ProofOfOwnershipService.test.ts b/packages/profile-metrics-controller/src/ProofOfOwnershipService.test.ts index 0238a59928d..3151d179f6b 100644 --- a/packages/profile-metrics-controller/src/ProofOfOwnershipService.test.ts +++ b/packages/profile-metrics-controller/src/ProofOfOwnershipService.test.ts @@ -6,10 +6,10 @@ import type { MessengerEvents, } from '@metamask/messenger'; -import { ProofOfOwnershipService } from '.'; -import type { ProofOfOwnershipServiceMessenger } from '.'; -import { SNAP_SIGN_PROOF_OF_OWNERSHIP_METHOD } from './ProofOfOwnershipService'; -import { ProofUnsupportedNamespaceError } from './utils/canonicalize'; +import { ProofOfOwnershipService } from './..js'; +import type { ProofOfOwnershipServiceMessenger } from './..js'; +import { SNAP_SIGN_PROOF_OF_OWNERSHIP_METHOD } from './ProofOfOwnershipService.js'; +import { ProofUnsupportedNamespaceError } from './utils/canonicalize.js'; /** * Creates a mock InternalAccount with the given scopes. EVM accounts are diff --git a/packages/profile-metrics-controller/src/ProofOfOwnershipService.ts b/packages/profile-metrics-controller/src/ProofOfOwnershipService.ts index 65212651b33..1dd1b7e910c 100644 --- a/packages/profile-metrics-controller/src/ProofOfOwnershipService.ts +++ b/packages/profile-metrics-controller/src/ProofOfOwnershipService.ts @@ -8,12 +8,12 @@ import { string, type as structType } from '@metamask/superstruct'; import { KnownCaipNamespace, parseCaipChainId } from '@metamask/utils'; import { v4 as uuid } from 'uuid'; -import type { AccountOwnershipProof } from './ProfileMetricsService'; -import type { ProofOfOwnershipServiceMethodActions } from './ProofOfOwnershipService-method-action-types'; +import type { AccountOwnershipProof } from './ProfileMetricsService.js'; +import type { ProofOfOwnershipServiceMethodActions } from './ProofOfOwnershipService-method-action-types.js'; import { canonicalizeAddress, ProofUnsupportedNamespaceError, -} from './utils/canonicalize'; +} from './utils/canonicalize.js'; // === GENERAL === diff --git a/packages/profile-metrics-controller/src/index.ts b/packages/profile-metrics-controller/src/index.ts index 81c38273fa1..da42db0b33d 100644 --- a/packages/profile-metrics-controller/src/index.ts +++ b/packages/profile-metrics-controller/src/index.ts @@ -5,33 +5,33 @@ export type { ProfileMetricsControllerMessenger, ProfileMetricsControllerState, ProfileMetricsControllerStateChangeEvent, -} from './ProfileMetricsController'; +} from './ProfileMetricsController.js'; export { ProfileMetricsController, getDefaultProfileMetricsControllerState, -} from './ProfileMetricsController'; +} from './ProfileMetricsController.js'; export type { ProfileMetricsServiceActions, ProfileMetricsServiceEvents, ProfileMetricsServiceMessenger, ProfileMetricsSubmitMetricsRequest, -} from './ProfileMetricsService'; +} from './ProfileMetricsService.js'; export { ProfileMetricsService, serviceName, serviceName as profileMetricsServiceName, -} from './ProfileMetricsService'; -export type { ProfileMetricsServiceMethodActions } from './ProfileMetricsService-method-action-types'; +} from './ProfileMetricsService.js'; +export type { ProfileMetricsServiceMethodActions } from './ProfileMetricsService-method-action-types.js'; export type { ProofOfOwnershipServiceActions, ProofOfOwnershipServiceEvents, ProofOfOwnershipServiceMessenger, -} from './ProofOfOwnershipService'; +} from './ProofOfOwnershipService.js'; export { ProofOfOwnershipService, serviceName as proofOfOwnershipServiceName, -} from './ProofOfOwnershipService'; +} from './ProofOfOwnershipService.js'; export type { ProfileMetricsControllerMethodActions, ProfileMetricsControllerSkipInitialDelayAction, -} from './ProfileMetricsController-method-action-types'; +} from './ProfileMetricsController-method-action-types.js'; diff --git a/packages/profile-metrics-controller/src/utils/canonicalize.test.ts b/packages/profile-metrics-controller/src/utils/canonicalize.test.ts index ed779fa4891..e6596d6a1f3 100644 --- a/packages/profile-metrics-controller/src/utils/canonicalize.test.ts +++ b/packages/profile-metrics-controller/src/utils/canonicalize.test.ts @@ -1,7 +1,7 @@ import { canonicalizeAddress, ProofUnsupportedNamespaceError, -} from './canonicalize'; +} from './canonicalize.js'; describe('canonicalizeAddress', () => { describe('eip155', () => { From 097a7498b7001ac9d491e4e467dd3321ce55e207 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:51:18 +0200 Subject: [PATCH 109/136] ESLint fix and `jest` global import for subscription-controller --- ...bscriptionController-method-action-types.ts | 2 +- .../src/SubscriptionController.test.ts | 16 ++++++++-------- .../src/SubscriptionController.ts | 17 ++++++++++------- .../src/SubscriptionService.test.ts | 12 ++++++------ .../src/SubscriptionService.ts | 10 +++++----- .../src/constants.test.ts | 4 ++-- .../subscription-controller/src/constants.ts | 2 +- .../subscription-controller/src/errors.test.ts | 2 +- packages/subscription-controller/src/errors.ts | 2 +- packages/subscription-controller/src/index.ts | 18 +++++++++--------- packages/subscription-controller/src/logger.ts | 2 +- 11 files changed, 45 insertions(+), 42 deletions(-) diff --git a/packages/subscription-controller/src/SubscriptionController-method-action-types.ts b/packages/subscription-controller/src/SubscriptionController-method-action-types.ts index 1c8c6e2e309..d2ad7f4c3d9 100644 --- a/packages/subscription-controller/src/SubscriptionController-method-action-types.ts +++ b/packages/subscription-controller/src/SubscriptionController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { SubscriptionController } from './SubscriptionController'; +import type { SubscriptionController } from './SubscriptionController.js'; /** * Gets the pricing information from the subscription service. diff --git a/packages/subscription-controller/src/SubscriptionController.test.ts b/packages/subscription-controller/src/SubscriptionController.test.ts index cd24eca3513..ce9daa0d8ae 100644 --- a/packages/subscription-controller/src/SubscriptionController.test.ts +++ b/packages/subscription-controller/src/SubscriptionController.test.ts @@ -11,23 +11,23 @@ import { } from '@metamask/transaction-controller'; import type { Hex } from '@metamask/utils'; -import { jestAdvanceTime } from '../../../tests/helpers'; -import { generateMockTxMeta } from '../tests/utils'; +import { jestAdvanceTime } from '../../../tests/helpers.js'; +import { generateMockTxMeta } from '../tests/utils.js'; import { controllerName, SubscriptionControllerErrorMessage, -} from './constants'; -import { SubscriptionServiceError } from './errors'; +} from './constants.js'; +import { SubscriptionServiceError } from './errors.js'; import { getDefaultSubscriptionControllerState, SubscriptionController, -} from './SubscriptionController'; +} from './SubscriptionController.js'; import type { AllowedEvents, SubscriptionControllerMessenger, SubscriptionControllerOptions, SubscriptionControllerState, -} from './SubscriptionController'; +} from './SubscriptionController.js'; import type { Subscription, PricingResponse, @@ -43,7 +43,7 @@ import type { ProductType, RecurringInterval, ISubscriptionService, -} from './types'; +} from './types.js'; import { CANCEL_TYPES, MODAL_TYPE, @@ -52,7 +52,7 @@ import { RECURRING_INTERVALS, SUBSCRIPTION_STATUSES, SubscriptionUserEvent, -} from './types'; +} from './types.js'; type AllActions = MessengerActions; diff --git a/packages/subscription-controller/src/SubscriptionController.ts b/packages/subscription-controller/src/SubscriptionController.ts index b645fc3d047..7815038838c 100644 --- a/packages/subscription-controller/src/SubscriptionController.ts +++ b/packages/subscription-controller/src/SubscriptionController.ts @@ -16,9 +16,13 @@ import { controllerName, DEFAULT_POLLING_INTERVAL, SubscriptionControllerErrorMessage, -} from './constants'; -import type { SubscriptionControllerMethodActions } from './SubscriptionController-method-action-types'; -import { PAYMENT_TYPES, PRODUCT_TYPES, SUBSCRIPTION_STATUSES } from './types'; +} from './constants.js'; +import type { SubscriptionControllerMethodActions } from './SubscriptionController-method-action-types.js'; +import { + PAYMENT_TYPES, + PRODUCT_TYPES, + SUBSCRIPTION_STATUSES, +} from './types.js'; import type { AssignCohortRequest, BillingPortalResponse, @@ -40,14 +44,14 @@ import type { StartCryptoSubscriptionResponse, StartSubscriptionResponse, CancelSubscriptionRequest, -} from './types'; +} from './types.js'; import type { ISubscriptionService, PricingResponse, ProductType, StartSubscriptionRequest, Subscription, -} from './types'; +} from './types.js'; export type SubscriptionControllerState = { customerId?: string; @@ -624,8 +628,7 @@ export class SubscriptionController extends StaticIntervalPollingController()< this.update((state) => { if (state.lastSelectedPaymentMethod) { const { [product]: _, ...rest } = state.lastSelectedPaymentMethod; - state.lastSelectedPaymentMethod = - rest as typeof state.lastSelectedPaymentMethod; + state.lastSelectedPaymentMethod = rest; } }); } diff --git a/packages/subscription-controller/src/SubscriptionService.test.ts b/packages/subscription-controller/src/SubscriptionService.test.ts index a64902d8ee0..4946f27a443 100644 --- a/packages/subscription-controller/src/SubscriptionService.test.ts +++ b/packages/subscription-controller/src/SubscriptionService.test.ts @@ -3,14 +3,14 @@ import { getEnvUrls, SubscriptionControllerErrorMessage, SubscriptionServiceErrorMessage, -} from './constants'; -import * as constants from './constants'; -import { SubscriptionServiceError } from './errors'; +} from './constants.js'; +import * as constants from './constants.js'; +import { SubscriptionServiceError } from './errors.js'; import { SUBSCRIPTION_URL, SubscriptionService, SubscriptionServiceConfig, -} from './SubscriptionService'; +} from './SubscriptionService.js'; import type { StartSubscriptionRequest, StartCryptoSubscriptionRequest, @@ -19,7 +19,7 @@ import type { UpdatePaymentMethodCardRequest, UpdatePaymentMethodCryptoRequest, SubscriptionEligibility, -} from './types'; +} from './types.js'; import { CANCEL_TYPES, PAYMENT_TYPES, @@ -27,7 +27,7 @@ import { RECURRING_INTERVALS, SUBSCRIPTION_STATUSES, SubscriptionUserEvent, -} from './types'; +} from './types.js'; // Mock data const MOCK_SUBSCRIPTION: Subscription = { diff --git a/packages/subscription-controller/src/SubscriptionService.ts b/packages/subscription-controller/src/SubscriptionService.ts index 915fdb2cb57..37acb318146 100644 --- a/packages/subscription-controller/src/SubscriptionService.ts +++ b/packages/subscription-controller/src/SubscriptionService.ts @@ -2,14 +2,14 @@ import { getEnvUrls, SubscriptionControllerErrorMessage, SubscriptionServiceErrorMessage, -} from './constants'; -import type { Env } from './constants'; +} from './constants.js'; +import type { Env } from './constants.js'; import { createSentryError, getSubscriptionErrorFromResponse, SubscriptionServiceError, -} from './errors'; -import { createModuleLogger, projectLogger } from './logger'; +} from './errors.js'; +import { createModuleLogger, projectLogger } from './logger.js'; import type { AssignCohortRequest, AuthUtils, @@ -32,7 +32,7 @@ import type { LinkRewardsRequest, SubscriptionApiGeneralResponse, CancelSubscriptionRequest, -} from './types'; +} from './types.js'; export type SubscriptionServiceConfig = { env: Env; diff --git a/packages/subscription-controller/src/constants.test.ts b/packages/subscription-controller/src/constants.test.ts index a2277bc61a1..9afc5f2f779 100644 --- a/packages/subscription-controller/src/constants.test.ts +++ b/packages/subscription-controller/src/constants.test.ts @@ -1,5 +1,5 @@ -import type { Env } from './constants'; -import { getEnvUrls, controllerName } from './constants'; +import type { Env } from './constants.js'; +import { getEnvUrls, controllerName } from './constants.js'; describe('constants', () => { describe('getEnvUrls', () => { diff --git a/packages/subscription-controller/src/constants.ts b/packages/subscription-controller/src/constants.ts index c7fa0ecc456..eba4888352d 100644 --- a/packages/subscription-controller/src/constants.ts +++ b/packages/subscription-controller/src/constants.ts @@ -1,4 +1,4 @@ -import { SUBSCRIPTION_STATUSES } from './types'; +import { SUBSCRIPTION_STATUSES } from './types.js'; export const controllerName = 'SubscriptionController'; diff --git a/packages/subscription-controller/src/errors.test.ts b/packages/subscription-controller/src/errors.test.ts index 7b805568ae7..4bc7c15af71 100644 --- a/packages/subscription-controller/src/errors.test.ts +++ b/packages/subscription-controller/src/errors.test.ts @@ -3,7 +3,7 @@ import { createSentryError, getSubscriptionErrorFromResponse, SubscriptionServiceError, -} from './errors'; +} from './errors.js'; type MockResponseOptions = { status?: number; diff --git a/packages/subscription-controller/src/errors.ts b/packages/subscription-controller/src/errors.ts index cb2e29c0f1f..30c2e17d6dc 100644 --- a/packages/subscription-controller/src/errors.ts +++ b/packages/subscription-controller/src/errors.ts @@ -1,4 +1,4 @@ -import { SubscriptionApiError } from './types'; +import { SubscriptionApiError } from './types.js'; export class SubscriptionServiceError extends Error { /** diff --git a/packages/subscription-controller/src/index.ts b/packages/subscription-controller/src/index.ts index b1aa364de5a..d52e1c57fb6 100644 --- a/packages/subscription-controller/src/index.ts +++ b/packages/subscription-controller/src/index.ts @@ -8,7 +8,7 @@ export type { SubscriptionControllerStateChangeEvent, AllowedActions, AllowedEvents, -} from './SubscriptionController'; +} from './SubscriptionController.js'; export type { SubscriptionControllerGetPricingAction, SubscriptionControllerGetSubscriptionsAction, @@ -33,11 +33,11 @@ export type { SubscriptionControllerClearStateAction, SubscriptionControllerTriggerAccessTokenRefreshAction, SubscriptionControllerStopAllPollingAction, -} from './SubscriptionController-method-action-types'; +} from './SubscriptionController-method-action-types.js'; export { SubscriptionController, getDefaultSubscriptionControllerState, -} from './SubscriptionController'; +} from './SubscriptionController.js'; export type { SubscriptionApiError, Subscription, @@ -84,7 +84,7 @@ export type { AssignCohortRequest, GetSubscriptionsEligibilitiesRequest, ModalType, -} from './types'; +} from './types.js'; export { CANCEL_TYPES, CRYPTO_PAYMENT_METHOD_ERRORS, @@ -96,12 +96,12 @@ export { COHORT_NAMES, BALANCE_CATEGORIES, MODAL_TYPE, -} from './types'; -export { SubscriptionServiceError } from './errors'; +} from './types.js'; +export { SubscriptionServiceError } from './errors.js'; export { Env, SubscriptionControllerErrorMessage, SubscriptionServiceErrorMessage, -} from './constants'; -export type { SubscriptionServiceConfig } from './SubscriptionService'; -export { SubscriptionService } from './SubscriptionService'; +} from './constants.js'; +export type { SubscriptionServiceConfig } from './SubscriptionService.js'; +export { SubscriptionService } from './SubscriptionService.js'; diff --git a/packages/subscription-controller/src/logger.ts b/packages/subscription-controller/src/logger.ts index ca017b5ba54..abd139116dc 100644 --- a/packages/subscription-controller/src/logger.ts +++ b/packages/subscription-controller/src/logger.ts @@ -1,6 +1,6 @@ import { createProjectLogger, createModuleLogger } from '@metamask/utils'; -import { controllerName } from './constants'; +import { controllerName } from './constants.js'; export const projectLogger = createProjectLogger(controllerName); From ac52419339a1c2995b1ddf68d6cd913d440feebb Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:51:54 +0200 Subject: [PATCH 110/136] ESLint fix and `jest` global import for ramps-controller --- .../RampsController-method-action-types.ts | 2 +- .../src/RampsController.test.ts | 37 ++++---- .../ramps-controller/src/RampsController.ts | 86 +++++++++---------- .../src/RampsService-method-action-types.ts | 2 +- .../ramps-controller/src/RampsService.test.ts | 6 +- packages/ramps-controller/src/RampsService.ts | 2 +- .../ramps-controller/src/RequestCache.test.ts | 2 +- packages/ramps-controller/src/RequestCache.ts | 2 +- .../src/TransakService-method-action-types.ts | 2 +- .../src/TransakService.test.ts | 6 +- .../ramps-controller/src/TransakService.ts | 5 +- .../src/errorNormalization.test.ts | 2 +- .../ramps-controller/src/featureFlags.test.ts | 2 +- packages/ramps-controller/src/index.ts | 44 +++++----- .../src/providerAvailability.test.ts | 4 +- .../src/providerAvailability.ts | 2 +- .../src/quoteClassification.test.ts | 4 +- .../src/quoteClassification.ts | 2 +- .../ramps-controller/src/selectors.test.ts | 8 +- packages/ramps-controller/src/selectors.ts | 8 +- .../src/transakApiErrorUtils.test.ts | 6 +- .../src/transakApiErrorUtils.ts | 4 +- 22 files changed, 119 insertions(+), 119 deletions(-) diff --git a/packages/ramps-controller/src/RampsController-method-action-types.ts b/packages/ramps-controller/src/RampsController-method-action-types.ts index 4792d073e03..6b42331b61c 100644 --- a/packages/ramps-controller/src/RampsController-method-action-types.ts +++ b/packages/ramps-controller/src/RampsController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { RampsController } from './RampsController'; +import type { RampsController } from './RampsController.js'; /** * Executes a request with caching, deduplication, and at most one in-flight diff --git a/packages/ramps-controller/src/RampsController.test.ts b/packages/ramps-controller/src/RampsController.test.ts index 517ff9b7e7e..421668dc1f5 100644 --- a/packages/ramps-controller/src/RampsController.test.ts +++ b/packages/ramps-controller/src/RampsController.test.ts @@ -10,19 +10,28 @@ import type { RemoteFeatureFlagControllerState } from '@metamask/remote-feature- import * as fs from 'fs'; import * as path from 'path'; -import { MONEY_HEADLESS_ALL_PROVIDERS_FLAG_KEY } from './featureFlags'; +import { MONEY_HEADLESS_ALL_PROVIDERS_FLAG_KEY } from './featureFlags.js'; import type { RampsControllerMessenger, RampsControllerState, ResourceState, UserRegion, -} from './RampsController'; +} from './RampsController.js'; import { RampsController, getDefaultRampsControllerState, RAMPS_CONTROLLER_REQUIRED_SERVICE_ACTIONS, -} from './RampsController'; -import { RAMPS_ERROR_CODES } from './rampsErrorCodes'; +} from './RampsController.js'; +import { RAMPS_ERROR_CODES } from './rampsErrorCodes.js'; +import type { + RampsServiceGetGeolocationAction, + RampsServiceGetCountriesAction, + RampsServiceGetTokensAction, + RampsServiceGetProvidersAction, + RampsServiceGetPaymentMethodsAction, + RampsServiceGetQuotesAction, + RampsServiceGetBuyWidgetUrlAction, +} from './RampsService-method-action-types.js'; import type { Country, TokensResponse, @@ -34,18 +43,9 @@ import type { Quote, RampsToken, RampsOrder, -} from './RampsService'; -import { RampsOrderStatus } from './RampsService'; -import type { - RampsServiceGetGeolocationAction, - RampsServiceGetCountriesAction, - RampsServiceGetTokensAction, - RampsServiceGetProvidersAction, - RampsServiceGetPaymentMethodsAction, - RampsServiceGetQuotesAction, - RampsServiceGetBuyWidgetUrlAction, -} from './RampsService-method-action-types'; -import { RequestStatus } from './RequestCache'; +} from './RampsService.js'; +import { RampsOrderStatus } from './RampsService.js'; +import { RequestStatus } from './RequestCache.js'; import type { TransakAccessToken, TransakUserDetails, @@ -61,7 +61,7 @@ import type { TransakOrder, TransakOrderPaymentMethod, PatchUserRequestBody, -} from './TransakService'; +} from './TransakService.js'; describe('RampsController', () => { const circuitBreakerOpenErrorMessage = @@ -4630,8 +4630,7 @@ describe('RampsController', () => { it('does not fetch getPaymentMethods on provider selection (React Query owns fetching)', async () => { const providerWithoutField: Provider = { ...mockProvider }; - delete (providerWithoutField as Partial) - .supportedCryptoCurrencies; + delete providerWithoutField.supportedCryptoCurrencies; const getPaymentMethodsMock = jest.fn(async () => ({ payments: [] })); diff --git a/packages/ramps-controller/src/RampsController.ts b/packages/ramps-controller/src/RampsController.ts index 52a14fa12e8..b9cc0e31955 100644 --- a/packages/ramps-controller/src/RampsController.ts +++ b/packages/ramps-controller/src/RampsController.ts @@ -10,11 +10,22 @@ import type { RemoteFeatureFlagControllerGetStateAction } from '@metamask/remote import type { Json } from '@metamask/utils'; import type { Draft } from 'immer'; -import { isHeadlessAllProvidersEnabled } from './featureFlags'; -import { getProvidersServingAsset } from './providerAvailability'; -import type { RampsControllerMethodActions } from './RampsController-method-action-types'; -import type { RampsErrorCode } from './rampsErrorCodes'; -import { RAMPS_ERROR_CODES } from './rampsErrorCodes'; +import { isHeadlessAllProvidersEnabled } from './featureFlags.js'; +import { getProvidersServingAsset } from './providerAvailability.js'; +import type { RampsControllerMethodActions } from './RampsController-method-action-types.js'; +import type { RampsErrorCode } from './rampsErrorCodes.js'; +import { RAMPS_ERROR_CODES } from './rampsErrorCodes.js'; +import type { + RampsServiceGetGeolocationAction, + RampsServiceGetCountriesAction, + RampsServiceGetTokensAction, + RampsServiceGetProvidersAction, + RampsServiceGetPaymentMethodsAction, + RampsServiceGetQuotesAction, + RampsServiceGetBuyWidgetUrlAction, + RampsServiceGetOrderAction, + RampsServiceGetOrderFromCallbackAction, +} from './RampsService-method-action-types.js'; import type { BuyWidget, Country, @@ -30,26 +41,15 @@ import type { RampsToken, RampsServiceActions, RampsOrder, -} from './RampsService'; -import { RampsOrderStatus } from './RampsService'; -import type { - RampsServiceGetGeolocationAction, - RampsServiceGetCountriesAction, - RampsServiceGetTokensAction, - RampsServiceGetProvidersAction, - RampsServiceGetPaymentMethodsAction, - RampsServiceGetQuotesAction, - RampsServiceGetBuyWidgetUrlAction, - RampsServiceGetOrderAction, - RampsServiceGetOrderFromCallbackAction, -} from './RampsService-method-action-types'; +} from './RampsService.js'; +import { RampsOrderStatus } from './RampsService.js'; import type { RequestCache as RequestCacheType, RequestState, ExecuteRequestOptions, PendingRequest, ResourceType, -} from './RequestCache'; +} from './RequestCache.js'; import { DEFAULT_REQUEST_CACHE_TTL, DEFAULT_REQUEST_CACHE_MAX_SIZE, @@ -59,24 +59,7 @@ import { createSuccessState, createErrorState, RequestStatus, -} from './RequestCache'; -import type { - TransakAccessToken, - TransakUserDetails, - TransakBuyQuote, - TransakKycRequirement, - TransakAdditionalRequirementsResponse, - TransakDepositOrder, - TransakUserLimits, - TransakOttResponse, - TransakQuoteTranslation, - TransakTranslationRequest, - TransakIdProofStatus, - TransakOrderPaymentMethod, - PatchUserRequestBody, - TransakOrder, -} from './TransakService'; -import type { TransakServiceActions } from './TransakService'; +} from './RequestCache.js'; import type { TransakServiceSetApiKeyAction, TransakServiceSetAccessTokenAction, @@ -102,7 +85,24 @@ import type { TransakServiceCancelOrderAction, TransakServiceCancelAllActiveOrdersAction, TransakServiceGetActiveOrdersAction, -} from './TransakService-method-action-types'; +} from './TransakService-method-action-types.js'; +import type { + TransakAccessToken, + TransakUserDetails, + TransakBuyQuote, + TransakKycRequirement, + TransakAdditionalRequirementsResponse, + TransakDepositOrder, + TransakUserLimits, + TransakOttResponse, + TransakQuoteTranslation, + TransakTranslationRequest, + TransakIdProofStatus, + TransakOrderPaymentMethod, + PatchUserRequestBody, + TransakOrder, +} from './TransakService.js'; +import type { TransakServiceActions } from './TransakService.js'; // === GENERAL === @@ -2338,12 +2338,12 @@ export class RampsController extends BaseController< (existing) => getInternalOrderCode(existing) === internalOrderCode, ); if (idx === -1) { - state.orders.push(healedOrder as Draft); + state.orders.push(healedOrder); } else { state.orders[idx] = { ...state.orders[idx], ...healedOrder, - } as Draft; + }; } }); } @@ -2601,7 +2601,7 @@ export class RampsController extends BaseController< wallet, ); - const healedWalletAddress = order.walletAddress || wallet; + const healedWalletAddress = order.walletAddress ?? wallet; const internalOrderCode = getInternalOrderCode({ id: order.id, providerOrderId: orderCode, @@ -2618,12 +2618,12 @@ export class RampsController extends BaseController< getInternalOrderCode(existing) === internalOrderCode, ); if (idx === -1) { - state.orders.push(healedOrder as Draft); + state.orders.push(healedOrder); } else { state.orders[idx] = { ...state.orders[idx], ...healedOrder, - } as Draft; + }; } }); diff --git a/packages/ramps-controller/src/RampsService-method-action-types.ts b/packages/ramps-controller/src/RampsService-method-action-types.ts index f1ed33ab2e1..e4e3044b28a 100644 --- a/packages/ramps-controller/src/RampsService-method-action-types.ts +++ b/packages/ramps-controller/src/RampsService-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { RampsService } from './RampsService'; +import type { RampsService } from './RampsService.js'; /** * Makes a request to the API in order to retrieve the user's geolocation diff --git a/packages/ramps-controller/src/RampsService.test.ts b/packages/ramps-controller/src/RampsService.test.ts index ed4f5d10c99..d645d447456 100644 --- a/packages/ramps-controller/src/RampsService.test.ts +++ b/packages/ramps-controller/src/RampsService.test.ts @@ -6,10 +6,10 @@ import type { } from '@metamask/messenger'; import nock, { cleanAll } from 'nock'; -import { flushPromises } from '../../../tests/helpers'; +import { flushPromises } from '../../../tests/helpers.js'; import packageJson from '../package.json'; -import type { RampsServiceMessenger } from './RampsService'; -import { RampsService, RampsEnvironment } from './RampsService'; +import type { RampsServiceMessenger } from './RampsService.js'; +import { RampsService, RampsEnvironment } from './RampsService.js'; const CONTROLLER_VERSION = packageJson.version; diff --git a/packages/ramps-controller/src/RampsService.ts b/packages/ramps-controller/src/RampsService.ts index 52af12bcfc3..819e95bcdc1 100644 --- a/packages/ramps-controller/src/RampsService.ts +++ b/packages/ramps-controller/src/RampsService.ts @@ -7,7 +7,7 @@ import type { Messenger } from '@metamask/messenger'; import type { AuthenticationController } from '@metamask/profile-sync-controller'; import packageJson from '../package.json'; -import type { RampsServiceMethodActions } from './RampsService-method-action-types'; +import type { RampsServiceMethodActions } from './RampsService-method-action-types.js'; /** * Represents phone number information for a country. diff --git a/packages/ramps-controller/src/RequestCache.test.ts b/packages/ramps-controller/src/RequestCache.test.ts index 3319d27220d..6887f0f7695 100644 --- a/packages/ramps-controller/src/RequestCache.test.ts +++ b/packages/ramps-controller/src/RequestCache.test.ts @@ -6,7 +6,7 @@ import { createSuccessState, createErrorState, DEFAULT_REQUEST_CACHE_TTL, -} from './RequestCache'; +} from './RequestCache.js'; describe('RequestCache', () => { describe('createCacheKey', () => { diff --git a/packages/ramps-controller/src/RequestCache.ts b/packages/ramps-controller/src/RequestCache.ts index 7cfc8e1e7e4..4a7a027a9f1 100644 --- a/packages/ramps-controller/src/RequestCache.ts +++ b/packages/ramps-controller/src/RequestCache.ts @@ -1,6 +1,6 @@ import type { Json } from '@metamask/utils'; -import type { RampsErrorCode } from './rampsErrorCodes'; +import type { RampsErrorCode } from './rampsErrorCodes.js'; /** * Types of resources that can have loading/error states. diff --git a/packages/ramps-controller/src/TransakService-method-action-types.ts b/packages/ramps-controller/src/TransakService-method-action-types.ts index 38864df659c..77e1c53698e 100644 --- a/packages/ramps-controller/src/TransakService-method-action-types.ts +++ b/packages/ramps-controller/src/TransakService-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { TransakService } from './TransakService'; +import type { TransakService } from './TransakService.js'; export type TransakServiceSetApiKeyAction = { type: `TransakService:setApiKey`; diff --git a/packages/ramps-controller/src/TransakService.test.ts b/packages/ramps-controller/src/TransakService.test.ts index 922641a37c1..67d29a4cbd1 100644 --- a/packages/ramps-controller/src/TransakService.test.ts +++ b/packages/ramps-controller/src/TransakService.test.ts @@ -6,17 +6,17 @@ import type { } from '@metamask/messenger'; import nock, { cleanAll, isDone } from 'nock'; -import { flushPromises } from '../../../tests/helpers'; +import { flushPromises } from '../../../tests/helpers.js'; import type { TransakServiceMessenger, TransakAccessToken, -} from './TransakService'; +} from './TransakService.js'; import { TransakService, TransakEnvironment, TransakOrderIdTransformer, TransakApiError, -} from './TransakService'; +} from './TransakService.js'; // === Test Constants === diff --git a/packages/ramps-controller/src/TransakService.ts b/packages/ramps-controller/src/TransakService.ts index 515cfb55816..3330b6e5fcd 100644 --- a/packages/ramps-controller/src/TransakService.ts +++ b/packages/ramps-controller/src/TransakService.ts @@ -5,8 +5,8 @@ import type { import { createServicePolicy, HttpError } from '@metamask/controller-utils'; import type { Messenger } from '@metamask/messenger'; -import { TRANSAK_ERROR_CODES } from './transakErrorCodes'; -import type { TransakServiceMethodActions } from './TransakService-method-action-types'; +import { TRANSAK_ERROR_CODES } from './transakErrorCodes.js'; +import type { TransakServiceMethodActions } from './TransakService-method-action-types.js'; // === TYPES === @@ -592,6 +592,7 @@ export class TransakService { } catch { // ignore body read/parse failures } + // eslint-disable-next-line @typescript-eslint/only-throw-error throw new TransakApiError( fetchResponse.status, `Fetching '${url.toString()}' failed with status '${fetchResponse.status}'${errorBody ? `: ${errorBody}` : ''}`, diff --git a/packages/ramps-controller/src/errorNormalization.test.ts b/packages/ramps-controller/src/errorNormalization.test.ts index f07abd93e4b..a14590585e9 100644 --- a/packages/ramps-controller/src/errorNormalization.test.ts +++ b/packages/ramps-controller/src/errorNormalization.test.ts @@ -2,7 +2,7 @@ import { extractExplicitTypedError, getErrorMessage, normalizeToTypedError, -} from './errorNormalization'; +} from './errorNormalization.js'; type Code = 'NO_QUOTES' | 'QUOTE_FAILED' | 'UNKNOWN'; diff --git a/packages/ramps-controller/src/featureFlags.test.ts b/packages/ramps-controller/src/featureFlags.test.ts index 3485d2f59a0..920f454cd22 100644 --- a/packages/ramps-controller/src/featureFlags.test.ts +++ b/packages/ramps-controller/src/featureFlags.test.ts @@ -1,7 +1,7 @@ import { MONEY_HEADLESS_ALL_PROVIDERS_FLAG_KEY, isHeadlessAllProvidersEnabled, -} from './featureFlags'; +} from './featureFlags.js'; describe('MONEY_HEADLESS_ALL_PROVIDERS_FLAG_KEY', () => { it('matches the LaunchDarkly flag key', () => { diff --git a/packages/ramps-controller/src/index.ts b/packages/ramps-controller/src/index.ts index 3ebe6f39e43..1917725cee5 100644 --- a/packages/ramps-controller/src/index.ts +++ b/packages/ramps-controller/src/index.ts @@ -11,7 +11,7 @@ export type { ResourceState, TransakState, NativeProvidersState, -} from './RampsController'; +} from './RampsController.js'; export type { RampsControllerExecuteRequestAction, RampsControllerAbortRequestAction, @@ -60,13 +60,13 @@ export type { RampsControllerTransakCancelOrderAction, RampsControllerTransakCancelAllActiveOrdersAction, RampsControllerTransakGetActiveOrdersAction, -} from './RampsController-method-action-types'; +} from './RampsController-method-action-types.js'; export { RampsController, getDefaultRampsControllerState, getInternalOrderCode, RAMPS_CONTROLLER_REQUIRED_SERVICE_ACTIONS, -} from './RampsController'; +} from './RampsController.js'; export type { RampsServiceActions, RampsServiceEvents, @@ -102,14 +102,14 @@ export type { RampsOrderFiatCurrency, RampsOrderPaymentMethod, OrderPaymentDetail, -} from './RampsService'; +} from './RampsService.js'; export { RampsService, RampsEnvironment, RampsApiService, RampsOrderStatus, RAMPS_SDK_VERSION, -} from './RampsService'; +} from './RampsService.js'; export type { RampsServiceGetGeolocationAction, RampsServiceGetCountriesAction, @@ -118,15 +118,15 @@ export type { RampsServiceGetBuyWidgetUrlAction, RampsServiceGetOrderAction, RampsServiceGetOrderFromCallbackAction, -} from './RampsService-method-action-types'; +} from './RampsService-method-action-types.js'; export type { RequestCache, RequestState, ExecuteRequestOptions, PendingRequest, ResourceType, -} from './RequestCache'; -export type { RampsErrorCode } from './rampsErrorCodes'; +} from './RequestCache.js'; +export type { RampsErrorCode } from './rampsErrorCodes.js'; export { RequestStatus, DEFAULT_REQUEST_CACHE_TTL, @@ -136,32 +136,32 @@ export { createLoadingState, createSuccessState, createErrorState, -} from './RequestCache'; -export { RAMPS_ERROR_CODES } from './rampsErrorCodes'; -export type { RequestSelectorResult } from './selectors'; -export { createRequestSelector } from './selectors'; -export type { HeadlessFeatureFlagsLookup } from './featureFlags'; +} from './RequestCache.js'; +export { RAMPS_ERROR_CODES } from './rampsErrorCodes.js'; +export type { RequestSelectorResult } from './selectors.js'; +export { createRequestSelector } from './selectors.js'; +export type { HeadlessFeatureFlagsLookup } from './featureFlags.js'; export { MONEY_HEADLESS_ALL_PROVIDERS_FLAG_KEY, isHeadlessAllProvidersEnabled, -} from './featureFlags'; +} from './featureFlags.js'; export { providerServesAsset, getProvidersServingAsset, regionHasProviderForAsset, isFiatDepositAvailable, -} from './providerAvailability'; +} from './providerAvailability.js'; export { isExternalBrowserQuote, isCustomActionQuote, isInAppOnlyQuote, -} from './quoteClassification'; -export type { TypedError } from './errorNormalization'; +} from './quoteClassification.js'; +export type { TypedError } from './errorNormalization.js'; export { getErrorMessage, extractExplicitTypedError, normalizeToTypedError, -} from './errorNormalization'; +} from './errorNormalization.js'; export type { TransakServiceActions, TransakServiceEvents, @@ -187,17 +187,17 @@ export type { TransakUserLimits, TransakIdProofStatus, PatchUserRequestBody as TransakPatchUserRequestBody, -} from './TransakService'; +} from './TransakService.js'; export { TransakApiError, TransakService, TransakEnvironment, TransakOrderIdTransformer, -} from './TransakService'; +} from './TransakService.js'; export { getTransakApiMessage, isTransakPhoneRegisteredError, -} from './transakApiErrorUtils'; +} from './transakApiErrorUtils.js'; export type { TransakServiceMethodActions, TransakServiceSendUserOtpAction, @@ -209,4 +209,4 @@ export type { TransakServiceGetOrderAction, TransakServiceRequestOttAction, TransakServiceGeneratePaymentWidgetUrlAction, -} from './TransakService-method-action-types'; +} from './TransakService-method-action-types.js'; diff --git a/packages/ramps-controller/src/providerAvailability.test.ts b/packages/ramps-controller/src/providerAvailability.test.ts index 70612ecd11a..bcbd8434edb 100644 --- a/packages/ramps-controller/src/providerAvailability.test.ts +++ b/packages/ramps-controller/src/providerAvailability.test.ts @@ -3,8 +3,8 @@ import { isFiatDepositAvailable, providerServesAsset, regionHasProviderForAsset, -} from './providerAvailability'; -import type { Provider } from './RampsService'; +} from './providerAvailability.js'; +import type { Provider } from './RampsService.js'; const ASSET_ID = 'eip155:1/erc20:0xtoken'; diff --git a/packages/ramps-controller/src/providerAvailability.ts b/packages/ramps-controller/src/providerAvailability.ts index d1e6345279c..59d6e2b4492 100644 --- a/packages/ramps-controller/src/providerAvailability.ts +++ b/packages/ramps-controller/src/providerAvailability.ts @@ -1,4 +1,4 @@ -import type { Provider } from './RampsService'; +import type { Provider } from './RampsService.js'; /** * Whether a provider serves the given deposit asset. diff --git a/packages/ramps-controller/src/quoteClassification.test.ts b/packages/ramps-controller/src/quoteClassification.test.ts index b5908212522..de0d363dcc5 100644 --- a/packages/ramps-controller/src/quoteClassification.test.ts +++ b/packages/ramps-controller/src/quoteClassification.test.ts @@ -2,8 +2,8 @@ import { isCustomActionQuote, isExternalBrowserQuote, isInAppOnlyQuote, -} from './quoteClassification'; -import type { Quote } from './RampsService'; +} from './quoteClassification.js'; +import type { Quote } from './RampsService.js'; const buildQuote = ( overrides: { diff --git a/packages/ramps-controller/src/quoteClassification.ts b/packages/ramps-controller/src/quoteClassification.ts index dd0fbcf004b..5b1fe2c0565 100644 --- a/packages/ramps-controller/src/quoteClassification.ts +++ b/packages/ramps-controller/src/quoteClassification.ts @@ -1,4 +1,4 @@ -import type { Quote } from './RampsService'; +import type { Quote } from './RampsService.js'; /** * Whether a quote's checkout runs in an external / system browser rather than diff --git a/packages/ramps-controller/src/selectors.test.ts b/packages/ramps-controller/src/selectors.test.ts index 86a9883d7e6..5ce72e189c0 100644 --- a/packages/ramps-controller/src/selectors.test.ts +++ b/packages/ramps-controller/src/selectors.test.ts @@ -1,11 +1,11 @@ -import type { RampsControllerState } from './RampsController'; -import { RAMPS_ERROR_CODES } from './rampsErrorCodes'; +import type { RampsControllerState } from './RampsController.js'; +import { RAMPS_ERROR_CODES } from './rampsErrorCodes.js'; import { createLoadingState, createSuccessState, createErrorState, -} from './RequestCache'; -import { createRequestSelector } from './selectors'; +} from './RequestCache.js'; +import { createRequestSelector } from './selectors.js'; type TestRootState = { ramps: RampsControllerState; diff --git a/packages/ramps-controller/src/selectors.ts b/packages/ramps-controller/src/selectors.ts index fd8cc6a9fd6..1152ba5730d 100644 --- a/packages/ramps-controller/src/selectors.ts +++ b/packages/ramps-controller/src/selectors.ts @@ -1,7 +1,7 @@ -import type { RampsControllerState } from './RampsController'; -import type { RampsErrorCode } from './rampsErrorCodes'; -import type { RequestState } from './RequestCache'; -import { RequestStatus, createCacheKey } from './RequestCache'; +import type { RampsControllerState } from './RampsController.js'; +import type { RampsErrorCode } from './rampsErrorCodes.js'; +import type { RequestState } from './RequestCache.js'; +import { RequestStatus, createCacheKey } from './RequestCache.js'; /** * Result shape returned by request selectors. diff --git a/packages/ramps-controller/src/transakApiErrorUtils.test.ts b/packages/ramps-controller/src/transakApiErrorUtils.test.ts index 418b88ea0a8..9c20ab6aa9e 100644 --- a/packages/ramps-controller/src/transakApiErrorUtils.test.ts +++ b/packages/ramps-controller/src/transakApiErrorUtils.test.ts @@ -1,9 +1,9 @@ import { getTransakApiMessage, isTransakPhoneRegisteredError, -} from './transakApiErrorUtils'; -import { TRANSAK_ERROR_CODES } from './transakErrorCodes'; -import { TransakApiError } from './TransakService'; +} from './transakApiErrorUtils.js'; +import { TRANSAK_ERROR_CODES } from './transakErrorCodes.js'; +import { TransakApiError } from './TransakService.js'; describe('transakApiErrorUtils', () => { const phoneRegisteredError = new TransakApiError( diff --git a/packages/ramps-controller/src/transakApiErrorUtils.ts b/packages/ramps-controller/src/transakApiErrorUtils.ts index dad971fc1e2..eeb032281b9 100644 --- a/packages/ramps-controller/src/transakApiErrorUtils.ts +++ b/packages/ramps-controller/src/transakApiErrorUtils.ts @@ -1,5 +1,5 @@ -import { TRANSAK_ERROR_CODES } from './transakErrorCodes'; -import { TransakApiError } from './TransakService'; +import { TRANSAK_ERROR_CODES } from './transakErrorCodes.js'; +import { TransakApiError } from './TransakService.js'; export function getTransakApiMessage(error: unknown): string | undefined { return error instanceof TransakApiError ? error.apiMessage : undefined; From 0f23eadcc50e5bbe6128f4348f0d58027c89332e Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:51:54 +0200 Subject: [PATCH 111/136] ESLint fix and `jest` global import for sample-controllers --- packages/sample-controllers/src/index.ts | 18 +++++++++--------- ...as-prices-controller-method-action-types.ts | 2 +- .../src/sample-gas-prices-controller.test.ts | 4 ++-- .../src/sample-gas-prices-controller.ts | 4 ++-- ...e-gas-prices-service-method-action-types.ts | 2 +- .../sample-gas-prices-service.test.ts | 4 ++-- .../sample-gas-prices-service.ts | 2 +- ...-petnames-controller-method-action-types.ts | 2 +- .../src/sample-petnames-controller.test.ts | 6 +++--- .../src/sample-petnames-controller.ts | 2 +- 10 files changed, 23 insertions(+), 23 deletions(-) diff --git a/packages/sample-controllers/src/index.ts b/packages/sample-controllers/src/index.ts index 81777561bcf..c0b57222b8c 100644 --- a/packages/sample-controllers/src/index.ts +++ b/packages/sample-controllers/src/index.ts @@ -5,9 +5,9 @@ export type { SampleGasPricesServiceGranularCacheUpdatedEvent, SampleGasPricesServiceEvents, SampleGasPricesServiceMessenger, -} from './sample-gas-prices-service/sample-gas-prices-service'; -export type { SampleGasPricesServiceFetchGasPricesAction } from './sample-gas-prices-service/sample-gas-prices-service-method-action-types'; -export { SampleGasPricesService } from './sample-gas-prices-service/sample-gas-prices-service'; +} from './sample-gas-prices-service/sample-gas-prices-service.js'; +export type { SampleGasPricesServiceFetchGasPricesAction } from './sample-gas-prices-service/sample-gas-prices-service-method-action-types.js'; +export { SampleGasPricesService } from './sample-gas-prices-service/sample-gas-prices-service.js'; export type { SampleGasPricesControllerActions, SampleGasPricesControllerEvents, @@ -15,12 +15,12 @@ export type { SampleGasPricesControllerMessenger, SampleGasPricesControllerState, SampleGasPricesControllerStateChangeEvent, -} from './sample-gas-prices-controller'; +} from './sample-gas-prices-controller.js'; export { SampleGasPricesController, getDefaultSampleGasPricesControllerState, -} from './sample-gas-prices-controller'; -export type { SampleGasPricesControllerUpdateGasPricesAction } from './sample-gas-prices-controller-method-action-types'; +} from './sample-gas-prices-controller.js'; +export type { SampleGasPricesControllerUpdateGasPricesAction } from './sample-gas-prices-controller-method-action-types.js'; export type { SamplePetnamesControllerActions, SamplePetnamesControllerEvents, @@ -28,9 +28,9 @@ export type { SamplePetnamesControllerMessenger, SamplePetnamesControllerState, SamplePetnamesControllerStateChangeEvent, -} from './sample-petnames-controller'; +} from './sample-petnames-controller.js'; export { SamplePetnamesController, getDefaultPetnamesControllerState, -} from './sample-petnames-controller'; -export type { SamplePetnamesControllerAssignPetnameAction } from './sample-petnames-controller-method-action-types'; +} from './sample-petnames-controller.js'; +export type { SamplePetnamesControllerAssignPetnameAction } from './sample-petnames-controller-method-action-types.js'; diff --git a/packages/sample-controllers/src/sample-gas-prices-controller-method-action-types.ts b/packages/sample-controllers/src/sample-gas-prices-controller-method-action-types.ts index fed4a95a7b7..bf47544440b 100644 --- a/packages/sample-controllers/src/sample-gas-prices-controller-method-action-types.ts +++ b/packages/sample-controllers/src/sample-gas-prices-controller-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { SampleGasPricesController } from './sample-gas-prices-controller'; +import type { SampleGasPricesController } from './sample-gas-prices-controller.js'; /** * Fetches the latest gas prices for the given chain and persists them to diff --git a/packages/sample-controllers/src/sample-gas-prices-controller.test.ts b/packages/sample-controllers/src/sample-gas-prices-controller.test.ts index 0d4eeff1a37..d0d345a034e 100644 --- a/packages/sample-controllers/src/sample-gas-prices-controller.test.ts +++ b/packages/sample-controllers/src/sample-gas-prices-controller.test.ts @@ -8,8 +8,8 @@ import type { import { SampleGasPricesController } from '@metamask/sample-controllers'; import type { SampleGasPricesControllerMessenger } from '@metamask/sample-controllers'; -import { flushPromises } from '../../../tests/helpers'; -import { buildMockGetNetworkClientById } from '../../network-controller/tests/helpers'; +import { flushPromises } from '../../../tests/helpers.js'; +import { buildMockGetNetworkClientById } from '../../network-controller/tests/helpers.js'; describe('SampleGasPricesController', () => { describe('constructor', () => { diff --git a/packages/sample-controllers/src/sample-gas-prices-controller.ts b/packages/sample-controllers/src/sample-gas-prices-controller.ts index c354c90da3f..267f77cfeaa 100644 --- a/packages/sample-controllers/src/sample-gas-prices-controller.ts +++ b/packages/sample-controllers/src/sample-gas-prices-controller.ts @@ -12,8 +12,8 @@ import type { } from '@metamask/network-controller'; import type { Hex } from '@metamask/utils'; -import type { SampleGasPricesControllerMethodActions } from './sample-gas-prices-controller-method-action-types'; -import type { SampleGasPricesServiceFetchGasPricesAction } from './sample-gas-prices-service/sample-gas-prices-service-method-action-types'; +import type { SampleGasPricesControllerMethodActions } from './sample-gas-prices-controller-method-action-types.js'; +import type { SampleGasPricesServiceFetchGasPricesAction } from './sample-gas-prices-service/sample-gas-prices-service-method-action-types.js'; // === GENERAL === diff --git a/packages/sample-controllers/src/sample-gas-prices-service/sample-gas-prices-service-method-action-types.ts b/packages/sample-controllers/src/sample-gas-prices-service/sample-gas-prices-service-method-action-types.ts index e96aaa704a1..f0959df0af8 100644 --- a/packages/sample-controllers/src/sample-gas-prices-service/sample-gas-prices-service-method-action-types.ts +++ b/packages/sample-controllers/src/sample-gas-prices-service/sample-gas-prices-service-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { SampleGasPricesService } from './sample-gas-prices-service'; +import type { SampleGasPricesService } from './sample-gas-prices-service.js'; /** * Makes a request to the API in order to retrieve gas prices for a particular diff --git a/packages/sample-controllers/src/sample-gas-prices-service/sample-gas-prices-service.test.ts b/packages/sample-controllers/src/sample-gas-prices-service/sample-gas-prices-service.test.ts index d360f5b36d4..54e394e8b77 100644 --- a/packages/sample-controllers/src/sample-gas-prices-service/sample-gas-prices-service.test.ts +++ b/packages/sample-controllers/src/sample-gas-prices-service/sample-gas-prices-service.test.ts @@ -7,8 +7,8 @@ import type { } from '@metamask/messenger'; import nock from 'nock'; -import type { SampleGasPricesServiceMessenger } from './sample-gas-prices-service'; -import { SampleGasPricesService } from './sample-gas-prices-service'; +import type { SampleGasPricesServiceMessenger } from './sample-gas-prices-service.js'; +import { SampleGasPricesService } from './sample-gas-prices-service.js'; describe('SampleGasPricesService', () => { describe('SampleGasPricesService:fetchGasPrices', () => { diff --git a/packages/sample-controllers/src/sample-gas-prices-service/sample-gas-prices-service.ts b/packages/sample-controllers/src/sample-gas-prices-service/sample-gas-prices-service.ts index 591f26e3625..9372f46d618 100644 --- a/packages/sample-controllers/src/sample-gas-prices-service/sample-gas-prices-service.ts +++ b/packages/sample-controllers/src/sample-gas-prices-service/sample-gas-prices-service.ts @@ -12,7 +12,7 @@ import { is, number, type } from '@metamask/superstruct'; import type { Hex } from '@metamask/utils'; import type { QueryClientConfig } from '@tanstack/query-core'; -import type { SampleGasPricesServiceMethodActions } from './sample-gas-prices-service-method-action-types'; +import type { SampleGasPricesServiceMethodActions } from './sample-gas-prices-service-method-action-types.js'; // === GENERAL === diff --git a/packages/sample-controllers/src/sample-petnames-controller-method-action-types.ts b/packages/sample-controllers/src/sample-petnames-controller-method-action-types.ts index 33da8c281d5..fbfccf4eb9b 100644 --- a/packages/sample-controllers/src/sample-petnames-controller-method-action-types.ts +++ b/packages/sample-controllers/src/sample-petnames-controller-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { SamplePetnamesController } from './sample-petnames-controller'; +import type { SamplePetnamesController } from './sample-petnames-controller.js'; /** * Registers the given name with the given address (relative to the given diff --git a/packages/sample-controllers/src/sample-petnames-controller.test.ts b/packages/sample-controllers/src/sample-petnames-controller.test.ts index ae641c1c35b..68a4217779c 100644 --- a/packages/sample-controllers/src/sample-petnames-controller.test.ts +++ b/packages/sample-controllers/src/sample-petnames-controller.test.ts @@ -6,9 +6,9 @@ import type { MessengerEvents, } from '@metamask/messenger'; -import { PROTOTYPE_POLLUTION_BLOCKLIST } from '../../controller-utils/src/util'; -import type { SamplePetnamesControllerMessenger } from './sample-petnames-controller'; -import { SamplePetnamesController } from './sample-petnames-controller'; +import { PROTOTYPE_POLLUTION_BLOCKLIST } from '../../controller-utils/src/util.js'; +import type { SamplePetnamesControllerMessenger } from './sample-petnames-controller.js'; +import { SamplePetnamesController } from './sample-petnames-controller.js'; describe('SamplePetnamesController', () => { describe('constructor', () => { diff --git a/packages/sample-controllers/src/sample-petnames-controller.ts b/packages/sample-controllers/src/sample-petnames-controller.ts index a8b18844537..84e6dfb5cf3 100644 --- a/packages/sample-controllers/src/sample-petnames-controller.ts +++ b/packages/sample-controllers/src/sample-petnames-controller.ts @@ -8,7 +8,7 @@ import { isSafeDynamicKey } from '@metamask/controller-utils'; import type { Messenger } from '@metamask/messenger'; import type { Hex } from '@metamask/utils'; -import type { SamplePetnamesControllerMethodActions } from './sample-petnames-controller-method-action-types'; +import type { SamplePetnamesControllerMethodActions } from './sample-petnames-controller-method-action-types.js'; // === GENERAL === From 3a16f0bfdb607997aacb6bc766082128199dec6d Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:51:57 +0200 Subject: [PATCH 112/136] ESLint fix and `jest` global import for seedless-onboarding-controller --- .../src/SecretMetadata.ts | 6 ++-- ...nboardingController-method-action-types.ts | 2 +- .../src/SeedlessOnboardingController.test.ts | 28 +++++++++---------- .../src/SeedlessOnboardingController.ts | 18 ++++++------ .../src/assertions.test.ts | 6 ++-- .../src/assertions.ts | 4 +-- .../src/errors.test.ts | 4 +-- .../src/errors.ts | 4 +-- .../src/index.ts | 14 +++++----- .../src/logger.ts | 2 +- .../src/types.ts | 2 +- .../src/utils.test.ts | 6 ++-- .../src/utils.ts | 4 +-- .../tests/__fixtures__/mockMessenger.ts | 4 +-- .../tests/__fixtures__/topfClient.ts | 2 +- .../tests/mocks/toprf.ts | 4 +-- .../tests/mocks/utils.ts | 2 +- 17 files changed, 56 insertions(+), 56 deletions(-) diff --git a/packages/seedless-onboarding-controller/src/SecretMetadata.ts b/packages/seedless-onboarding-controller/src/SecretMetadata.ts index 43c4897d22c..9b474097e1a 100644 --- a/packages/seedless-onboarding-controller/src/SecretMetadata.ts +++ b/packages/seedless-onboarding-controller/src/SecretMetadata.ts @@ -10,9 +10,9 @@ import { import { SeedlessOnboardingControllerErrorMessage, SecretType, -} from './constants'; -import type { SecretDataType } from './types'; -import { getSecretTypeFromDataType } from './utils'; +} from './constants.js'; +import type { SecretDataType } from './types.js'; +import { getSecretTypeFromDataType } from './utils.js'; type ISecretMetadata = { data: DataType; diff --git a/packages/seedless-onboarding-controller/src/SeedlessOnboardingController-method-action-types.ts b/packages/seedless-onboarding-controller/src/SeedlessOnboardingController-method-action-types.ts index 5e560ee7256..1281dd0c075 100644 --- a/packages/seedless-onboarding-controller/src/SeedlessOnboardingController-method-action-types.ts +++ b/packages/seedless-onboarding-controller/src/SeedlessOnboardingController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { SeedlessOnboardingController } from './SeedlessOnboardingController'; +import type { SeedlessOnboardingController } from './SeedlessOnboardingController.js'; export type SeedlessOnboardingControllerFetchMetadataAccessCredsAction = { type: `SeedlessOnboardingController:fetchMetadataAccessCreds`; diff --git a/packages/seedless-onboarding-controller/src/SeedlessOnboardingController.test.ts b/packages/seedless-onboarding-controller/src/SeedlessOnboardingController.test.ts index ff081033178..5704af247cc 100644 --- a/packages/seedless-onboarding-controller/src/SeedlessOnboardingController.test.ts +++ b/packages/seedless-onboarding-controller/src/SeedlessOnboardingController.test.ts @@ -49,39 +49,39 @@ import type { webcrypto } from 'node:crypto'; import type { MockKeyringControllerMessenger, RootMessenger, -} from '../tests/__fixtures__/mockMessenger'; -import { mockSeedlessOnboardingMessenger } from '../tests/__fixtures__/mockMessenger'; +} from '../tests/__fixtures__/mockMessenger.js'; +import { mockSeedlessOnboardingMessenger } from '../tests/__fixtures__/mockMessenger.js'; import { handleMockSecretDataGet, handleMockSecretDataAdd, handleMockCommitment, handleMockAuthenticate, -} from '../tests/__fixtures__/topfClient'; +} from '../tests/__fixtures__/topfClient.js'; import { createMockSecretDataGetResponse, MULTIPLE_MOCK_SECRET_METADATA, -} from '../tests/mocks/toprf'; -import { MockToprfEncryptorDecryptor } from '../tests/mocks/toprfEncryptor'; -import { createMockJWTToken } from '../tests/mocks/utils'; -import MockVaultEncryptor from '../tests/mocks/vaultEncryptor'; +} from '../tests/mocks/toprf.js'; +import { MockToprfEncryptorDecryptor } from '../tests/mocks/toprfEncryptor.js'; +import { createMockJWTToken } from '../tests/mocks/utils.js'; +import MockVaultEncryptor from '../tests/mocks/vaultEncryptor.js'; import { Web3AuthNetwork, SeedlessOnboardingControllerErrorMessage, SeedlessOnboardingMigrationVersion, AuthConnection, SecretType, -} from './constants'; -import { PasswordSyncError, RecoveryError } from './errors'; -import { SecretMetadata } from './SecretMetadata'; +} from './constants.js'; +import { PasswordSyncError, RecoveryError } from './errors.js'; +import { SecretMetadata } from './SecretMetadata.js'; import { SeedlessOnboardingController, getInitialSeedlessOnboardingControllerStateWithDefaults, -} from './SeedlessOnboardingController'; +} from './SeedlessOnboardingController.js'; import type { SeedlessOnboardingControllerMessenger, SeedlessOnboardingControllerOptions, -} from './SeedlessOnboardingController'; -import type { SeedlessOnboardingControllerState } from './types'; +} from './SeedlessOnboardingController.js'; +import type { SeedlessOnboardingControllerState } from './types.js'; const authConnection = AuthConnection.Google; const socialLoginEmail = 'user-test@gmail.com'; @@ -239,7 +239,7 @@ async function withController( // In the withController function, before creating the controller: const originalFetchMetadataAccessCreds = - // eslint-disable-next-line jest/unbound-method -- testing mock + // eslint-disable-next-line jest/unbound-method SeedlessOnboardingController.prototype.fetchMetadataAccessCreds; jest diff --git a/packages/seedless-onboarding-controller/src/SeedlessOnboardingController.ts b/packages/seedless-onboarding-controller/src/SeedlessOnboardingController.ts index c778a1c613a..c0c351c187b 100644 --- a/packages/seedless-onboarding-controller/src/SeedlessOnboardingController.ts +++ b/packages/seedless-onboarding-controller/src/SeedlessOnboardingController.ts @@ -42,8 +42,8 @@ import { assertIsSeedlessOnboardingUserAuthenticated, assertIsValidPassword, assertIsValidVaultData, -} from './assertions'; -import type { AuthConnection } from './constants'; +} from './assertions.js'; +import type { AuthConnection } from './constants.js'; import { controllerName, PASSWORD_OUTDATED_CACHE_TTL_MS, @@ -51,15 +51,15 @@ import { SeedlessOnboardingControllerErrorMessage, SeedlessOnboardingMigrationVersion, Web3AuthNetwork, -} from './constants'; +} from './constants.js'; import { PasswordSyncError, RecoveryError, SeedlessOnboardingError, -} from './errors'; -import { projectLogger, createModuleLogger } from './logger'; -import { SecretMetadata } from './SecretMetadata'; -import type { SeedlessOnboardingControllerMethodActions } from './SeedlessOnboardingController-method-action-types'; +} from './errors.js'; +import { projectLogger, createModuleLogger } from './logger.js'; +import { SecretMetadata } from './SecretMetadata.js'; +import type { SeedlessOnboardingControllerMethodActions } from './SeedlessOnboardingController-method-action-types.js'; import type { MutuallyExclusiveCallback, SeedlessOnboardingControllerState, @@ -71,14 +71,14 @@ import type { VaultData, DeserializedVaultData, ToprfKeyDeriver, -} from './types'; +} from './types.js'; import { compareAndGetLatestToken, decodeJWTToken, decodeNodeAuthToken, deserializeVaultData, serializeVaultData, -} from './utils'; +} from './utils.js'; const log = createModuleLogger(projectLogger, controllerName); diff --git a/packages/seedless-onboarding-controller/src/assertions.test.ts b/packages/seedless-onboarding-controller/src/assertions.test.ts index 270f53adc2f..bec8735444a 100644 --- a/packages/seedless-onboarding-controller/src/assertions.test.ts +++ b/packages/seedless-onboarding-controller/src/assertions.test.ts @@ -2,9 +2,9 @@ import { assertIsPasswordOutdatedCacheValid, assertIsValidPassword, assertIsValidVaultData, -} from './assertions'; -import { SeedlessOnboardingControllerErrorMessage } from './constants'; -import { VaultData } from './types'; +} from './assertions.js'; +import { SeedlessOnboardingControllerErrorMessage } from './constants.js'; +import { VaultData } from './types.js'; describe('assertIsValidPassword', () => { it('should throw when password is not a string', () => { diff --git a/packages/seedless-onboarding-controller/src/assertions.ts b/packages/seedless-onboarding-controller/src/assertions.ts index c9929e1a2b4..cc7eddc4278 100644 --- a/packages/seedless-onboarding-controller/src/assertions.ts +++ b/packages/seedless-onboarding-controller/src/assertions.ts @@ -1,5 +1,5 @@ -import { SeedlessOnboardingControllerErrorMessage } from './constants'; -import type { AuthenticatedUserDetails, VaultData } from './types'; +import { SeedlessOnboardingControllerErrorMessage } from './constants.js'; +import type { AuthenticatedUserDetails, VaultData } from './types.js'; /** * Assert that the provided password is a valid non-empty string. diff --git a/packages/seedless-onboarding-controller/src/errors.test.ts b/packages/seedless-onboarding-controller/src/errors.test.ts index e090e16a648..9dc4c40e24e 100644 --- a/packages/seedless-onboarding-controller/src/errors.test.ts +++ b/packages/seedless-onboarding-controller/src/errors.test.ts @@ -1,10 +1,10 @@ import { TOPRFErrorCode } from '@metamask/toprf-secure-backup'; -import { SeedlessOnboardingControllerErrorMessage } from './constants'; +import { SeedlessOnboardingControllerErrorMessage } from './constants.js'; import { getErrorMessageFromTOPRFErrorCode, SeedlessOnboardingError, -} from './errors'; +} from './errors.js'; describe('getErrorMessageFromTOPRFErrorCode', () => { it('returns TooManyLoginAttempts for RateLimitExceeded', () => { diff --git a/packages/seedless-onboarding-controller/src/errors.ts b/packages/seedless-onboarding-controller/src/errors.ts index 005a614cdb6..be950deaf8d 100644 --- a/packages/seedless-onboarding-controller/src/errors.ts +++ b/packages/seedless-onboarding-controller/src/errors.ts @@ -1,8 +1,8 @@ import { TOPRFError, TOPRFErrorCode } from '@metamask/toprf-secure-backup'; import type { RateLimitErrorData } from '@metamask/toprf-secure-backup'; -import { SeedlessOnboardingControllerErrorMessage } from './constants'; -import type { RecoveryErrorData } from './types'; +import { SeedlessOnboardingControllerErrorMessage } from './constants.js'; +import type { RecoveryErrorData } from './types.js'; /** * Get the error message from the TOPRF error code. diff --git a/packages/seedless-onboarding-controller/src/index.ts b/packages/seedless-onboarding-controller/src/index.ts index 352ff7fe228..299e6b43cbb 100644 --- a/packages/seedless-onboarding-controller/src/index.ts +++ b/packages/seedless-onboarding-controller/src/index.ts @@ -1,7 +1,7 @@ export { SeedlessOnboardingController, getInitialSeedlessOnboardingControllerStateWithDefaults as getDefaultSeedlessOnboardingControllerState, -} from './SeedlessOnboardingController'; +} from './SeedlessOnboardingController.js'; export type { SeedlessOnboardingControllerOptions, SeedlessOnboardingControllerMessenger, @@ -9,7 +9,7 @@ export type { SeedlessOnboardingControllerStateChangeEvent, SeedlessOnboardingControllerActions, SeedlessOnboardingControllerEvents, -} from './SeedlessOnboardingController'; +} from './SeedlessOnboardingController.js'; export type { SeedlessOnboardingControllerFetchMetadataAccessCredsAction, SeedlessOnboardingControllerPreloadToprfNodeDetailsAction, @@ -38,22 +38,22 @@ export type { SeedlessOnboardingControllerCheckMetadataAccessTokenExpiredAction, SeedlessOnboardingControllerCheckAccessTokenExpiredAction, SeedlessOnboardingControllerRunMigrationsAction, -} from './SeedlessOnboardingController-method-action-types'; +} from './SeedlessOnboardingController-method-action-types.js'; export type { AuthenticatedUserDetails, SocialBackupsMetadata, SeedlessOnboardingControllerState, ToprfKeyDeriver, RecoveryErrorData, -} from './types'; +} from './types.js'; export { Web3AuthNetwork, SeedlessOnboardingControllerErrorMessage, SeedlessOnboardingMigrationVersion, AuthConnection, SecretType, -} from './constants'; -export { SecretMetadata } from './SecretMetadata'; -export { RecoveryError, SeedlessOnboardingError } from './errors'; +} from './constants.js'; +export { SecretMetadata } from './SecretMetadata.js'; +export { RecoveryError, SeedlessOnboardingError } from './errors.js'; export { EncAccountDataType } from '@metamask/toprf-secure-backup'; diff --git a/packages/seedless-onboarding-controller/src/logger.ts b/packages/seedless-onboarding-controller/src/logger.ts index ca017b5ba54..abd139116dc 100644 --- a/packages/seedless-onboarding-controller/src/logger.ts +++ b/packages/seedless-onboarding-controller/src/logger.ts @@ -1,6 +1,6 @@ import { createProjectLogger, createModuleLogger } from '@metamask/utils'; -import { controllerName } from './constants'; +import { controllerName } from './constants.js'; export const projectLogger = createProjectLogger(controllerName); diff --git a/packages/seedless-onboarding-controller/src/types.ts b/packages/seedless-onboarding-controller/src/types.ts index 39033b6feef..a09fb81b832 100644 --- a/packages/seedless-onboarding-controller/src/types.ts +++ b/packages/seedless-onboarding-controller/src/types.ts @@ -1,7 +1,7 @@ import type { KeyPair, NodeAuthTokens } from '@metamask/toprf-secure-backup'; import type { MutexInterface } from 'async-mutex'; -import type { AuthConnection, SecretType } from './constants'; +import type { AuthConnection, SecretType } from './constants.js'; /** * The backup state of the secret data. diff --git a/packages/seedless-onboarding-controller/src/utils.test.ts b/packages/seedless-onboarding-controller/src/utils.test.ts index ecd047a0b82..9a0ff066351 100644 --- a/packages/seedless-onboarding-controller/src/utils.test.ts +++ b/packages/seedless-onboarding-controller/src/utils.test.ts @@ -2,14 +2,14 @@ import { EncAccountDataType } from '@metamask/toprf-secure-backup'; import { bytesToBase64 } from '@metamask/utils'; import { utf8ToBytes } from '@noble/ciphers/utils'; -import { createMockJWTToken } from '../tests/mocks/utils'; -import type { DecodedNodeAuthToken } from './types'; +import { createMockJWTToken } from '../tests/mocks/utils.js'; +import type { DecodedNodeAuthToken } from './types.js'; import { decodeNodeAuthToken, decodeJWTToken, compareAndGetLatestToken, getSecretTypeFromDataType, -} from './utils'; +} from './utils.js'; describe('utils', () => { describe('decodeNodeAuthToken', () => { diff --git a/packages/seedless-onboarding-controller/src/utils.ts b/packages/seedless-onboarding-controller/src/utils.ts index 149e689cd5c..d7bd9ac0176 100644 --- a/packages/seedless-onboarding-controller/src/utils.ts +++ b/packages/seedless-onboarding-controller/src/utils.ts @@ -8,13 +8,13 @@ import { } from '@metamask/utils'; import { bytesToUtf8 } from '@noble/ciphers/utils'; -import { SecretType } from './constants'; +import { SecretType } from './constants.js'; import type { DecodedBaseJWTToken, DecodedNodeAuthToken, DeserializedVaultData, VaultData, -} from './types'; +} from './types.js'; /** * Decode the node auth token from base64 to json object. diff --git a/packages/seedless-onboarding-controller/tests/__fixtures__/mockMessenger.ts b/packages/seedless-onboarding-controller/tests/__fixtures__/mockMessenger.ts index 51a791e5d17..c0aa2e622b3 100644 --- a/packages/seedless-onboarding-controller/tests/__fixtures__/mockMessenger.ts +++ b/packages/seedless-onboarding-controller/tests/__fixtures__/mockMessenger.ts @@ -9,8 +9,8 @@ import type { MessengerEvents, } from '@metamask/messenger'; -import { controllerName } from '../../src/constants'; -import type { SeedlessOnboardingControllerMessenger } from '../../src/SeedlessOnboardingController'; +import { controllerName } from '../../src/constants.js'; +import type { SeedlessOnboardingControllerMessenger } from '../../src/SeedlessOnboardingController.js'; export type AllSeedlessOnboardingControllerActions = MessengerActions; diff --git a/packages/seedless-onboarding-controller/tests/__fixtures__/topfClient.ts b/packages/seedless-onboarding-controller/tests/__fixtures__/topfClient.ts index 4062bc6dd2b..8e0b09c57ad 100644 --- a/packages/seedless-onboarding-controller/tests/__fixtures__/topfClient.ts +++ b/packages/seedless-onboarding-controller/tests/__fixtures__/topfClient.ts @@ -9,7 +9,7 @@ import { MOCK_TOPRF_AUTHENTICATION_RESPONSE, MOCK_TOPRF_COMMITMENT_RESPONSE, TOPRF_BASE_URL, -} from '../mocks/toprf'; +} from '../mocks/toprf.js'; type MockReply = { status: nock.StatusCode; diff --git a/packages/seedless-onboarding-controller/tests/mocks/toprf.ts b/packages/seedless-onboarding-controller/tests/mocks/toprf.ts index 5766cb6867c..60822e83d06 100644 --- a/packages/seedless-onboarding-controller/tests/mocks/toprf.ts +++ b/packages/seedless-onboarding-controller/tests/mocks/toprf.ts @@ -1,7 +1,7 @@ import { EncAccountDataType } from '@metamask/toprf-secure-backup'; -import { SecretType } from '../../src/constants'; -import { MockToprfEncryptorDecryptor } from './toprfEncryptor'; +import { SecretType } from '../../src/constants.js'; +import { MockToprfEncryptorDecryptor } from './toprfEncryptor.js'; export const TOPRF_BASE_URL = /https:\/\/node-[1-5]\.dev-node\.web3auth\.io/u; diff --git a/packages/seedless-onboarding-controller/tests/mocks/utils.ts b/packages/seedless-onboarding-controller/tests/mocks/utils.ts index b49f719f42c..b779c8413de 100644 --- a/packages/seedless-onboarding-controller/tests/mocks/utils.ts +++ b/packages/seedless-onboarding-controller/tests/mocks/utils.ts @@ -1,4 +1,4 @@ -import type { DecodedBaseJWTToken } from '../../src/types'; +import type { DecodedBaseJWTToken } from '../../src/types.js'; /** * Creates a mock JWT token for testing From 6f00f8852aa5e45c6bbd07928665c6cea2844280 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:51:58 +0200 Subject: [PATCH 113/136] ESLint fix and `jest` global import for social-controllers --- .../SocialController-method-action-types.ts | 2 +- .../src/SocialController.test.ts | 8 ++++---- .../social-controllers/src/SocialController.ts | 8 ++++---- .../src/SocialService-method-action-types.ts | 2 +- .../src/SocialService.test.ts | 6 +++--- .../social-controllers/src/SocialService.ts | 8 ++++---- packages/social-controllers/src/index.test.ts | 2 +- packages/social-controllers/src/index.ts | 18 +++++++++--------- 8 files changed, 27 insertions(+), 27 deletions(-) diff --git a/packages/social-controllers/src/SocialController-method-action-types.ts b/packages/social-controllers/src/SocialController-method-action-types.ts index 116df08618d..84bfe6b3419 100644 --- a/packages/social-controllers/src/SocialController-method-action-types.ts +++ b/packages/social-controllers/src/SocialController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { SocialController } from './SocialController'; +import type { SocialController } from './SocialController.js'; /** * Fetches the leaderboard and persists the entries to state. diff --git a/packages/social-controllers/src/SocialController.test.ts b/packages/social-controllers/src/SocialController.test.ts index 0d8dc33d58a..8a861f2e266 100644 --- a/packages/social-controllers/src/SocialController.test.ts +++ b/packages/social-controllers/src/SocialController.test.ts @@ -5,13 +5,13 @@ import type { MessengerEvents, } from '@metamask/messenger'; -import { controllerName } from './social-constants'; -import type { SocialControllerState } from './social-types'; -import type { SocialControllerMessenger } from './SocialController'; +import { controllerName } from './social-constants.js'; +import type { SocialControllerState } from './social-types.js'; +import type { SocialControllerMessenger } from './SocialController.js'; import { SocialController, getDefaultSocialControllerState, -} from './SocialController'; +} from './SocialController.js'; const mockProfileSummary = { profileId: '550e8400-e29b-41d4-a716-446655440000', diff --git a/packages/social-controllers/src/SocialController.ts b/packages/social-controllers/src/SocialController.ts index 30624434022..053e137af20 100644 --- a/packages/social-controllers/src/SocialController.ts +++ b/packages/social-controllers/src/SocialController.ts @@ -6,7 +6,7 @@ import type { import { BaseController } from '@metamask/base-controller'; import type { Messenger } from '@metamask/messenger'; -import { controllerName } from './social-constants'; +import { controllerName } from './social-constants.js'; import type { FetchLeaderboardOptions, FollowOptions, @@ -16,8 +16,8 @@ import type { SocialControllerState, UnfollowOptions, UnfollowResponse, -} from './social-types'; -import type { SocialControllerMethodActions } from './SocialController-method-action-types'; +} from './social-types.js'; +import type { SocialControllerMethodActions } from './SocialController-method-action-types.js'; import type { SocialServiceFetchFollowingAction, SocialServiceFetchLeaderboardAction, @@ -25,7 +25,7 @@ import type { SocialServiceOptInToLeaderboardAction, SocialServiceOptOutOfLeaderboardAction, SocialServiceUnfollowAction, -} from './SocialService-method-action-types'; +} from './SocialService-method-action-types.js'; // === MESSENGER === diff --git a/packages/social-controllers/src/SocialService-method-action-types.ts b/packages/social-controllers/src/SocialService-method-action-types.ts index 5f6bcb217b8..a0170f96bae 100644 --- a/packages/social-controllers/src/SocialService-method-action-types.ts +++ b/packages/social-controllers/src/SocialService-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { SocialService } from './SocialService'; +import type { SocialService } from './SocialService.js'; /** * Fetches the leaderboard of top traders. diff --git a/packages/social-controllers/src/SocialService.test.ts b/packages/social-controllers/src/SocialService.test.ts index 35aaee3dd4d..6e9079ec223 100644 --- a/packages/social-controllers/src/SocialService.test.ts +++ b/packages/social-controllers/src/SocialService.test.ts @@ -5,9 +5,9 @@ import type { MessengerEvents, } from '@metamask/messenger'; -import { SocialServiceErrorMessage, serviceName } from './social-constants'; -import type { SocialServiceMessenger } from './SocialService'; -import { SocialService } from './SocialService'; +import { SocialServiceErrorMessage, serviceName } from './social-constants.js'; +import type { SocialServiceMessenger } from './SocialService.js'; +import { SocialService } from './SocialService.js'; const BASE_URL = 'http://test.com'; const V1_URL = `${BASE_URL}/api/v1`; diff --git a/packages/social-controllers/src/SocialService.ts b/packages/social-controllers/src/SocialService.ts index 7fbd5c26a6e..abaf5f16b67 100644 --- a/packages/social-controllers/src/SocialService.ts +++ b/packages/social-controllers/src/SocialService.ts @@ -22,7 +22,7 @@ import { type as structType, } from '@metamask/superstruct'; -import { serviceName, SocialServiceErrorMessage } from './social-constants'; +import { serviceName, SocialServiceErrorMessage } from './social-constants.js'; import type { FeedResponse, FetchFeedOptions, @@ -41,9 +41,9 @@ import type { TraderProfileResponse, UnfollowOptions, UnfollowResponse, -} from './social-types'; -import { TradeStruct } from './social-types'; -import type { SocialServiceMethodActions } from './SocialService-method-action-types'; +} from './social-types.js'; +import { TradeStruct } from './social-types.js'; +import type { SocialServiceMethodActions } from './SocialService-method-action-types.js'; // --------------------------------------------------------------------------- // Superstruct validation schemas diff --git a/packages/social-controllers/src/index.test.ts b/packages/social-controllers/src/index.test.ts index 049d56294a7..279c2f3ee32 100644 --- a/packages/social-controllers/src/index.test.ts +++ b/packages/social-controllers/src/index.test.ts @@ -1,4 +1,4 @@ -import { SocialController, SocialService, socialServiceName } from '.'; +import { SocialController, SocialService, socialServiceName } from './..js'; describe('social-controllers exports', () => { it('exports SocialController class', () => { diff --git a/packages/social-controllers/src/index.ts b/packages/social-controllers/src/index.ts index 99c031d3805..ce8cda85776 100644 --- a/packages/social-controllers/src/index.ts +++ b/packages/social-controllers/src/index.ts @@ -5,11 +5,11 @@ export type { SocialControllerMessenger, SocialControllerOptions, SocialControllerStateChangeEvent, -} from './SocialController'; +} from './SocialController.js'; export { SocialController, getDefaultSocialControllerState, -} from './SocialController'; +} from './SocialController.js'; export type { SocialControllerFollowTraderAction, @@ -18,14 +18,14 @@ export type { SocialControllerUnfollowTraderAction, SocialControllerUpdateFollowingAction, SocialControllerUpdateLeaderboardAction, -} from './SocialController-method-action-types'; +} from './SocialController-method-action-types.js'; export type { SocialServiceActions, SocialServiceEvents, SocialServiceMessenger, -} from './SocialService'; -export { SocialService } from './SocialService'; +} from './SocialService.js'; +export { SocialService } from './SocialService.js'; export type { SocialServiceFetchClosedPositionsAction, @@ -40,9 +40,9 @@ export type { SocialServiceOptInToLeaderboardAction, SocialServiceOptOutOfLeaderboardAction, SocialServiceUnfollowAction, -} from './SocialService-method-action-types'; +} from './SocialService-method-action-types.js'; -export { TradeStruct } from './social-types'; +export { TradeStruct } from './social-types.js'; export type { FeedItem, FeedPagination, @@ -72,9 +72,9 @@ export type { TraderStats, UnfollowOptions, UnfollowResponse, -} from './social-types'; +} from './social-types.js'; export { serviceName as socialServiceName, SocialServiceErrorMessage, -} from './social-constants'; +} from './social-constants.js'; From a043a28c870794731c3ee7e465922b8c1a85afde Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:52:02 +0200 Subject: [PATCH 114/136] ESLint fix and `jest` global import for wallet --- packages/wallet/src/Wallet.test.ts | 10 +++++----- packages/wallet/src/Wallet.ts | 6 +++--- packages/wallet/src/index.ts | 10 +++++----- packages/wallet/src/initialization/defaults.ts | 4 ++-- .../src/initialization/initialization.ts | 8 ++++---- .../accounts-controller/accounts-controller.ts | 4 ++-- .../address-book-controller.test.ts | 6 +++--- .../address-book-controller.ts | 2 +- .../approval-controller.test.ts | 6 +++--- .../approval-controller/approval-controller.ts | 2 +- .../always-online-adapter.test.ts | 2 +- .../connectivity-controller.test.ts | 6 +++--- .../connectivity-controller.ts | 4 ++-- .../src/initialization/instances/index.ts | 18 +++++++++--------- .../keyring-controller/encryptor.test.ts | 2 +- .../keyring-controller.test.ts | 2 +- .../keyring-controller/keyring-controller.ts | 4 ++-- .../instances/keyring-controller/types.ts | 2 +- .../network-controller/network-controller.ts | 2 +- .../remote-feature-flag-controller.test.ts | 6 +++--- .../remote-feature-flag-controller.ts | 2 +- .../storage-service/storage-service.ts | 2 +- .../transaction-controller.test.ts | 12 ++++++------ .../transaction-controller.ts | 4 ++-- packages/wallet/src/initialization/types.ts | 8 ++++++-- packages/wallet/src/types.ts | 18 +++++++++--------- packages/wallet/src/utilities.ts | 2 +- 27 files changed, 79 insertions(+), 75 deletions(-) diff --git a/packages/wallet/src/Wallet.test.ts b/packages/wallet/src/Wallet.test.ts index 4dc315803b3..7accdb7085b 100644 --- a/packages/wallet/src/Wallet.test.ts +++ b/packages/wallet/src/Wallet.test.ts @@ -4,11 +4,11 @@ import { Messenger } from '@metamask/messenger'; import { InMemoryStorageAdapter } from '@metamask/storage-service'; import { Json } from '@metamask/utils'; -import MockEncryptor from '../../keyring-controller/tests/mocks/mockEncryptor'; -import * as initializationModule from './initialization/initialization'; -import { AlwaysOnlineAdapter } from './initialization/instances/connectivity-controller/always-online-adapter'; -import { importSecretRecoveryPhrase } from './utilities'; -import { Wallet } from './Wallet'; +import MockEncryptor from '../../keyring-controller/tests/mocks/mockEncryptor.js'; +import * as initializationModule from './initialization/initialization.js'; +import { AlwaysOnlineAdapter } from './initialization/instances/connectivity-controller/always-online-adapter.js'; +import { importSecretRecoveryPhrase } from './utilities.js'; +import { Wallet } from './Wallet.js'; const TEST_SRP = 'test test test test test test test test test test test ball'; const TEST_PASSWORD = 'testpass'; diff --git a/packages/wallet/src/Wallet.ts b/packages/wallet/src/Wallet.ts index 01c945570e5..21683f0836e 100644 --- a/packages/wallet/src/Wallet.ts +++ b/packages/wallet/src/Wallet.ts @@ -8,9 +8,9 @@ import type { DefaultInstances, DefaultState, RootMessenger, -} from './initialization/defaults'; -import { initialize } from './initialization/initialization'; -import { WalletOptions } from './types'; +} from './initialization/defaults.js'; +import { initialize } from './initialization/initialization.js'; +import { WalletOptions } from './types.js'; export class Wallet { // TODO: Expand default types when passing additionalConfigurations. diff --git a/packages/wallet/src/index.ts b/packages/wallet/src/index.ts index 337ad6ed7f0..50e9b004160 100644 --- a/packages/wallet/src/index.ts +++ b/packages/wallet/src/index.ts @@ -1,11 +1,11 @@ -export { Wallet } from './Wallet'; -export { AlwaysOnlineAdapter } from './initialization/instances/connectivity-controller/always-online-adapter'; -export { importSecretRecoveryPhrase } from './utilities'; -export type { WalletOptions } from './types'; +export { Wallet } from './Wallet.js'; +export { AlwaysOnlineAdapter } from './initialization/instances/connectivity-controller/always-online-adapter.js'; +export { importSecretRecoveryPhrase } from './utilities.js'; +export type { WalletOptions } from './types.js'; export type { DefaultActions, DefaultEvents, DefaultInstances, DefaultState, RootMessenger, -} from './initialization/defaults'; +} from './initialization/defaults.js'; diff --git a/packages/wallet/src/initialization/defaults.ts b/packages/wallet/src/initialization/defaults.ts index d73ce76536c..92e8d8d4f7b 100644 --- a/packages/wallet/src/initialization/defaults.ts +++ b/packages/wallet/src/initialization/defaults.ts @@ -6,8 +6,8 @@ import type { MessengerEvents, } from '@metamask/messenger'; -import * as defaultConfigurations from './instances'; -import type { InitializationConfiguration, InstanceState } from './types'; +import * as defaultConfigurations from './instances.js'; +import type { InitializationConfiguration, InstanceState } from './types.js'; export { defaultConfigurations }; diff --git a/packages/wallet/src/initialization/initialization.ts b/packages/wallet/src/initialization/initialization.ts index 28a7b835f51..9ed426722de 100644 --- a/packages/wallet/src/initialization/initialization.ts +++ b/packages/wallet/src/initialization/initialization.ts @@ -1,11 +1,11 @@ -import type { InstanceSpecificOptions, WalletOptions } from '../types'; +import type { InstanceSpecificOptions, WalletOptions } from '../types.js'; import type { DefaultActions, DefaultEvents, DefaultInstances, -} from './defaults'; -import { defaultConfigurations, RootMessenger } from './defaults'; -import { InitializationConfiguration } from './types'; +} from './defaults.js'; +import { defaultConfigurations, RootMessenger } from './defaults.js'; +import { InitializationConfiguration } from './types.js'; type InitializeOptions = WalletOptions & { messenger: RootMessenger; diff --git a/packages/wallet/src/initialization/instances/accounts-controller/accounts-controller.ts b/packages/wallet/src/initialization/instances/accounts-controller/accounts-controller.ts index 3865c944de5..ec2ea40bb68 100644 --- a/packages/wallet/src/initialization/instances/accounts-controller/accounts-controller.ts +++ b/packages/wallet/src/initialization/instances/accounts-controller/accounts-controller.ts @@ -8,8 +8,8 @@ import type { DefaultActions, DefaultEvents, RootMessenger, -} from '../../defaults'; -import type { InitializationConfiguration } from '../../types'; +} from '../../defaults.js'; +import type { InitializationConfiguration } from '../../types.js'; export const accountsController: InitializationConfiguration< AccountsController, diff --git a/packages/wallet/src/initialization/instances/address-book-controller/address-book-controller.test.ts b/packages/wallet/src/initialization/instances/address-book-controller/address-book-controller.test.ts index 552cafe9547..3a118b95da3 100644 --- a/packages/wallet/src/initialization/instances/address-book-controller/address-book-controller.test.ts +++ b/packages/wallet/src/initialization/instances/address-book-controller/address-book-controller.test.ts @@ -4,13 +4,13 @@ import { } from '@metamask/address-book-controller'; import { Messenger } from '@metamask/messenger'; -import { defaultConfigurations } from '../../defaults'; +import { defaultConfigurations } from '../../defaults.js'; import type { DefaultActions, DefaultEvents, RootMessenger, -} from '../../defaults'; -import { addressBookController } from './address-book-controller'; +} from '../../defaults.js'; +import { addressBookController } from './address-book-controller.js'; const ADDRESS = '0x1234567890123456789012345678901234567890'; diff --git a/packages/wallet/src/initialization/instances/address-book-controller/address-book-controller.ts b/packages/wallet/src/initialization/instances/address-book-controller/address-book-controller.ts index eda7ee93433..d21148e659b 100644 --- a/packages/wallet/src/initialization/instances/address-book-controller/address-book-controller.ts +++ b/packages/wallet/src/initialization/instances/address-book-controller/address-book-controller.ts @@ -4,7 +4,7 @@ import { } from '@metamask/address-book-controller'; import { Messenger } from '@metamask/messenger'; -import type { InitializationConfiguration } from '../../types'; +import type { InitializationConfiguration } from '../../types.js'; export const addressBookController: InitializationConfiguration< AddressBookController, diff --git a/packages/wallet/src/initialization/instances/approval-controller/approval-controller.test.ts b/packages/wallet/src/initialization/instances/approval-controller/approval-controller.test.ts index de5a517e696..3d86001580c 100644 --- a/packages/wallet/src/initialization/instances/approval-controller/approval-controller.test.ts +++ b/packages/wallet/src/initialization/instances/approval-controller/approval-controller.test.ts @@ -2,13 +2,13 @@ import { ApprovalController } from '@metamask/approval-controller'; import { ApprovalType } from '@metamask/controller-utils'; import { Messenger } from '@metamask/messenger'; -import { defaultConfigurations } from '../../defaults'; +import { defaultConfigurations } from '../../defaults.js'; import type { DefaultActions, DefaultEvents, RootMessenger, -} from '../../defaults'; -import { approvalController } from './approval-controller'; +} from '../../defaults.js'; +import { approvalController } from './approval-controller.js'; /** * Creates a root messenger for use in tests. diff --git a/packages/wallet/src/initialization/instances/approval-controller/approval-controller.ts b/packages/wallet/src/initialization/instances/approval-controller/approval-controller.ts index 728c0020083..d88456fb357 100644 --- a/packages/wallet/src/initialization/instances/approval-controller/approval-controller.ts +++ b/packages/wallet/src/initialization/instances/approval-controller/approval-controller.ts @@ -5,7 +5,7 @@ import { import { ApprovalType } from '@metamask/controller-utils'; import { Messenger } from '@metamask/messenger'; -import { InitializationConfiguration } from '../../types'; +import { InitializationConfiguration } from '../../types.js'; /** * Approval types that are exempt from per-origin rate limiting, so more than one diff --git a/packages/wallet/src/initialization/instances/connectivity-controller/always-online-adapter.test.ts b/packages/wallet/src/initialization/instances/connectivity-controller/always-online-adapter.test.ts index 417438a541a..4f4c47d33a0 100644 --- a/packages/wallet/src/initialization/instances/connectivity-controller/always-online-adapter.test.ts +++ b/packages/wallet/src/initialization/instances/connectivity-controller/always-online-adapter.test.ts @@ -1,6 +1,6 @@ import { CONNECTIVITY_STATUSES } from '@metamask/connectivity-controller'; -import { AlwaysOnlineAdapter } from './always-online-adapter'; +import { AlwaysOnlineAdapter } from './always-online-adapter.js'; describe('AlwaysOnlineAdapter', () => { it('returns Online from getStatus', async () => { diff --git a/packages/wallet/src/initialization/instances/connectivity-controller/connectivity-controller.test.ts b/packages/wallet/src/initialization/instances/connectivity-controller/connectivity-controller.test.ts index 12be2018dd7..caf117a7dd8 100644 --- a/packages/wallet/src/initialization/instances/connectivity-controller/connectivity-controller.test.ts +++ b/packages/wallet/src/initialization/instances/connectivity-controller/connectivity-controller.test.ts @@ -5,9 +5,9 @@ import type { DefaultActions, DefaultEvents, RootMessenger, -} from '../../defaults'; -import { AlwaysOnlineAdapter } from './always-online-adapter'; -import { connectivityController } from './connectivity-controller'; +} from '../../defaults.js'; +import { AlwaysOnlineAdapter } from './always-online-adapter.js'; +import { connectivityController } from './connectivity-controller.js'; describe('connectivityController', () => { it('reports online status after initialization', () => { diff --git a/packages/wallet/src/initialization/instances/connectivity-controller/connectivity-controller.ts b/packages/wallet/src/initialization/instances/connectivity-controller/connectivity-controller.ts index 43f681879ec..f9a4a727d98 100644 --- a/packages/wallet/src/initialization/instances/connectivity-controller/connectivity-controller.ts +++ b/packages/wallet/src/initialization/instances/connectivity-controller/connectivity-controller.ts @@ -8,8 +8,8 @@ import type { DefaultActions, DefaultEvents, RootMessenger, -} from '../../defaults'; -import type { InitializationConfiguration } from '../../types'; +} from '../../defaults.js'; +import type { InitializationConfiguration } from '../../types.js'; export const connectivityController: InitializationConfiguration< ConnectivityController, diff --git a/packages/wallet/src/initialization/instances/index.ts b/packages/wallet/src/initialization/instances/index.ts index a15db956032..624fe8bc567 100644 --- a/packages/wallet/src/initialization/instances/index.ts +++ b/packages/wallet/src/initialization/instances/index.ts @@ -1,9 +1,9 @@ -export { accountsController } from './accounts-controller/accounts-controller'; -export { addressBookController } from './address-book-controller/address-book-controller'; -export { approvalController } from './approval-controller/approval-controller'; -export { connectivityController } from './connectivity-controller/connectivity-controller'; -export { keyringController } from './keyring-controller/keyring-controller'; -export { networkController } from './network-controller/network-controller'; -export { remoteFeatureFlagController } from './remote-feature-flag-controller/remote-feature-flag-controller'; -export { storageService } from './storage-service/storage-service'; -export { transactionController } from './transaction-controller/transaction-controller'; +export { accountsController } from './accounts-controller/accounts-controller.js'; +export { addressBookController } from './address-book-controller/address-book-controller.js'; +export { approvalController } from './approval-controller/approval-controller.js'; +export { connectivityController } from './connectivity-controller/connectivity-controller.js'; +export { keyringController } from './keyring-controller/keyring-controller.js'; +export { networkController } from './network-controller/network-controller.js'; +export { remoteFeatureFlagController } from './remote-feature-flag-controller/remote-feature-flag-controller.js'; +export { storageService } from './storage-service/storage-service.js'; +export { transactionController } from './transaction-controller/transaction-controller.js'; diff --git a/packages/wallet/src/initialization/instances/keyring-controller/encryptor.test.ts b/packages/wallet/src/initialization/instances/keyring-controller/encryptor.test.ts index 618db04b00f..011736efc7c 100644 --- a/packages/wallet/src/initialization/instances/keyring-controller/encryptor.test.ts +++ b/packages/wallet/src/initialization/instances/keyring-controller/encryptor.test.ts @@ -1,4 +1,4 @@ -import { encryptorFactory } from './encryptor'; +import { encryptorFactory } from './encryptor.js'; describe('encryptorFactory', () => { const encryptor = encryptorFactory(600_000); diff --git a/packages/wallet/src/initialization/instances/keyring-controller/keyring-controller.test.ts b/packages/wallet/src/initialization/instances/keyring-controller/keyring-controller.test.ts index 1c7be08b5b7..023e0a35cc2 100644 --- a/packages/wallet/src/initialization/instances/keyring-controller/keyring-controller.test.ts +++ b/packages/wallet/src/initialization/instances/keyring-controller/keyring-controller.test.ts @@ -4,7 +4,7 @@ import type { KeyringControllerOptions, } from '@metamask/keyring-controller'; -import { keyringController } from './keyring-controller'; +import { keyringController } from './keyring-controller.js'; jest.mock('@metamask/keyring-controller', () => ({ ...jest.requireActual('@metamask/keyring-controller'), diff --git a/packages/wallet/src/initialization/instances/keyring-controller/keyring-controller.ts b/packages/wallet/src/initialization/instances/keyring-controller/keyring-controller.ts index 88eedcc4452..fa6cc7c9db8 100644 --- a/packages/wallet/src/initialization/instances/keyring-controller/keyring-controller.ts +++ b/packages/wallet/src/initialization/instances/keyring-controller/keyring-controller.ts @@ -6,8 +6,8 @@ import { } from '@metamask/keyring-controller'; import { Messenger } from '@metamask/messenger'; -import { InitializationConfiguration } from '../../types'; -import { encryptorFactory } from './encryptor'; +import { InitializationConfiguration } from '../../types.js'; +import { encryptorFactory } from './encryptor.js'; export const keyringController: InitializationConfiguration< KeyringController, diff --git a/packages/wallet/src/initialization/instances/keyring-controller/types.ts b/packages/wallet/src/initialization/instances/keyring-controller/types.ts index dc582af58c5..48db114cd44 100644 --- a/packages/wallet/src/initialization/instances/keyring-controller/types.ts +++ b/packages/wallet/src/initialization/instances/keyring-controller/types.ts @@ -1,6 +1,6 @@ import type { KeyringControllerOptions } from '@metamask/keyring-controller'; -import type { GenericEncryptor } from './encryptor'; +import type { GenericEncryptor } from './encryptor.js'; /** * Per-instance options for the wallet's `KeyringController`. All fields are diff --git a/packages/wallet/src/initialization/instances/network-controller/network-controller.ts b/packages/wallet/src/initialization/instances/network-controller/network-controller.ts index f48f37fed3f..edde8e53ccd 100644 --- a/packages/wallet/src/initialization/instances/network-controller/network-controller.ts +++ b/packages/wallet/src/initialization/instances/network-controller/network-controller.ts @@ -4,7 +4,7 @@ import { NetworkControllerMessenger, } from '@metamask/network-controller'; -import { InitializationConfiguration } from '../../types'; +import { InitializationConfiguration } from '../../types.js'; export const networkController: InitializationConfiguration< NetworkController, diff --git a/packages/wallet/src/initialization/instances/remote-feature-flag-controller/remote-feature-flag-controller.test.ts b/packages/wallet/src/initialization/instances/remote-feature-flag-controller/remote-feature-flag-controller.test.ts index 5939977fa8c..5eece7d554a 100644 --- a/packages/wallet/src/initialization/instances/remote-feature-flag-controller/remote-feature-flag-controller.test.ts +++ b/packages/wallet/src/initialization/instances/remote-feature-flag-controller/remote-feature-flag-controller.test.ts @@ -1,13 +1,13 @@ import { Messenger } from '@metamask/messenger'; import { RemoteFeatureFlagController } from '@metamask/remote-feature-flag-controller'; -import { defaultConfigurations } from '../../defaults'; +import { defaultConfigurations } from '../../defaults.js'; import type { DefaultActions, DefaultEvents, RootMessenger, -} from '../../defaults'; -import { remoteFeatureFlagController } from './remote-feature-flag-controller'; +} from '../../defaults.js'; +import { remoteFeatureFlagController } from './remote-feature-flag-controller.js'; /** * Creates a root messenger for use in tests. diff --git a/packages/wallet/src/initialization/instances/remote-feature-flag-controller/remote-feature-flag-controller.ts b/packages/wallet/src/initialization/instances/remote-feature-flag-controller/remote-feature-flag-controller.ts index 5f155deb023..35e7486ea9e 100644 --- a/packages/wallet/src/initialization/instances/remote-feature-flag-controller/remote-feature-flag-controller.ts +++ b/packages/wallet/src/initialization/instances/remote-feature-flag-controller/remote-feature-flag-controller.ts @@ -4,7 +4,7 @@ import { RemoteFeatureFlagControllerMessenger, } from '@metamask/remote-feature-flag-controller'; -import { InitializationConfiguration } from '../../types'; +import { InitializationConfiguration } from '../../types.js'; export const remoteFeatureFlagController: InitializationConfiguration< RemoteFeatureFlagController, diff --git a/packages/wallet/src/initialization/instances/storage-service/storage-service.ts b/packages/wallet/src/initialization/instances/storage-service/storage-service.ts index c20595d54f4..98dfbcc5e2e 100644 --- a/packages/wallet/src/initialization/instances/storage-service/storage-service.ts +++ b/packages/wallet/src/initialization/instances/storage-service/storage-service.ts @@ -2,7 +2,7 @@ import { Messenger } from '@metamask/messenger'; import { StorageService } from '@metamask/storage-service'; import { StorageServiceMessenger } from '@metamask/storage-service'; -import { InitializationConfiguration } from '../../types'; +import { InitializationConfiguration } from '../../types.js'; export const storageService: InitializationConfiguration< StorageService, diff --git a/packages/wallet/src/initialization/instances/transaction-controller/transaction-controller.test.ts b/packages/wallet/src/initialization/instances/transaction-controller/transaction-controller.test.ts index 1e88b0e52d2..4870eca7c18 100644 --- a/packages/wallet/src/initialization/instances/transaction-controller/transaction-controller.test.ts +++ b/packages/wallet/src/initialization/instances/transaction-controller/transaction-controller.test.ts @@ -2,16 +2,16 @@ import { Messenger } from '@metamask/messenger'; import { InMemoryStorageAdapter } from '@metamask/storage-service'; import { TransactionController } from '@metamask/transaction-controller'; -import type { WalletOptions } from '../../../types'; -import { Wallet } from '../../../Wallet'; -import { defaultConfigurations } from '../../defaults'; +import type { WalletOptions } from '../../../types.js'; +import { Wallet } from '../../../Wallet.js'; +import { defaultConfigurations } from '../../defaults.js'; import type { DefaultActions, DefaultEvents, RootMessenger, -} from '../../defaults'; -import { AlwaysOnlineAdapter } from '../connectivity-controller/always-online-adapter'; -import { transactionController } from './transaction-controller'; +} from '../../defaults.js'; +import { AlwaysOnlineAdapter } from '../connectivity-controller/always-online-adapter.js'; +import { transactionController } from './transaction-controller.js'; const controllers: TransactionController[] = []; const wallets: Wallet[] = []; diff --git a/packages/wallet/src/initialization/instances/transaction-controller/transaction-controller.ts b/packages/wallet/src/initialization/instances/transaction-controller/transaction-controller.ts index 6ee57a27e60..65eeb232fef 100644 --- a/packages/wallet/src/initialization/instances/transaction-controller/transaction-controller.ts +++ b/packages/wallet/src/initialization/instances/transaction-controller/transaction-controller.ts @@ -2,9 +2,9 @@ import { Messenger } from '@metamask/messenger'; import type { TransactionControllerMessenger } from '@metamask/transaction-controller'; import { TransactionController } from '@metamask/transaction-controller'; -import type { InitializationConfiguration } from '../../types'; +import type { InitializationConfiguration } from '../../types.js'; -export type { TransactionControllerInstanceOptions } from './types'; +export type { TransactionControllerInstanceOptions } from './types.js'; export const transactionController: InitializationConfiguration< TransactionController, diff --git a/packages/wallet/src/initialization/types.ts b/packages/wallet/src/initialization/types.ts index 1e7e51602b3..891b653c6df 100644 --- a/packages/wallet/src/initialization/types.ts +++ b/packages/wallet/src/initialization/types.ts @@ -1,5 +1,9 @@ -import type { InstanceSpecificOptions } from '../types'; -import type { DefaultActions, DefaultEvents, RootMessenger } from './defaults'; +import type { InstanceSpecificOptions } from '../types.js'; +import type { + DefaultActions, + DefaultEvents, + RootMessenger, +} from './defaults.js'; /** * Utility type for inferring the state of an instance. diff --git a/packages/wallet/src/types.ts b/packages/wallet/src/types.ts index 1f330e9bafd..8912d490bea 100644 --- a/packages/wallet/src/types.ts +++ b/packages/wallet/src/types.ts @@ -4,15 +4,15 @@ import type { DefaultActions, DefaultEvents, RootMessenger, -} from './initialization/defaults'; -import type { ApprovalControllerInstanceOptions } from './initialization/instances/approval-controller/types'; -import type { ConnectivityControllerInstanceOptions } from './initialization/instances/connectivity-controller/types'; -import type { KeyringControllerInstanceOptions } from './initialization/instances/keyring-controller/types'; -import type { NetworkControllerInstanceOptions } from './initialization/instances/network-controller/types'; -import type { RemoteFeatureFlagControllerInstanceOptions } from './initialization/instances/remote-feature-flag-controller/types'; -import type { StorageServiceInstanceOptions } from './initialization/instances/storage-service/types'; -import type { TransactionControllerInstanceOptions } from './initialization/instances/transaction-controller/types'; -import type { InitializationConfiguration } from './initialization/types'; +} from './initialization/defaults.js'; +import type { ApprovalControllerInstanceOptions } from './initialization/instances/approval-controller/types.js'; +import type { ConnectivityControllerInstanceOptions } from './initialization/instances/connectivity-controller/types.js'; +import type { KeyringControllerInstanceOptions } from './initialization/instances/keyring-controller/types.js'; +import type { NetworkControllerInstanceOptions } from './initialization/instances/network-controller/types.js'; +import type { RemoteFeatureFlagControllerInstanceOptions } from './initialization/instances/remote-feature-flag-controller/types.js'; +import type { StorageServiceInstanceOptions } from './initialization/instances/storage-service/types.js'; +import type { TransactionControllerInstanceOptions } from './initialization/instances/transaction-controller/types.js'; +import type { InitializationConfiguration } from './initialization/types.js'; export type WalletOptions = { messenger?: RootMessenger; diff --git a/packages/wallet/src/utilities.ts b/packages/wallet/src/utilities.ts index 4630dd5460c..360d73f2bc2 100644 --- a/packages/wallet/src/utilities.ts +++ b/packages/wallet/src/utilities.ts @@ -1,6 +1,6 @@ import { wordlist } from '@metamask/scure-bip39/dist/wordlists/english'; -import { Wallet } from './Wallet'; +import { Wallet } from './Wallet.js'; /** * Import a secret recovery phrase using the wallet object. From 0d09c0a8c001af85d1c7dc5b156b09464e79e991 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:52:03 +0200 Subject: [PATCH 115/136] ESLint fix and `jest` global import for money-account-controller --- .../src/MoneyAccountController-method-action-types.ts | 2 +- .../src/MoneyAccountController.test.ts | 4 ++-- .../src/MoneyAccountController.ts | 8 ++++---- packages/money-account-controller/src/index.ts | 10 +++++----- packages/money-account-controller/src/utils.test.ts | 2 +- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/packages/money-account-controller/src/MoneyAccountController-method-action-types.ts b/packages/money-account-controller/src/MoneyAccountController-method-action-types.ts index 5edf280cef7..a0e8d1fb519 100644 --- a/packages/money-account-controller/src/MoneyAccountController-method-action-types.ts +++ b/packages/money-account-controller/src/MoneyAccountController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { MoneyAccountController } from './MoneyAccountController'; +import type { MoneyAccountController } from './MoneyAccountController.js'; /** * Initializes the controller by creating a money account for the primary diff --git a/packages/money-account-controller/src/MoneyAccountController.test.ts b/packages/money-account-controller/src/MoneyAccountController.test.ts index 701b6ceea9b..ce6a6adc0b9 100644 --- a/packages/money-account-controller/src/MoneyAccountController.test.ts +++ b/packages/money-account-controller/src/MoneyAccountController.test.ts @@ -10,11 +10,11 @@ import type { MessengerEvents, } from '@metamask/messenger'; -import type { MoneyAccount, MoneyAccountControllerMessenger } from '.'; +import type { MoneyAccount, MoneyAccountControllerMessenger } from './..js'; import { MoneyAccountController, getDefaultMoneyAccountControllerState, -} from '.'; +} from './..js'; const MOCK_ENTROPY_SOURCE_ID = 'entropy-source-1'; const MOCK_OTHER_ENTROPY_SOURCE_ID = 'entropy-source-2'; diff --git a/packages/money-account-controller/src/MoneyAccountController.ts b/packages/money-account-controller/src/MoneyAccountController.ts index 3898debb25f..ae1fd3fc155 100644 --- a/packages/money-account-controller/src/MoneyAccountController.ts +++ b/packages/money-account-controller/src/MoneyAccountController.ts @@ -27,10 +27,10 @@ import { EthKeyring } from '@metamask/keyring-utils'; import type { Messenger } from '@metamask/messenger'; import { Mutex } from 'async-mutex'; -import { projectLogger as log } from './logger'; -import type { MoneyAccountControllerMethodActions } from './MoneyAccountController-method-action-types'; -import type { MoneyAccount } from './types'; -import { isMoneyKeyring } from './utils'; +import { projectLogger as log } from './logger.js'; +import type { MoneyAccountControllerMethodActions } from './MoneyAccountController-method-action-types.js'; +import type { MoneyAccount } from './types.js'; +import { isMoneyKeyring } from './utils.js'; export const controllerName = 'MoneyAccountController'; diff --git a/packages/money-account-controller/src/index.ts b/packages/money-account-controller/src/index.ts index 6ad8e5fe97b..d8ab43a19a9 100644 --- a/packages/money-account-controller/src/index.ts +++ b/packages/money-account-controller/src/index.ts @@ -1,10 +1,10 @@ -export type { MoneyAccount } from './types'; -export { isMoneyKeyring } from './utils'; +export type { MoneyAccount } from './types.js'; +export { isMoneyKeyring } from './utils.js'; export { MoneyAccountController, controllerName, getDefaultMoneyAccountControllerState, -} from './MoneyAccountController'; +} from './MoneyAccountController.js'; export type { MoneyAccountControllerState, MoneyAccountControllerGetStateAction, @@ -12,10 +12,10 @@ export type { MoneyAccountControllerStateChangeEvent, MoneyAccountControllerEvents, MoneyAccountControllerMessenger, -} from './MoneyAccountController'; +} from './MoneyAccountController.js'; export type { MoneyAccountControllerClearStateAction, MoneyAccountControllerCreateMoneyAccountAction, MoneyAccountControllerGetMoneyAccountAction, MoneyAccountControllerInitAction, -} from './MoneyAccountController-method-action-types'; +} from './MoneyAccountController-method-action-types.js'; diff --git a/packages/money-account-controller/src/utils.test.ts b/packages/money-account-controller/src/utils.test.ts index 3ee2accba51..b3fa2459282 100644 --- a/packages/money-account-controller/src/utils.test.ts +++ b/packages/money-account-controller/src/utils.test.ts @@ -1,7 +1,7 @@ import { KeyringTypes } from '@metamask/keyring-controller'; import { EthKeyring } from '@metamask/keyring-utils'; -import { isMoneyKeyring } from './utils'; +import { isMoneyKeyring } from './utils.js'; describe('isMoneyKeyring', () => { it('returns true for a Money Keyring', () => { From 31bfd972b0fa7687b0b698154467a19640e6ed25 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:52:06 +0200 Subject: [PATCH 116/136] ESLint fix and `jest` global import for money-account-api-data-service --- .../src/index.ts | 14 ++++++------ ...nt-api-data-service-method-action-types.ts | 2 +- .../money-account-api-data-service.test.ts | 8 +++---- .../src/money-account-api-data-service.ts | 22 +++++++++---------- .../src/response.types.ts | 2 +- 5 files changed, 24 insertions(+), 24 deletions(-) diff --git a/packages/money-account-api-data-service/src/index.ts b/packages/money-account-api-data-service/src/index.ts index 780facd0ac0..bba02920461 100644 --- a/packages/money-account-api-data-service/src/index.ts +++ b/packages/money-account-api-data-service/src/index.ts @@ -1,15 +1,15 @@ -export { MoneyAccountApiDataService } from './money-account-api-data-service'; +export { MoneyAccountApiDataService } from './money-account-api-data-service.js'; export type { MoneyAccountApiDataServiceActions, MoneyAccountApiDataServiceEvents, MoneyAccountApiDataServiceMessenger, -} from './money-account-api-data-service'; +} from './money-account-api-data-service.js'; export type { MoneyAccountApiDataServiceFetchPositionsAction, MoneyAccountApiDataServiceFetchInterestAction, MoneyAccountApiDataServiceFetchHistoryAction, MoneyAccountApiDataServiceFetchRateHistoryAction, -} from './money-account-api-data-service-method-action-types'; +} from './money-account-api-data-service-method-action-types.js'; export type { PositionResponse, InterestResponse, @@ -21,12 +21,12 @@ export type { DataFreshness, CashFlowType, CashFlowSource, -} from './response.types'; +} from './response.types.js'; export type { InterestWindow, InterestOptions, HistoryOptions, RateHistoryOptions, -} from './types'; -export { Env } from './constants'; -export { MoneyAccountApiResponseValidationError } from './errors'; +} from './types.js'; +export { Env } from './constants.js'; +export { MoneyAccountApiResponseValidationError } from './errors.js'; diff --git a/packages/money-account-api-data-service/src/money-account-api-data-service-method-action-types.ts b/packages/money-account-api-data-service/src/money-account-api-data-service-method-action-types.ts index a969d0b4d37..d3773dc11e4 100644 --- a/packages/money-account-api-data-service/src/money-account-api-data-service-method-action-types.ts +++ b/packages/money-account-api-data-service/src/money-account-api-data-service-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { MoneyAccountApiDataService } from './money-account-api-data-service'; +import type { MoneyAccountApiDataService } from './money-account-api-data-service.js'; /** * Fetches the current vault positions for a given user address. diff --git a/packages/money-account-api-data-service/src/money-account-api-data-service.test.ts b/packages/money-account-api-data-service/src/money-account-api-data-service.test.ts index f396130de6f..19bee8b74dd 100644 --- a/packages/money-account-api-data-service/src/money-account-api-data-service.test.ts +++ b/packages/money-account-api-data-service/src/money-account-api-data-service.test.ts @@ -7,13 +7,13 @@ import type { } from '@metamask/messenger'; import nock, { cleanAll as nockCleanAll } from 'nock'; -import { Env, MONEY_ACCOUNT_API_URL_MAP } from './constants'; -import { MoneyAccountApiResponseValidationError } from './errors'; -import type { MoneyAccountApiDataServiceMessenger } from './money-account-api-data-service'; +import { Env, MONEY_ACCOUNT_API_URL_MAP } from './constants.js'; +import { MoneyAccountApiResponseValidationError } from './errors.js'; +import type { MoneyAccountApiDataServiceMessenger } from './money-account-api-data-service.js'; import { MoneyAccountApiDataService, serviceName, -} from './money-account-api-data-service'; +} from './money-account-api-data-service.js'; // ============================================================ // Fixtures diff --git a/packages/money-account-api-data-service/src/money-account-api-data-service.ts b/packages/money-account-api-data-service/src/money-account-api-data-service.ts index 2f216249d06..7b65ee5c1ed 100644 --- a/packages/money-account-api-data-service/src/money-account-api-data-service.ts +++ b/packages/money-account-api-data-service/src/money-account-api-data-service.ts @@ -16,27 +16,27 @@ import { Env, MONEY_ACCOUNT_API_URL_MAP, RATE_HISTORY_STALE_TIME_MS, -} from './constants'; -import { MoneyAccountApiResponseValidationError } from './errors'; -import { projectLogger, createModuleLogger } from './logger'; -import type { MoneyAccountApiDataServiceMethodActions } from './money-account-api-data-service-method-action-types'; +} from './constants.js'; +import { MoneyAccountApiResponseValidationError } from './errors.js'; +import { projectLogger, createModuleLogger } from './logger.js'; +import type { MoneyAccountApiDataServiceMethodActions } from './money-account-api-data-service-method-action-types.js'; import type { HistoryResponse, InterestResponse, PositionResponse, RateHistoryResponse, -} from './response.types'; +} from './response.types.js'; import { HistoryResponseStruct, InterestResponseStruct, PositionResponseStruct, RateHistoryResponseStruct, -} from './structs'; +} from './structs.js'; import type { HistoryOptions, InterestOptions, RateHistoryOptions, -} from './types'; +} from './types.js'; // === GENERAL === @@ -200,7 +200,7 @@ export class MoneyAccountApiDataService extends BaseDataService< ); } - return validated as unknown as PositionResponse; + return validated as PositionResponse; }, }); } @@ -258,7 +258,7 @@ export class MoneyAccountApiDataService extends BaseDataService< ); } - return validated as unknown as InterestResponse; + return validated as InterestResponse; }, }); } @@ -331,7 +331,7 @@ export class MoneyAccountApiDataService extends BaseDataService< ); } - return validated as unknown as HistoryResponse; + return validated as HistoryResponse; }, }, options?.cursor ?? undefined, @@ -391,7 +391,7 @@ export class MoneyAccountApiDataService extends BaseDataService< ); } - return validated as unknown as RateHistoryResponse; + return validated as RateHistoryResponse; }, }); } diff --git a/packages/money-account-api-data-service/src/response.types.ts b/packages/money-account-api-data-service/src/response.types.ts index ff779e24b2b..8f188a99ee8 100644 --- a/packages/money-account-api-data-service/src/response.types.ts +++ b/packages/money-account-api-data-service/src/response.types.ts @@ -5,7 +5,7 @@ import type { InterestResponseStruct, PositionResponseStruct, RateHistoryResponseStruct, -} from './structs'; +} from './structs.js'; // All types in this file mirror the external Money Account API's snake_case // JSON contract verbatim to maintain 1:1 parity with API responses. From 0d05ec118774dbff467b15e8b4fae41c06f53b8e Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:52:07 +0200 Subject: [PATCH 117/136] ESLint fix and `jest` global import for money-account-balance-service --- .../src/index.ts | 10 +++++----- ...unt-balance-service-method-action-types.ts | 2 +- .../src/money-account-balance-service.test.ts | 8 ++++---- .../src/money-account-balance-service.ts | 20 +++++++++---------- .../src/requestNormalization.ts | 2 +- 5 files changed, 21 insertions(+), 21 deletions(-) diff --git a/packages/money-account-balance-service/src/index.ts b/packages/money-account-balance-service/src/index.ts index 1b25bbd7738..b9bb9ccbb55 100644 --- a/packages/money-account-balance-service/src/index.ts +++ b/packages/money-account-balance-service/src/index.ts @@ -1,4 +1,4 @@ -export { MoneyAccountBalanceService } from './money-account-balance-service'; +export { MoneyAccountBalanceService } from './money-account-balance-service.js'; export type { MoneyAccountBalanceServiceActions, MoneyAccountBalanceServiceEvents, @@ -6,7 +6,7 @@ export type { MoneyAccountBalanceServiceOptions, MoneyAccountBalanceServiceTraceCallback, MoneyAccountBalanceServiceTraceRequest, -} from './money-account-balance-service'; +} from './money-account-balance-service.js'; export type { MoneyAccountBalanceServiceGetMoneyAccountBalanceAction, MoneyAccountBalanceServiceGetMusdBalanceAction, @@ -14,7 +14,7 @@ export type { MoneyAccountBalanceServiceGetExchangeRateAction, MoneyAccountBalanceServiceGetMusdEquivalentValueAction, MoneyAccountBalanceServiceGetVaultApyAction, -} from './money-account-balance-service-method-action-types'; +} from './money-account-balance-service-method-action-types.js'; export type { ExchangeRateResponse, MoneyAccountBalanceResponse, @@ -24,5 +24,5 @@ export type { export { VaultConfigNotAvailableError, VaultConfigValidationError, -} from './errors'; -export type { VaultConfig } from './types'; +} from './errors.js'; +export type { VaultConfig } from './types.js'; diff --git a/packages/money-account-balance-service/src/money-account-balance-service-method-action-types.ts b/packages/money-account-balance-service/src/money-account-balance-service-method-action-types.ts index 1c5493a4799..a146aefb51e 100644 --- a/packages/money-account-balance-service/src/money-account-balance-service-method-action-types.ts +++ b/packages/money-account-balance-service/src/money-account-balance-service-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { MoneyAccountBalanceService } from './money-account-balance-service'; +import type { MoneyAccountBalanceService } from './money-account-balance-service.js'; /** * Fetches the mUSD ERC-20 balance for the given account address via RPC. diff --git a/packages/money-account-balance-service/src/money-account-balance-service.test.ts b/packages/money-account-balance-service/src/money-account-balance-service.test.ts index c2d9897d2e5..ccb635833a3 100644 --- a/packages/money-account-balance-service/src/money-account-balance-service.test.ts +++ b/packages/money-account-balance-service/src/money-account-balance-service.test.ts @@ -21,17 +21,17 @@ import { MONEY_ACCOUNT_BALANCE_STALETIME_FEATURE_FLAG_KEY, MULTICALL3_ADDRESS_BY_CHAIN_ID, VAULT_CONFIG_FEATURE_FLAG_KEY, -} from './constants'; +} from './constants.js'; import { VaultConfigNotAvailableError, VaultConfigValidationError, VedaResponseValidationError, -} from './errors'; -import type { MoneyAccountBalanceServiceMessenger } from './money-account-balance-service'; +} from './errors.js'; +import type { MoneyAccountBalanceServiceMessenger } from './money-account-balance-service.js'; import { MoneyAccountBalanceService, serviceName, -} from './money-account-balance-service'; +} from './money-account-balance-service.js'; jest.mock('@ethersproject/contracts'); jest.mock('@ethersproject/providers'); diff --git a/packages/money-account-balance-service/src/money-account-balance-service.ts b/packages/money-account-balance-service/src/money-account-balance-service.ts index 955ce61e5cc..937dfde0157 100644 --- a/packages/money-account-balance-service/src/money-account-balance-service.ts +++ b/packages/money-account-balance-service/src/money-account-balance-service.ts @@ -36,23 +36,23 @@ import { VAULT_CONFIG_FEATURE_FLAG_KEY, VEDA_API_NETWORK_NAMES, VEDA_PERFORMANCE_API_BASE_URL, -} from './constants'; +} from './constants.js'; import { VaultConfigNotAvailableError, VaultConfigValidationError, VedaResponseValidationError, -} from './errors'; -import { projectLogger, createModuleLogger } from './logger'; -import type { MoneyAccountBalanceServiceMethodActions } from './money-account-balance-service-method-action-types'; -import { normalizeVaultApyResponse } from './requestNormalization'; +} from './errors.js'; +import { projectLogger, createModuleLogger } from './logger.js'; +import type { MoneyAccountBalanceServiceMethodActions } from './money-account-balance-service-method-action-types.js'; +import { normalizeVaultApyResponse } from './requestNormalization.js'; import type { ExchangeRateResponse, MoneyAccountBalanceResponse, MusdEquivalentValueResponse, NormalizedVaultApyResponse, } from './response.types'; -import { VaultApyRawResponseStruct, VaultConfigStruct } from './structs'; -import type { VaultConfig } from './types'; +import { VaultApyRawResponseStruct, VaultConfigStruct } from './structs.js'; +import type { VaultConfig } from './types.js'; // === GENERAL === @@ -422,7 +422,7 @@ export class MoneyAccountBalanceService extends BaseDataService< 'Vault config cleared — flag key absent; cache invalidated', previousConfig, ); - // eslint-disable-next-line @typescript-eslint/no-floating-promises + this.invalidateQueries(); } else { configLogger( @@ -443,7 +443,7 @@ export class MoneyAccountBalanceService extends BaseDataService< 'Vault config validation failed — previous config cleared; cache invalidated', { previousConfig, error }, ); - // eslint-disable-next-line @typescript-eslint/no-floating-promises + this.invalidateQueries(); } else { configLogger( @@ -464,7 +464,7 @@ export class MoneyAccountBalanceService extends BaseDataService< previous: previousConfig, next: newConfig, }); - // eslint-disable-next-line @typescript-eslint/no-floating-promises + this.invalidateQueries(); } else { configLogger('Vault config loaded', newConfig); diff --git a/packages/money-account-balance-service/src/requestNormalization.ts b/packages/money-account-balance-service/src/requestNormalization.ts index 2a8238dfcad..e324eddbe0b 100644 --- a/packages/money-account-balance-service/src/requestNormalization.ts +++ b/packages/money-account-balance-service/src/requestNormalization.ts @@ -1,7 +1,7 @@ import { Infer } from '@metamask/superstruct'; import type { NormalizedVaultApyResponse } from './response.types'; -import { VaultApyRawResponseStruct } from './structs'; +import { VaultApyRawResponseStruct } from './structs.js'; /** * Normalizes the raw response from the Veda performance API into the expected From fca2931905e89b40758b15db4d00502104c5bab2 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:52:15 +0200 Subject: [PATCH 118/136] ESLint fix and `jest` global import for money-account-upgrade-controller --- ...countUpgradeController-method-action-types.ts | 2 +- .../src/MoneyAccountUpgradeController.test.ts | 4 ++-- .../src/MoneyAccountUpgradeController.ts | 16 ++++++++-------- .../src/errors.test.ts | 2 +- .../src/index.ts | 10 +++++----- .../src/steps/associate-address.test.ts | 4 ++-- .../src/steps/associate-address.ts | 4 ++-- .../src/steps/build-delegations.test.ts | 4 ++-- .../src/steps/build-delegations.ts | 6 +++--- .../src/steps/eip-7702-authorization.test.ts | 4 ++-- .../src/steps/eip-7702-authorization.ts | 2 +- .../src/steps/register-intents.test.ts | 4 ++-- .../src/steps/register-intents.ts | 4 ++-- .../src/steps/step.ts | 2 +- 14 files changed, 34 insertions(+), 34 deletions(-) diff --git a/packages/money-account-upgrade-controller/src/MoneyAccountUpgradeController-method-action-types.ts b/packages/money-account-upgrade-controller/src/MoneyAccountUpgradeController-method-action-types.ts index 23d5c723629..001f6a6ccef 100644 --- a/packages/money-account-upgrade-controller/src/MoneyAccountUpgradeController-method-action-types.ts +++ b/packages/money-account-upgrade-controller/src/MoneyAccountUpgradeController-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { MoneyAccountUpgradeController } from './MoneyAccountUpgradeController'; +import type { MoneyAccountUpgradeController } from './MoneyAccountUpgradeController.js'; /** * Runs each step in the upgrade sequence in order. A step that reports diff --git a/packages/money-account-upgrade-controller/src/MoneyAccountUpgradeController.test.ts b/packages/money-account-upgrade-controller/src/MoneyAccountUpgradeController.test.ts index 7a08f3a60fa..f05425e3cc3 100644 --- a/packages/money-account-upgrade-controller/src/MoneyAccountUpgradeController.test.ts +++ b/packages/money-account-upgrade-controller/src/MoneyAccountUpgradeController.test.ts @@ -11,11 +11,11 @@ import type { Hex } from '@metamask/utils'; import type { MoneyAccountUpgradeControllerMessenger, MoneyAccountUpgradeStepError, -} from '.'; +} from './..js'; import { MoneyAccountUpgradeController, isMoneyAccountUpgradeStepError, -} from '.'; +} from './..js'; const MOCK_CHAIN_ID = '0x1' as Hex; // mainnet, supported in delegation-deployments@1.3.0 const UNSUPPORTED_CHAIN_ID = '0x539' as Hex; // 1337 — local dev, not in registry diff --git a/packages/money-account-upgrade-controller/src/MoneyAccountUpgradeController.ts b/packages/money-account-upgrade-controller/src/MoneyAccountUpgradeController.ts index b38e095b474..e11598ddfc7 100644 --- a/packages/money-account-upgrade-controller/src/MoneyAccountUpgradeController.ts +++ b/packages/money-account-upgrade-controller/src/MoneyAccountUpgradeController.ts @@ -31,14 +31,14 @@ import type { import { hexToNumber } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import { MoneyAccountUpgradeStepError } from './errors'; -import type { MoneyAccountUpgradeControllerMethodActions } from './MoneyAccountUpgradeController-method-action-types'; -import { associateAddressStep } from './steps/associate-address'; -import { buildDelegationStep } from './steps/build-delegations'; -import { eip7702AuthorizationStep } from './steps/eip-7702-authorization'; -import { registerIntentsStep } from './steps/register-intents'; -import type { Step } from './steps/step'; -import type { UpgradeConfig } from './types'; +import { MoneyAccountUpgradeStepError } from './errors.js'; +import type { MoneyAccountUpgradeControllerMethodActions } from './MoneyAccountUpgradeController-method-action-types.js'; +import { associateAddressStep } from './steps/associate-address.js'; +import { buildDelegationStep } from './steps/build-delegations.js'; +import { eip7702AuthorizationStep } from './steps/eip-7702-authorization.js'; +import { registerIntentsStep } from './steps/register-intents.js'; +import type { Step } from './steps/step.js'; +import type { UpgradeConfig } from './types.js'; /** * The Delegation Framework deployment version we resolve contract addresses diff --git a/packages/money-account-upgrade-controller/src/errors.test.ts b/packages/money-account-upgrade-controller/src/errors.test.ts index 53b3f1a885f..a886ee39a2f 100644 --- a/packages/money-account-upgrade-controller/src/errors.test.ts +++ b/packages/money-account-upgrade-controller/src/errors.test.ts @@ -1,7 +1,7 @@ import { MoneyAccountUpgradeStepError, isMoneyAccountUpgradeStepError, -} from './errors'; +} from './errors.js'; describe('MoneyAccountUpgradeStepError', () => { it('records the step name and preserves an Error cause', () => { diff --git a/packages/money-account-upgrade-controller/src/index.ts b/packages/money-account-upgrade-controller/src/index.ts index 784e62cfd50..e2bd2c62553 100644 --- a/packages/money-account-upgrade-controller/src/index.ts +++ b/packages/money-account-upgrade-controller/src/index.ts @@ -1,9 +1,9 @@ -export type { UpgradeConfig } from './types'; +export type { UpgradeConfig } from './types.js'; export { MoneyAccountUpgradeStepError, isMoneyAccountUpgradeStepError, -} from './errors'; -export { MoneyAccountUpgradeController } from './MoneyAccountUpgradeController'; +} from './errors.js'; +export { MoneyAccountUpgradeController } from './MoneyAccountUpgradeController.js'; export type { MoneyAccountUpgradeControllerState, MoneyAccountUpgradeControllerGetStateAction, @@ -11,5 +11,5 @@ export type { MoneyAccountUpgradeControllerStateChangedEvent, MoneyAccountUpgradeControllerEvents, MoneyAccountUpgradeControllerMessenger, -} from './MoneyAccountUpgradeController'; -export type { MoneyAccountUpgradeControllerUpgradeAccountAction } from './MoneyAccountUpgradeController-method-action-types'; +} from './MoneyAccountUpgradeController.js'; +export type { MoneyAccountUpgradeControllerUpgradeAccountAction } from './MoneyAccountUpgradeController-method-action-types.js'; diff --git a/packages/money-account-upgrade-controller/src/steps/associate-address.test.ts b/packages/money-account-upgrade-controller/src/steps/associate-address.test.ts index c1fafd7bd87..f5ee6d8988a 100644 --- a/packages/money-account-upgrade-controller/src/steps/associate-address.test.ts +++ b/packages/money-account-upgrade-controller/src/steps/associate-address.test.ts @@ -6,8 +6,8 @@ import type { } from '@metamask/messenger'; import type { Hex } from '@metamask/utils'; -import type { MoneyAccountUpgradeControllerMessenger } from '../MoneyAccountUpgradeController'; -import { associateAddressStep } from './associate-address'; +import type { MoneyAccountUpgradeControllerMessenger } from '../MoneyAccountUpgradeController.js'; +import { associateAddressStep } from './associate-address.js'; const MOCK_ADDRESS = '0xAbCdEf1234567890AbCdEf1234567890AbCdEf12' as Hex; const MOCK_ADDRESS_LOWERCASE = MOCK_ADDRESS.toLowerCase() as Hex; diff --git a/packages/money-account-upgrade-controller/src/steps/associate-address.ts b/packages/money-account-upgrade-controller/src/steps/associate-address.ts index 4bb9c3fec09..bba2715962c 100644 --- a/packages/money-account-upgrade-controller/src/steps/associate-address.ts +++ b/packages/money-account-upgrade-controller/src/steps/associate-address.ts @@ -1,8 +1,8 @@ import type { Hex } from '@metamask/utils'; import { hasProperty } from '@metamask/utils'; -import { equalsIgnoreCase } from './delegation-matchers'; -import type { Step } from './step'; +import { equalsIgnoreCase } from './delegation-matchers.js'; +import type { Step } from './step.js'; /** * Determines whether an error is a CHOMP conflict (HTTP 409) response. diff --git a/packages/money-account-upgrade-controller/src/steps/build-delegations.test.ts b/packages/money-account-upgrade-controller/src/steps/build-delegations.test.ts index dc383b4c1d2..7b06ae1729a 100644 --- a/packages/money-account-upgrade-controller/src/steps/build-delegations.test.ts +++ b/packages/money-account-upgrade-controller/src/steps/build-delegations.test.ts @@ -14,8 +14,8 @@ import type { } from '@metamask/messenger'; import type { Hex } from '@metamask/utils'; -import type { MoneyAccountUpgradeControllerMessenger } from '../MoneyAccountUpgradeController'; -import { buildDelegationStep } from './build-delegations'; +import type { MoneyAccountUpgradeControllerMessenger } from '../MoneyAccountUpgradeController.js'; +import { buildDelegationStep } from './build-delegations.js'; jest.mock('@metamask/delegation-core', () => ({ ROOT_AUTHORITY: diff --git a/packages/money-account-upgrade-controller/src/steps/build-delegations.ts b/packages/money-account-upgrade-controller/src/steps/build-delegations.ts index 3edf32fe292..6663c1de4d9 100644 --- a/packages/money-account-upgrade-controller/src/steps/build-delegations.ts +++ b/packages/money-account-upgrade-controller/src/steps/build-delegations.ts @@ -9,12 +9,12 @@ import { import { add0x, bytesToHex } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import type { MoneyAccountUpgradeControllerMessenger } from '../MoneyAccountUpgradeController'; +import type { MoneyAccountUpgradeControllerMessenger } from '../MoneyAccountUpgradeController.js'; import { equalsIgnoreCase, makeHasVedaRedeemerCaveat, -} from './delegation-matchers'; -import type { Step } from './step'; +} from './delegation-matchers.js'; +import type { Step } from './step.js'; const MAX_UINT256 = 2n ** 256n - 1n; const MAX_UINT256_HEX: Hex = add0x(MAX_UINT256.toString(16)); diff --git a/packages/money-account-upgrade-controller/src/steps/eip-7702-authorization.test.ts b/packages/money-account-upgrade-controller/src/steps/eip-7702-authorization.test.ts index e1c179fc8fb..5cf12cd301f 100644 --- a/packages/money-account-upgrade-controller/src/steps/eip-7702-authorization.test.ts +++ b/packages/money-account-upgrade-controller/src/steps/eip-7702-authorization.test.ts @@ -6,8 +6,8 @@ import type { } from '@metamask/messenger'; import type { Hex } from '@metamask/utils'; -import type { MoneyAccountUpgradeControllerMessenger } from '../MoneyAccountUpgradeController'; -import { eip7702AuthorizationStep } from './eip-7702-authorization'; +import type { MoneyAccountUpgradeControllerMessenger } from '../MoneyAccountUpgradeController.js'; +import { eip7702AuthorizationStep } from './eip-7702-authorization.js'; const MOCK_ADDRESS = '0xabcdef1234567890abcdef1234567890abcdef12' as Hex; const MOCK_CHAIN_ID = '0xaa36a7' as Hex; // 11155111 (Sepolia) — non-trivial decimal diff --git a/packages/money-account-upgrade-controller/src/steps/eip-7702-authorization.ts b/packages/money-account-upgrade-controller/src/steps/eip-7702-authorization.ts index f494a679452..2a2f29f25bc 100644 --- a/packages/money-account-upgrade-controller/src/steps/eip-7702-authorization.ts +++ b/packages/money-account-upgrade-controller/src/steps/eip-7702-authorization.ts @@ -2,7 +2,7 @@ import type { Provider } from '@metamask/network-controller'; import { add0x, isStrictHexString } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import type { Step, StepContext } from './step'; +import type { Step, StepContext } from './step.js'; const EIP_7702_DELEGATION_PREFIX = '0xef0100'; // '0x' (2) + 'ef0100' (6) + 20-byte address (40) = 48 characters. diff --git a/packages/money-account-upgrade-controller/src/steps/register-intents.test.ts b/packages/money-account-upgrade-controller/src/steps/register-intents.test.ts index 2d67e1498d6..87cf94993dd 100644 --- a/packages/money-account-upgrade-controller/src/steps/register-intents.test.ts +++ b/packages/money-account-upgrade-controller/src/steps/register-intents.test.ts @@ -12,8 +12,8 @@ import type { } from '@metamask/messenger'; import type { Hex } from '@metamask/utils'; -import type { MoneyAccountUpgradeControllerMessenger } from '../MoneyAccountUpgradeController'; -import { registerIntentsStep } from './register-intents'; +import type { MoneyAccountUpgradeControllerMessenger } from '../MoneyAccountUpgradeController.js'; +import { registerIntentsStep } from './register-intents.js'; jest.mock('@metamask/delegation-core', () => ({ createRedeemerTerms: jest.fn(), diff --git a/packages/money-account-upgrade-controller/src/steps/register-intents.ts b/packages/money-account-upgrade-controller/src/steps/register-intents.ts index f3a3fe434d3..eda4b0d0b9d 100644 --- a/packages/money-account-upgrade-controller/src/steps/register-intents.ts +++ b/packages/money-account-upgrade-controller/src/steps/register-intents.ts @@ -7,8 +7,8 @@ import type { import { equalsIgnoreCase, makeHasVedaRedeemerCaveat, -} from './delegation-matchers'; -import type { Step } from './step'; +} from './delegation-matchers.js'; +import type { Step } from './step.js'; type IntentMetadataType = SendIntentParams['metadata']['type']; diff --git a/packages/money-account-upgrade-controller/src/steps/step.ts b/packages/money-account-upgrade-controller/src/steps/step.ts index 9537119d8ab..70e2855380e 100644 --- a/packages/money-account-upgrade-controller/src/steps/step.ts +++ b/packages/money-account-upgrade-controller/src/steps/step.ts @@ -1,6 +1,6 @@ import type { Hex } from '@metamask/utils'; -import type { MoneyAccountUpgradeControllerMessenger } from '../MoneyAccountUpgradeController'; +import type { MoneyAccountUpgradeControllerMessenger } from '../MoneyAccountUpgradeController.js'; /** * Context supplied to each step when it is run. From 8d147df3917684d4cff3931644af6a09564e7f13 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:52:15 +0200 Subject: [PATCH 119/136] ESLint fix and `jest` global import for react-data-query --- packages/react-data-query/src/createUIQueryClient.test.ts | 6 +++--- packages/react-data-query/src/hooks.test.ts | 2 +- packages/react-data-query/src/index.ts | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/react-data-query/src/createUIQueryClient.test.ts b/packages/react-data-query/src/createUIQueryClient.test.ts index ddfe6ab9ed6..f3d9bf24a63 100644 --- a/packages/react-data-query/src/createUIQueryClient.test.ts +++ b/packages/react-data-query/src/createUIQueryClient.test.ts @@ -14,13 +14,13 @@ import { ExampleDataServiceEvents, GetActivityResponse, PageParam, -} from '../../base-data-service/tests/ExampleDataService'; +} from '../../base-data-service/tests/ExampleDataService.js'; import { mockAssets, mockTransactionsPage1, mockTransactionsPage2, -} from '../../base-data-service/tests/mocks'; -import { createUIQueryClient } from './createUIQueryClient'; +} from '../../base-data-service/tests/mocks.js'; +import { createUIQueryClient } from './createUIQueryClient.js'; const DATA_SERVICES = ['ExampleDataService']; diff --git a/packages/react-data-query/src/hooks.test.ts b/packages/react-data-query/src/hooks.test.ts index 779bda9838d..0d1733bac4d 100644 --- a/packages/react-data-query/src/hooks.test.ts +++ b/packages/react-data-query/src/hooks.test.ts @@ -3,7 +3,7 @@ import { useInfiniteQuery as useInfiniteQueryTanStack, } from '@tanstack/react-query'; -import { useInfiniteQuery, useQuery } from './hooks'; +import { useInfiniteQuery, useQuery } from './hooks.js'; jest.mock('@tanstack/react-query', () => ({ useQuery: jest.fn(), diff --git a/packages/react-data-query/src/index.ts b/packages/react-data-query/src/index.ts index f121a7eed64..00a1a60ab4e 100644 --- a/packages/react-data-query/src/index.ts +++ b/packages/react-data-query/src/index.ts @@ -1,2 +1,2 @@ -export { createUIQueryClient } from './createUIQueryClient'; -export { useQuery, useInfiniteQuery } from './hooks'; +export { createUIQueryClient } from './createUIQueryClient.js'; +export { useQuery, useInfiniteQuery } from './hooks.js'; From d1dee91c8524970d2f78106c572bf30d59622a35 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:52:19 +0200 Subject: [PATCH 120/136] ESLint fix and `jest` global import for sentinel-api-service --- packages/sentinel-api-service/src/index.ts | 12 ++++++------ .../src/sentinel-api-service-method-action-types.ts | 2 +- .../src/sentinel-api-service.test.ts | 10 +++++----- .../sentinel-api-service/src/sentinel-api-service.ts | 10 +++++----- packages/sentinel-api-service/src/types.ts | 4 ++-- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/packages/sentinel-api-service/src/index.ts b/packages/sentinel-api-service/src/index.ts index f3160e4f359..62b5fdaf971 100644 --- a/packages/sentinel-api-service/src/index.ts +++ b/packages/sentinel-api-service/src/index.ts @@ -1,5 +1,5 @@ -export { SentinelApiService } from './sentinel-api-service'; -export { SentinelEnvironment, serviceName } from './constants'; +export { SentinelApiService } from './sentinel-api-service.js'; +export { SentinelEnvironment, serviceName } from './constants.js'; export type { SentinelApiServiceActions, SentinelApiServiceEvents, @@ -27,20 +27,20 @@ export type { SentinelSmartTransactionRequest, SentinelSmartTransactionResponse, SentinelStateOverrides, -} from './types'; +} from './types.js'; export { SentinelFeature, SentinelKind, SentinelSmartTransactionStatus, -} from './types'; +} from './types.js'; export type { SentinelApiServiceGetNetworksAction, SentinelApiServiceSimulateTransactionsAction, SentinelApiServiceSubmitRelayTransactionAction, SentinelApiServiceGetSmartTransactionAction, -} from './sentinel-api-service-method-action-types'; +} from './sentinel-api-service-method-action-types.js'; export { SentinelApiResponseValidationError, SentinelChainNotSupportedError, SentinelJsonRpcError, -} from './errors'; +} from './errors.js'; diff --git a/packages/sentinel-api-service/src/sentinel-api-service-method-action-types.ts b/packages/sentinel-api-service/src/sentinel-api-service-method-action-types.ts index 8fe319d6b8f..60ee169751d 100644 --- a/packages/sentinel-api-service/src/sentinel-api-service-method-action-types.ts +++ b/packages/sentinel-api-service/src/sentinel-api-service-method-action-types.ts @@ -3,7 +3,7 @@ * Do not edit manually. */ -import type { SentinelApiService } from './sentinel-api-service'; +import type { SentinelApiService } from './sentinel-api-service.js'; /** * Fetches the Sentinel supported-network registry. The result is cached, as diff --git a/packages/sentinel-api-service/src/sentinel-api-service.test.ts b/packages/sentinel-api-service/src/sentinel-api-service.test.ts index 3066586c356..5778e0e5cda 100644 --- a/packages/sentinel-api-service/src/sentinel-api-service.test.ts +++ b/packages/sentinel-api-service/src/sentinel-api-service.test.ts @@ -16,23 +16,23 @@ import { RPC_METHOD_SIMULATE, SentinelEnvironment, serviceName, -} from './constants'; +} from './constants.js'; import { SentinelApiResponseValidationError, SentinelChainNotSupportedError, SentinelJsonRpcError, -} from './errors'; -import { SentinelApiService } from './sentinel-api-service'; +} from './errors.js'; +import { SentinelApiService } from './sentinel-api-service.js'; import { SentinelFeature, SentinelKind, SentinelSmartTransactionStatus, -} from './types'; +} from './types.js'; import type { SentinelApiServiceMessenger, SentinelRelaySubmitRequest, SentinelSimulationRequest, -} from './types'; +} from './types.js'; // ============================================================ // Fixtures diff --git a/packages/sentinel-api-service/src/sentinel-api-service.ts b/packages/sentinel-api-service/src/sentinel-api-service.ts index fe11b05ac7c..6e98281dd7c 100644 --- a/packages/sentinel-api-service/src/sentinel-api-service.ts +++ b/packages/sentinel-api-service/src/sentinel-api-service.ts @@ -14,19 +14,19 @@ import { RPC_METHOD_SEND_RELAY, RPC_METHOD_SIMULATE, serviceName, -} from './constants'; +} from './constants.js'; import { SentinelApiResponseValidationError, SentinelChainNotSupportedError, SentinelJsonRpcError, -} from './errors'; -import { projectLogger, createModuleLogger } from './logger'; +} from './errors.js'; +import { projectLogger, createModuleLogger } from './logger.js'; import { SentinelSmartTransactionResponseStruct, SentinelNetworkRegistryStruct, SentinelRelaySubmitResponseStruct, SentinelSimulationResponseStruct, -} from './structs'; +} from './structs.js'; import type { SentinelApiServiceMessenger, SentinelApiServiceOptions, @@ -38,7 +38,7 @@ import type { SentinelSimulationResponse, SentinelSmartTransactionRequest, SentinelSmartTransactionResponse, -} from './types'; +} from './types.js'; const log = createModuleLogger(projectLogger, serviceName); diff --git a/packages/sentinel-api-service/src/types.ts b/packages/sentinel-api-service/src/types.ts index bc6b89e6b30..63658e6e4b8 100644 --- a/packages/sentinel-api-service/src/types.ts +++ b/packages/sentinel-api-service/src/types.ts @@ -8,8 +8,8 @@ import type { Messenger } from '@metamask/messenger'; import type { Hex } from '@metamask/utils'; import type { QueryClientConfig } from '@tanstack/query-core'; -import type { SentinelEnvironment, serviceName } from './constants'; -import type { SentinelApiServiceMethodActions } from './sentinel-api-service-method-action-types'; +import type { SentinelEnvironment, serviceName } from './constants.js'; +import type { SentinelApiServiceMethodActions } from './sentinel-api-service-method-action-types.js'; /** * Invalidates cached queries for {@link SentinelApiService}. From ed0d6f1f4a99bfff245876b914b35af6c75f18e7 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:53:09 +0200 Subject: [PATCH 121/136] ESLint fix and `jest` global import for eip-7702-internal-rpc-middleware --- packages/eip-7702-internal-rpc-middleware/src/index.ts | 10 +++++----- .../eip-7702-internal-rpc-middleware/src/utils.test.ts | 2 +- .../src/wallet_getAccountUpgradeStatus.test.ts | 4 ++-- .../src/wallet_getAccountUpgradeStatus.ts | 8 ++++---- .../src/wallet_upgradeAccount.test.ts | 4 ++-- .../src/wallet_upgradeAccount.ts | 6 +++--- 6 files changed, 17 insertions(+), 17 deletions(-) diff --git a/packages/eip-7702-internal-rpc-middleware/src/index.ts b/packages/eip-7702-internal-rpc-middleware/src/index.ts index 09ee48299bb..443b9000b16 100644 --- a/packages/eip-7702-internal-rpc-middleware/src/index.ts +++ b/packages/eip-7702-internal-rpc-middleware/src/index.ts @@ -1,12 +1,12 @@ // Method handlers -export { walletUpgradeAccount } from './wallet_upgradeAccount'; -export { walletGetAccountUpgradeStatus } from './wallet_getAccountUpgradeStatus'; +export { walletUpgradeAccount } from './wallet_upgradeAccount.js'; +export { walletGetAccountUpgradeStatus } from './wallet_getAccountUpgradeStatus.js'; // Utilities -export { validateParams, validateAndNormalizeAddress } from './utils'; +export { validateParams, validateAndNormalizeAddress } from './utils.js'; // Constants -export { METHOD_NAMES } from './constants'; +export { METHOD_NAMES } from './constants.js'; // Types export type { @@ -14,4 +14,4 @@ export type { UpgradeAccountResult, GetAccountUpgradeStatusParams, GetAccountUpgradeStatusResult, -} from './types'; +} from './types.js'; diff --git a/packages/eip-7702-internal-rpc-middleware/src/utils.test.ts b/packages/eip-7702-internal-rpc-middleware/src/utils.test.ts index c7b7afc962b..701335f7c42 100644 --- a/packages/eip-7702-internal-rpc-middleware/src/utils.test.ts +++ b/packages/eip-7702-internal-rpc-middleware/src/utils.test.ts @@ -2,7 +2,7 @@ import { providerErrors, rpcErrors } from '@metamask/rpc-errors'; import { object, string, number } from '@metamask/superstruct'; import type { Hex } from '@metamask/utils'; -import { validateParams, validateAndNormalizeAddress } from './utils'; +import { validateParams, validateAndNormalizeAddress } from './utils.js'; describe('validateParams', () => { it('does not throw for valid parameters', () => { diff --git a/packages/eip-7702-internal-rpc-middleware/src/wallet_getAccountUpgradeStatus.test.ts b/packages/eip-7702-internal-rpc-middleware/src/wallet_getAccountUpgradeStatus.test.ts index 2c6edb15fd8..a7f10663c4f 100644 --- a/packages/eip-7702-internal-rpc-middleware/src/wallet_getAccountUpgradeStatus.test.ts +++ b/packages/eip-7702-internal-rpc-middleware/src/wallet_getAccountUpgradeStatus.test.ts @@ -1,8 +1,8 @@ import { rpcErrors } from '@metamask/rpc-errors'; import type { JsonRpcRequest, PendingJsonRpcResponse } from '@metamask/utils'; -import type { GetAccountUpgradeStatusParams } from './types'; -import { walletGetAccountUpgradeStatus } from './wallet_getAccountUpgradeStatus'; +import type { GetAccountUpgradeStatusParams } from './types.js'; +import { walletGetAccountUpgradeStatus } from './wallet_getAccountUpgradeStatus.js'; const TEST_ACCOUNT = '0x1234567890123456789012345678901234567890'; const NETWORK_CLIENT_ID = 'mainnet'; diff --git a/packages/eip-7702-internal-rpc-middleware/src/wallet_getAccountUpgradeStatus.ts b/packages/eip-7702-internal-rpc-middleware/src/wallet_getAccountUpgradeStatus.ts index 41a2aa631fb..c72e6289aa3 100644 --- a/packages/eip-7702-internal-rpc-middleware/src/wallet_getAccountUpgradeStatus.ts +++ b/packages/eip-7702-internal-rpc-middleware/src/wallet_getAccountUpgradeStatus.ts @@ -6,10 +6,10 @@ import type { Hex, } from '@metamask/utils'; -import { DELEGATION_INDICATOR_PREFIX } from './constants'; -import type { GetAccountUpgradeStatusParams } from './types'; -import { GetAccountUpgradeStatusParamsStruct } from './types'; -import { validateParams, validateAndNormalizeAddress } from './utils'; +import { DELEGATION_INDICATOR_PREFIX } from './constants.js'; +import type { GetAccountUpgradeStatusParams } from './types.js'; +import { GetAccountUpgradeStatusParamsStruct } from './types.js'; +import { validateParams, validateAndNormalizeAddress } from './utils.js'; export type WalletGetAccountUpgradeStatusHooks = { getCurrentChainIdForDomain: (origin: string) => Hex | null; diff --git a/packages/eip-7702-internal-rpc-middleware/src/wallet_upgradeAccount.test.ts b/packages/eip-7702-internal-rpc-middleware/src/wallet_upgradeAccount.test.ts index d80eacbca20..03d5339d708 100644 --- a/packages/eip-7702-internal-rpc-middleware/src/wallet_upgradeAccount.test.ts +++ b/packages/eip-7702-internal-rpc-middleware/src/wallet_upgradeAccount.test.ts @@ -1,8 +1,8 @@ import { rpcErrors } from '@metamask/rpc-errors'; import type { JsonRpcRequest, PendingJsonRpcResponse } from '@metamask/utils'; -import type { UpgradeAccountParams } from './types'; -import { walletUpgradeAccount } from './wallet_upgradeAccount'; +import type { UpgradeAccountParams } from './types.js'; +import { walletUpgradeAccount } from './wallet_upgradeAccount.js'; const TEST_ACCOUNT = '0x1234567890123456789012345678901234567890'; const UPGRADE_CONTRACT = '0x0000000000000000000000000000000000000000'; diff --git a/packages/eip-7702-internal-rpc-middleware/src/wallet_upgradeAccount.ts b/packages/eip-7702-internal-rpc-middleware/src/wallet_upgradeAccount.ts index af786b26e2d..f17f65fe54e 100644 --- a/packages/eip-7702-internal-rpc-middleware/src/wallet_upgradeAccount.ts +++ b/packages/eip-7702-internal-rpc-middleware/src/wallet_upgradeAccount.ts @@ -5,9 +5,9 @@ import type { Hex, } from '@metamask/utils'; -import type { UpgradeAccountParams } from './types'; -import { UpgradeAccountParamsStruct } from './types'; -import { validateParams, validateAndNormalizeAddress } from './utils'; +import type { UpgradeAccountParams } from './types.js'; +import { UpgradeAccountParamsStruct } from './types.js'; +import { validateParams, validateAndNormalizeAddress } from './utils.js'; export type WalletUpgradeAccountHooks = { upgradeAccount: ( From f80b3e9d104bade1b5678d5caea3371fa96d4954 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:53:10 +0200 Subject: [PATCH 122/136] ESLint fix and `jest` global import for local-node-utils --- packages/local-node-utils/src/archive.ts | 2 +- packages/local-node-utils/src/artifact.ts | 2 +- .../local-node-utils/src/cache-directory.ts | 2 +- packages/local-node-utils/src/command.test.ts | 2 +- .../src/executable-wrapper.ts | 2 +- packages/local-node-utils/src/index.test.ts | 10 +++---- packages/local-node-utils/src/index.ts | 30 +++++++++---------- .../local-node-utils/src/integration.test.ts | 20 ++++++------- packages/local-node-utils/src/package-json.ts | 2 +- 9 files changed, 36 insertions(+), 36 deletions(-) diff --git a/packages/local-node-utils/src/archive.ts b/packages/local-node-utils/src/archive.ts index c7310feffd8..81fc6bf86b6 100644 --- a/packages/local-node-utils/src/archive.ts +++ b/packages/local-node-utils/src/archive.ts @@ -1,4 +1,4 @@ -import { runCommand } from './command'; +import { runCommand } from './command.js'; export async function extractTarGzArchive( archivePath: string, diff --git a/packages/local-node-utils/src/artifact.ts b/packages/local-node-utils/src/artifact.ts index 85b2d9a4cbc..4a7093ff081 100644 --- a/packages/local-node-utils/src/artifact.ts +++ b/packages/local-node-utils/src/artifact.ts @@ -1,7 +1,7 @@ /* eslint-disable import-x/no-nodejs-modules */ import { createHash } from 'node:crypto'; -import type { ArtifactConfig, ArtifactPlatformConfig } from './types'; +import type { ArtifactConfig, ArtifactPlatformConfig } from './types.js'; export function mergeArtifactConfig( defaults: ArtifactConfig, diff --git a/packages/local-node-utils/src/cache-directory.ts b/packages/local-node-utils/src/cache-directory.ts index 0bfd0215bcf..be720afddd1 100644 --- a/packages/local-node-utils/src/cache-directory.ts +++ b/packages/local-node-utils/src/cache-directory.ts @@ -4,7 +4,7 @@ import { homedir } from 'node:os'; import { join } from 'node:path'; import { parse as parseYaml } from 'yaml'; -import { isFileMissingError } from './errors'; +import { isFileMissingError } from './errors.js'; export function getMetamaskCacheDirectory({ cwd = process.cwd(), diff --git a/packages/local-node-utils/src/command.test.ts b/packages/local-node-utils/src/command.test.ts index 1b4f94c0b6a..5319ab59479 100644 --- a/packages/local-node-utils/src/command.test.ts +++ b/packages/local-node-utils/src/command.test.ts @@ -1,7 +1,7 @@ /* eslint-disable jest/expect-expect */ import assert from 'node:assert/strict'; -import { runCommand } from './command'; +import { runCommand } from './command.js'; describe('runCommand', () => { it('runs a successful command', async () => { diff --git a/packages/local-node-utils/src/executable-wrapper.ts b/packages/local-node-utils/src/executable-wrapper.ts index f01b3dd612b..4b6a76722ae 100644 --- a/packages/local-node-utils/src/executable-wrapper.ts +++ b/packages/local-node-utils/src/executable-wrapper.ts @@ -2,7 +2,7 @@ import { chmod, mkdir, unlink, writeFile } from 'node:fs/promises'; import { join, relative, resolve } from 'node:path'; -import { isFileMissingError } from './errors'; +import { isFileMissingError } from './errors.js'; export type ExecutableWrapperPathResolution = 'absolute' | 'relative'; diff --git a/packages/local-node-utils/src/index.test.ts b/packages/local-node-utils/src/index.test.ts index 285994c62b5..beb4e0864ed 100644 --- a/packages/local-node-utils/src/index.test.ts +++ b/packages/local-node-utils/src/index.test.ts @@ -10,11 +10,11 @@ import { mergeArtifactConfig, requireCompletePlatformConfig, resolvePlatformConfig, -} from './artifact'; -import { getMetamaskCacheDirectory } from './cache-directory'; -import { readCliValue } from './cli'; -import { readPackageJsonToolConfig } from './package-json'; -import type { ArtifactConfig } from './types'; +} from './artifact.js'; +import { getMetamaskCacheDirectory } from './cache-directory.js'; +import { readCliValue } from './cli.js'; +import { readPackageJsonToolConfig } from './package-json.js'; +import type { ArtifactConfig } from './types.js'; describe('artifact helpers', () => { const defaults: ArtifactConfig = { diff --git a/packages/local-node-utils/src/index.ts b/packages/local-node-utils/src/index.ts index 5209ae45993..c68ea6b9033 100644 --- a/packages/local-node-utils/src/index.ts +++ b/packages/local-node-utils/src/index.ts @@ -2,23 +2,23 @@ export type { ArtifactConfig, ArtifactPlatformConfig, InstallDependencies, -} from './types'; +} from './types.js'; export { getCacheKey, mergeArtifactConfig, requireCompletePlatformConfig, resolvePlatformConfig, -} from './artifact'; -export { cleanInstallerCache } from './cache'; -export { getMetamaskCacheDirectory } from './cache-directory'; -export { verifyFileChecksum } from './checksum'; -export { readCliValue } from './cli'; -export { runCommand } from './command'; -export { isFileMissingError } from './errors'; -export { extractTarBz2Archive, extractTarGzArchive } from './archive'; -export { downloadFileFromUrl } from './download'; -export { installExecutableWrapper } from './executable-wrapper'; -export type { ExecutableWrapperPathResolution } from './executable-wrapper'; -export { findExecutable, isDirectory, isFile } from './filesystem'; -export { getPlatformKey, normalizeSystemArchitecture } from './platform'; -export { readPackageJsonToolConfig } from './package-json'; +} from './artifact.js'; +export { cleanInstallerCache } from './cache.js'; +export { getMetamaskCacheDirectory } from './cache-directory.js'; +export { verifyFileChecksum } from './checksum.js'; +export { readCliValue } from './cli.js'; +export { runCommand } from './command.js'; +export { isFileMissingError } from './errors.js'; +export { extractTarBz2Archive, extractTarGzArchive } from './archive.js'; +export { downloadFileFromUrl } from './download.js'; +export { installExecutableWrapper } from './executable-wrapper.js'; +export type { ExecutableWrapperPathResolution } from './executable-wrapper.js'; +export { findExecutable, isDirectory, isFile } from './filesystem.js'; +export { getPlatformKey, normalizeSystemArchitecture } from './platform.js'; +export { readPackageJsonToolConfig } from './package-json.js'; diff --git a/packages/local-node-utils/src/integration.test.ts b/packages/local-node-utils/src/integration.test.ts index 5d94b2d8559..03ecb5a14f2 100644 --- a/packages/local-node-utils/src/integration.test.ts +++ b/packages/local-node-utils/src/integration.test.ts @@ -12,16 +12,16 @@ import { import { tmpdir } from 'node:os'; import { join } from 'node:path'; -import { extractTarBz2Archive, extractTarGzArchive } from './archive'; -import { cleanInstallerCache } from './cache'; -import { getMetamaskCacheDirectory } from './cache-directory'; -import { verifyFileChecksum } from './checksum'; -import { runCommand } from './command'; -import { downloadFileFromUrl, openDownloadStream } from './download'; -import { isFileMissingError } from './errors'; -import { installExecutableWrapper } from './executable-wrapper'; -import { findExecutable, isDirectory, isFile } from './filesystem'; -import { getPlatformKey, normalizeSystemArchitecture } from './platform'; +import { extractTarBz2Archive, extractTarGzArchive } from './archive.js'; +import { getMetamaskCacheDirectory } from './cache-directory.js'; +import { cleanInstallerCache } from './cache.js'; +import { verifyFileChecksum } from './checksum.js'; +import { runCommand } from './command.js'; +import { downloadFileFromUrl, openDownloadStream } from './download.js'; +import { isFileMissingError } from './errors.js'; +import { installExecutableWrapper } from './executable-wrapper.js'; +import { findExecutable, isDirectory, isFile } from './filesystem.js'; +import { getPlatformKey, normalizeSystemArchitecture } from './platform.js'; jest.mock('./command', () => ({ runCommand: jest.fn(), diff --git a/packages/local-node-utils/src/package-json.ts b/packages/local-node-utils/src/package-json.ts index ab9a55eff2f..cd5abf3fa9a 100644 --- a/packages/local-node-utils/src/package-json.ts +++ b/packages/local-node-utils/src/package-json.ts @@ -2,7 +2,7 @@ import { readFileSync } from 'node:fs'; import { join } from 'node:path'; -import { isFileMissingError } from './errors'; +import { isFileMissingError } from './errors.js'; export function readPackageJsonToolConfig({ cwd = process.cwd(), From ac17817b34f37bf53c345f1b798e8137c93f06c4 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:53:15 +0200 Subject: [PATCH 123/136] ESLint fix and `jest` global import for messenger-cli --- packages/messenger-cli/src/check.test.ts | 6 +++--- packages/messenger-cli/src/check.ts | 6 +++--- packages/messenger-cli/src/cli.ts | 8 ++++---- packages/messenger-cli/src/fix.test.ts | 6 +++--- packages/messenger-cli/src/fix.ts | 6 +++--- packages/messenger-cli/src/generate-content.test.ts | 4 ++-- packages/messenger-cli/src/generate-content.ts | 4 ++-- packages/messenger-cli/src/parse-source.test.ts | 5 ++++- 8 files changed, 24 insertions(+), 21 deletions(-) diff --git a/packages/messenger-cli/src/check.test.ts b/packages/messenger-cli/src/check.test.ts index c7232738c1f..ea212269438 100644 --- a/packages/messenger-cli/src/check.test.ts +++ b/packages/messenger-cli/src/check.test.ts @@ -2,9 +2,9 @@ import { createSandbox } from '@metamask/utils/node'; import * as fs from 'node:fs'; import * as path from 'node:path'; -import { checkActionTypesFiles } from './check'; -import { generateActionTypesContent } from './generate-content'; -import type { SourceInfo } from './parse-source'; +import { checkActionTypesFiles } from './check.js'; +import { generateActionTypesContent } from './generate-content.js'; +import type { SourceInfo } from './parse-source.js'; const { withinSandbox } = createSandbox('messenger/check-action-types'); diff --git a/packages/messenger-cli/src/check.ts b/packages/messenger-cli/src/check.ts index 46009ff8b58..20903d4a875 100644 --- a/packages/messenger-cli/src/check.ts +++ b/packages/messenger-cli/src/check.ts @@ -1,9 +1,9 @@ import * as fs from 'node:fs'; import * as path from 'node:path'; -import { generateActionTypesContent } from './generate-content'; -import type { SourceInfo } from './parse-source'; -import { Formatter } from './types'; +import { generateActionTypesContent } from './generate-content.js'; +import type { SourceInfo } from './parse-source.js'; +import { Formatter } from './types.js'; /** * Checks if generated action types files are up to date. diff --git a/packages/messenger-cli/src/cli.ts b/packages/messenger-cli/src/cli.ts index 27073853b96..b94cb59c0f3 100644 --- a/packages/messenger-cli/src/cli.ts +++ b/packages/messenger-cli/src/cli.ts @@ -2,10 +2,10 @@ import yargs from 'yargs'; -import { checkActionTypesFiles } from './check'; -import { generateAllActionTypesFiles } from './fix'; -import { findSourcesWithExposedMethods } from './parse-source'; -import { Formatter } from './types'; +import { checkActionTypesFiles } from './check.js'; +import { generateAllActionTypesFiles } from './fix.js'; +import { findSourcesWithExposedMethods } from './parse-source.js'; +import { Formatter } from './types.js'; type CommandLineArguments = { check: boolean; diff --git a/packages/messenger-cli/src/fix.test.ts b/packages/messenger-cli/src/fix.test.ts index dfd207dd5a6..dd436ca363b 100644 --- a/packages/messenger-cli/src/fix.test.ts +++ b/packages/messenger-cli/src/fix.test.ts @@ -2,9 +2,9 @@ import { createSandbox } from '@metamask/utils/node'; import * as fs from 'node:fs'; import * as path from 'node:path'; -import { generateAllActionTypesFiles } from './fix'; -import { generateActionTypesContent } from './generate-content'; -import type { SourceInfo } from './parse-source'; +import { generateAllActionTypesFiles } from './fix.js'; +import { generateActionTypesContent } from './generate-content.js'; +import type { SourceInfo } from './parse-source.js'; const { withinSandbox } = createSandbox('messenger/fix-action-types'); diff --git a/packages/messenger-cli/src/fix.ts b/packages/messenger-cli/src/fix.ts index 46b5860cf3d..63d99034647 100644 --- a/packages/messenger-cli/src/fix.ts +++ b/packages/messenger-cli/src/fix.ts @@ -1,9 +1,9 @@ import * as fs from 'node:fs'; import * as path from 'node:path'; -import { generateActionTypesContent } from './generate-content'; -import type { SourceInfo } from './parse-source'; -import type { Formatter } from './types'; +import { generateActionTypesContent } from './generate-content.js'; +import type { SourceInfo } from './parse-source.js'; +import type { Formatter } from './types.js'; /** * Generates action types files for all controllers/services. diff --git a/packages/messenger-cli/src/generate-content.test.ts b/packages/messenger-cli/src/generate-content.test.ts index 1e939a9b5fb..85519348f06 100644 --- a/packages/messenger-cli/src/generate-content.test.ts +++ b/packages/messenger-cli/src/generate-content.test.ts @@ -1,5 +1,5 @@ -import { generateActionTypesContent } from './generate-content'; -import type { SourceInfo } from './parse-source'; +import { generateActionTypesContent } from './generate-content.js'; +import type { SourceInfo } from './parse-source.js'; describe('generateActionTypesContent', () => { it('generates action types for a controller with one method', async () => { diff --git a/packages/messenger-cli/src/generate-content.ts b/packages/messenger-cli/src/generate-content.ts index 3bfc3017771..76e4fef242b 100644 --- a/packages/messenger-cli/src/generate-content.ts +++ b/packages/messenger-cli/src/generate-content.ts @@ -1,8 +1,8 @@ import { assertExhaustive, getErrorMessage } from '@metamask/utils'; import * as path from 'node:path'; -import type { SourceInfo } from './parse-source'; -import { Formatter } from './types'; +import type { SourceInfo } from './parse-source.js'; +import { Formatter } from './types.js'; /** * The default options used by Oxfmt and Prettier when formatting the generated diff --git a/packages/messenger-cli/src/parse-source.test.ts b/packages/messenger-cli/src/parse-source.test.ts index 80366d4994a..5ab649e6bef 100644 --- a/packages/messenger-cli/src/parse-source.test.ts +++ b/packages/messenger-cli/src/parse-source.test.ts @@ -2,7 +2,10 @@ import { createSandbox } from '@metamask/utils/node'; import * as fs from 'node:fs'; import * as path from 'node:path'; -import { findSourcesWithExposedMethods, parseSourceFile } from './parse-source'; +import { + findSourcesWithExposedMethods, + parseSourceFile, +} from './parse-source.js'; const { withinSandbox: withinParseSourceSandbox } = createSandbox( 'messenger/parse-source', From 4ecef9767326f3e8d266681e173baf4a8996f1a4 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:53:15 +0200 Subject: [PATCH 124/136] ESLint fix and `jest` global import for wallet-cli --- .../src/commands/daemon/call.test.ts | 6 +++--- .../wallet-cli/src/commands/daemon/call.ts | 6 +++--- .../src/commands/daemon/list.test.ts | 6 +++--- .../wallet-cli/src/commands/daemon/list.ts | 6 +++--- .../src/commands/daemon/purge.test.ts | 10 +++++----- .../wallet-cli/src/commands/daemon/purge.ts | 8 ++++---- .../src/commands/daemon/start.test.ts | 6 +++--- .../wallet-cli/src/commands/daemon/start.ts | 4 ++-- .../src/commands/daemon/status.test.ts | 8 ++++---- .../wallet-cli/src/commands/daemon/status.ts | 8 ++++---- .../src/commands/daemon/stop.test.ts | 10 +++++----- .../wallet-cli/src/commands/daemon/stop.ts | 8 ++++---- .../src/commands/wallet/unlock.test.ts | 8 ++++---- .../wallet-cli/src/commands/wallet/unlock.ts | 8 ++++---- .../src/daemon/daemon-client.test.ts | 4 ++-- .../wallet-cli/src/daemon/daemon-client.ts | 4 ++-- .../src/daemon/daemon-entry.test.ts | 16 +++++++-------- .../wallet-cli/src/daemon/daemon-entry.ts | 20 +++++++++---------- .../src/daemon/daemon-spawn.test.ts | 12 +++++------ .../wallet-cli/src/daemon/daemon-spawn.ts | 8 ++++---- .../wallet-cli/src/daemon/data-dir.test.ts | 2 +- packages/wallet-cli/src/daemon/paths.test.ts | 2 +- packages/wallet-cli/src/daemon/paths.ts | 2 +- .../wallet-cli/src/daemon/prompts.test.ts | 6 +++--- .../src/daemon/rpc-socket-server.test.ts | 4 ++-- .../src/daemon/rpc-socket-server.ts | 4 ++-- .../wallet-cli/src/daemon/secrets.test.ts | 8 +++----- .../wallet-cli/src/daemon/socket-line.test.ts | 2 +- .../src/daemon/socket.integration.test.ts | 8 ++++---- .../wallet-cli/src/daemon/stop-daemon.test.ts | 6 +++--- packages/wallet-cli/src/daemon/stop-daemon.ts | 4 ++-- packages/wallet-cli/src/daemon/types.ts | 2 +- packages/wallet-cli/src/daemon/utils.test.ts | 2 +- .../daemon/wallet-factory.integration.test.ts | 4 ++-- .../src/daemon/wallet-factory.test.ts | 8 ++++---- .../wallet-cli/src/daemon/wallet-factory.ts | 8 ++++---- .../src/persistence/KeyValueStore.test.ts | 2 +- .../src/persistence/persistence.test.ts | 4 ++-- .../wallet-cli/src/persistence/persistence.ts | 2 +- 39 files changed, 122 insertions(+), 124 deletions(-) diff --git a/packages/wallet-cli/src/commands/daemon/call.test.ts b/packages/wallet-cli/src/commands/daemon/call.test.ts index c39f933b1a8..45564201b92 100644 --- a/packages/wallet-cli/src/commands/daemon/call.test.ts +++ b/packages/wallet-cli/src/commands/daemon/call.test.ts @@ -1,6 +1,6 @@ -import { sendCommand } from '../../daemon/daemon-client'; -import { runCommand } from '../../test/run-command'; -import DaemonCall from './call'; +import { sendCommand } from '../../daemon/daemon-client.js'; +import { runCommand } from '../../test/run-command.js'; +import DaemonCall from './call.js'; jest.mock('../../daemon/daemon-client'); diff --git a/packages/wallet-cli/src/commands/daemon/call.ts b/packages/wallet-cli/src/commands/daemon/call.ts index 3a4a2a989ce..bf9ad50c22a 100644 --- a/packages/wallet-cli/src/commands/daemon/call.ts +++ b/packages/wallet-cli/src/commands/daemon/call.ts @@ -2,12 +2,12 @@ import type { Json } from '@metamask/utils'; import { isJsonRpcFailure } from '@metamask/utils'; import { Args, Command, Flags } from '@oclif/core'; -import { sendCommand } from '../../daemon/daemon-client'; -import { getDaemonPaths } from '../../daemon/paths'; +import { sendCommand } from '../../daemon/daemon-client.js'; +import { getDaemonPaths } from '../../daemon/paths.js'; import { formatJsonRpcError, makeDaemonConnectionError, -} from '../../daemon/utils'; +} from '../../daemon/utils.js'; export default class DaemonCall extends Command { static override description = 'Call a messenger action on the wallet daemon'; diff --git a/packages/wallet-cli/src/commands/daemon/list.test.ts b/packages/wallet-cli/src/commands/daemon/list.test.ts index 2a9843c0e2e..9aa0ddc2982 100644 --- a/packages/wallet-cli/src/commands/daemon/list.test.ts +++ b/packages/wallet-cli/src/commands/daemon/list.test.ts @@ -1,6 +1,6 @@ -import { sendCommand } from '../../daemon/daemon-client'; -import { runCommand } from '../../test/run-command'; -import DaemonList from './list'; +import { sendCommand } from '../../daemon/daemon-client.js'; +import { runCommand } from '../../test/run-command.js'; +import DaemonList from './list.js'; jest.mock('../../daemon/daemon-client'); diff --git a/packages/wallet-cli/src/commands/daemon/list.ts b/packages/wallet-cli/src/commands/daemon/list.ts index a4d66bc6458..f54e024dc36 100644 --- a/packages/wallet-cli/src/commands/daemon/list.ts +++ b/packages/wallet-cli/src/commands/daemon/list.ts @@ -1,13 +1,13 @@ import { isJsonRpcFailure } from '@metamask/utils'; import { Command } from '@oclif/core'; -import { sendCommand } from '../../daemon/daemon-client'; -import { getDaemonPaths } from '../../daemon/paths'; +import { sendCommand } from '../../daemon/daemon-client.js'; +import { getDaemonPaths } from '../../daemon/paths.js'; import { formatJsonRpcError, isStringArray, makeDaemonConnectionError, -} from '../../daemon/utils'; +} from '../../daemon/utils.js'; export default class DaemonList extends Command { static override description = diff --git a/packages/wallet-cli/src/commands/daemon/purge.test.ts b/packages/wallet-cli/src/commands/daemon/purge.test.ts index 78c2d39aedf..93e3df8bb72 100644 --- a/packages/wallet-cli/src/commands/daemon/purge.test.ts +++ b/packages/wallet-cli/src/commands/daemon/purge.test.ts @@ -1,10 +1,10 @@ import { rm } from 'node:fs/promises'; -import { pingDaemon } from '../../daemon/daemon-client'; -import { confirmPurge } from '../../daemon/prompts'; -import { stopDaemon } from '../../daemon/stop-daemon'; -import { runCommand } from '../../test/run-command'; -import DaemonPurge from './purge'; +import { pingDaemon } from '../../daemon/daemon-client.js'; +import { confirmPurge } from '../../daemon/prompts.js'; +import { stopDaemon } from '../../daemon/stop-daemon.js'; +import { runCommand } from '../../test/run-command.js'; +import DaemonPurge from './purge.js'; jest.mock('node:fs/promises'); jest.mock('../../daemon/daemon-client'); diff --git a/packages/wallet-cli/src/commands/daemon/purge.ts b/packages/wallet-cli/src/commands/daemon/purge.ts index d3f56d593ae..0fe63dc0a96 100644 --- a/packages/wallet-cli/src/commands/daemon/purge.ts +++ b/packages/wallet-cli/src/commands/daemon/purge.ts @@ -1,10 +1,10 @@ import { Command, Flags } from '@oclif/core'; import { rm } from 'node:fs/promises'; -import { pingDaemon } from '../../daemon/daemon-client'; -import { getDaemonPaths } from '../../daemon/paths'; -import { confirmPurge } from '../../daemon/prompts'; -import { stopDaemon } from '../../daemon/stop-daemon'; +import { pingDaemon } from '../../daemon/daemon-client.js'; +import { getDaemonPaths } from '../../daemon/paths.js'; +import { confirmPurge } from '../../daemon/prompts.js'; +import { stopDaemon } from '../../daemon/stop-daemon.js'; export default class DaemonPurge extends Command { static override description = diff --git a/packages/wallet-cli/src/commands/daemon/start.test.ts b/packages/wallet-cli/src/commands/daemon/start.test.ts index 913371b39e3..094332ac158 100644 --- a/packages/wallet-cli/src/commands/daemon/start.test.ts +++ b/packages/wallet-cli/src/commands/daemon/start.test.ts @@ -1,6 +1,6 @@ -import { ensureDaemon } from '../../daemon/daemon-spawn'; -import { runCommand } from '../../test/run-command'; -import DaemonStart from './start'; +import { ensureDaemon } from '../../daemon/daemon-spawn.js'; +import { runCommand } from '../../test/run-command.js'; +import DaemonStart from './start.js'; jest.mock('../../daemon/daemon-spawn'); diff --git a/packages/wallet-cli/src/commands/daemon/start.ts b/packages/wallet-cli/src/commands/daemon/start.ts index 27cad21bd8c..cf7aaee7774 100644 --- a/packages/wallet-cli/src/commands/daemon/start.ts +++ b/packages/wallet-cli/src/commands/daemon/start.ts @@ -1,7 +1,7 @@ import { Command, Flags } from '@oclif/core'; -import { ensureDaemon } from '../../daemon/daemon-spawn'; -import { Password, Srp } from '../../daemon/secrets'; +import { ensureDaemon } from '../../daemon/daemon-spawn.js'; +import { Password, Srp } from '../../daemon/secrets.js'; export default class DaemonStart extends Command { static override description = 'Start the wallet daemon'; diff --git a/packages/wallet-cli/src/commands/daemon/status.test.ts b/packages/wallet-cli/src/commands/daemon/status.test.ts index c6bf33b47ad..e7585b4baef 100644 --- a/packages/wallet-cli/src/commands/daemon/status.test.ts +++ b/packages/wallet-cli/src/commands/daemon/status.test.ts @@ -1,7 +1,7 @@ -import { pingDaemon, sendCommand } from '../../daemon/daemon-client'; -import { isProcessAlive, readPidFile } from '../../daemon/utils'; -import { runCommand } from '../../test/run-command'; -import DaemonStatus from './status'; +import { pingDaemon, sendCommand } from '../../daemon/daemon-client.js'; +import { isProcessAlive, readPidFile } from '../../daemon/utils.js'; +import { runCommand } from '../../test/run-command.js'; +import DaemonStatus from './status.js'; jest.mock('../../daemon/daemon-client'); jest.mock('../../daemon/utils'); diff --git a/packages/wallet-cli/src/commands/daemon/status.ts b/packages/wallet-cli/src/commands/daemon/status.ts index 24dfb5e68cc..a2c576631ba 100644 --- a/packages/wallet-cli/src/commands/daemon/status.ts +++ b/packages/wallet-cli/src/commands/daemon/status.ts @@ -1,10 +1,10 @@ import { isJsonRpcFailure } from '@metamask/utils'; import { Command } from '@oclif/core'; -import { pingDaemon, sendCommand } from '../../daemon/daemon-client'; -import { getDaemonPaths } from '../../daemon/paths'; -import type { DaemonStatusInfo } from '../../daemon/types'; -import { isProcessAlive, readPidFile } from '../../daemon/utils'; +import { pingDaemon, sendCommand } from '../../daemon/daemon-client.js'; +import { getDaemonPaths } from '../../daemon/paths.js'; +import type { DaemonStatusInfo } from '../../daemon/types.js'; +import { isProcessAlive, readPidFile } from '../../daemon/utils.js'; export default class DaemonStatus extends Command { static override description = 'Check the status of the wallet daemon'; diff --git a/packages/wallet-cli/src/commands/daemon/stop.test.ts b/packages/wallet-cli/src/commands/daemon/stop.test.ts index b30d7152fa6..ddbf22960c8 100644 --- a/packages/wallet-cli/src/commands/daemon/stop.test.ts +++ b/packages/wallet-cli/src/commands/daemon/stop.test.ts @@ -1,8 +1,8 @@ -import { pingDaemon } from '../../daemon/daemon-client'; -import { stopDaemon } from '../../daemon/stop-daemon'; -import { readPidFile } from '../../daemon/utils'; -import { runCommand } from '../../test/run-command'; -import DaemonStop from './stop'; +import { pingDaemon } from '../../daemon/daemon-client.js'; +import { stopDaemon } from '../../daemon/stop-daemon.js'; +import { readPidFile } from '../../daemon/utils.js'; +import { runCommand } from '../../test/run-command.js'; +import DaemonStop from './stop.js'; jest.mock('../../daemon/daemon-client'); jest.mock('../../daemon/stop-daemon'); diff --git a/packages/wallet-cli/src/commands/daemon/stop.ts b/packages/wallet-cli/src/commands/daemon/stop.ts index 238db803749..1dbdf43ac23 100644 --- a/packages/wallet-cli/src/commands/daemon/stop.ts +++ b/packages/wallet-cli/src/commands/daemon/stop.ts @@ -1,9 +1,9 @@ import { Command } from '@oclif/core'; -import { pingDaemon } from '../../daemon/daemon-client'; -import { getDaemonPaths } from '../../daemon/paths'; -import { stopDaemon } from '../../daemon/stop-daemon'; -import { readPidFile } from '../../daemon/utils'; +import { pingDaemon } from '../../daemon/daemon-client.js'; +import { getDaemonPaths } from '../../daemon/paths.js'; +import { stopDaemon } from '../../daemon/stop-daemon.js'; +import { readPidFile } from '../../daemon/utils.js'; export default class DaemonStop extends Command { static override description = 'Stop the wallet daemon'; diff --git a/packages/wallet-cli/src/commands/wallet/unlock.test.ts b/packages/wallet-cli/src/commands/wallet/unlock.test.ts index 4a5ad4f2061..4fe1ffaac63 100644 --- a/packages/wallet-cli/src/commands/wallet/unlock.test.ts +++ b/packages/wallet-cli/src/commands/wallet/unlock.test.ts @@ -1,7 +1,7 @@ -import { sendCommand } from '../../daemon/daemon-client'; -import { promptPassword } from '../../daemon/prompts'; -import { runCommand } from '../../test/run-command'; -import WalletUnlock from './unlock'; +import { sendCommand } from '../../daemon/daemon-client.js'; +import { promptPassword } from '../../daemon/prompts.js'; +import { runCommand } from '../../test/run-command.js'; +import WalletUnlock from './unlock.js'; jest.mock('../../daemon/daemon-client'); jest.mock('../../daemon/prompts'); diff --git a/packages/wallet-cli/src/commands/wallet/unlock.ts b/packages/wallet-cli/src/commands/wallet/unlock.ts index b86944758d5..c60b7df6d56 100644 --- a/packages/wallet-cli/src/commands/wallet/unlock.ts +++ b/packages/wallet-cli/src/commands/wallet/unlock.ts @@ -1,13 +1,13 @@ import { isJsonRpcFailure } from '@metamask/utils'; import { Command, Flags } from '@oclif/core'; -import { sendCommand } from '../../daemon/daemon-client'; -import { getDaemonPaths } from '../../daemon/paths'; -import { promptPassword } from '../../daemon/prompts'; +import { sendCommand } from '../../daemon/daemon-client.js'; +import { getDaemonPaths } from '../../daemon/paths.js'; +import { promptPassword } from '../../daemon/prompts.js'; import { emptyToUndefined, makeDaemonConnectionError, -} from '../../daemon/utils'; +} from '../../daemon/utils.js'; export default class WalletUnlock extends Command { static override description = diff --git a/packages/wallet-cli/src/daemon/daemon-client.test.ts b/packages/wallet-cli/src/daemon/daemon-client.test.ts index 96cfa33e49c..7aaea3c8a1c 100644 --- a/packages/wallet-cli/src/daemon/daemon-client.test.ts +++ b/packages/wallet-cli/src/daemon/daemon-client.test.ts @@ -3,8 +3,8 @@ import { EventEmitter } from 'node:events'; import { createConnection } from 'node:net'; import type { Socket } from 'node:net'; -import { sendCommand, pingDaemon } from './daemon-client'; -import { readLine, writeLine } from './socket-line'; +import { sendCommand, pingDaemon } from './daemon-client.js'; +import { readLine, writeLine } from './socket-line.js'; jest.mock('node:net'); jest.mock('./socket-line'); diff --git a/packages/wallet-cli/src/daemon/daemon-client.ts b/packages/wallet-cli/src/daemon/daemon-client.ts index f28e3de99b0..a0017b8a875 100644 --- a/packages/wallet-cli/src/daemon/daemon-client.ts +++ b/packages/wallet-cli/src/daemon/daemon-client.ts @@ -4,8 +4,8 @@ import { randomUUID } from 'node:crypto'; import { createConnection } from 'node:net'; import type { Socket } from 'node:net'; -import { readLine, writeLine } from './socket-line'; -import { isErrorWithCode } from './utils'; +import { readLine, writeLine } from './socket-line.js'; +import { isErrorWithCode } from './utils.js'; const DEFAULT_TIMEOUT_MS = 30_000; diff --git a/packages/wallet-cli/src/daemon/daemon-entry.test.ts b/packages/wallet-cli/src/daemon/daemon-entry.test.ts index a5e3d4224cc..7b86456bc2d 100644 --- a/packages/wallet-cli/src/daemon/daemon-entry.test.ts +++ b/packages/wallet-cli/src/daemon/daemon-entry.test.ts @@ -1,13 +1,13 @@ import { validate } from '@metamask/superstruct'; import { appendFile, readFile, rm, writeFile } from 'node:fs/promises'; -import { pingDaemon } from './daemon-client'; -import { ensureOwnerOnlyDirectory } from './data-dir'; -import { getDaemonPaths } from './paths'; -import { startRpcSocketServer } from './rpc-socket-server'; -import type { RpcSocketServerHandle } from './rpc-socket-server'; -import { isProcessAlive } from './utils'; -import { createWallet } from './wallet-factory'; +import { pingDaemon } from './daemon-client.js'; +import { ensureOwnerOnlyDirectory } from './data-dir.js'; +import { getDaemonPaths } from './paths.js'; +import { startRpcSocketServer } from './rpc-socket-server.js'; +import type { RpcSocketServerHandle } from './rpc-socket-server.js'; +import { isProcessAlive } from './utils.js'; +import { createWallet } from './wallet-factory.js'; jest.mock('node:fs/promises'); jest.mock('./data-dir'); @@ -126,7 +126,7 @@ describe('daemon-entry', () => { */ async function importDaemonEntry(): Promise { await jest.isolateModulesAsync(async () => { - await import('./daemon-entry'); + await import('./daemon-entry.js'); for (let i = 0; i < 10; i++) { await new Promise((resolve) => process.nextTick(resolve)); } diff --git a/packages/wallet-cli/src/daemon/daemon-entry.ts b/packages/wallet-cli/src/daemon/daemon-entry.ts index 39095f07aea..6d905d511fc 100644 --- a/packages/wallet-cli/src/daemon/daemon-entry.ts +++ b/packages/wallet-cli/src/daemon/daemon-entry.ts @@ -3,21 +3,21 @@ import type { Json } from '@metamask/utils'; import type { Wallet } from '@metamask/wallet'; import { appendFile, readFile, rm, writeFile } from 'node:fs/promises'; -import { pingDaemon } from './daemon-client'; -import { ensureOwnerOnlyDirectory } from './data-dir'; -import { getDaemonPaths } from './paths'; -import { startRpcSocketServer } from './rpc-socket-server'; -import type { RpcSocketServerHandle } from './rpc-socket-server'; -import { Password, Srp } from './secrets'; -import { defineHandler } from './types'; +import { pingDaemon } from './daemon-client.js'; +import { ensureOwnerOnlyDirectory } from './data-dir.js'; +import { getDaemonPaths } from './paths.js'; +import { startRpcSocketServer } from './rpc-socket-server.js'; +import type { RpcSocketServerHandle } from './rpc-socket-server.js'; +import { Password, Srp } from './secrets.js'; +import { defineHandler } from './types.js'; import type { DaemonStatusInfo, Logger, RpcDispatcher, RpcHandlerMap, -} from './types'; -import { isErrorWithCode, isProcessAlive, readPidFile } from './utils'; -import { createWallet } from './wallet-factory'; +} from './types.js'; +import { isErrorWithCode, isProcessAlive, readPidFile } from './utils.js'; +import { createWallet } from './wallet-factory.js'; /** * Params struct for the `call` RPC method. `params` must be a non-empty array diff --git a/packages/wallet-cli/src/daemon/daemon-spawn.test.ts b/packages/wallet-cli/src/daemon/daemon-spawn.test.ts index 5848e8a2986..3ee81851578 100644 --- a/packages/wallet-cli/src/daemon/daemon-spawn.test.ts +++ b/packages/wallet-cli/src/daemon/daemon-spawn.test.ts @@ -2,12 +2,12 @@ import { spawn } from 'node:child_process'; import type { ChildProcess } from 'node:child_process'; import { closeSync, existsSync, openSync } from 'node:fs'; -import { pingDaemon } from './daemon-client'; -import { ensureDaemon } from './daemon-spawn'; -import { ensureOwnerOnlyDirectory } from './data-dir'; -import { getDaemonPaths } from './paths'; -import { Password, Srp } from './secrets'; -import type { DaemonSpawnConfig } from './types'; +import { pingDaemon } from './daemon-client.js'; +import { ensureDaemon } from './daemon-spawn.js'; +import { ensureOwnerOnlyDirectory } from './data-dir.js'; +import { getDaemonPaths } from './paths.js'; +import { Password, Srp } from './secrets.js'; +import type { DaemonSpawnConfig } from './types.js'; jest.mock('node:child_process'); jest.mock('node:fs'); diff --git a/packages/wallet-cli/src/daemon/daemon-spawn.ts b/packages/wallet-cli/src/daemon/daemon-spawn.ts index e7a5b605313..b2bca342888 100644 --- a/packages/wallet-cli/src/daemon/daemon-spawn.ts +++ b/packages/wallet-cli/src/daemon/daemon-spawn.ts @@ -2,10 +2,10 @@ import { spawn } from 'node:child_process'; import { closeSync, existsSync, openSync } from 'node:fs'; import { join } from 'node:path'; -import { pingDaemon } from './daemon-client'; -import { ensureOwnerOnlyDirectory } from './data-dir'; -import { getDaemonPaths } from './paths'; -import type { DaemonSpawnConfig } from './types'; +import { pingDaemon } from './daemon-client.js'; +import { ensureOwnerOnlyDirectory } from './data-dir.js'; +import { getDaemonPaths } from './paths.js'; +import type { DaemonSpawnConfig } from './types.js'; const POLL_INTERVAL_MS = 100; const MAX_POLLS = 300; // 30 seconds diff --git a/packages/wallet-cli/src/daemon/data-dir.test.ts b/packages/wallet-cli/src/daemon/data-dir.test.ts index 1203a9d3948..42b7ba92657 100644 --- a/packages/wallet-cli/src/daemon/data-dir.test.ts +++ b/packages/wallet-cli/src/daemon/data-dir.test.ts @@ -1,7 +1,7 @@ import { mkdirSync } from 'node:fs'; import { chmod } from 'node:fs/promises'; -import { ensureOwnerOnlyDirectory } from './data-dir'; +import { ensureOwnerOnlyDirectory } from './data-dir.js'; jest.mock('node:fs'); jest.mock('node:fs/promises'); diff --git a/packages/wallet-cli/src/daemon/paths.test.ts b/packages/wallet-cli/src/daemon/paths.test.ts index ca127020309..964b95c7f0f 100644 --- a/packages/wallet-cli/src/daemon/paths.test.ts +++ b/packages/wallet-cli/src/daemon/paths.test.ts @@ -1,6 +1,6 @@ import { join } from 'node:path'; -import { getDaemonPaths } from './paths'; +import { getDaemonPaths } from './paths.js'; describe('getDaemonPaths', () => { it('returns correct paths for the given data directory', () => { diff --git a/packages/wallet-cli/src/daemon/paths.ts b/packages/wallet-cli/src/daemon/paths.ts index 398b5b30dfb..2d0df229d96 100644 --- a/packages/wallet-cli/src/daemon/paths.ts +++ b/packages/wallet-cli/src/daemon/paths.ts @@ -1,6 +1,6 @@ import { join } from 'node:path'; -import type { DaemonPaths } from './types'; +import type { DaemonPaths } from './types.js'; /** * Resolve paths for daemon state files within the given data directory. diff --git a/packages/wallet-cli/src/daemon/prompts.test.ts b/packages/wallet-cli/src/daemon/prompts.test.ts index b5671a0aae8..c113060cb9c 100644 --- a/packages/wallet-cli/src/daemon/prompts.test.ts +++ b/packages/wallet-cli/src/daemon/prompts.test.ts @@ -23,7 +23,7 @@ describe('confirmPurge', () => { const confirm = (await import('@inquirer/confirm')) .default as unknown as ConfirmMock; confirm.mockResolvedValue(true); - const { confirmPurge } = await import('./prompts'); + const { confirmPurge } = await import('./prompts.js'); const result = await confirmPurge(); @@ -38,7 +38,7 @@ describe('confirmPurge', () => { const confirm = (await import('@inquirer/confirm')) .default as unknown as ConfirmMock; confirm.mockResolvedValue(false); - const { confirmPurge } = await import('./prompts'); + const { confirmPurge } = await import('./prompts.js'); expect(await confirmPurge()).toBe(false); }); @@ -49,7 +49,7 @@ describe('promptPassword', () => { const password = (await import('@inquirer/password')) .default as unknown as PasswordMock; password.mockResolvedValue('hunter2'); - const { promptPassword } = await import('./prompts'); + const { promptPassword } = await import('./prompts.js'); const result = await promptPassword(); diff --git a/packages/wallet-cli/src/daemon/rpc-socket-server.test.ts b/packages/wallet-cli/src/daemon/rpc-socket-server.test.ts index aeea4e8d236..336d837138a 100644 --- a/packages/wallet-cli/src/daemon/rpc-socket-server.test.ts +++ b/packages/wallet-cli/src/daemon/rpc-socket-server.test.ts @@ -4,8 +4,8 @@ import { chmod, unlink } from 'node:fs/promises'; import { createServer } from 'node:net'; import type { Server, Socket } from 'node:net'; -import { startRpcSocketServer } from './rpc-socket-server'; -import type { RpcHandlerDefinition, RpcHandlerMap } from './types'; +import { startRpcSocketServer } from './rpc-socket-server.js'; +import type { RpcHandlerDefinition, RpcHandlerMap } from './types.js'; // any() paramsStruct so the struct guard never rejects test inputs. function asHandler(run: jest.Mock): RpcHandlerDefinition { diff --git a/packages/wallet-cli/src/daemon/rpc-socket-server.ts b/packages/wallet-cli/src/daemon/rpc-socket-server.ts index a221235e150..096c4d6656c 100644 --- a/packages/wallet-cli/src/daemon/rpc-socket-server.ts +++ b/packages/wallet-cli/src/daemon/rpc-socket-server.ts @@ -10,8 +10,8 @@ import { chmod, unlink } from 'node:fs/promises'; import { createServer } from 'node:net'; import type { Server } from 'node:net'; -import type { RpcHandlerMap } from './types'; -import { isErrorWithCode } from './utils'; +import type { RpcHandlerMap } from './types.js'; +import { isErrorWithCode } from './utils.js'; const CONNECTION_TIMEOUT_MS = 30_000; diff --git a/packages/wallet-cli/src/daemon/secrets.test.ts b/packages/wallet-cli/src/daemon/secrets.test.ts index b54ea515aa2..cd8e0f29ea6 100644 --- a/packages/wallet-cli/src/daemon/secrets.test.ts +++ b/packages/wallet-cli/src/daemon/secrets.test.ts @@ -1,6 +1,6 @@ import { inspect } from 'node:util'; -import { Password, Srp } from './secrets'; +import { Password, Srp } from './secrets.js'; const VALID_SRP_12 = 'abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about'; @@ -67,8 +67,7 @@ describe('Password', () => { }); it('redacts under template-literal interpolation', () => { - // eslint-disable-next-line @typescript-eslint/restrict-template-expressions -- We are intentionally exercising the redacting toString(). - const message = `password is ${password}`; + const message = `password is ${String(password)}`; expect(message).toBe('password is [redacted]'); expect(message).not.toContain(SECRET); }); @@ -162,8 +161,7 @@ describe('Srp', () => { }); it('redacts under template-literal interpolation', () => { - // eslint-disable-next-line @typescript-eslint/restrict-template-expressions -- We are intentionally exercising the redacting toString(). - const message = `srp is ${srp}`; + const message = `srp is ${String(srp)}`; expect(message).toBe('srp is [redacted]'); expect(message).not.toContain('ball'); }); diff --git a/packages/wallet-cli/src/daemon/socket-line.test.ts b/packages/wallet-cli/src/daemon/socket-line.test.ts index acb02e4a234..4de790aa08a 100644 --- a/packages/wallet-cli/src/daemon/socket-line.test.ts +++ b/packages/wallet-cli/src/daemon/socket-line.test.ts @@ -1,7 +1,7 @@ import { EventEmitter } from 'node:events'; import type { Socket } from 'node:net'; -import { readLine, writeLine } from './socket-line'; +import { readLine, writeLine } from './socket-line.js'; /** * Create a mock Socket backed by EventEmitter. diff --git a/packages/wallet-cli/src/daemon/socket.integration.test.ts b/packages/wallet-cli/src/daemon/socket.integration.test.ts index 98c619f2ded..b41ca964075 100644 --- a/packages/wallet-cli/src/daemon/socket.integration.test.ts +++ b/packages/wallet-cli/src/daemon/socket.integration.test.ts @@ -4,10 +4,10 @@ import { createConnection } from 'node:net'; import { tmpdir } from 'node:os'; import { join } from 'node:path'; -import { pingDaemon, sendCommand } from './daemon-client'; -import { startRpcSocketServer } from './rpc-socket-server'; -import type { RpcSocketServerHandle } from './rpc-socket-server'; -import type { RpcHandlerDefinition } from './types'; +import { pingDaemon, sendCommand } from './daemon-client.js'; +import { startRpcSocketServer } from './rpc-socket-server.js'; +import type { RpcSocketServerHandle } from './rpc-socket-server.js'; +import type { RpcHandlerDefinition } from './types.js'; // any() paramsStruct so integration test inputs are never rejected by the struct guard. function handlerDefinition( diff --git a/packages/wallet-cli/src/daemon/stop-daemon.test.ts b/packages/wallet-cli/src/daemon/stop-daemon.test.ts index daaa96cd5cf..eca1b88ebfd 100644 --- a/packages/wallet-cli/src/daemon/stop-daemon.test.ts +++ b/packages/wallet-cli/src/daemon/stop-daemon.test.ts @@ -1,8 +1,8 @@ import { rm } from 'node:fs/promises'; -import { pingDaemon, sendCommand } from './daemon-client'; -import { stopDaemon } from './stop-daemon'; -import { isProcessAlive, readPidFile, sendSignal, waitFor } from './utils'; +import { pingDaemon, sendCommand } from './daemon-client.js'; +import { stopDaemon } from './stop-daemon.js'; +import { isProcessAlive, readPidFile, sendSignal, waitFor } from './utils.js'; jest.mock('node:fs/promises'); jest.mock('./daemon-client'); diff --git a/packages/wallet-cli/src/daemon/stop-daemon.ts b/packages/wallet-cli/src/daemon/stop-daemon.ts index 3ffcdde8392..fac200e7a24 100644 --- a/packages/wallet-cli/src/daemon/stop-daemon.ts +++ b/packages/wallet-cli/src/daemon/stop-daemon.ts @@ -1,7 +1,7 @@ import { rm } from 'node:fs/promises'; -import { pingDaemon, sendCommand } from './daemon-client'; -import { isProcessAlive, readPidFile, sendSignal, waitFor } from './utils'; +import { pingDaemon, sendCommand } from './daemon-client.js'; +import { isProcessAlive, readPidFile, sendSignal, waitFor } from './utils.js'; /** * Stop the daemon, preferring a graceful shutdown. diff --git a/packages/wallet-cli/src/daemon/types.ts b/packages/wallet-cli/src/daemon/types.ts index fdf251faa3d..04fce071db1 100644 --- a/packages/wallet-cli/src/daemon/types.ts +++ b/packages/wallet-cli/src/daemon/types.ts @@ -1,7 +1,7 @@ import type { Struct } from '@metamask/superstruct'; import type { Json } from '@metamask/utils'; -import type { Password, Srp } from './secrets'; +import type { Password, Srp } from './secrets.js'; /** * Sink for daemon diagnostic messages. A backgrounded daemon's stdio may be diff --git a/packages/wallet-cli/src/daemon/utils.test.ts b/packages/wallet-cli/src/daemon/utils.test.ts index 167f35ae95d..73ab6e429fe 100644 --- a/packages/wallet-cli/src/daemon/utils.test.ts +++ b/packages/wallet-cli/src/daemon/utils.test.ts @@ -10,7 +10,7 @@ import { readPidFile, sendSignal, waitFor, -} from './utils'; +} from './utils.js'; jest.mock('node:fs/promises'); diff --git a/packages/wallet-cli/src/daemon/wallet-factory.integration.test.ts b/packages/wallet-cli/src/daemon/wallet-factory.integration.test.ts index e5e6624fef0..6223dc66268 100644 --- a/packages/wallet-cli/src/daemon/wallet-factory.integration.test.ts +++ b/packages/wallet-cli/src/daemon/wallet-factory.integration.test.ts @@ -2,8 +2,8 @@ import { rmSync } from 'node:fs'; import { tmpdir } from 'node:os'; import { join } from 'node:path'; -import { Password, Srp } from './secrets'; -import { createWallet } from './wallet-factory'; +import { Password, Srp } from './secrets.js'; +import { createWallet } from './wallet-factory.js'; /** * Real-Wallet integration tests for `createWallet`. Every other suite in this diff --git a/packages/wallet-cli/src/daemon/wallet-factory.test.ts b/packages/wallet-cli/src/daemon/wallet-factory.test.ts index 26d58695569..de29cebdd7c 100644 --- a/packages/wallet-cli/src/daemon/wallet-factory.test.ts +++ b/packages/wallet-cli/src/daemon/wallet-factory.test.ts @@ -10,10 +10,10 @@ import { rm } from 'node:fs/promises'; import { tmpdir } from 'node:os'; import { join } from 'node:path'; -import { KeyValueStore } from '../persistence/KeyValueStore'; -import * as persistenceModule from '../persistence/persistence'; -import { Password, Srp } from './secrets'; -import { createWallet } from './wallet-factory'; +import { KeyValueStore } from '../persistence/KeyValueStore.js'; +import * as persistenceModule from '../persistence/persistence.js'; +import { Password, Srp } from './secrets.js'; +import { createWallet } from './wallet-factory.js'; jest.mock('@metamask/wallet'); jest.mock('@metamask/remote-feature-flag-controller'); diff --git a/packages/wallet-cli/src/daemon/wallet-factory.ts b/packages/wallet-cli/src/daemon/wallet-factory.ts index 6ecf2bbe29c..f281c74f230 100644 --- a/packages/wallet-cli/src/daemon/wallet-factory.ts +++ b/packages/wallet-cli/src/daemon/wallet-factory.ts @@ -14,10 +14,10 @@ import { import type { WalletOptions } from '@metamask/wallet'; import { rm } from 'node:fs/promises'; -import { KeyValueStore } from '../persistence/KeyValueStore'; -import { loadState, subscribeToChanges } from '../persistence/persistence'; -import type { Password, Srp } from './secrets'; -import type { Logger } from './types'; +import { KeyValueStore } from '../persistence/KeyValueStore.js'; +import { loadState, subscribeToChanges } from '../persistence/persistence.js'; +import type { Password, Srp } from './secrets.js'; +import type { Logger } from './types.js'; const IN_MEMORY_DATABASE_PATH = ':memory:'; diff --git a/packages/wallet-cli/src/persistence/KeyValueStore.test.ts b/packages/wallet-cli/src/persistence/KeyValueStore.test.ts index f7c3ad6445d..dcb1f26ee57 100644 --- a/packages/wallet-cli/src/persistence/KeyValueStore.test.ts +++ b/packages/wallet-cli/src/persistence/KeyValueStore.test.ts @@ -4,7 +4,7 @@ import { unlink } from 'fs/promises'; import os from 'os'; import path from 'path'; -import { KeyValueStore } from './KeyValueStore'; +import { KeyValueStore } from './KeyValueStore.js'; describe('KeyValueStore', () => { let store: KeyValueStore; diff --git a/packages/wallet-cli/src/persistence/persistence.test.ts b/packages/wallet-cli/src/persistence/persistence.test.ts index 7d26e5520cf..36c9966a95d 100644 --- a/packages/wallet-cli/src/persistence/persistence.test.ts +++ b/packages/wallet-cli/src/persistence/persistence.test.ts @@ -6,8 +6,8 @@ import type { RootMessenger, } from '@metamask/wallet'; -import { KeyValueStore } from './KeyValueStore'; -import { loadState, subscribeToChanges } from './persistence'; +import { KeyValueStore } from './KeyValueStore.js'; +import { loadState, subscribeToChanges } from './persistence.js'; type TestMessenger = RootMessenger; diff --git a/packages/wallet-cli/src/persistence/persistence.ts b/packages/wallet-cli/src/persistence/persistence.ts index cf3c07bf4f7..bd7278bcc2f 100644 --- a/packages/wallet-cli/src/persistence/persistence.ts +++ b/packages/wallet-cli/src/persistence/persistence.ts @@ -8,7 +8,7 @@ import type { } from '@metamask/wallet'; import type { Patch } from 'immer'; -import type { KeyValueStore } from './KeyValueStore'; +import type { KeyValueStore } from './KeyValueStore.js'; /** * Handler for a controller's `stateChanged` event: the new controller state and From e0f3e7883b02a9ce565fd3ec8b3efbbdcf8eff02 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:53:19 +0200 Subject: [PATCH 125/136] ESLint fix and `jest` global import for bitcoin-regtest-up --- packages/bitcoin-regtest-up/src/bin/bitcoin-regtest-up.ts | 2 +- packages/bitcoin-regtest-up/src/index.ts | 4 ++-- packages/bitcoin-regtest-up/src/install.test.ts | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/bitcoin-regtest-up/src/bin/bitcoin-regtest-up.ts b/packages/bitcoin-regtest-up/src/bin/bitcoin-regtest-up.ts index c9cd9985b98..029995a4bbb 100644 --- a/packages/bitcoin-regtest-up/src/bin/bitcoin-regtest-up.ts +++ b/packages/bitcoin-regtest-up/src/bin/bitcoin-regtest-up.ts @@ -5,7 +5,7 @@ import { installBitcoinRegtest, parseBitcoinRegtestInstallCliOptions, readBitcoinRegtestInstallOptionsFromPackageJson, -} from '../install'; +} from '../install.js'; async function main(): Promise { const [command, ...args] = process.argv.slice(2); diff --git a/packages/bitcoin-regtest-up/src/index.ts b/packages/bitcoin-regtest-up/src/index.ts index 7e36171c69b..fe800015793 100644 --- a/packages/bitcoin-regtest-up/src/index.ts +++ b/packages/bitcoin-regtest-up/src/index.ts @@ -5,11 +5,11 @@ export { installBitcoinRegtest, parseBitcoinRegtestInstallCliOptions, readBitcoinRegtestInstallOptionsFromPackageJson, -} from './install'; +} from './install.js'; export type { BitcoinRegtestArtifactConfig, BitcoinRegtestArtifactPlatformConfig, BitcoinRegtestInstallDependencies, BitcoinRegtestInstallOptions, BitcoinRegtestInstallResult, -} from './install'; +} from './install.js'; diff --git a/packages/bitcoin-regtest-up/src/install.test.ts b/packages/bitcoin-regtest-up/src/install.test.ts index 9481f528cf2..f543af50195 100644 --- a/packages/bitcoin-regtest-up/src/install.test.ts +++ b/packages/bitcoin-regtest-up/src/install.test.ts @@ -23,8 +23,8 @@ import { installBitcoinRegtest, parseBitcoinRegtestInstallCliOptions, readBitcoinRegtestInstallOptionsFromPackageJson, -} from './install'; -import type { BitcoinRegtestInstallDependencies } from './install'; +} from './install.js'; +import type { BitcoinRegtestInstallDependencies } from './install.js'; describe('bitcoin-regtest-up installer', () => { let tempDirs: string[] = []; From 7f6ab79360bc6c260267f5e78b882ffd6d083a8a Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:53:19 +0200 Subject: [PATCH 126/136] ESLint fix and `jest` global import for foundryup --- packages/foundryup/src/cli.ts | 2 +- packages/foundryup/src/download.ts | 2 +- packages/foundryup/src/extract.ts | 8 ++++---- packages/foundryup/src/foundryup.test.ts | 10 +++++----- packages/foundryup/src/index.ts | 10 +++++----- packages/foundryup/src/options.ts | 6 +++--- packages/foundryup/src/utils.ts | 6 +++--- 7 files changed, 22 insertions(+), 22 deletions(-) diff --git a/packages/foundryup/src/cli.ts b/packages/foundryup/src/cli.ts index 2fab6c50585..39ea8c28750 100644 --- a/packages/foundryup/src/cli.ts +++ b/packages/foundryup/src/cli.ts @@ -6,7 +6,7 @@ * This script downloads and installs Foundry binaries. * If an error occurs, it logs the error and exits with code 1. */ -import { downloadAndInstallFoundryBinaries } from '.'; +import { downloadAndInstallFoundryBinaries } from './index.js'; /** * Run the main installation process and handle errors. diff --git a/packages/foundryup/src/download.ts b/packages/foundryup/src/download.ts index 3958694702d..d9dac1e9cbc 100644 --- a/packages/foundryup/src/download.ts +++ b/packages/foundryup/src/download.ts @@ -4,7 +4,7 @@ import { request as httpsRequest } from 'node:https'; import { Stream } from 'node:stream'; import { pipeline } from 'node:stream/promises'; -import type { DownloadOptions } from './types'; +import type { DownloadOptions } from './types.js'; /** * A PassThrough stream that emits a 'response' event when the HTTP(S) response is available. diff --git a/packages/foundryup/src/extract.ts b/packages/foundryup/src/extract.ts index 3cb213d9d97..82248a4aac8 100644 --- a/packages/foundryup/src/extract.ts +++ b/packages/foundryup/src/extract.ts @@ -11,10 +11,10 @@ import { extract as extractTar } from 'tar'; import { Open } from 'unzipper'; import type { Source, Entry } from 'unzipper'; -import { startDownload } from './download'; -import { Extension } from './types'; -import type { Binary } from './types'; -import { say } from './utils'; +import { startDownload } from './download.js'; +import { Extension } from './types.js'; +import type { Binary } from './types.js'; +import { say } from './utils.js'; /** * Extracts the binaries from the given URL and writes them to the destination. diff --git a/packages/foundryup/src/foundryup.test.ts b/packages/foundryup/src/foundryup.test.ts index da3268a3dfa..75a0b5d26d2 100644 --- a/packages/foundryup/src/foundryup.test.ts +++ b/packages/foundryup/src/foundryup.test.ts @@ -9,11 +9,11 @@ import { checkAndDownloadBinaries, getBinaryArchiveUrl, getCacheDirectory, -} from '.'; -import { parseArgs } from './options'; -import type { Binary, Checksums } from './types'; -import { Architecture, Platform } from './types'; -import { isCodedError } from './utils'; +} from './..js'; +import { parseArgs } from './options.js'; +import type { Binary, Checksums } from './types.js'; +import { Architecture, Platform } from './types.js'; +import { isCodedError } from './utils.js'; type OperationDetails = { path?: string; diff --git a/packages/foundryup/src/index.ts b/packages/foundryup/src/index.ts index 309c759275a..b483a61987e 100755 --- a/packages/foundryup/src/index.ts +++ b/packages/foundryup/src/index.ts @@ -16,17 +16,17 @@ import { dirname, join, relative } from 'node:path'; import { cwd, exit } from 'node:process'; import { parse as parseYaml } from 'yaml'; -import { extractFrom } from './extract'; -import { parseArgs, printBanner } from './options'; -import type { Checksums, Architecture, Binary } from './types'; -import { Extension, Platform } from './types'; +import { extractFrom } from './extract.js'; +import { parseArgs, printBanner } from './options.js'; +import type { Checksums, Architecture, Binary } from './types.js'; +import { Extension, Platform } from './types.js'; import { getVersion, isCodedError, noop, say, transformChecksums, -} from './utils'; +} from './utils.js'; /** * Determines the cache directory based on the .yarnrc.yml configuration. diff --git a/packages/foundryup/src/options.ts b/packages/foundryup/src/options.ts index a0666b89edc..97a95fd3816 100644 --- a/packages/foundryup/src/options.ts +++ b/packages/foundryup/src/options.ts @@ -2,15 +2,15 @@ import { platform } from 'node:os'; import { argv, stdout } from 'node:process'; import yargs from 'yargs/yargs'; -import { Architecture, Binary, Platform } from './types'; +import { Architecture, Binary, Platform } from './types.js'; import type { Checksums, ParsedOptions, ArchitecturesTuple, BinariesTuple, PlatformsTuple, -} from './types'; -import { normalizeSystemArchitecture } from './utils'; +} from './types.js'; +import { normalizeSystemArchitecture } from './utils.js'; /** * Type guard to check if a string is a valid version string starting with 'v'. diff --git a/packages/foundryup/src/utils.ts b/packages/foundryup/src/utils.ts index 1b9c33092c6..6cdbb1f14dc 100644 --- a/packages/foundryup/src/utils.ts +++ b/packages/foundryup/src/utils.ts @@ -1,13 +1,13 @@ import { execFileSync, execSync } from 'node:child_process'; import { arch } from 'node:os'; -import { Architecture } from './types'; +import { Architecture } from './types.js'; import type { Checksums, PlatformArchChecksums, Binary, Platform, -} from './types'; +} from './types.js'; /** * No Operation. A function that does nothing and returns nothing. @@ -114,7 +114,7 @@ export function transformChecksums( const key = `${targetPlatform}-${targetArch}` as const; return { algorithm: checksums.algorithm, - binaries: Object.entries(checksums.binaries).reduce( + binaries: Object.entries(checksums.binaries).reduce>( (acc, [name, record]) => { acc[name as Binary] = record[key]; return acc; From 856c1ca65b74d43e1017be52bfd95aa070dc4928 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:53:23 +0200 Subject: [PATCH 127/136] ESLint fix and `jest` global import for java-tron-up --- packages/java-tron-up/src/bin/java-tron-up.ts | 2 +- packages/java-tron-up/src/index.ts | 4 ++-- packages/java-tron-up/src/install.test.ts | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/java-tron-up/src/bin/java-tron-up.ts b/packages/java-tron-up/src/bin/java-tron-up.ts index a32b97bc7fe..5f73d89d154 100644 --- a/packages/java-tron-up/src/bin/java-tron-up.ts +++ b/packages/java-tron-up/src/bin/java-tron-up.ts @@ -5,7 +5,7 @@ import { installJavaTron, parseJavaTronInstallCliOptions, readJavaTronInstallOptionsFromPackageJson, -} from '../install'; +} from '../install.js'; async function main(): Promise { const [command, ...args] = process.argv.slice(2); diff --git a/packages/java-tron-up/src/index.ts b/packages/java-tron-up/src/index.ts index 12992703cdd..cd1263803fc 100644 --- a/packages/java-tron-up/src/index.ts +++ b/packages/java-tron-up/src/index.ts @@ -7,7 +7,7 @@ export { installJavaTron, parseJavaTronInstallCliOptions, readJavaTronInstallOptionsFromPackageJson, -} from './install'; +} from './install.js'; export type { JavaTronArtifactConfig, JavaTronArtifactPlatformConfig, @@ -15,4 +15,4 @@ export type { JavaTronInstallOptions, JavaTronInstallResult, JavaTronJavaRuntimeConfig, -} from './install'; +} from './install.js'; diff --git a/packages/java-tron-up/src/install.test.ts b/packages/java-tron-up/src/install.test.ts index f593685a6dd..3a1c17394de 100644 --- a/packages/java-tron-up/src/install.test.ts +++ b/packages/java-tron-up/src/install.test.ts @@ -23,8 +23,8 @@ import { installJavaTron, parseJavaTronInstallCliOptions, readJavaTronInstallOptionsFromPackageJson, -} from './install'; -import type { JavaTronInstallDependencies } from './install'; +} from './install.js'; +import type { JavaTronInstallDependencies } from './install.js'; describe('java-tron-up installer', () => { let tempDirs: string[] = []; From 1b5d22792c90bb2f220a807916c0f49d829957b2 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:53:23 +0200 Subject: [PATCH 128/136] ESLint fix and `jest` global import for platform-api-docs --- packages/platform-api-docs/src/discovery.test.ts | 2 +- packages/platform-api-docs/src/extraction.test.ts | 7 +++++-- packages/platform-api-docs/src/extraction.ts | 5 ++++- packages/platform-api-docs/src/generate.test.ts | 2 +- packages/platform-api-docs/src/generate.ts | 11 +++++++---- packages/platform-api-docs/src/markdown.test.ts | 4 ++-- packages/platform-api-docs/src/markdown.ts | 2 +- 7 files changed, 21 insertions(+), 12 deletions(-) diff --git a/packages/platform-api-docs/src/discovery.test.ts b/packages/platform-api-docs/src/discovery.test.ts index 108d7bac009..0805d676459 100644 --- a/packages/platform-api-docs/src/discovery.test.ts +++ b/packages/platform-api-docs/src/discovery.test.ts @@ -2,7 +2,7 @@ import { createSandbox } from '@metamask/utils/node'; import * as fs from 'node:fs'; import * as path from 'node:path'; -import { findDtsFiles, findTsFiles } from './discovery'; +import { findDtsFiles, findTsFiles } from './discovery.js'; const { withinSandbox } = createSandbox('platform-api-docs/discovery'); diff --git a/packages/platform-api-docs/src/extraction.test.ts b/packages/platform-api-docs/src/extraction.test.ts index 3ac351469c9..cf601e45c5f 100644 --- a/packages/platform-api-docs/src/extraction.test.ts +++ b/packages/platform-api-docs/src/extraction.test.ts @@ -2,8 +2,11 @@ import { createSandbox } from '@metamask/utils/node'; import * as fs from 'node:fs'; import * as path from 'node:path'; -import { createExtractionProject, extractFromSourceFile } from './extraction'; -import { MessengerCapabilityPacket } from './types'; +import { + createExtractionProject, + extractFromSourceFile, +} from './extraction.js'; +import { MessengerCapabilityPacket } from './types.js'; const { withinSandbox } = createSandbox('platform-api-docs/extraction'); diff --git a/packages/platform-api-docs/src/extraction.ts b/packages/platform-api-docs/src/extraction.ts index b3cba35d73b..bb81f0c2bc3 100644 --- a/packages/platform-api-docs/src/extraction.ts +++ b/packages/platform-api-docs/src/extraction.ts @@ -15,7 +15,10 @@ import type { } from 'ts-morph'; import { Node as NodeGuards, Project, ts } from 'ts-morph'; -import type { MessengerCapabilityPacket, DocumentedParameter } from './types'; +import type { + MessengerCapabilityPacket, + DocumentedParameter, +} from './types.js'; // --------------------------------------------------------------------------- // NOTE: `ts-morph` is used heavily in this file to parse and extract diff --git a/packages/platform-api-docs/src/generate.test.ts b/packages/platform-api-docs/src/generate.test.ts index 6d7dafe69d2..bfc823e558c 100644 --- a/packages/platform-api-docs/src/generate.test.ts +++ b/packages/platform-api-docs/src/generate.test.ts @@ -3,7 +3,7 @@ import execa from 'execa'; import * as fs from 'node:fs'; import * as path from 'node:path'; -import { generate, resolveRepoUrl } from './generate'; +import { generate, resolveRepoUrl } from './generate.js'; const { withinSandbox } = createSandbox('platform-api-docs/generate'); diff --git a/packages/platform-api-docs/src/generate.ts b/packages/platform-api-docs/src/generate.ts index 0e41f3e2082..11d336c59dd 100644 --- a/packages/platform-api-docs/src/generate.ts +++ b/packages/platform-api-docs/src/generate.ts @@ -5,14 +5,17 @@ import * as path from 'node:path'; import { promisify } from 'node:util'; import type { Project } from 'ts-morph'; -import { findDtsFiles, findTsFiles } from './discovery'; -import { createExtractionProject, extractFromSourceFile } from './extraction'; +import { findDtsFiles, findTsFiles } from './discovery.js'; +import { + createExtractionProject, + extractFromSourceFile, +} from './extraction.js'; import { generateIndexPage, generateNamespacePage, generateSidebars, -} from './markdown'; -import type { MessengerCapabilityPacket, NamespaceGroup } from './types'; +} from './markdown.js'; +import type { MessengerCapabilityPacket, NamespaceGroup } from './types.js'; /** * Compute a deduplication score for a messenger item, preferring items with diff --git a/packages/platform-api-docs/src/markdown.test.ts b/packages/platform-api-docs/src/markdown.test.ts index 85dd841363a..6881424d49c 100644 --- a/packages/platform-api-docs/src/markdown.test.ts +++ b/packages/platform-api-docs/src/markdown.test.ts @@ -3,8 +3,8 @@ import { generateItemMarkdown, generateNamespacePage, generateSidebars, -} from './markdown'; -import type { MessengerCapabilityPacket, NamespaceGroup } from './types'; +} from './markdown.js'; +import type { MessengerCapabilityPacket, NamespaceGroup } from './types.js'; const makeItem = ( overrides: Partial = {}, diff --git a/packages/platform-api-docs/src/markdown.ts b/packages/platform-api-docs/src/markdown.ts index ff4ca208f2f..965bf2089c3 100644 --- a/packages/platform-api-docs/src/markdown.ts +++ b/packages/platform-api-docs/src/markdown.ts @@ -1,4 +1,4 @@ -import type { MessengerCapabilityPacket, NamespaceGroup } from './types'; +import type { MessengerCapabilityPacket, NamespaceGroup } from './types.js'; /** * Convert backtick-quoted action/event names in text into links when they From f068c888fdc75d058068bdab462922c35e03a7ef Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:53:27 +0200 Subject: [PATCH 129/136] ESLint fix and `jest` global import for solana-test-validator-up --- .../src/bin/solana-test-validator-up.ts | 2 +- packages/solana-test-validator-up/src/index.ts | 4 ++-- packages/solana-test-validator-up/src/install.test.ts | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/solana-test-validator-up/src/bin/solana-test-validator-up.ts b/packages/solana-test-validator-up/src/bin/solana-test-validator-up.ts index 77c33bc3d72..904f7820f75 100644 --- a/packages/solana-test-validator-up/src/bin/solana-test-validator-up.ts +++ b/packages/solana-test-validator-up/src/bin/solana-test-validator-up.ts @@ -5,7 +5,7 @@ import { installSolanaTestValidator, parseSolanaTestValidatorInstallCliOptions, readSolanaTestValidatorInstallOptionsFromPackageJson, -} from '../install'; +} from '../install.js'; async function main(): Promise { const [command, ...args] = process.argv.slice(2); diff --git a/packages/solana-test-validator-up/src/index.ts b/packages/solana-test-validator-up/src/index.ts index b1acf97cfc6..19dbbe96262 100644 --- a/packages/solana-test-validator-up/src/index.ts +++ b/packages/solana-test-validator-up/src/index.ts @@ -5,11 +5,11 @@ export { installSolanaTestValidator, parseSolanaTestValidatorInstallCliOptions, readSolanaTestValidatorInstallOptionsFromPackageJson, -} from './install'; +} from './install.js'; export type { SolanaTestValidatorArtifactConfig, SolanaTestValidatorArtifactPlatformConfig, SolanaTestValidatorInstallDependencies, SolanaTestValidatorInstallOptions, SolanaTestValidatorInstallResult, -} from './install'; +} from './install.js'; diff --git a/packages/solana-test-validator-up/src/install.test.ts b/packages/solana-test-validator-up/src/install.test.ts index f561c886580..ac8b29af723 100644 --- a/packages/solana-test-validator-up/src/install.test.ts +++ b/packages/solana-test-validator-up/src/install.test.ts @@ -23,8 +23,8 @@ import { installSolanaTestValidator, parseSolanaTestValidatorInstallCliOptions, readSolanaTestValidatorInstallOptionsFromPackageJson, -} from './install'; -import type { SolanaTestValidatorInstallDependencies } from './install'; +} from './install.js'; +import type { SolanaTestValidatorInstallDependencies } from './install.js'; describe('solana-test-validator-up installer', () => { let tempDirs: string[] = []; From e1fd5b3816b5021f70e35433788edfd2a167588d Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:53:28 +0200 Subject: [PATCH 130/136] ESLint fix and `jest` global import for stellar-quickstart-up --- packages/stellar-quickstart-up/src/index.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/stellar-quickstart-up/src/index.test.ts b/packages/stellar-quickstart-up/src/index.test.ts index bc062d3694a..8bcd573227d 100644 --- a/packages/stellar-quickstart-up/src/index.test.ts +++ b/packages/stellar-quickstart-up/src/index.test.ts @@ -1,4 +1,4 @@ -import greeter from '.'; +import greeter from './..js'; describe('Test', () => { it('greets', () => { From 468121fc35e8eb290edb42c82057456773332d51 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:54:00 +0200 Subject: [PATCH 131/136] ESLint fix and `jest` global import for create-package script --- scripts/create-package/cli.test.ts | 6 +++--- scripts/create-package/cli.ts | 2 +- scripts/create-package/commands.test.ts | 6 +++--- scripts/create-package/commands.ts | 4 ++-- scripts/create-package/fs-utils.test.ts | 2 +- scripts/create-package/index.test.ts | 4 ++-- scripts/create-package/index.ts | 4 ++-- scripts/create-package/utils.test.ts | 8 ++++---- scripts/create-package/utils.ts | 6 +++--- 9 files changed, 21 insertions(+), 21 deletions(-) diff --git a/scripts/create-package/cli.test.ts b/scripts/create-package/cli.test.ts index 330f9838ded..08e6cce80eb 100644 --- a/scripts/create-package/cli.test.ts +++ b/scripts/create-package/cli.test.ts @@ -1,6 +1,6 @@ -import cli from './cli'; -import { commands, commandMap } from './commands'; -import * as utils from './utils'; +import cli from './cli.js'; +import { commands, commandMap } from './commands.js'; +import * as utils from './utils.js'; jest.mock('./utils'); diff --git a/scripts/create-package/cli.ts b/scripts/create-package/cli.ts index e077ad9af0d..b8bb488d5fb 100644 --- a/scripts/create-package/cli.ts +++ b/scripts/create-package/cli.ts @@ -1,6 +1,6 @@ import yargs from 'yargs'; -import type { CommandModule } from './commands'; +import type { CommandModule } from './commands.js'; /** * The entry point of `create-package`, a yargs application for creating new diff --git a/scripts/create-package/commands.test.ts b/scripts/create-package/commands.test.ts index cb6889d834c..4e51bf7ec46 100644 --- a/scripts/create-package/commands.test.ts +++ b/scripts/create-package/commands.test.ts @@ -1,8 +1,8 @@ import type { Arguments } from 'yargs'; -import type { CreatePackageOptions } from './commands'; -import { createPackageHandler } from './commands'; -import * as utils from './utils'; +import type { CreatePackageOptions } from './commands.js'; +import { createPackageHandler } from './commands.js'; +import * as utils from './utils.js'; jest.mock('./utils', () => ({ finalizeAndWriteData: jest.fn(), diff --git a/scripts/create-package/commands.ts b/scripts/create-package/commands.ts index 662d369ca0d..3c64c38729d 100644 --- a/scripts/create-package/commands.ts +++ b/scripts/create-package/commands.ts @@ -4,8 +4,8 @@ import type { Arguments, } from 'yargs'; -import type { PackageData } from './utils'; -import { finalizeAndWriteData, readMonorepoFiles } from './utils'; +import type { PackageData } from './utils.js'; +import { finalizeAndWriteData, readMonorepoFiles } from './utils.js'; export type CreatePackageOptions = { name: string; diff --git a/scripts/create-package/fs-utils.test.ts b/scripts/create-package/fs-utils.test.ts index e65574a1f2b..436e8be40f0 100644 --- a/scripts/create-package/fs-utils.test.ts +++ b/scripts/create-package/fs-utils.test.ts @@ -2,7 +2,7 @@ import { createSandbox, writeFile, readFile } from '@metamask/utils/node'; import { promises as fs } from 'fs'; import path from 'path'; -import { readAllFiles, writeFiles } from './fs-utils'; +import { readAllFiles, writeFiles } from './fs-utils.js'; const { withinSandbox } = createSandbox('create-package/fs-utils'); diff --git a/scripts/create-package/index.test.ts b/scripts/create-package/index.test.ts index 3a6c6af7d27..39436aea78c 100644 --- a/scripts/create-package/index.test.ts +++ b/scripts/create-package/index.test.ts @@ -1,5 +1,5 @@ -import cli from './cli'; -import { commands } from './commands'; +import cli from './cli.js'; +import { commands } from './commands.js'; jest.mock('./cli'); diff --git a/scripts/create-package/index.ts b/scripts/create-package/index.ts index 55c35cab738..2fbd2be0206 100644 --- a/scripts/create-package/index.ts +++ b/scripts/create-package/index.ts @@ -2,8 +2,8 @@ * Entry point file for the `create-package` CLI. */ -import cli from './cli'; -import { commands } from './commands'; +import cli from './cli.js'; +import { commands } from './commands.js'; cli(process.argv, commands).catch((error) => { console.error(error); diff --git a/scripts/create-package/utils.test.ts b/scripts/create-package/utils.test.ts index ad8c264f046..c48b8a308b7 100644 --- a/scripts/create-package/utils.test.ts +++ b/scripts/create-package/utils.test.ts @@ -4,10 +4,10 @@ import fs from 'fs'; import path from 'path'; import { format } from 'prettier'; -import { MonorepoFiles } from './constants'; -import * as fsUtils from './fs-utils'; -import type { PackageData } from './utils'; -import { finalizeAndWriteData, readMonorepoFiles } from './utils'; +import { MonorepoFiles } from './constants.js'; +import * as fsUtils from './fs-utils.js'; +import type { PackageData } from './utils.js'; +import { finalizeAndWriteData, readMonorepoFiles } from './utils.js'; jest.mock('fs', () => ({ existsSync: jest.fn(), diff --git a/scripts/create-package/utils.ts b/scripts/create-package/utils.ts index e98e770fc5a..2f7f4410fc9 100644 --- a/scripts/create-package/utils.ts +++ b/scripts/create-package/utils.ts @@ -5,9 +5,9 @@ import path from 'path'; import { format as prettierFormat } from 'prettier'; import type { Options as PrettierOptions } from 'prettier'; -import { MonorepoFiles, Placeholders } from './constants'; -import type { FileMap } from './fs-utils'; -import { readAllFiles, writeFiles } from './fs-utils'; +import { MonorepoFiles, Placeholders } from './constants.js'; +import type { FileMap } from './fs-utils.js'; +import { readAllFiles, writeFiles } from './fs-utils.js'; const PACKAGE_TEMPLATE_DIR = path.join(import.meta.dirname, 'package-template'); const REPO_ROOT = path.join(import.meta.dirname, '..', '..'); From 748e116782709f72024b473f09c2c785bb44c7f4 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:54:00 +0200 Subject: [PATCH 132/136] Fix .js import extensions and `isomorphic-fetch` hoisting in shared test infrastructure --- tests/mock-network.ts | 4 ++-- tests/setup.ts | 2 +- tests/setupAfterEnv/index.ts | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/mock-network.ts b/tests/mock-network.ts index 2d0f32b9110..2479ff98a1b 100644 --- a/tests/mock-network.ts +++ b/tests/mock-network.ts @@ -1,8 +1,8 @@ import type { JsonRpcRequest, JsonRpcResponse } from '@metamask/utils'; import nock from 'nock'; -import type { NetworkClientConfiguration } from '../packages/network-controller/src/types'; -import { NetworkClientType } from '../packages/network-controller/src/types'; +import type { NetworkClientConfiguration } from '../packages/network-controller/src/types.js'; +import { NetworkClientType } from '../packages/network-controller/src/types.js'; /** * An object which instructs the MockedNetwork class which JSON-RPC request diff --git a/tests/setup.ts b/tests/setup.ts index b7953a291e6..85a8f7da9d7 100644 --- a/tests/setup.ts +++ b/tests/setup.ts @@ -9,5 +9,5 @@ delete globalThis.Request; // @ts-expect-error - Clear Response to ensure isomorphic-fetch sets up node-fetch version delete globalThis.Response; // Dynamic import so this runs *after* the deletes above (static imports are hoisted in ESM). -// eslint-disable-next-line import-x/no-unassigned-import + await import('isomorphic-fetch'); diff --git a/tests/setupAfterEnv/index.ts b/tests/setupAfterEnv/index.ts index b92d66804c4..04ea22faa6f 100644 --- a/tests/setupAfterEnv/index.ts +++ b/tests/setupAfterEnv/index.ts @@ -1,5 +1,5 @@ // These imports are for side effects only. /* eslint-disable import-x/no-unassigned-import */ -import './matchers'; -import './nock'; +import './matchers.js'; +import './nock.js'; /* eslint-enable import-x/no-unassigned-import */ From d57ed281f66db800aaf8207b89fb9cd8d7330f4c Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 20:54:14 +0200 Subject: [PATCH 133/136] Remove resolved suppressions from eslint-suppressions.json --- eslint-suppressions.json | 27 ++------------------------- 1 file changed, 2 insertions(+), 25 deletions(-) diff --git a/eslint-suppressions.json b/eslint-suppressions.json index 79caefd17d3..2114eb69d07 100644 --- a/eslint-suppressions.json +++ b/eslint-suppressions.json @@ -14,9 +14,6 @@ "@typescript-eslint/explicit-function-return-type": { "count": 7 }, - "@typescript-eslint/prefer-nullish-coalescing": { - "count": 1 - }, "no-negated-condition": { "count": 3 }, @@ -251,9 +248,6 @@ "packages/assets-controllers/src/DeFiPositionsController/DeFiPositionsController.ts": { "@typescript-eslint/explicit-function-return-type": { "count": 2 - }, - "@typescript-eslint/no-misused-promises": { - "count": 2 } }, "packages/assets-controllers/src/DeFiPositionsController/group-defi-positions.ts": { @@ -289,9 +283,6 @@ } }, "packages/assets-controllers/src/MultichainBalancesController/MultichainBalancesController.ts": { - "@typescript-eslint/no-misused-promises": { - "count": 1 - }, "no-restricted-syntax": { "count": 2 } @@ -311,9 +302,6 @@ "@typescript-eslint/naming-convention": { "count": 5 }, - "@typescript-eslint/no-misused-promises": { - "count": 2 - }, "@typescript-eslint/prefer-nullish-coalescing": { "count": 6 }, @@ -475,9 +463,6 @@ "@typescript-eslint/no-unused-vars": { "count": 1 }, - "@typescript-eslint/prefer-optional-chain": { - "count": 3 - }, "id-length": { "count": 1 }, @@ -1377,9 +1362,6 @@ "@typescript-eslint/explicit-function-return-type": { "count": 4 }, - "@typescript-eslint/no-misused-promises": { - "count": 2 - }, "no-restricted-syntax": { "count": 1 } @@ -2131,7 +2113,7 @@ "count": 10 }, "@typescript-eslint/no-floating-promises": { - "count": 4 + "count": 3 }, "no-restricted-syntax": { "count": 4 @@ -2240,11 +2222,6 @@ "count": 2 } }, - "packages/transaction-pay-controller/src/strategy/bridge/bridge-submit.ts": { - "no-restricted-syntax": { - "count": 1 - } - }, "packages/transaction-pay-controller/src/strategy/relay/hyperliquid-withdraw.ts": { "no-restricted-syntax": { "count": 1 @@ -2374,4 +2351,4 @@ "count": 10 } } -} +} \ No newline at end of file From 3af1f6882b52cb47faf348f3d527616ff48072d3 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 22:59:38 +0200 Subject: [PATCH 134/136] ESM lint fixes: jest shadow, no-void, CJS unambiguous, JSON extensions Several ESLint rule conflicts and gaps arose from the ESM-only migration: - Allow `jest` to shadow its global in test files: importing `jest` from `@jest/globals` (required in ESM) shadows the Jest-injected global, so `@typescript-eslint/no-shadow` is set to allow `['jest']` in test files. - Allow `void expr` as a statement: `no-floating-promises` requires `void` to mark intentionally ignored promises, but `no-void` was blocking it; `allowAsStatement: true` resolves the conflict. - Turn off `import-x/unambiguous` for CJS config files (`*.cjs`, `jest.environment.js`, `.eslintrc.js`, etc.) that have no import/export. - Add `json: 'always'` to `import-x/extensions` so JSON imports are not flagged as using an unexpected file extension. - Fix `jest.resolver.cjs`: formatter moved inline `eslint-disable-line` comments to the next line, breaking them; converted to `eslint-disable-next-line`. - Add `export {}` to `tests/setup.ts` so it is unambiguously an ES module. --- eslint.config.mjs | 21 +++++++++++++++++++++ jest.resolver.cjs | 7 ++++--- tests/setup.ts | 3 ++- 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index 767171c9acb..66675679713 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -95,6 +95,9 @@ const config = createConfig([ // Handled by Oxfmt. 'prettier/prettier': 'off', 'import-x/order': 'off', + // Allow `void somePromise()` to explicitly mark ignored promises + // (required by `no-floating-promises`). + 'no-void': ['error', { allowAsStatement: true }], }, }, { @@ -180,6 +183,10 @@ const config = createConfig([ 'jest/no-alias-methods': 'error', 'jest/no-commented-out-tests': 'error', 'jest/no-disabled-tests': 'error', + + // `import { jest } from '@jest/globals'` is required in ESM test files + // and intentionally shadows the Jest-injected global. + '@typescript-eslint/no-shadow': ['error', { allow: ['jest'] }], }, settings: { node: { @@ -219,6 +226,19 @@ const config = createConfig([ 'n/hashbang': 'off', }, }, + { + files: [ + '**/*.cjs', + '**/.prettierrc.js', + '**/.eslintrc.js', + '**/jest.config*.js', + '**/jest.environment.js', + ], + rules: { + // CJS config files have no import/export statements. + 'import-x/unambiguous': 'off', + }, + }, { files: ['**/jest.environment.js'], rules: { @@ -390,6 +410,7 @@ const config = createConfig([ js: 'ignorePackages', ts: 'never', tsx: 'never', + json: 'always', }, ], 'import-x/no-useless-path-segments': [ diff --git a/jest.resolver.cjs b/jest.resolver.cjs index 811f4ee69c5..78ff40d6354 100644 --- a/jest.resolver.cjs +++ b/jest.resolver.cjs @@ -1,4 +1,3 @@ -/* eslint-disable import-x/unambiguous */ 'use strict'; const { join, resolve } = require('path'); @@ -27,10 +26,12 @@ module.exports = function resolver(moduleName, options) { if (match) { const [, pkgName, subPath = ''] = match; const srcDir = join(PACKAGES_DIR, pkgName, 'src'); - if (existsSync(srcDir)) { // eslint-disable-line n/no-sync + // eslint-disable-next-line n/no-sync + if (existsSync(srcDir)) { let target = subPath ? join(srcDir, subPath) : join(srcDir, 'index.ts'); // If the resolved target is a directory, look for its index file. - if (existsSync(target) && statSync(target).isDirectory()) { // eslint-disable-line n/no-sync + // eslint-disable-next-line n/no-sync + if (existsSync(target) && statSync(target).isDirectory()) { target = join(target, 'index.ts'); } return defaultResolver(target, options); diff --git a/tests/setup.ts b/tests/setup.ts index 85a8f7da9d7..6f0fa61050f 100644 --- a/tests/setup.ts +++ b/tests/setup.ts @@ -9,5 +9,6 @@ delete globalThis.Request; // @ts-expect-error - Clear Response to ensure isomorphic-fetch sets up node-fetch version delete globalThis.Response; // Dynamic import so this runs *after* the deletes above (static imports are hoisted in ESM). - await import('isomorphic-fetch'); + +export {}; From becbf55c0a09eb413532625b3f9c5c13f3ebd7a2 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 16 Jul 2026 23:00:49 +0200 Subject: [PATCH 135/136] Add `@jest/globals` to root devDependencies; prune resolved suppressions - Add `@jest/globals: ^30.4.1` to root package.json devDependencies so the package is available for top-level test infrastructure. - Remove `prefer-nullish-coalescing` suppression entries that are no longer needed now that those errors were fixed in the source files. - Update yarn.lock to reflect the new and updated dependencies. --- eslint-suppressions.json | 17 +- package.json | 1 + yarn.lock | 543 +++++++++++++++++++++++++++++++++++---- 3 files changed, 500 insertions(+), 61 deletions(-) diff --git a/eslint-suppressions.json b/eslint-suppressions.json index 2114eb69d07..483411966b1 100644 --- a/eslint-suppressions.json +++ b/eslint-suppressions.json @@ -302,9 +302,6 @@ "@typescript-eslint/naming-convention": { "count": 5 }, - "@typescript-eslint/prefer-nullish-coalescing": { - "count": 6 - }, "@typescript-eslint/prefer-optional-chain": { "count": 1 }, @@ -586,9 +583,6 @@ "@typescript-eslint/explicit-function-return-type": { "count": 25 }, - "@typescript-eslint/prefer-nullish-coalescing": { - "count": 1 - }, "no-negated-condition": { "count": 1 } @@ -1273,9 +1267,6 @@ "@typescript-eslint/explicit-function-return-type": { "count": 1 }, - "@typescript-eslint/prefer-nullish-coalescing": { - "count": 2 - }, "id-denylist": { "count": 1 } @@ -1721,9 +1712,6 @@ "@typescript-eslint/explicit-function-return-type": { "count": 4 }, - "@typescript-eslint/prefer-nullish-coalescing": { - "count": 4 - }, "id-length": { "count": 2 }, @@ -2087,9 +2075,6 @@ "@typescript-eslint/explicit-function-return-type": { "count": 7 }, - "@typescript-eslint/no-base-to-string": { - "count": 1 - }, "@typescript-eslint/no-unused-vars": { "count": 2 }, @@ -2351,4 +2336,4 @@ "count": 10 } } -} \ No newline at end of file +} diff --git a/package.json b/package.json index 921d2cbabe1..33125a74521 100644 --- a/package.json +++ b/package.json @@ -56,6 +56,7 @@ "workspaces:list-versions": "./scripts/list-workspace-versions.sh" }, "devDependencies": { + "@jest/globals": "^30.4.1", "@lavamoat/allow-scripts": "^3.0.4", "@lavamoat/preinstall-always-fail": "^2.1.0", "@metamask/create-release-branch": "^4.2.1", diff --git a/yarn.lock b/yarn.lock index 02edd5d1835..a77257dbb26 100644 --- a/yarn.lock +++ b/yarn.lock @@ -242,7 +242,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.29.7": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.27.1, @babel/code-frame@npm:^7.29.7": version: 7.29.7 resolution: "@babel/code-frame@npm:7.29.7" dependencies: @@ -260,7 +260,7 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.21.3, @babel/core@npm:^7.23.2, @babel/core@npm:^7.23.9, @babel/core@npm:^7.25.9": +"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.21.3, @babel/core@npm:^7.23.2, @babel/core@npm:^7.23.9, @babel/core@npm:^7.25.9, @babel/core@npm:^7.27.4": version: 7.29.7 resolution: "@babel/core@npm:7.29.7" dependencies: @@ -283,7 +283,7 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.25.9, @babel/generator@npm:^7.29.7, @babel/generator@npm:^7.7.2": +"@babel/generator@npm:^7.25.9, @babel/generator@npm:^7.27.5, @babel/generator@npm:^7.29.7, @babel/generator@npm:^7.7.2": version: 7.29.7 resolution: "@babel/generator@npm:7.29.7" dependencies: @@ -687,7 +687,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-jsx@npm:^7.29.7, @babel/plugin-syntax-jsx@npm:^7.7.2": +"@babel/plugin-syntax-jsx@npm:^7.27.1, @babel/plugin-syntax-jsx@npm:^7.29.7, @babel/plugin-syntax-jsx@npm:^7.7.2": version: 7.29.7 resolution: "@babel/plugin-syntax-jsx@npm:7.29.7" dependencies: @@ -786,7 +786,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-typescript@npm:^7.29.7, @babel/plugin-syntax-typescript@npm:^7.7.2": +"@babel/plugin-syntax-typescript@npm:^7.27.1, @babel/plugin-syntax-typescript@npm:^7.29.7, @babel/plugin-syntax-typescript@npm:^7.7.2": version: 7.29.7 resolution: "@babel/plugin-syntax-typescript@npm:7.29.7" dependencies: @@ -1659,7 +1659,7 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.23.0, @babel/types@npm:^7.28.2, @babel/types@npm:^7.29.7, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.23.0, @babel/types@npm:^7.27.3, @babel/types@npm:^7.28.2, @babel/types@npm:^7.29.7, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": version: 7.29.7 resolution: "@babel/types@npm:7.29.7" dependencies: @@ -4756,6 +4756,25 @@ __metadata: languageName: node linkType: hard +"@jest/diff-sequences@npm:30.4.0": + version: 30.4.0 + resolution: "@jest/diff-sequences@npm:30.4.0" + checksum: 10/65c27937c10a7157899dad5d176806104286f9d55464f318955a0cee98db8aed6b8f70ad4aee7133468087146422cdd391d49b1e101ec543db3283ee4eb59c06 + languageName: node + linkType: hard + +"@jest/environment@npm:30.4.1": + version: 30.4.1 + resolution: "@jest/environment@npm:30.4.1" + dependencies: + "@jest/fake-timers": "npm:30.4.1" + "@jest/types": "npm:30.4.1" + "@types/node": "npm:*" + jest-mock: "npm:30.4.1" + checksum: 10/c25946fee29604f5aa24ea059bc3cc7bc4c8cdaf26db1ed6ffa4f28e37f5193cc4e868650c807d89caff4123e44d07b58200d4cb5960ebdb7d66531509d76359 + languageName: node + linkType: hard + "@jest/environment@npm:^29.7.0": version: 29.7.0 resolution: "@jest/environment@npm:29.7.0" @@ -4768,6 +4787,15 @@ __metadata: languageName: node linkType: hard +"@jest/expect-utils@npm:30.4.1": + version: 30.4.1 + resolution: "@jest/expect-utils@npm:30.4.1" + dependencies: + "@jest/get-type": "npm:30.1.0" + checksum: 10/3f0337ec791d669cacd07594521f2da71b956712dfd0c0007253dd5e886ef640df510af1357878a80ac56f09d3db9fd68e3db66959f0fdb3add5f551dd7e0f35 + languageName: node + linkType: hard + "@jest/expect-utils@npm:^29.7.0": version: 29.7.0 resolution: "@jest/expect-utils@npm:29.7.0" @@ -4777,6 +4805,16 @@ __metadata: languageName: node linkType: hard +"@jest/expect@npm:30.4.1": + version: 30.4.1 + resolution: "@jest/expect@npm:30.4.1" + dependencies: + expect: "npm:30.4.1" + jest-snapshot: "npm:30.4.1" + checksum: 10/40ae0317a3590ced7a7fd21c49e6b1af6b122e6a83822e643af83f02034dfed6485248cae08d6bcf9380039ba3824ac56db18478712c64ddf5f709ee23cf30cd + languageName: node + linkType: hard + "@jest/expect@npm:^29.7.0": version: 29.7.0 resolution: "@jest/expect@npm:29.7.0" @@ -4787,6 +4825,20 @@ __metadata: languageName: node linkType: hard +"@jest/fake-timers@npm:30.4.1": + version: 30.4.1 + resolution: "@jest/fake-timers@npm:30.4.1" + dependencies: + "@jest/types": "npm:30.4.1" + "@sinonjs/fake-timers": "npm:^15.4.0" + "@types/node": "npm:*" + jest-message-util: "npm:30.4.1" + jest-mock: "npm:30.4.1" + jest-util: "npm:30.4.1" + checksum: 10/bc7aff23548395d6e7957bc24f699f921a9616f2357ab49616b0468c7b5e94e6ac4cbdd45d306f1a5d7f72e2a055294f52be3666e4c1da7c137874c5b226e1c6 + languageName: node + linkType: hard + "@jest/fake-timers@npm:^29.7.0": version: 29.7.0 resolution: "@jest/fake-timers@npm:29.7.0" @@ -4801,6 +4853,13 @@ __metadata: languageName: node linkType: hard +"@jest/get-type@npm:30.1.0": + version: 30.1.0 + resolution: "@jest/get-type@npm:30.1.0" + checksum: 10/e2a95fbb49ce2d15547db8af5602626caf9b05f62a5e583b4a2de9bd93a2bfe7175f9bbb2b8a5c3909ce261d467b6991d7265bb1d547cb60e7e97f571f361a70 + languageName: node + linkType: hard + "@jest/globals@npm:^29.7.0": version: 29.7.0 resolution: "@jest/globals@npm:29.7.0" @@ -4813,6 +4872,28 @@ __metadata: languageName: node linkType: hard +"@jest/globals@npm:^30.4.1": + version: 30.4.1 + resolution: "@jest/globals@npm:30.4.1" + dependencies: + "@jest/environment": "npm:30.4.1" + "@jest/expect": "npm:30.4.1" + "@jest/types": "npm:30.4.1" + jest-mock: "npm:30.4.1" + checksum: 10/5fe04b9c3b97f0061e4464201ee0dd674dd958843eb80542791d1c576c51f12aaa3f3b369e136d5fd3f8c716f9c9bbfbb76491a3cbc3c4efb3cc71063f909132 + languageName: node + linkType: hard + +"@jest/pattern@npm:30.4.0": + version: 30.4.0 + resolution: "@jest/pattern@npm:30.4.0" + dependencies: + "@types/node": "npm:*" + jest-regex-util: "npm:30.4.0" + checksum: 10/4fb1db0e586713708d2fcd79059315600978608483ef2d80e04a0a59b20b0d8de0d3f47cad950ff90bfb9ea3cb788709ee3d1eb225734e4dbf1c4b743c93d204 + languageName: node + linkType: hard + "@jest/reporters@npm:^29.7.0": version: 29.7.0 resolution: "@jest/reporters@npm:29.7.0" @@ -4850,6 +4931,15 @@ __metadata: languageName: node linkType: hard +"@jest/schemas@npm:30.4.1": + version: 30.4.1 + resolution: "@jest/schemas@npm:30.4.1" + dependencies: + "@sinclair/typebox": "npm:^0.34.0" + checksum: 10/86e62c8fd8fc77535085f1ede3a416430a3740f78b8f88ec7d0ee4516b22daf3326ffc1ade9d5f7839bbde923aaf1b5ac430a42ed4bb1a38edc3de5005a58f51 + languageName: node + linkType: hard + "@jest/schemas@npm:^29.6.3": version: 29.6.3 resolution: "@jest/schemas@npm:29.6.3" @@ -4859,6 +4949,18 @@ __metadata: languageName: node linkType: hard +"@jest/snapshot-utils@npm:30.4.1": + version: 30.4.1 + resolution: "@jest/snapshot-utils@npm:30.4.1" + dependencies: + "@jest/types": "npm:30.4.1" + chalk: "npm:^4.1.2" + graceful-fs: "npm:^4.2.11" + natural-compare: "npm:^1.4.0" + checksum: 10/8f17768702153267388b3043f358027385e591ac4668699bfce3547cb8e08ac146a074913bcddf68c0a4f7155e24a6d582d27f4592f5c3bd5f9fbc3f9182ef78 + languageName: node + linkType: hard + "@jest/source-map@npm:^29.6.3": version: 29.6.3 resolution: "@jest/source-map@npm:29.6.3" @@ -4894,6 +4996,28 @@ __metadata: languageName: node linkType: hard +"@jest/transform@npm:30.4.1": + version: 30.4.1 + resolution: "@jest/transform@npm:30.4.1" + dependencies: + "@babel/core": "npm:^7.27.4" + "@jest/types": "npm:30.4.1" + "@jridgewell/trace-mapping": "npm:^0.3.25" + babel-plugin-istanbul: "npm:^7.0.1" + chalk: "npm:^4.1.2" + convert-source-map: "npm:^2.0.0" + fast-json-stable-stringify: "npm:^2.1.0" + graceful-fs: "npm:^4.2.11" + jest-haste-map: "npm:30.4.1" + jest-regex-util: "npm:30.4.0" + jest-util: "npm:30.4.1" + pirates: "npm:^4.0.7" + slash: "npm:^3.0.0" + write-file-atomic: "npm:^5.0.1" + checksum: 10/7b570451f6c26360f1b852c2281dcc4e36fe685dbc159cf5eabf83d49d6aae4569f444d38f3afb5b3b6e0b809eb41b65f3145c0cac5fee3eec9c9b178fb1f0ea + languageName: node + linkType: hard + "@jest/transform@npm:^29.7.0": version: 29.7.0 resolution: "@jest/transform@npm:29.7.0" @@ -4917,6 +5041,21 @@ __metadata: languageName: node linkType: hard +"@jest/types@npm:30.4.1": + version: 30.4.1 + resolution: "@jest/types@npm:30.4.1" + dependencies: + "@jest/pattern": "npm:30.4.0" + "@jest/schemas": "npm:30.4.1" + "@types/istanbul-lib-coverage": "npm:^2.0.6" + "@types/istanbul-reports": "npm:^3.0.4" + "@types/node": "npm:*" + "@types/yargs": "npm:^17.0.33" + chalk: "npm:^4.1.2" + checksum: 10/cc0999508613487c6d0f55661cd342ebe7cfe579fa9917534b94310204358f03f94524f70f00b4fe3c6dd2ccd0fd44657615a1b9f420ab310d68b43964bff87c + languageName: node + linkType: hard + "@jest/types@npm:^26.6.2": version: 26.6.2 resolution: "@jest/types@npm:26.6.2" @@ -5423,6 +5562,7 @@ __metadata: version: 0.0.0-use.local resolution: "@metamask/account-tree-controller@workspace:packages/account-tree-controller" dependencies: + "@jest/globals": "npm:^30.4.1" "@metamask/account-api": "npm:^1.0.4" "@metamask/accounts-controller": "npm:^39.0.5" "@metamask/auto-changelog": "npm:^6.1.0" @@ -5480,7 +5620,7 @@ __metadata: ethereum-cryptography: "npm:^2.1.2" immer: "npm:^9.0.6" jest: "npm:^29.7.0" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" ts-jest: "npm:^29.2.5" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -5509,6 +5649,7 @@ __metadata: version: 0.0.0-use.local resolution: "@metamask/address-book-controller@workspace:packages/address-book-controller" dependencies: + "@jest/globals": "npm:^30.4.1" "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/base-controller": "npm:^9.1.0" "@metamask/controller-utils": "npm:^12.3.0" @@ -5529,6 +5670,7 @@ __metadata: version: 0.0.0-use.local resolution: "@metamask/ai-controllers@workspace:packages/ai-controllers" dependencies: + "@jest/globals": "npm:^30.4.1" "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/base-controller": "npm:^9.1.0" "@metamask/messenger": "npm:^2.0.0" @@ -5549,6 +5691,7 @@ __metadata: version: 0.0.0-use.local resolution: "@metamask/analytics-controller@workspace:packages/analytics-controller" dependencies: + "@jest/globals": "npm:^30.4.1" "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/base-controller": "npm:^9.1.0" "@metamask/messenger": "npm:^2.0.0" @@ -5557,7 +5700,7 @@ __metadata: "@types/uuid": "npm:^8.3.0" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" ts-jest: "npm:^29.2.5" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -5571,6 +5714,7 @@ __metadata: version: 0.0.0-use.local resolution: "@metamask/analytics-data-regulation-controller@workspace:packages/analytics-data-regulation-controller" dependencies: + "@jest/globals": "npm:^30.4.1" "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/base-controller": "npm:^9.1.0" "@metamask/controller-utils": "npm:^12.3.0" @@ -5635,6 +5779,7 @@ __metadata: version: 0.0.0-use.local resolution: "@metamask/approval-controller@workspace:packages/approval-controller" dependencies: + "@jest/globals": "npm:^30.4.1" "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/base-controller": "npm:^9.1.0" "@metamask/messenger": "npm:^2.0.0" @@ -5689,7 +5834,7 @@ __metadata: bignumber.js: "npm:^9.1.2" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" p-limit: "npm:^3.1.0" ts-jest: "npm:^29.2.5" tsx: "npm:^4.20.5" @@ -5757,7 +5902,7 @@ __metadata: immer: "npm:^9.0.6" jest: "npm:^29.7.0" jest-environment-jsdom: "npm:^29.7.0" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" multiformats: "npm:^9.9.0" nock: "npm:^13.3.1" reselect: "npm:^5.1.1" @@ -5858,6 +6003,7 @@ __metadata: version: 0.0.0-use.local resolution: "@metamask/base-controller@workspace:packages/base-controller" dependencies: + "@jest/globals": "npm:^30.4.1" "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/messenger": "npm:^2.0.0" "@metamask/utils": "npm:^11.11.0" @@ -5877,6 +6023,7 @@ __metadata: version: 0.0.0-use.local resolution: "@metamask/base-data-service@workspace:packages/base-data-service" dependencies: + "@jest/globals": "npm:^30.4.1" "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/messenger": "npm:^2.0.0" "@metamask/storage-service": "npm:^1.0.2" @@ -5888,7 +6035,7 @@ __metadata: deepmerge: "npm:^4.2.2" fast-deep-equal: "npm:^3.1.3" jest: "npm:^29.7.0" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" nock: "npm:^13.3.1" ts-jest: "npm:^29.2.5" tsx: "npm:^4.20.5" @@ -5951,7 +6098,7 @@ __metadata: deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" jest-environment-jsdom: "npm:^29.7.0" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" nock: "npm:^13.3.1" reselect: "npm:^5.1.1" ts-jest: "npm:^29.2.5" @@ -6011,6 +6158,7 @@ __metadata: version: 0.0.0-use.local resolution: "@metamask/build-utils@workspace:packages/build-utils" dependencies: + "@jest/globals": "npm:^30.4.1" "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/utils": "npm:^11.11.0" "@types/eslint": "npm:^8.44.7" @@ -6039,7 +6187,7 @@ __metadata: "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" ts-jest: "npm:^29.2.5" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -6139,6 +6287,7 @@ __metadata: version: 0.0.0-use.local resolution: "@metamask/compliance-controller@workspace:packages/compliance-controller" dependencies: + "@jest/globals": "npm:^30.4.1" "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/base-controller": "npm:^9.1.0" "@metamask/controller-utils": "npm:^12.3.0" @@ -6162,6 +6311,7 @@ __metadata: version: 0.0.0-use.local resolution: "@metamask/composable-controller@workspace:packages/composable-controller" dependencies: + "@jest/globals": "npm:^30.4.1" "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/base-controller": "npm:^9.1.0" "@metamask/json-rpc-engine": "npm:^10.5.0" @@ -6210,6 +6360,7 @@ __metadata: version: 0.0.0-use.local resolution: "@metamask/connectivity-controller@workspace:packages/connectivity-controller" dependencies: + "@jest/globals": "npm:^30.4.1" "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/base-controller": "npm:^9.1.0" "@metamask/messenger": "npm:^2.0.0" @@ -6259,6 +6410,7 @@ __metadata: dependencies: "@babel/runtime": "npm:^7.23.9" "@ethersproject/abi": "npm:^5.7.0" + "@jest/globals": "npm:^30.4.1" "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/eth-query": "npm:^4.0.0" "@metamask/ethjs-unit": "npm:^0.3.0" @@ -6318,6 +6470,7 @@ __metadata: version: 0.0.0-use.local resolution: "@metamask/core-monorepo@workspace:." dependencies: + "@jest/globals": "npm:^30.4.1" "@lavamoat/allow-scripts": "npm:^3.0.4" "@lavamoat/preinstall-always-fail": "npm:^2.1.0" "@metamask/create-release-branch": "npm:^4.2.1" @@ -6482,7 +6635,7 @@ __metadata: deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" klona: "npm:^2.0.6" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" ts-jest: "npm:^29.2.5" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -6526,7 +6679,7 @@ __metadata: "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" ts-jest: "npm:^29.2.5" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -6731,6 +6884,7 @@ __metadata: resolution: "@metamask/eth-json-rpc-provider@workspace:packages/eth-json-rpc-provider" dependencies: "@ethersproject/providers": "npm:^5.7.0" + "@jest/globals": "npm:^30.4.1" "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/eth-query": "npm:^4.0.0" "@metamask/ethjs-query": "npm:^0.5.3" @@ -7068,6 +7222,7 @@ __metadata: version: 0.0.0-use.local resolution: "@metamask/geolocation-controller@workspace:packages/geolocation-controller" dependencies: + "@jest/globals": "npm:^30.4.1" "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/base-controller": "npm:^9.1.0" "@metamask/controller-utils": "npm:^12.3.0" @@ -7106,6 +7261,7 @@ __metadata: version: 0.0.0-use.local resolution: "@metamask/json-rpc-engine@workspace:packages/json-rpc-engine" dependencies: + "@jest/globals": "npm:^30.4.1" "@lavamoat/allow-scripts": "npm:^3.0.4" "@lavamoat/preinstall-always-fail": "npm:^2.1.0" "@metamask/auto-changelog": "npm:^6.1.0" @@ -7181,6 +7337,7 @@ __metadata: "@ethereumjs/common": "npm:^4.4.0" "@ethereumjs/tx": "npm:^5.4.0" "@ethereumjs/util": "npm:^9.1.0" + "@jest/globals": "npm:^30.4.1" "@lavamoat/allow-scripts": "npm:^3.0.4" "@lavamoat/preinstall-always-fail": "npm:^2.1.0" "@metamask/auto-changelog": "npm:^6.1.0" @@ -7202,7 +7359,7 @@ __metadata: ethereumjs-wallet: "npm:^1.0.1" immer: "npm:^9.0.6" jest: "npm:^29.7.0" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" ts-jest: "npm:^29.2.5" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -7321,6 +7478,7 @@ __metadata: version: 0.0.0-use.local resolution: "@metamask/logging-controller@workspace:packages/logging-controller" dependencies: + "@jest/globals": "npm:^30.4.1" "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/base-controller": "npm:^9.1.0" "@metamask/controller-utils": "npm:^12.3.0" @@ -7341,6 +7499,7 @@ __metadata: version: 0.0.0-use.local resolution: "@metamask/message-manager@workspace:packages/message-manager" dependencies: + "@jest/globals": "npm:^30.4.1" "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/base-controller": "npm:^9.1.0" "@metamask/controller-utils": "npm:^12.3.0" @@ -7410,6 +7569,7 @@ __metadata: version: 0.0.0-use.local resolution: "@metamask/messenger@workspace:packages/messenger" dependencies: + "@jest/globals": "npm:^30.4.1" "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/utils": "npm:^11.11.0" "@types/jest": "npm:^29.5.14" @@ -7634,7 +7794,7 @@ __metadata: deepmerge: "npm:^4.2.2" immer: "npm:^9.0.6" jest: "npm:^29.7.0" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" nock: "npm:^13.3.1" ts-jest: "npm:^29.2.5" tsx: "npm:^4.20.5" @@ -7679,6 +7839,7 @@ __metadata: version: 0.0.0-use.local resolution: "@metamask/name-controller@workspace:packages/name-controller" dependencies: + "@jest/globals": "npm:^30.4.1" "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/base-controller": "npm:^9.1.0" "@metamask/controller-utils": "npm:^12.3.0" @@ -7754,7 +7915,7 @@ __metadata: jest: "npm:^29.7.0" jest-environment-jsdom: "npm:^29.7.0" jest-when: "npm:^3.4.2" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" loglevel: "npm:^1.8.1" nock: "npm:^13.3.1" node-fetch: "npm:^2.7.0" @@ -7832,7 +7993,7 @@ __metadata: firebase: "npm:^11.2.0" jest: "npm:^29.7.0" jest-environment-jsdom: "npm:^29.7.0" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" loglevel: "npm:^1.8.1" nock: "npm:^13.3.1" semver: "npm:^7.6.3" @@ -7869,6 +8030,7 @@ __metadata: version: 0.0.0-use.local resolution: "@metamask/passkey-controller@workspace:packages/passkey-controller" dependencies: + "@jest/globals": "npm:^30.4.1" "@levischuck/tiny-cbor": "npm:^0.3.3" "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/base-controller": "npm:^9.1.0" @@ -7911,6 +8073,7 @@ __metadata: version: 0.0.0-use.local resolution: "@metamask/permission-controller@workspace:packages/permission-controller" dependencies: + "@jest/globals": "npm:^30.4.1" "@metamask/approval-controller": "npm:^9.0.2" "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/base-controller": "npm:^9.1.0" @@ -8233,6 +8396,7 @@ __metadata: version: 0.0.0-use.local resolution: "@metamask/rate-limit-controller@workspace:packages/rate-limit-controller" dependencies: + "@jest/globals": "npm:^30.4.1" "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/base-controller": "npm:^9.1.0" "@metamask/messenger": "npm:^2.0.0" @@ -8283,6 +8447,7 @@ __metadata: version: 0.0.0-use.local resolution: "@metamask/remote-feature-flag-controller@workspace:packages/remote-feature-flag-controller" dependencies: + "@jest/globals": "npm:^30.4.1" "@lavamoat/allow-scripts": "npm:^3.0.4" "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/base-controller": "npm:^9.1.0" @@ -8454,7 +8619,7 @@ __metadata: cockatiel: "npm:^3.1.2" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" ts-jest: "npm:^29.2.5" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -8535,7 +8700,7 @@ __metadata: bignumber.js: "npm:^9.1.2" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" nock: "npm:^13.3.1" reselect: "npm:^5.1.1" ts-jest: "npm:^29.2.5" @@ -8565,7 +8730,7 @@ __metadata: "@types/jest": "npm:^29.5.14" deepmerge: "npm:^4.2.2" jest: "npm:^29.7.0" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" ts-jest: "npm:^29.2.5" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -8759,6 +8924,7 @@ __metadata: version: 0.0.0-use.local resolution: "@metamask/storage-service@workspace:packages/storage-service" dependencies: + "@jest/globals": "npm:^30.4.1" "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/messenger": "npm:^2.0.0" "@metamask/utils": "npm:^11.11.0" @@ -8871,7 +9037,7 @@ __metadata: immer: "npm:^9.0.6" jest: "npm:^29.7.0" jest-environment-jsdom: "npm:^29.7.0" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" nock: "npm:^13.3.1" ts-jest: "npm:^29.2.5" tsx: "npm:^4.20.5" @@ -8912,7 +9078,7 @@ __metadata: deepmerge: "npm:^4.2.2" immer: "npm:^9.0.6" jest: "npm:^29.7.0" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" ts-jest: "npm:^29.2.5" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -8945,7 +9111,7 @@ __metadata: deepmerge: "npm:^4.2.2" immer: "npm:^9.0.6" jest: "npm:^29.7.0" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" ts-jest: "npm:^29.2.5" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -10269,6 +10435,13 @@ __metadata: languageName: node linkType: hard +"@pkgr/core@npm:^0.3.6": + version: 0.3.6 + resolution: "@pkgr/core@npm:0.3.6" + checksum: 10/29082aa13d36f13fc41cdc64cb1feb36b630de0d6ebde84e2ff68e3d7a7f1dce4462cca91f76176c46e50bbca6b1e7f1fd9cf907af12d5d70da83bc981ca4ccf + languageName: node + linkType: hard + "@pnpm/config.env-replace@npm:^1.1.0": version: 1.1.0 resolution: "@pnpm/config.env-replace@npm:1.1.0" @@ -10469,6 +10642,13 @@ __metadata: languageName: node linkType: hard +"@sinclair/typebox@npm:^0.34.0": + version: 0.34.52 + resolution: "@sinclair/typebox@npm:0.34.52" + checksum: 10/693a7ab6c8935cbb6e89698bd75ac465038ecfff8b8ad22c50ad6d93a049b0e7cfe4d759200d0401707c5679d6f7a3791fd6dee139bcbb250fa3aae3c17e8bd1 + languageName: node + linkType: hard + "@sindresorhus/is@npm:^4.6.0": version: 4.6.0 resolution: "@sindresorhus/is@npm:4.6.0" @@ -10483,7 +10663,7 @@ __metadata: languageName: node linkType: hard -"@sinonjs/commons@npm:^3.0.0": +"@sinonjs/commons@npm:^3.0.0, @sinonjs/commons@npm:^3.0.1": version: 3.0.1 resolution: "@sinonjs/commons@npm:3.0.1" dependencies: @@ -10501,6 +10681,15 @@ __metadata: languageName: node linkType: hard +"@sinonjs/fake-timers@npm:^15.4.0": + version: 15.4.0 + resolution: "@sinonjs/fake-timers@npm:15.4.0" + dependencies: + "@sinonjs/commons": "npm:^3.0.1" + checksum: 10/3960a9fe065f38a4228c66d184eeb101e8a6af9cbfc8454dd5d45ac397201da72134048d4e808a25993494885b172dd6deecdad9949bbf4c1d3a220ef561f6cc + languageName: node + linkType: hard + "@slorber/remark-comment@npm:^1.0.0": version: 1.0.0 resolution: "@slorber/remark-comment@npm:1.0.0" @@ -11202,7 +11391,7 @@ __metadata: languageName: node linkType: hard -"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1": +"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1, @types/istanbul-lib-coverage@npm:^2.0.6": version: 2.0.6 resolution: "@types/istanbul-lib-coverage@npm:2.0.6" checksum: 10/3feac423fd3e5449485afac999dcfcb3d44a37c830af898b689fadc65d26526460bedb889db278e0d4d815a670331796494d073a10ee6e3a6526301fe7415778 @@ -11218,7 +11407,7 @@ __metadata: languageName: node linkType: hard -"@types/istanbul-reports@npm:^3.0.0": +"@types/istanbul-reports@npm:^3.0.0, @types/istanbul-reports@npm:^3.0.4": version: 3.0.4 resolution: "@types/istanbul-reports@npm:3.0.4" dependencies: @@ -11551,7 +11740,7 @@ __metadata: languageName: node linkType: hard -"@types/stack-utils@npm:^2.0.0": +"@types/stack-utils@npm:^2.0.0, @types/stack-utils@npm:^2.0.3": version: 2.0.3 resolution: "@types/stack-utils@npm:2.0.3" checksum: 10/72576cc1522090fe497337c2b99d9838e320659ac57fa5560fcbdcbafcf5d0216c6b3a0a8a4ee4fdb3b1f5e3420aa4f6223ab57b82fef3578bec3206425c6cf5 @@ -11636,6 +11825,15 @@ __metadata: languageName: node linkType: hard +"@types/yargs@npm:^17.0.33": + version: 17.0.35 + resolution: "@types/yargs@npm:17.0.35" + dependencies: + "@types/yargs-parser": "npm:*" + checksum: 10/47bcd4476a4194ea11617ea71cba8a1eddf5505fc39c44336c1a08d452a0de4486aedbc13f47a017c8efbcb5a8aa358d976880663732ebcbc6dbcbbecadb0581 + languageName: node + linkType: hard + "@typescript-eslint/eslint-plugin@npm:8.54.0, @typescript-eslint/eslint-plugin@npm:^8.48.0": version: 8.54.0 resolution: "@typescript-eslint/eslint-plugin@npm:8.54.0" @@ -11778,6 +11976,13 @@ __metadata: languageName: node linkType: hard +"@ungap/structured-clone@npm:^1.3.0": + version: 1.3.3 + resolution: "@ungap/structured-clone@npm:1.3.3" + checksum: 10/ccdb7fc0a7055e361f57ded33030b9c1a06398e48db35ab1cdae7a03f82e5a1f5342bcf66781dde6364584b44c7739f8f320dff992d318051b69805aaee10d9f + languageName: node + linkType: hard + "@vercel/stega@npm:^0.1.2": version: 0.1.2 resolution: "@vercel/stega@npm:0.1.2" @@ -12279,7 +12484,7 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^5.0.0": +"ansi-styles@npm:^5.0.0, ansi-styles@npm:^5.2.0": version: 5.2.0 resolution: "ansi-styles@npm:5.2.0" checksum: 10/d7f4e97ce0623aea6bc0d90dcd28881ee04cba06c570b97fd3391bd7a268eedfd9d5e2dd4fdcbdd82b8105df5faf6f24aaedc08eaf3da898e702db5948f63469 @@ -12300,7 +12505,7 @@ __metadata: languageName: node linkType: hard -"anymatch@npm:^3.0.3, anymatch@npm:~3.1.2": +"anymatch@npm:^3.0.3, anymatch@npm:^3.1.3, anymatch@npm:~3.1.2": version: 3.1.3 resolution: "anymatch@npm:3.1.3" dependencies: @@ -12521,6 +12726,19 @@ __metadata: languageName: node linkType: hard +"babel-plugin-istanbul@npm:^7.0.1": + version: 7.0.1 + resolution: "babel-plugin-istanbul@npm:7.0.1" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.0.0" + "@istanbuljs/load-nyc-config": "npm:^1.0.0" + "@istanbuljs/schema": "npm:^0.1.3" + istanbul-lib-instrument: "npm:^6.0.2" + test-exclude: "npm:^6.0.0" + checksum: 10/fe9f865f975aaa7a033de9ccb2b63fdcca7817266c5e98d3e02ac7ffd774c695093d215302796cb3770a71ef4574e7a9b298504c3c0c104cf4b48c8eda67b2a6 + languageName: node + linkType: hard + "babel-plugin-jest-hoist@npm:^29.6.3": version: 29.6.3 resolution: "babel-plugin-jest-hoist@npm:29.6.3" @@ -12606,6 +12824,31 @@ __metadata: languageName: node linkType: hard +"babel-preset-current-node-syntax@npm:^1.2.0": + version: 1.2.0 + resolution: "babel-preset-current-node-syntax@npm:1.2.0" + dependencies: + "@babel/plugin-syntax-async-generators": "npm:^7.8.4" + "@babel/plugin-syntax-bigint": "npm:^7.8.3" + "@babel/plugin-syntax-class-properties": "npm:^7.12.13" + "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" + "@babel/plugin-syntax-import-attributes": "npm:^7.24.7" + "@babel/plugin-syntax-import-meta": "npm:^7.10.4" + "@babel/plugin-syntax-json-strings": "npm:^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" + "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4" + "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" + "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3" + "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" + "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" + "@babel/plugin-syntax-top-level-await": "npm:^7.14.5" + peerDependencies: + "@babel/core": ^7.0.0 || ^8.0.0-0 + checksum: 10/3608fa671cfa46364ea6ec704b8fcdd7514b7b70e6ec09b1199e13ae73ed346c51d5ce2cb6d4d5b295f6a3f2cad1fdeec2308aa9e037002dd7c929194cc838ea + languageName: node + linkType: hard + "babel-preset-jest@npm:^29.6.3": version: 29.6.3 resolution: "babel-preset-jest@npm:29.6.3" @@ -13383,6 +13626,13 @@ __metadata: languageName: node linkType: hard +"ci-info@npm:^4.2.0": + version: 4.4.0 + resolution: "ci-info@npm:4.4.0" + checksum: 10/dfded0c630267d89660c8abb988ac8395a382bdfefedcc03e3e2858523312c5207db777c239c34774e3fcff11f015477c19d2ac8a58ea58aa476614a2e64f434 + languageName: node + linkType: hard + "cipher-base@npm:^1.0.0, cipher-base@npm:^1.0.1, cipher-base@npm:^1.0.3": version: 1.0.4 resolution: "cipher-base@npm:1.0.4" @@ -15740,6 +15990,20 @@ __metadata: languageName: node linkType: hard +"expect@npm:30.4.1": + version: 30.4.1 + resolution: "expect@npm:30.4.1" + dependencies: + "@jest/expect-utils": "npm:30.4.1" + "@jest/get-type": "npm:30.1.0" + jest-matcher-utils: "npm:30.4.1" + jest-message-util: "npm:30.4.1" + jest-mock: "npm:30.4.1" + jest-util: "npm:30.4.1" + checksum: 10/f25051e5073c55369199ec3108ac01c60074bd09dad0b5a6c9fe40596438051cb52607e0e97505126422535b8d0dacab13aa29bb14e9fac71630bc710201a3f1 + languageName: node + linkType: hard + "expect@npm:^29.0.0, expect@npm:^29.7.0": version: 29.7.0 resolution: "expect@npm:29.7.0" @@ -15993,7 +16257,7 @@ __metadata: languageName: node linkType: hard -"fb-watchman@npm:^2.0.0": +"fb-watchman@npm:^2.0.0, fb-watchman@npm:^2.0.2": version: 2.0.2 resolution: "fb-watchman@npm:2.0.2" dependencies: @@ -16333,7 +16597,7 @@ __metadata: languageName: node linkType: hard -"fsevents@npm:^2.3.2, fsevents@npm:~2.3.2, fsevents@npm:~2.3.3": +"fsevents@npm:^2.3.2, fsevents@npm:^2.3.3, fsevents@npm:~2.3.2, fsevents@npm:~2.3.3": version: 2.3.3 resolution: "fsevents@npm:2.3.3" dependencies: @@ -16343,7 +16607,7 @@ __metadata: languageName: node linkType: hard -"fsevents@patch:fsevents@npm%3A^2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.3#optional!builtin": +"fsevents@patch:fsevents@npm%3A^2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A^2.3.3#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.3#optional!builtin": version: 2.3.3 resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1" dependencies: @@ -17837,7 +18101,7 @@ __metadata: languageName: node linkType: hard -"istanbul-lib-instrument@npm:^6.0.0": +"istanbul-lib-instrument@npm:^6.0.0, istanbul-lib-instrument@npm:^6.0.2": version: 6.0.3 resolution: "istanbul-lib-instrument@npm:6.0.3" dependencies: @@ -18011,6 +18275,18 @@ __metadata: languageName: node linkType: hard +"jest-diff@npm:30.4.1": + version: 30.4.1 + resolution: "jest-diff@npm:30.4.1" + dependencies: + "@jest/diff-sequences": "npm:30.4.0" + "@jest/get-type": "npm:30.1.0" + chalk: "npm:^4.1.2" + pretty-format: "npm:30.4.1" + checksum: 10/594212df96bf101170afdb7eebd188d6d7d27241cbdd18b61d95f1142a3c94ae3b270377d15e719fb3c5efe4458d32acba8ad13dd6230dd7d6917a9eebb32625 + languageName: node + linkType: hard + "jest-diff@npm:^29.7.0": version: 29.7.0 resolution: "jest-diff@npm:29.7.0" @@ -18087,6 +18363,28 @@ __metadata: languageName: node linkType: hard +"jest-haste-map@npm:30.4.1": + version: 30.4.1 + resolution: "jest-haste-map@npm:30.4.1" + dependencies: + "@jest/types": "npm:30.4.1" + "@types/node": "npm:*" + anymatch: "npm:^3.1.3" + fb-watchman: "npm:^2.0.2" + fsevents: "npm:^2.3.3" + graceful-fs: "npm:^4.2.11" + jest-regex-util: "npm:30.4.0" + jest-util: "npm:30.4.1" + jest-worker: "npm:30.4.1" + picomatch: "npm:^4.0.3" + walker: "npm:^1.0.8" + dependenciesMeta: + fsevents: + optional: true + checksum: 10/d26404c7258d03fa423604191bca39707438ca1e62a9a471c92fcd468fa386cbdce2c50b3834fb830b25836e3eee34e3070d22b016b42f0ab626c157f5726eeb + languageName: node + linkType: hard + "jest-haste-map@npm:^29.7.0": version: 29.7.0 resolution: "jest-haste-map@npm:29.7.0" @@ -18120,6 +18418,18 @@ __metadata: languageName: node linkType: hard +"jest-matcher-utils@npm:30.4.1": + version: 30.4.1 + resolution: "jest-matcher-utils@npm:30.4.1" + dependencies: + "@jest/get-type": "npm:30.1.0" + chalk: "npm:^4.1.2" + jest-diff: "npm:30.4.1" + pretty-format: "npm:30.4.1" + checksum: 10/4da6e5c7fe5903fae7394233ea4b892567fb027065670c03096d01be0b389f858055c5ade20d59e82fedec6f3287e6f1720de526cd9a9ad3495432320adb9194 + languageName: node + linkType: hard + "jest-matcher-utils@npm:^29.7.0": version: 29.7.0 resolution: "jest-matcher-utils@npm:29.7.0" @@ -18132,6 +18442,24 @@ __metadata: languageName: node linkType: hard +"jest-message-util@npm:30.4.1": + version: 30.4.1 + resolution: "jest-message-util@npm:30.4.1" + dependencies: + "@babel/code-frame": "npm:^7.27.1" + "@jest/types": "npm:30.4.1" + "@types/stack-utils": "npm:^2.0.3" + chalk: "npm:^4.1.2" + graceful-fs: "npm:^4.2.11" + jest-util: "npm:30.4.1" + picomatch: "npm:^4.0.3" + pretty-format: "npm:30.4.1" + slash: "npm:^3.0.0" + stack-utils: "npm:^2.0.6" + checksum: 10/f83894efa37aa9c61c0a559b1027ecdb0d0cd8afd3e8ea74e797c707d58daea814e72f04b6db0bb6a148c12ae203e9c6e6c5544832ca5fae286c4f80c18ddc3f + languageName: node + linkType: hard + "jest-message-util@npm:^29.7.0": version: 29.7.0 resolution: "jest-message-util@npm:29.7.0" @@ -18149,6 +18477,17 @@ __metadata: languageName: node linkType: hard +"jest-mock@npm:30.4.1": + version: 30.4.1 + resolution: "jest-mock@npm:30.4.1" + dependencies: + "@jest/types": "npm:30.4.1" + "@types/node": "npm:*" + jest-util: "npm:30.4.1" + checksum: 10/8d0c2794130217b9030b888ce380fe57d82388eec19351bd666440ba46f1e24a7e2bdf42cbe9bcfda2b881d4c0ea09db3c80131b9ab788fb5224af2a1339b422 + languageName: node + linkType: hard + "jest-mock@npm:^29.7.0": version: 29.7.0 resolution: "jest-mock@npm:29.7.0" @@ -18172,6 +18511,13 @@ __metadata: languageName: node linkType: hard +"jest-regex-util@npm:30.4.0": + version: 30.4.0 + resolution: "jest-regex-util@npm:30.4.0" + checksum: 10/8664fcc1d07c8236a3bd012c0f06ae9d14d96e758b32ee340a3a7c4c326d0b5052d8c4ae4f4c4184f08bf78723d905352f22923647df9658ace3604f03bf074f + languageName: node + linkType: hard + "jest-regex-util@npm:^29.6.3": version: 29.6.3 resolution: "jest-regex-util@npm:29.6.3" @@ -18275,6 +18621,35 @@ __metadata: languageName: node linkType: hard +"jest-snapshot@npm:30.4.1": + version: 30.4.1 + resolution: "jest-snapshot@npm:30.4.1" + dependencies: + "@babel/core": "npm:^7.27.4" + "@babel/generator": "npm:^7.27.5" + "@babel/plugin-syntax-jsx": "npm:^7.27.1" + "@babel/plugin-syntax-typescript": "npm:^7.27.1" + "@babel/types": "npm:^7.27.3" + "@jest/expect-utils": "npm:30.4.1" + "@jest/get-type": "npm:30.1.0" + "@jest/snapshot-utils": "npm:30.4.1" + "@jest/transform": "npm:30.4.1" + "@jest/types": "npm:30.4.1" + babel-preset-current-node-syntax: "npm:^1.2.0" + chalk: "npm:^4.1.2" + expect: "npm:30.4.1" + graceful-fs: "npm:^4.2.11" + jest-diff: "npm:30.4.1" + jest-matcher-utils: "npm:30.4.1" + jest-message-util: "npm:30.4.1" + jest-util: "npm:30.4.1" + pretty-format: "npm:30.4.1" + semver: "npm:^7.7.2" + synckit: "npm:^0.11.8" + checksum: 10/6135108d3e0e9fb93ed10fd9ad91d8dbe56f90a9ea84c32a0b551518f8c71f363299dcc301717f3ed82cfe2a276d7993d2b3ccfabea3e8020d49ae8b0f9b6cd8 + languageName: node + linkType: hard + "jest-snapshot@npm:^29.7.0": version: 29.7.0 resolution: "jest-snapshot@npm:29.7.0" @@ -18303,6 +18678,20 @@ __metadata: languageName: node linkType: hard +"jest-util@npm:30.4.1": + version: 30.4.1 + resolution: "jest-util@npm:30.4.1" + dependencies: + "@jest/types": "npm:30.4.1" + "@types/node": "npm:*" + chalk: "npm:^4.1.2" + ci-info: "npm:^4.2.0" + graceful-fs: "npm:^4.2.11" + picomatch: "npm:^4.0.3" + checksum: 10/603093e12076906afcf28be514d5b7ac4e3c0e26997b0047614cf2a308b65d773137304a1fb011d747517e881aeed067f6606b9937f5b838d67f6e5734b49ebe + languageName: node + linkType: hard + "jest-util@npm:^26.0.0": version: 26.6.2 resolution: "jest-util@npm:26.6.2" @@ -18370,6 +18759,19 @@ __metadata: languageName: node linkType: hard +"jest-worker@npm:30.4.1": + version: 30.4.1 + resolution: "jest-worker@npm:30.4.1" + dependencies: + "@types/node": "npm:*" + "@ungap/structured-clone": "npm:^1.3.0" + jest-util: "npm:30.4.1" + merge-stream: "npm:^2.0.0" + supports-color: "npm:^8.1.1" + checksum: 10/ff6af73c9097fc07e90490d3e1e354c702390ef66f7f40054a15dd6d56809a25634179969ff80bde782a6c645f49fa48bf3aacfe7d05af7315c48020f9b2b1cd + languageName: node + linkType: hard + "jest-worker@npm:^27.4.5": version: 27.5.1 resolution: "jest-worker@npm:27.5.1" @@ -21330,6 +21732,13 @@ __metadata: languageName: node linkType: hard +"picomatch@npm:^4.0.3": + version: 4.0.5 + resolution: "picomatch@npm:4.0.5" + checksum: 10/8bad770af9dcdb7f94ad1a893adcbe08a97d75a18872f8fed37161d3124217471c402b3929f051532f795f4ff2e53dcebb1644df4c1a5f3a9c476fef3b9f8c51 + languageName: node + linkType: hard + "picomatch@npm:^4.0.4": version: 4.0.4 resolution: "picomatch@npm:4.0.4" @@ -21351,6 +21760,13 @@ __metadata: languageName: node linkType: hard +"pirates@npm:^4.0.7": + version: 4.0.7 + resolution: "pirates@npm:4.0.7" + checksum: 10/2427f371366081ae42feb58214f04805d6b41d6b84d74480ebcc9e0ddbd7105a139f7c653daeaf83ad8a1a77214cf07f64178e76de048128fec501eab3305a96 + languageName: node + linkType: hard + "pkg-dir@npm:^4.2.0": version: 4.2.0 resolution: "pkg-dir@npm:4.2.0" @@ -22281,6 +22697,18 @@ __metadata: languageName: node linkType: hard +"pretty-format@npm:30.4.1": + version: 30.4.1 + resolution: "pretty-format@npm:30.4.1" + dependencies: + "@jest/schemas": "npm:30.4.1" + ansi-styles: "npm:^5.2.0" + react-is-18: "npm:react-is@^18.3.1" + react-is-19: "npm:react-is@^19.2.5" + checksum: 10/60311ef47a646eeaec0432efe66290cb6f0d2eccb123a28ad4ab6d7e53087bc62db91cfd54c3cc00c89d6875aefb2bf6264381b6c9411ce6bff3d6aa8280abad + languageName: node + linkType: hard + "pretty-format@npm:^29.0.0, pretty-format@npm:^29.7.0": version: 29.7.0 resolution: "pretty-format@npm:29.7.0" @@ -22642,6 +23070,20 @@ __metadata: languageName: node linkType: hard +"react-is-18@npm:react-is@^18.3.1, react-is@npm:^18.0.0": + version: 18.3.1 + resolution: "react-is@npm:18.3.1" + checksum: 10/d5f60c87d285af24b1e1e7eaeb123ec256c3c8bdea7061ab3932e3e14685708221bf234ec50b21e10dd07f008f1b966a2730a0ce4ff67905b3872ff2042aec22 + languageName: node + linkType: hard + +"react-is-19@npm:react-is@^19.2.5": + version: 19.2.7 + resolution: "react-is@npm:19.2.7" + checksum: 10/ae0d3ae7638aa2fa2a82a78a817daf2806e57fa0aef357d07e1e8d1e9a301902e5967168e9334b5816db0df8fa980a725cd57569ba5a9e6e76a71e117b18be04 + languageName: node + linkType: hard + "react-is@npm:^16.13.1, react-is@npm:^16.6.0, react-is@npm:^16.7.0": version: 16.13.1 resolution: "react-is@npm:16.13.1" @@ -22649,13 +23091,6 @@ __metadata: languageName: node linkType: hard -"react-is@npm:^18.0.0": - version: 18.3.1 - resolution: "react-is@npm:18.3.1" - checksum: 10/d5f60c87d285af24b1e1e7eaeb123ec256c3c8bdea7061ab3932e3e14685708221bf234ec50b21e10dd07f008f1b966a2730a0ce4ff67905b3872ff2042aec22 - languageName: node - linkType: hard - "react-json-view-lite@npm:^2.3.0": version: 2.5.0 resolution: "react-json-view-lite@npm:2.5.0" @@ -23492,6 +23927,15 @@ __metadata: languageName: node linkType: hard +"semver@npm:^7.7.2": + version: 7.8.5 + resolution: "semver@npm:7.8.5" + bin: + semver: bin/semver.js + checksum: 10/9b01d2ff11e6e4a4539b7ca3c5f280c8704cb397a28504469f2ed4f00ad2194748d756647362a9712fff30984d15772ab7f083108c2fb508e2096ae9e708f22c + languageName: node + linkType: hard + "send@npm:~0.19.0, send@npm:~0.19.1": version: 0.19.2 resolution: "send@npm:0.19.2" @@ -24071,7 +24515,7 @@ __metadata: languageName: node linkType: hard -"stack-utils@npm:^2.0.3": +"stack-utils@npm:^2.0.3, stack-utils@npm:^2.0.6": version: 2.0.6 resolution: "stack-utils@npm:2.0.6" dependencies: @@ -24309,7 +24753,7 @@ __metadata: languageName: node linkType: hard -"supports-color@npm:^8, supports-color@npm:^8.0.0": +"supports-color@npm:^8, supports-color@npm:^8.0.0, supports-color@npm:^8.1.1": version: 8.1.1 resolution: "supports-color@npm:8.1.1" dependencies: @@ -24356,6 +24800,15 @@ __metadata: languageName: node linkType: hard +"synckit@npm:^0.11.8": + version: 0.11.13 + resolution: "synckit@npm:0.11.13" + dependencies: + "@pkgr/core": "npm:^0.3.6" + checksum: 10/188544a829dbd38abd144281960835c1f8027aaa495b7c40d39ebf0c1c63a4a41c0edc42818b7ada9b5c0c15fba2f625b472220d128798fe98f9181fed84e6a2 + languageName: node + linkType: hard + "synckit@npm:^0.9.1": version: 0.9.2 resolution: "synckit@npm:0.9.2" @@ -25850,7 +26303,7 @@ __metadata: languageName: node linkType: hard -"write-file-atomic@npm:^5.0.0": +"write-file-atomic@npm:^5.0.0, write-file-atomic@npm:^5.0.1": version: 5.0.1 resolution: "write-file-atomic@npm:5.0.1" dependencies: From bc7803a7de4b150704ebeb0183d7106968822179 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Fri, 17 Jul 2026 00:25:56 +0200 Subject: [PATCH 136/136] patch: add `dist/esm/index.d.mts` to `@metamask/safe-event-emitter` TypeScript with `moduleResolution: "Node16"` determines whether a `.d.ts` file is ESM or CJS based on the package's `"type"` field. `@metamask/safe-event-emitter` has no `"type": "module"`, so TypeScript treats its ESM type declarations (`dist/esm/index.d.ts`) as CJS, causing the default import to resolve as the module namespace rather than the class constructor. The fix: add a `dist/esm/index.d.mts` file (which TypeScript always treats as ESM, regardless of `"type"`) and point the `"import"` condition in the package's `exports` field at it. --- ...e-event-emitter-npm-3.1.1-a7872b1f5a.patch | 24 +++++++++++++++++++ package.json | 4 +++- packages/eth-block-tracker/package.json | 2 +- packages/json-rpc-engine/package.json | 2 +- .../json-rpc-middleware-stream/package.json | 2 +- .../multichain-api-middleware/package.json | 2 +- yarn.lock | 17 +++++++++---- 7 files changed, 43 insertions(+), 10 deletions(-) create mode 100644 .yarn/patches/@metamask-safe-event-emitter-npm-3.1.1-a7872b1f5a.patch diff --git a/.yarn/patches/@metamask-safe-event-emitter-npm-3.1.1-a7872b1f5a.patch b/.yarn/patches/@metamask-safe-event-emitter-npm-3.1.1-a7872b1f5a.patch new file mode 100644 index 00000000000..a5ef80d01f5 --- /dev/null +++ b/.yarn/patches/@metamask-safe-event-emitter-npm-3.1.1-a7872b1f5a.patch @@ -0,0 +1,24 @@ +diff --git a/dist/esm/index.d.mts b/dist/esm/index.d.mts +new file mode 100644 +index 0000000000000000000000000000000000000000..d48ab7ade4e48f566f3ca48c60636368919b1044 +--- /dev/null ++++ b/dist/esm/index.d.mts +@@ -0,0 +1,5 @@ ++/// ++import { EventEmitter } from 'events'; ++export default class SafeEventEmitter extends EventEmitter { ++ emit(type: string, ...args: any[]): boolean; ++} +diff --git a/package.json b/package.json +index 87ca2f6363c43d2f9d45be268e8ba03c1669c02c..72211f17fe3976ef8dac7d8512d60a6de1275fbd 100644 +--- a/package.json ++++ b/package.json +@@ -8,7 +8,7 @@ + "exports": { + ".": { + "import": { +- "types": "./dist/esm/index.d.ts", ++ "types": "./dist/esm/index.d.mts", + "default": "./dist/esm/index.mjs" + }, + "require": { diff --git a/package.json b/package.json index 33125a74521..35dd8de9240 100644 --- a/package.json +++ b/package.json @@ -111,7 +111,9 @@ "@nktkas/hyperliquid@npm:^0.33.1": "patch:@nktkas/hyperliquid@npm%3A0.33.1#~/.yarn/patches/@nktkas-hyperliquid-npm-0.33.1-6a541fdd1d.patch", "elliptic@6.5.4": "^6.5.7", "fast-xml-parser@^4.3.4": "^4.4.1", - "ws@7.4.6": "^7.5.10" + "ws@7.4.6": "^7.5.10", + "@metamask/safe-event-emitter@npm:^3.0.0": "patch:@metamask/safe-event-emitter@npm%3A3.1.1#~/.yarn/patches/@metamask-safe-event-emitter-npm-3.1.1-a7872b1f5a.patch", + "@metamask/safe-event-emitter@npm:^3.1.1": "patch:@metamask/safe-event-emitter@npm%3A3.1.1#~/.yarn/patches/@metamask-safe-event-emitter-npm-3.1.1-a7872b1f5a.patch" }, "simple-git-hooks": { "pre-push": "yarn lint" diff --git a/packages/eth-block-tracker/package.json b/packages/eth-block-tracker/package.json index d08b4d86f4b..fccaeb6cd40 100644 --- a/packages/eth-block-tracker/package.json +++ b/packages/eth-block-tracker/package.json @@ -49,7 +49,7 @@ }, "dependencies": { "@metamask/eth-json-rpc-provider": "^6.0.1", - "@metamask/safe-event-emitter": "^3.0.0", + "@metamask/safe-event-emitter": "patch:@metamask/safe-event-emitter@npm%3A3.1.1#~/.yarn/patches/@metamask-safe-event-emitter-npm-3.1.1-a7872b1f5a.patch", "@metamask/utils": "^11.11.0", "json-rpc-random-id": "^1.0.1" }, diff --git a/packages/json-rpc-engine/package.json b/packages/json-rpc-engine/package.json index bf87105ba80..dcef9179448 100644 --- a/packages/json-rpc-engine/package.json +++ b/packages/json-rpc-engine/package.json @@ -55,7 +55,7 @@ "dependencies": { "@metamask/messenger": "^2.0.0", "@metamask/rpc-errors": "^7.0.2", - "@metamask/safe-event-emitter": "^3.0.0", + "@metamask/safe-event-emitter": "patch:@metamask/safe-event-emitter@npm%3A3.1.1#~/.yarn/patches/@metamask-safe-event-emitter-npm-3.1.1-a7872b1f5a.patch", "@metamask/utils": "^11.11.0", "@types/deep-freeze-strict": "^1.1.0", "deep-freeze-strict": "^1.1.1", diff --git a/packages/json-rpc-middleware-stream/package.json b/packages/json-rpc-middleware-stream/package.json index 17935e1e6f9..4bc02d2c451 100644 --- a/packages/json-rpc-middleware-stream/package.json +++ b/packages/json-rpc-middleware-stream/package.json @@ -47,7 +47,7 @@ }, "dependencies": { "@metamask/json-rpc-engine": "^10.5.0", - "@metamask/safe-event-emitter": "^3.0.0", + "@metamask/safe-event-emitter": "patch:@metamask/safe-event-emitter@npm%3A3.1.1#~/.yarn/patches/@metamask-safe-event-emitter-npm-3.1.1-a7872b1f5a.patch", "@metamask/utils": "^11.11.0", "readable-stream": "^3.6.2" }, diff --git a/packages/multichain-api-middleware/package.json b/packages/multichain-api-middleware/package.json index d5f916dc9e9..b4f5495df25 100644 --- a/packages/multichain-api-middleware/package.json +++ b/packages/multichain-api-middleware/package.json @@ -64,7 +64,7 @@ "@metamask/auto-changelog": "^6.1.0", "@metamask/eth-json-rpc-filters": "^9.0.0", "@metamask/multichain-transactions-controller": "^7.1.1", - "@metamask/safe-event-emitter": "^3.0.0", + "@metamask/safe-event-emitter": "patch:@metamask/safe-event-emitter@npm%3A3.1.1#~/.yarn/patches/@metamask-safe-event-emitter-npm-3.1.1-a7872b1f5a.patch", "@types/jest": "^29.5.14", "deepmerge": "^4.2.2", "jest": "^29.7.0", diff --git a/yarn.lock b/yarn.lock index a77257dbb26..451f57f699d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6781,7 +6781,7 @@ __metadata: "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/eth-json-rpc-provider": "npm:^6.0.1" "@metamask/json-rpc-engine": "npm:^10.5.0" - "@metamask/safe-event-emitter": "npm:^3.0.0" + "@metamask/safe-event-emitter": "patch:@metamask/safe-event-emitter@npm%3A3.1.1#~/.yarn/patches/@metamask-safe-event-emitter-npm-3.1.1-a7872b1f5a.patch" "@metamask/utils": "npm:^11.11.0" "@types/jest": "npm:^29.5.14" "@types/json-rpc-random-id": "npm:^1.0.1" @@ -7267,7 +7267,7 @@ __metadata: "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/messenger": "npm:^2.0.0" "@metamask/rpc-errors": "npm:^7.0.2" - "@metamask/safe-event-emitter": "npm:^3.0.0" + "@metamask/safe-event-emitter": "patch:@metamask/safe-event-emitter@npm%3A3.1.1#~/.yarn/patches/@metamask-safe-event-emitter-npm-3.1.1-a7872b1f5a.patch" "@metamask/utils": "npm:^11.11.0" "@types/deep-freeze-strict": "npm:^1.1.0" "@types/jest": "npm:^29.5.14" @@ -7288,7 +7288,7 @@ __metadata: dependencies: "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/json-rpc-engine": "npm:^10.5.0" - "@metamask/safe-event-emitter": "npm:^3.0.0" + "@metamask/safe-event-emitter": "patch:@metamask/safe-event-emitter@npm%3A3.1.1#~/.yarn/patches/@metamask-safe-event-emitter-npm-3.1.1-a7872b1f5a.patch" "@metamask/utils": "npm:^11.11.0" "@types/jest": "npm:^29.5.14" "@types/readable-stream": "npm:^2.3.0" @@ -7755,7 +7755,7 @@ __metadata: "@metamask/network-controller": "npm:^34.0.0" "@metamask/permission-controller": "npm:^13.1.1" "@metamask/rpc-errors": "npm:^7.0.2" - "@metamask/safe-event-emitter": "npm:^3.0.0" + "@metamask/safe-event-emitter": "patch:@metamask/safe-event-emitter@npm%3A3.1.1#~/.yarn/patches/@metamask-safe-event-emitter-npm-3.1.1-a7872b1f5a.patch" "@metamask/snaps-controllers": "npm:^19.0.0" "@metamask/utils": "npm:^11.11.0" "@open-rpc/meta-schema": "npm:^1.14.6" @@ -8477,13 +8477,20 @@ __metadata: languageName: node linkType: hard -"@metamask/safe-event-emitter@npm:^3.0.0, @metamask/safe-event-emitter@npm:^3.1.1": +"@metamask/safe-event-emitter@npm:3.1.1": version: 3.1.1 resolution: "@metamask/safe-event-emitter@npm:3.1.1" checksum: 10/e24db4d7c20764bfc5b025065f92518c805f0ffb1da4820078b8cff7dcae964c0f354cf053fcb7ac659de015d5ffdf21aae5e8d44e191ee8faa9066855f22653 languageName: node linkType: hard +"@metamask/safe-event-emitter@patch:@metamask/safe-event-emitter@npm%3A3.1.1#~/.yarn/patches/@metamask-safe-event-emitter-npm-3.1.1-a7872b1f5a.patch": + version: 3.1.1 + resolution: "@metamask/safe-event-emitter@patch:@metamask/safe-event-emitter@npm%3A3.1.1#~/.yarn/patches/@metamask-safe-event-emitter-npm-3.1.1-a7872b1f5a.patch::version=3.1.1&hash=4a033d" + checksum: 10/b47560199f61105a5a719b907400395893c52aa6a1d9aa37a4128b054351dd45fb485655dcb71f926e58da406f39f6a93c60396cc00ed1753a97ac3f5a2c7e5e + languageName: node + linkType: hard + "@metamask/sample-controllers@workspace:packages/sample-controllers": version: 0.0.0-use.local resolution: "@metamask/sample-controllers@workspace:packages/sample-controllers"