diff --git a/.github/workflows/lint-build-test.yml b/.github/workflows/lint-build-test.yml index 2f5f9ba0722..6eb2976dadd 100644 --- a/.github/workflows/lint-build-test.yml +++ b/.github/workflows/lint-build-test.yml @@ -220,7 +220,7 @@ jobs: echo "Building changed packages:" jq -r '"- " + (.references[].path | ltrimstr("./") | rtrimstr("/tsconfig.build.json"))' "$TSCONFIG" echo "" - yarn ts-bridge --project "$TSCONFIG" --verbose + yarn tsc --build --project "$TSCONFIG" --verbose else echo "No packages to build." fi diff --git a/.prettierrc.js b/.prettierrc.cjs similarity index 100% rename from .prettierrc.js rename to .prettierrc.cjs 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/eslint-suppressions.json b/eslint-suppressions.json index cc77f42c19a..54b71e8f501 100644 --- a/eslint-suppressions.json +++ b/eslint-suppressions.json @@ -195,7 +195,7 @@ "count": 1 } }, - "packages/assets-controllers/jest.environment.js": { + "packages/assets-controllers/jest.environment.cjs": { "n/prefer-global/text-decoder": { "count": 1 }, @@ -599,7 +599,7 @@ "count": 25 }, "@typescript-eslint/prefer-nullish-coalescing": { - "count": 1 + "count": 2 }, "no-negated-condition": { "count": 1 @@ -2111,9 +2111,6 @@ "@typescript-eslint/explicit-function-return-type": { "count": 10 }, - "@typescript-eslint/naming-convention": { - "count": 1 - }, "@typescript-eslint/no-explicit-any": { "count": 4 }, diff --git a/eslint.config.mjs b/eslint.config.mjs index 297616d0ddb..bc2658108d8 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -125,7 +125,7 @@ const config = createConfig([ extends: [nodejs], }, { - files: ['**/*.{js,cjs}'], + files: ['**/*.cjs'], languageOptions: { sourceType: 'script', ecmaVersion: 2020, @@ -181,6 +181,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: { @@ -221,14 +225,14 @@ const config = createConfig([ }, }, { - files: ['**/jest.environment.js'], + files: ['**/jest.environment.cjs'], rules: { // These files run under Node, and thus `require(...)` is expected. 'n/global-require': 'off', }, }, { - files: ['**/*.mjs'], + files: ['**/*.js', '**/*.mjs'], languageOptions: { sourceType: 'module', }, diff --git a/jest.config.packages.js b/jest.config.packages.cjs similarity index 90% rename from jest.config.packages.js rename to jest.config.packages.cjs index a3e1943acaf..e066df2f412 100644 --- a/jest.config.packages.js +++ b/jest.config.packages.cjs @@ -94,6 +94,11 @@ module.exports = { '/../../node_modules/@metamask/$1', ], '^uuid$': require.resolve('uuid'), + // The sources import `lodash-es`, because `lodash` is CommonJS and its + // named exports cannot be imported from an ES module. The tests compile to + // CommonJS, where the reverse is true, so they are pointed back at + // `lodash`. The two have the same API. + '^lodash-es$': require.resolve('lodash'), }, // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader @@ -190,7 +195,22 @@ module.exports = { // testURL: "http://localhost", // A map from regular expressions to paths to transformers - // transform: undefined, + // The packages are ESM, but Jest runs the tests as CommonJS: Jest only + // treats TypeScript as ESM when the extension is listed in + // `extensionsToTreatAsEsm`, so overriding the module settings here compiles + // the sources to CommonJS for tests without affecting the published build. + transform: { + '^.+\\.tsx?$': [ + 'ts-jest', + { + tsconfig: { + module: 'CommonJS', + moduleResolution: 'Node', + verbatimModuleSyntax: false, + }, + }, + ], + }, // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation // transformIgnorePatterns: undefined diff --git a/jest.config.scripts.js b/jest.config.scripts.cjs similarity index 88% rename from jest.config.scripts.js rename to jest.config.scripts.cjs index 64cd2bd44ac..4a6d8b66f87 100644 --- a/jest.config.scripts.js +++ b/jest.config.scripts.cjs @@ -42,6 +42,15 @@ module.exports = { preset: 'ts-jest', + // Unlike the packages, the scripts use `import.meta`, which has no CommonJS + // equivalent, so their tests run as ESM. Jest only treats TypeScript as ESM + // when the extension is listed here. + extensionsToTreatAsEsm: ['.ts', '.mts'], + + transform: { + '^.+\\.m?tsx?$': ['ts-jest', { useESM: true }], + }, + // "resetMocks" resets all mocks, including mocked modules, to jest.fn(), // between each test case. resetMocks: true, diff --git a/knip.config.mts b/knip.config.mts index d3d13d37c46..abfaf9dd739 100644 --- a/knip.config.mts +++ b/knip.config.mts @@ -7,7 +7,7 @@ const config: KnipConfig = { 'scripts/**/*.{ts,js,sh}', 'tests/**/*.ts', '*.config.{js,cjs,mjs,ts}', - '.prettierrc.js', + '.prettierrc.cjs', ], project: ['scripts/**/*.ts', 'tests/**/*.ts', '*.{js,cjs,mjs,ts}'], ignore: ['scripts/create-package/package-template/**'], @@ -41,7 +41,7 @@ const config: KnipConfig = { ignoreDependencies: [ '@metamask/controller-utils', '@metamask/keyring-internal-api', - 'lodash', + 'lodash-es', ], }, 'packages/analytics-data-regulation-controller': { @@ -66,7 +66,7 @@ const config: KnipConfig = { ignoreDependencies: [ '@metamask/gas-fee-controller', '@metamask/remote-feature-flag-controller', - 'lodash', + 'lodash-es', 'nock', ], }, @@ -127,7 +127,7 @@ const config: KnipConfig = { ignoreDependencies: [ '@metamask/base-controller', '@metamask/superstruct', - 'lodash', + 'lodash-es', ], }, 'packages/multichain-network-controller': { @@ -183,10 +183,10 @@ const config: KnipConfig = { ignoreDependencies: ['cockatiel', 'nock'], }, 'packages/selected-network-controller': { - ignoreDependencies: ['immer', 'lodash', 'nock'], + ignoreDependencies: ['immer', 'lodash-es', 'nock'], }, 'packages/signature-controller': { - ignoreDependencies: ['lodash'], + ignoreDependencies: ['lodash-es'], }, 'packages/snap-account-service': { ignoreDependencies: [ diff --git a/package.json b/package.json index cb902bfdf1d..2737c6da360 100644 --- a/package.json +++ b/package.json @@ -12,11 +12,12 @@ "packages/*" ], "files": [], + "type": "module", "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'", + "build:only-clean": "rimraf -g 'packages/*/dist' 'packages/*/tsconfig.build.tsbuildinfo'", "build:types": "tsc --build tsconfig.build.json --verbose", "changelog:update": "yarn workspaces foreach --all --no-private --parallel --interlaced --verbose run changelog:update", "changelog:validate": "yarn workspaces foreach --all --no-private --parallel --interlaced --verbose run changelog:validate", @@ -53,7 +54,7 @@ "test": "yarn test:scripts --silent --collectCoverage=false --reporters=jest-silent-reporter && yarn test:scripts:shell && yarn test:packages", "test:clean": "yarn workspaces foreach --all --parallel --verbose run test:clean && yarn test", "test:packages": "yarn test:verbose --silent --collectCoverage=false --reporters=jest-silent-reporter", - "test:scripts": "NODE_OPTIONS=--experimental-vm-modules yarn jest --config ./jest.config.scripts.js --silent", + "test:scripts": "NODE_OPTIONS=--experimental-vm-modules yarn jest --config ./jest.config.scripts.cjs --silent", "test:scripts:shell": "node_modules/bats/bin/bats scripts/*.bats", "test:verbose": "yarn workspaces foreach --all --parallel --verbose run test:verbose", "workspaces:list-versions": "./scripts/list-workspace-versions.sh" @@ -61,6 +62,7 @@ "devDependencies": { "@actions/core": "^3.0.1", "@actions/github": "^9.1.1", + "@jest/globals": "^30.4.1", "@lavamoat/allow-scripts": "^3.0.4", "@lavamoat/preinstall-always-fail": "^2.1.0", "@metamask/create-release-branch": "^4.2.2", @@ -74,7 +76,6 @@ "@metamask/network-controller": "^36.0.0", "@metamask/skills": "^0.1.0", "@metamask/utils": "^11.11.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "@types/lodash": "^4.14.191", "@types/node": "^22.13.14", @@ -109,6 +110,7 @@ "rimraf": "^5.0.5", "semver": "^7.6.3", "simple-git-hooks": "^2.8.0", + "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typescript": "~5.3.3", "typescript-eslint": "^8.48.0", diff --git a/packages/account-tree-controller/jest.config.js b/packages/account-tree-controller/jest.config.cjs similarity index 90% rename from packages/account-tree-controller/jest.config.js rename to packages/account-tree-controller/jest.config.cjs index a78c856767b..543a5d9546d 100644 --- a/packages/account-tree-controller/jest.config.js +++ b/packages/account-tree-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/account-tree-controller/package.json b/packages/account-tree-controller/package.json index a2c96eee63f..c3f9b4b801f 100644 --- a/packages/account-tree-controller/package.json +++ b/packages/account-tree-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/account-tree-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/account-tree-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -68,17 +63,17 @@ "@metamask/superstruct": "^3.4.1", "@metamask/utils": "^11.11.0", "fast-deep-equal": "^3.1.3", - "lodash": "^4.17.21" + "lodash-es": "^4.17.21" }, "devDependencies": { "@metamask/account-api": "^2.0.0", "@metamask/auto-changelog": "^6.1.0", "@metamask/eth-hd-keyring": "^15.0.0", "@metamask/providers": "^22.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/accounts-controller/jest.config.js b/packages/accounts-controller/jest.config.cjs similarity index 90% rename from packages/accounts-controller/jest.config.js rename to packages/accounts-controller/jest.config.cjs index 5312c1e6c3a..694b55b218b 100644 --- a/packages/accounts-controller/jest.config.js +++ b/packages/accounts-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/accounts-controller/package.json b/packages/accounts-controller/package.json index ad168c3ccb6..cd8942cb096 100644 --- a/packages/accounts-controller/package.json +++ b/packages/accounts-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/accounts-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/accounts-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -70,17 +65,17 @@ "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": { "@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": "^30.0.0", "@types/readable-stream": "^2.3.0", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/accounts-controller/src/AccountsController.ts b/packages/accounts-controller/src/AccountsController.ts index c4ee9b5ae62..50af609db83 100644 --- a/packages/accounts-controller/src/AccountsController.ts +++ b/packages/accounts-controller/src/AccountsController.ts @@ -34,7 +34,7 @@ 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.js'; import { projectLogger as log } from './logger.js'; diff --git a/packages/accounts-controller/src/utils.ts b/packages/accounts-controller/src/utils.ts index 64090871669..e488b3d62ca 100644 --- a/packages/accounts-controller/src/utils.ts +++ b/packages/accounts-controller/src/utils.ts @@ -6,11 +6,13 @@ import type { Infer } from '@metamask/superstruct'; import { is, number, string, type } from '@metamask/superstruct'; import { hexToBytes } from '@metamask/utils'; import { sha256 } from 'ethereum-cryptography/sha256'; -import type { V4Options } from 'uuid'; import { v4 as uuid } from 'uuid'; import type { AccountId } from './AccountsController.js'; +// This is exported by the `uuid` package, but not importable in ESM. +type V4Options = Exclude[0], undefined>; + /** * Returns the name of the keyring type. * diff --git a/packages/address-book-controller/jest.config.js b/packages/address-book-controller/jest.config.cjs similarity index 90% rename from packages/address-book-controller/jest.config.js rename to packages/address-book-controller/jest.config.cjs index 43c60a649b3..3f1909beebd 100644 --- a/packages/address-book-controller/jest.config.js +++ b/packages/address-book-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/address-book-controller/package.json b/packages/address-book-controller/package.json index 5db5207ecb7..d14f27dc9a6 100644 --- a/packages/address-book-controller/package.json +++ b/packages/address-book-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/address-book-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/address-book-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -62,10 +57,10 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/ai-controllers/jest.config.js b/packages/ai-controllers/jest.config.cjs similarity index 88% rename from packages/ai-controllers/jest.config.js rename to packages/ai-controllers/jest.config.cjs index 55df7971f9f..05bf00fa97e 100644 --- a/packages/ai-controllers/jest.config.js +++ b/packages/ai-controllers/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/ai-controllers/package.json b/packages/ai-controllers/package.json index 2a6526fb30f..554547a51ba 100644 --- a/packages/ai-controllers/package.json +++ b/packages/ai-controllers/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/ai-controllers", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/ai-controllers", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -62,10 +57,10 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/analytics-controller/jest.config.js b/packages/analytics-controller/jest.config.cjs similarity index 90% rename from packages/analytics-controller/jest.config.js rename to packages/analytics-controller/jest.config.cjs index 5c48b1b92e8..6a48a293141 100644 --- a/packages/analytics-controller/jest.config.js +++ b/packages/analytics-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/analytics-controller/package.json b/packages/analytics-controller/package.json index 4b885de8219..fdbd980fe3b 100644 --- a/packages/analytics-controller/package.json +++ b/packages/analytics-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/analytics-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/analytics-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -59,16 +54,16 @@ "@metamask/geolocation-controller": "^1.0.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": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "@types/uuid": "^8.3.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/analytics-controller/src/AnalyticsController.ts b/packages/analytics-controller/src/AnalyticsController.ts index 085142bba6c..dd8ceac3813 100644 --- a/packages/analytics-controller/src/AnalyticsController.ts +++ b/packages/analytics-controller/src/AnalyticsController.ts @@ -10,7 +10,7 @@ import type { } from '@metamask/geolocation-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.js'; @@ -24,7 +24,7 @@ import type { AnalyticsLocationContext, AnalyticsUserTraits, AnalyticsTrackingEvent, -} from './AnalyticsPlatformAdapter.types'; +} from './AnalyticsPlatformAdapter.types.js'; import { analyticsControllerSelectors } from './selectors.js'; // === GENERAL === diff --git a/packages/analytics-controller/src/index.ts b/packages/analytics-controller/src/index.ts index a89cc035e82..fa29064acbe 100644 --- a/packages/analytics-controller/src/index.ts +++ b/packages/analytics-controller/src/index.ts @@ -19,7 +19,7 @@ export type { AnalyticsUserTraits, AnalyticsPlatformAdapter, AnalyticsTrackingEvent, -} from './AnalyticsPlatformAdapter.types'; +} from './AnalyticsPlatformAdapter.types.js'; // Export state types export type { diff --git a/packages/analytics-data-regulation-controller/jest.config.js b/packages/analytics-data-regulation-controller/jest.config.cjs similarity index 90% rename from packages/analytics-data-regulation-controller/jest.config.js rename to packages/analytics-data-regulation-controller/jest.config.cjs index ca084133399..6456e074bb0 100644 --- a/packages/analytics-data-regulation-controller/jest.config.js +++ b/packages/analytics-data-regulation-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/analytics-data-regulation-controller/package.json b/packages/analytics-data-regulation-controller/package.json index fcc0951d69d..d0dc21732bb 100644 --- a/packages/analytics-data-regulation-controller/package.json +++ b/packages/analytics-data-regulation-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/analytics-data-regulation-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/analytics-data-regulation-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -62,11 +57,11 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", "nock": "^13.3.1", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/announcement-controller/jest.config.js b/packages/announcement-controller/jest.config.cjs similarity index 90% rename from packages/announcement-controller/jest.config.js rename to packages/announcement-controller/jest.config.cjs index ca084133399..6456e074bb0 100644 --- a/packages/announcement-controller/jest.config.js +++ b/packages/announcement-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/announcement-controller/package.json b/packages/announcement-controller/package.json index 1d23381c2f2..63b4f248f63 100644 --- a/packages/announcement-controller/package.json +++ b/packages/announcement-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/announcement-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/announcement-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -60,10 +55,10 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/app-metadata-controller/jest.config.js b/packages/app-metadata-controller/jest.config.cjs similarity index 90% rename from packages/app-metadata-controller/jest.config.js rename to packages/app-metadata-controller/jest.config.cjs index ca084133399..6456e074bb0 100644 --- a/packages/app-metadata-controller/jest.config.js +++ b/packages/app-metadata-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/app-metadata-controller/package.json b/packages/app-metadata-controller/package.json index d0e875757ee..0e8c4f5c494 100644 --- a/packages/app-metadata-controller/package.json +++ b/packages/app-metadata-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/app-metadata-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/app-metadata-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -58,10 +53,10 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/approval-controller/jest.config.js b/packages/approval-controller/jest.config.cjs similarity index 90% rename from packages/approval-controller/jest.config.js rename to packages/approval-controller/jest.config.cjs index ca084133399..6456e074bb0 100644 --- a/packages/approval-controller/jest.config.js +++ b/packages/approval-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/approval-controller/package.json b/packages/approval-controller/package.json index 1d800dfc6e3..6704fbf4198 100644 --- a/packages/approval-controller/package.json +++ b/packages/approval-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/approval-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/approval-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -63,10 +58,10 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/assets-controller/jest.config.js b/packages/assets-controller/jest.config.cjs similarity index 90% rename from packages/assets-controller/jest.config.js rename to packages/assets-controller/jest.config.cjs index 49ea0e46510..64b2076d514 100644 --- a/packages/assets-controller/jest.config.js +++ b/packages/assets-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/assets-controller/package.json b/packages/assets-controller/package.json index d88057d8703..9ac96a121bd 100644 --- a/packages/assets-controller/package.json +++ b/packages/assets-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/assets-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/assets-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -84,16 +79,17 @@ "@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": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "@types/lodash": "^4.14.191", + "@types/lodash-es": "^4.17.12", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/assets-controller/src/AssetsController.ts b/packages/assets-controller/src/AssetsController.ts index 65a2cdba703..367de48a948 100644 --- a/packages/assets-controller/src/AssetsController.ts +++ b/packages/assets-controller/src/AssetsController.ts @@ -71,8 +71,8 @@ import { parseCaipChainId, } from '@metamask/utils'; import { Mutex } from 'async-mutex'; -import BigNumberJS from 'bignumber.js'; -import { isEqual } from 'lodash'; +import { BigNumber as BigNumberJS } from 'bignumber.js'; +import { isEqual } from 'lodash-es'; import type { AssetsControllerMethodActions } from './AssetsController-method-action-types.js'; import type { diff --git a/packages/assets-controller/src/data-sources/AccountActivityDataSource.ts b/packages/assets-controller/src/data-sources/AccountActivityDataSource.ts index 196af953ac0..a5ef47fdbac 100644 --- a/packages/assets-controller/src/data-sources/AccountActivityDataSource.ts +++ b/packages/assets-controller/src/data-sources/AccountActivityDataSource.ts @@ -5,7 +5,7 @@ import type { } from '@metamask/core-backend'; import type { InternalAccount } from '@metamask/keyring-internal-api'; import { isCaipChainId } from '@metamask/utils'; -import BigNumberJS from 'bignumber.js'; +import { BigNumber as BigNumberJS } from 'bignumber.js'; import type { AssetsControllerMessenger } from '../AssetsController.js'; import { projectLogger, createModuleLogger } from '../logger.js'; diff --git a/packages/assets-controller/src/data-sources/RpcDataSource.ts b/packages/assets-controller/src/data-sources/RpcDataSource.ts index 8b3a7795db2..e9b0670ff05 100644 --- a/packages/assets-controller/src/data-sources/RpcDataSource.ts +++ b/packages/assets-controller/src/data-sources/RpcDataSource.ts @@ -22,7 +22,7 @@ import { KnownCaipNamespace, } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import BigNumberJS from 'bignumber.js'; +import { BigNumber as BigNumberJS } from 'bignumber.js'; import type { AssetsControllerGetStateAction, 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 dfc9b1922fa..e374149394f 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 @@ -5,7 +5,7 @@ import { parseCaipChainId, } from '@metamask/utils'; import type { CaipChainId, Hex } from '@metamask/utils'; -import BigNumberJS from 'bignumber.js'; +import { BigNumber as BigNumberJS } from 'bignumber.js'; import type { ChainId } from '../types/index.js'; diff --git a/packages/assets-controller/src/migrations/healAssetsInfoMetadata.ts b/packages/assets-controller/src/migrations/healAssetsInfoMetadata.ts index 5546a7faefe..e3f75f6fbb5 100644 --- a/packages/assets-controller/src/migrations/healAssetsInfoMetadata.ts +++ b/packages/assets-controller/src/migrations/healAssetsInfoMetadata.ts @@ -7,7 +7,7 @@ import { hasProperty, isObject, } from '@metamask/utils'; -import { cloneDeep } from 'lodash'; +import { cloneDeep } from 'lodash-es'; import { createModuleLogger, projectLogger } from '../logger.js'; import type { diff --git a/packages/assets-controller/src/selectors/balance.ts b/packages/assets-controller/src/selectors/balance.ts index 752746c8517..d4e18a4b37e 100644 --- a/packages/assets-controller/src/selectors/balance.ts +++ b/packages/assets-controller/src/selectors/balance.ts @@ -9,7 +9,7 @@ import { parseCaipAssetType, parseCaipChainId, } from '@metamask/utils'; -import BigNumberJS from 'bignumber.js'; +import { BigNumber as BigNumberJS } from 'bignumber.js'; import type { AssetsControllerState } from '../AssetsController.js'; import type { diff --git a/packages/assets-controller/src/utils/formatExchangeRatesForBridge.ts b/packages/assets-controller/src/utils/formatExchangeRatesForBridge.ts index c452f271853..f95bb782126 100644 --- a/packages/assets-controller/src/utils/formatExchangeRatesForBridge.ts +++ b/packages/assets-controller/src/utils/formatExchangeRatesForBridge.ts @@ -9,7 +9,7 @@ import { } from '@metamask/assets-controllers'; import { Hex, KnownCaipNamespace, numberToHex } from '@metamask/utils'; import { parseCaipAssetType, parseCaipChainId } from '@metamask/utils'; -import { isEqual } from 'lodash'; +import { isEqual } from 'lodash-es'; import type { AssetMetadata, diff --git a/packages/assets-controller/src/utils/formatStateForTransactionPay.ts b/packages/assets-controller/src/utils/formatStateForTransactionPay.ts index f2084924a4a..104ce0a03ea 100644 --- a/packages/assets-controller/src/utils/formatStateForTransactionPay.ts +++ b/packages/assets-controller/src/utils/formatStateForTransactionPay.ts @@ -2,7 +2,7 @@ import { toChecksumAddress } from '@ethereumjs/util'; import { getNativeTokenAddress } from '@metamask/assets-controllers'; import { numberToHex } from '@metamask/utils'; import { parseCaipAssetType, parseCaipChainId } from '@metamask/utils'; -import { isEqual } from 'lodash'; +import { isEqual } from 'lodash-es'; import type { AssetBalance, diff --git a/packages/assets-controller/src/utils/normalizeAmountString.ts b/packages/assets-controller/src/utils/normalizeAmountString.ts index 69ec0399b4e..337b5150dec 100644 --- a/packages/assets-controller/src/utils/normalizeAmountString.ts +++ b/packages/assets-controller/src/utils/normalizeAmountString.ts @@ -1,4 +1,4 @@ -import BigNumberJS from 'bignumber.js'; +import { BigNumber as BigNumberJS } from 'bignumber.js'; /** * Normalize an asset balance `amount` string into a canonical plain-decimal diff --git a/packages/assets-controller/src/utils/normalizeAssetId.ts b/packages/assets-controller/src/utils/normalizeAssetId.ts index 6a3563dc89e..8ec323eafb7 100644 --- a/packages/assets-controller/src/utils/normalizeAssetId.ts +++ b/packages/assets-controller/src/utils/normalizeAssetId.ts @@ -1,7 +1,9 @@ import { toChecksumAddress } from '@ethereumjs/util'; import { parseCaipAssetType, parseCaipChainId } from '@metamask/utils'; +// `@types/lodash-es` only re-exports the functions, so the helper type +// comes from `@types/lodash`. This is erased at compile time. import type { MemoizedFunction } from 'lodash'; -import memoize from 'lodash/memoize'; +import { memoize } from 'lodash-es'; import type { Caip19AssetId } from '../types.js'; diff --git a/packages/assets-controllers/jest.config.js b/packages/assets-controllers/jest.config.cjs similarity index 87% rename from packages/assets-controllers/jest.config.js rename to packages/assets-controllers/jest.config.cjs index a91d4995fcc..71acce83961 100644 --- a/packages/assets-controllers/jest.config.js +++ b/packages/assets-controllers/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); @@ -31,5 +31,5 @@ module.exports = merge(baseConfig, { }, // We rely on `window` to make requests - testEnvironment: '/jest.environment.js', + testEnvironment: '/jest.environment.cjs', }); diff --git a/packages/assets-controllers/jest.environment.js b/packages/assets-controllers/jest.environment.cjs similarity index 100% rename from packages/assets-controllers/jest.environment.js rename to packages/assets-controllers/jest.environment.cjs diff --git a/packages/assets-controllers/package.json b/packages/assets-controllers/package.json index d30f3bf5d73..92877f560b8 100644 --- a/packages/assets-controllers/package.json +++ b/packages/assets-controllers/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/assets-controllers", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/assets-controllers", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -97,7 +92,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", @@ -111,14 +106,14 @@ "@metamask/keyring-internal-api": "^12.0.0", "@metamask/keyring-snap-client": "^10.0.0", "@metamask/providers": "^22.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", - "@types/lodash": "^4.14.191", + "@types/lodash-es": "^4.17.12", "@types/node": "^22.13.14", "deepmerge": "^4.2.2", "jest": "^30.4.2", "jest-environment-jsdom": "^30.4.1", "nock": "^13.3.1", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/assets-controllers/src/AccountTrackerController.ts b/packages/assets-controllers/src/AccountTrackerController.ts index 3606dbbd1c2..81b98c962a9 100644 --- a/packages/assets-controllers/src/AccountTrackerController.ts +++ b/packages/assets-controllers/src/AccountTrackerController.ts @@ -42,7 +42,7 @@ 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.js'; import { STAKING_CONTRACT_ADDRESS_BY_CHAINID } from './AssetsContractController.js'; diff --git a/packages/assets-controllers/src/TokenBalancesController.ts b/packages/assets-controllers/src/TokenBalancesController.ts index d0afde3cc57..e251f071eb4 100644 --- a/packages/assets-controllers/src/TokenBalancesController.ts +++ b/packages/assets-controllers/src/TokenBalancesController.ts @@ -52,7 +52,7 @@ import { parseCaipChainId, } from '@metamask/utils'; import { produce } from 'immer'; -import { isEqual, union } from 'lodash'; +import { isEqual, union } from 'lodash-es'; import type { AccountTrackerControllerUpdateNativeBalancesAction, diff --git a/packages/assets-controllers/src/TokenRatesController.ts b/packages/assets-controllers/src/TokenRatesController.ts index a27105de668..a0baede1d90 100644 --- a/packages/assets-controllers/src/TokenRatesController.ts +++ b/packages/assets-controllers/src/TokenRatesController.ts @@ -12,7 +12,7 @@ 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 { isEqual } from 'lodash-es'; import { reduceInBatchesSerially, diff --git a/packages/assets-controllers/src/TokensController.ts b/packages/assets-controllers/src/TokensController.ts index ca22af31657..67137e0b58c 100644 --- a/packages/assets-controllers/src/TokensController.ts +++ b/packages/assets-controllers/src/TokensController.ts @@ -42,7 +42,7 @@ 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.js'; diff --git a/packages/assets-controllers/src/selectors/token-selectors.test.ts b/packages/assets-controllers/src/selectors/token-selectors.test.ts index 3ca474bde2e..79a3761dbc8 100644 --- a/packages/assets-controllers/src/selectors/token-selectors.test.ts +++ b/packages/assets-controllers/src/selectors/token-selectors.test.ts @@ -8,7 +8,7 @@ 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 { cloneDeep } from 'lodash-es'; import type { AccountGroupMultichainAccountObject } from '../../../account-tree-controller/src/group.js'; import type { CurrencyRateState } from '../CurrencyRateController.js'; diff --git a/packages/assets-controllers/src/selectors/token-selectors.ts b/packages/assets-controllers/src/selectors/token-selectors.ts index 4dc85e8ef72..d3a9264c620 100644 --- a/packages/assets-controllers/src/selectors/token-selectors.ts +++ b/packages/assets-controllers/src/selectors/token-selectors.ts @@ -8,7 +8,6 @@ import type { NetworkState } from '@metamask/network-controller'; import { hexToBigInt, parseCaipAssetType } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; import { createSelector, weakMapMemoize } from 'reselect'; -import { TokenRwaData } from 'src/token-service'; import { shouldIncludeNativeToken } from '../constants.js'; import type { CurrencyRateState } from '../CurrencyRateController.js'; @@ -16,6 +15,7 @@ import type { MultichainAssetsControllerState } from '../MultichainAssetsControl import type { MultichainAssetsRatesControllerState } from '../MultichainAssetsRatesController/index.js'; import type { MultichainBalancesControllerState } from '../MultichainBalancesController/index.js'; import { getNativeTokenAddress } from '../token-prices-service/codefi-v2.js'; +import { TokenRwaData } from '../token-service.js'; import type { TokenBalancesControllerState } from '../TokenBalancesController.js'; import type { Token, @@ -461,7 +461,11 @@ const selectAllMultichainAssets = createAssetListSelector( }, ); -export const selectAllAssets = createAssetListSelector( +// TS2742: The inferred type of 'selectAllAssets' cannot be named without a +// reference to '../../../../node_modules/@metamask/account-tree-controller/dist/wallet.js'. +// This is likely not portable. A type annotation is necessary. +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export const selectAllAssets: any = createAssetListSelector( [ selectAllEvmAssets, selectAllMultichainAssets, diff --git a/packages/assets-controllers/src/utils/create-batch-handler.ts b/packages/assets-controllers/src/utils/create-batch-handler.ts index 4d202b9575d..f68546f1c0f 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; diff --git a/packages/authenticated-user-storage/jest.config.cjs b/packages/authenticated-user-storage/jest.config.cjs new file mode 100644 index 00000000000..6456e074bb0 --- /dev/null +++ b/packages/authenticated-user-storage/jest.config.cjs @@ -0,0 +1,26 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages.cjs'); + +const displayName = path.basename(__dirname); + +module.exports = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, + }, +}); diff --git a/packages/authenticated-user-storage/jest.config.js b/packages/authenticated-user-storage/jest.config.js deleted file mode 100644 index ca084133399..00000000000 --- a/packages/authenticated-user-storage/jest.config.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -const merge = require('deepmerge'); -const path = require('path'); - -const baseConfig = require('../../jest.config.packages'); - -const displayName = path.basename(__dirname); - -module.exports = merge(baseConfig, { - // The display name when running multiple projects - displayName, - - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100, - }, - }, -}); diff --git a/packages/authenticated-user-storage/package.json b/packages/authenticated-user-storage/package.json index 3026c22fa49..c8dded8a88b 100644 --- a/packages/authenticated-user-storage/package.json +++ b/packages/authenticated-user-storage/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,15 +32,17 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/authenticated-user-storage", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/authenticated-user-storage", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix", - "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --esm --check", - "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --esm --generate", + "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --esm --check", + "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --esm --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", @@ -63,11 +58,11 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", "nock": "^13.3.1", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/base-controller/jest.config.cjs b/packages/base-controller/jest.config.cjs new file mode 100644 index 00000000000..6456e074bb0 --- /dev/null +++ b/packages/base-controller/jest.config.cjs @@ -0,0 +1,26 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages.cjs'); + +const displayName = path.basename(__dirname); + +module.exports = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, + }, +}); diff --git a/packages/base-controller/jest.config.js b/packages/base-controller/jest.config.js deleted file mode 100644 index ca084133399..00000000000 --- a/packages/base-controller/jest.config.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -const merge = require('deepmerge'); -const path = require('path'); - -const baseConfig = require('../../jest.config.packages'); - -const displayName = path.basename(__dirname); - -module.exports = merge(baseConfig, { - // The display name when running multiple projects - displayName, - - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100, - }, - }, -}); diff --git a/packages/base-controller/package.json b/packages/base-controller/package.json index cc884eadb5f..4fc6e5e4cb2 100644 --- a/packages/base-controller/package.json +++ b/packages/base-controller/package.json @@ -18,18 +18,11 @@ "files": [ "dist/" ], - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -38,9 +31,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/base-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/base-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -58,10 +53,10 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/base-data-service/jest.config.js b/packages/base-data-service/jest.config.cjs similarity index 90% rename from packages/base-data-service/jest.config.js rename to packages/base-data-service/jest.config.cjs index e45df2b6e59..abd4f404e7e 100644 --- a/packages/base-data-service/jest.config.js +++ b/packages/base-data-service/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/base-data-service/package.json b/packages/base-data-service/package.json index 5874d9bf3bc..8bbb5372c80 100644 --- a/packages/base-data-service/package.json +++ b/packages/base-data-service/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/base-data-service", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/base-data-service", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -63,16 +58,16 @@ "@tanstack/query-core": "^5.62.16", "cockatiel": "^3.1.2", "fast-deep-equal": "^3.1.3", - "lodash": "^4.17.21" + "lodash-es": "^4.17.21" }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", - "@types/lodash": "^4.14.191", + "@types/lodash-es": "^4.17.12", "deepmerge": "^4.2.2", "jest": "^30.4.2", "nock": "^13.3.1", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/base-data-service/src/BaseDataService.ts b/packages/base-data-service/src/BaseDataService.ts index c694a761a17..6aef4f0ade4 100644 --- a/packages/base-data-service/src/BaseDataService.ts +++ b/packages/base-data-service/src/BaseDataService.ts @@ -31,7 +31,7 @@ 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, diff --git a/packages/bitcoin-regtest-up/jest.config.js b/packages/bitcoin-regtest-up/jest.config.cjs similarity index 92% rename from packages/bitcoin-regtest-up/jest.config.js rename to packages/bitcoin-regtest-up/jest.config.cjs index 2bc1c7a6203..66a7d6269bd 100644 --- a/packages/bitcoin-regtest-up/jest.config.js +++ b/packages/bitcoin-regtest-up/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/bitcoin-regtest-up/package.json b/packages/bitcoin-regtest-up/package.json index eb587cef1df..d8e71962428 100644 --- a/packages/bitcoin-regtest-up/package.json +++ b/packages/bitcoin-regtest-up/package.json @@ -15,23 +15,16 @@ "type": "git", "url": "https://github.com/MetaMask/core.git" }, - "bin": "./dist/bin/bitcoin-regtest-up.mjs", + "bin": "./dist/bin/bitcoin-regtest-up.js", "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -40,9 +33,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/bitcoin-regtest-up", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/bitcoin-regtest-up", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -60,10 +55,10 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/bridge-controller/jest.config.js b/packages/bridge-controller/jest.config.cjs similarity index 93% rename from packages/bridge-controller/jest.config.js rename to packages/bridge-controller/jest.config.cjs index f9e336cb4c5..7955f082f42 100644 --- a/packages/bridge-controller/jest.config.js +++ b/packages/bridge-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/bridge-controller/package.json b/packages/bridge-controller/package.json index 7758ff77a9f..e36ef6752e9 100644 --- a/packages/bridge-controller/package.json +++ b/packages/bridge-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/bridge-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/bridge-controller", "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", @@ -84,13 +79,13 @@ "@metamask/auto-changelog": "^6.1.0", "@metamask/eth-json-rpc-provider": "^6.0.1", "@metamask/superstruct": "^3.4.1", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", "jest-environment-jsdom": "^30.4.1", - "lodash": "^4.17.21", + "lodash-es": "^4.17.21", "nock": "^13.3.1", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/bridge-controller/src/selectors.test.ts b/packages/bridge-controller/src/selectors.test.ts index 39983e7caaa..2436b1eb587 100644 --- a/packages/bridge-controller/src/selectors.test.ts +++ b/packages/bridge-controller/src/selectors.test.ts @@ -8,7 +8,7 @@ import { parseCaipChainId, } 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.js'; import { diff --git a/packages/bridge-controller/src/selectors.ts b/packages/bridge-controller/src/selectors.ts index 39677f3c211..ac286484989 100644 --- a/packages/bridge-controller/src/selectors.ts +++ b/packages/bridge-controller/src/selectors.ts @@ -12,7 +12,7 @@ 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_, diff --git a/packages/bridge-controller/src/utils/quote-metadata/merge.test.ts b/packages/bridge-controller/src/utils/quote-metadata/merge.test.ts index 820f77c0067..5b665e58118 100644 --- a/packages/bridge-controller/src/utils/quote-metadata/merge.test.ts +++ b/packages/bridge-controller/src/utils/quote-metadata/merge.test.ts @@ -1,4 +1,4 @@ -import { merge } from 'lodash'; +import { merge } from 'lodash-es'; import { getMockBridgeQuotesErc20Erc20V2 } from '../../../tests/mock-quotes-erc20-erc20.js'; import { diff --git a/packages/bridge-controller/src/utils/quote-metadata/merge.ts b/packages/bridge-controller/src/utils/quote-metadata/merge.ts index 8ba6bddf4b3..5d55db11824 100644 --- a/packages/bridge-controller/src/utils/quote-metadata/merge.ts +++ b/packages/bridge-controller/src/utils/quote-metadata/merge.ts @@ -1,4 +1,4 @@ -import { merge } from 'lodash'; +import { merge } from 'lodash-es'; import type { DeepPartial } from '../../types.js'; import type { QuoteResponse } from '../../validators/quote-response.js'; diff --git a/packages/bridge-controller/src/utils/quote-metadata/to-quote-metadata-v1.ts b/packages/bridge-controller/src/utils/quote-metadata/to-quote-metadata-v1.ts index 9f37cb4e113..350a19d0bfb 100644 --- a/packages/bridge-controller/src/utils/quote-metadata/to-quote-metadata-v1.ts +++ b/packages/bridge-controller/src/utils/quote-metadata/to-quote-metadata-v1.ts @@ -1,4 +1,4 @@ -import { merge } from 'lodash'; +import { merge } from 'lodash-es'; import type { DeepPartial } from '../../types.js'; import type { AmountsAndAsset } from '../../validators/amount-and-asset.js'; diff --git a/packages/bridge-controller/tests/mock-quotes-erc20-erc20.ts b/packages/bridge-controller/tests/mock-quotes-erc20-erc20.ts index eb64b1806a6..247f87ac8a9 100644 --- a/packages/bridge-controller/tests/mock-quotes-erc20-erc20.ts +++ b/packages/bridge-controller/tests/mock-quotes-erc20-erc20.ts @@ -1,4 +1,4 @@ -import { merge } from 'lodash'; +import { merge } from 'lodash-es'; import { toQuoteResponseV2 } from '../src/index.js'; import type { DeepPartial } from '../src/types.js'; diff --git a/packages/bridge-controller/tests/mock-quotes-erc20-native.ts b/packages/bridge-controller/tests/mock-quotes-erc20-native.ts index 05f6c011530..c60f18cd50f 100644 --- a/packages/bridge-controller/tests/mock-quotes-erc20-native.ts +++ b/packages/bridge-controller/tests/mock-quotes-erc20-native.ts @@ -1,4 +1,4 @@ -import { merge } from 'lodash'; +import { merge } from 'lodash-es'; import { toQuoteResponseV2 } from '../src/coercers/quote-response-v1-to-v2.js'; import type { DeepPartial } from '../src/types.js'; 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 6ef89d6770e..a162d6ed3fa 100644 --- a/packages/bridge-controller/tests/mock-quotes-native-erc20-eth.ts +++ b/packages/bridge-controller/tests/mock-quotes-native-erc20-eth.ts @@ -1,4 +1,4 @@ -import { merge } from 'lodash'; +import { merge } from 'lodash-es'; import { toQuoteResponseV2 } from '../src/coercers/quote-response-v1-to-v2.js'; import type { DeepPartial } from '../src/types.js'; diff --git a/packages/bridge-controller/tests/mock-quotes-native-erc20.ts b/packages/bridge-controller/tests/mock-quotes-native-erc20.ts index 52214e3c433..0a3db27ac23 100644 --- a/packages/bridge-controller/tests/mock-quotes-native-erc20.ts +++ b/packages/bridge-controller/tests/mock-quotes-native-erc20.ts @@ -1,5 +1,5 @@ import { KnownCaipNamespace } from '@metamask/utils'; -import { merge } from 'lodash'; +import { merge } from 'lodash-es'; import { toQuoteResponseV2 } from '../src/coercers/quote-response-v1-to-v2.js'; import type { DeepPartial } from '../src/types.js'; diff --git a/packages/bridge-controller/tests/mock-quotes-sol-erc20.ts b/packages/bridge-controller/tests/mock-quotes-sol-erc20.ts index 92e90049ea9..0a98de74b06 100644 --- a/packages/bridge-controller/tests/mock-quotes-sol-erc20.ts +++ b/packages/bridge-controller/tests/mock-quotes-sol-erc20.ts @@ -1,4 +1,4 @@ -import { merge } from 'lodash'; +import { merge } from 'lodash-es'; import { toQuoteResponseV2 } from '../src/coercers/quote-response-v1-to-v2.js'; import type { DeepPartial } from '../src/types.js'; diff --git a/packages/bridge-controller/tests/mock-sse.ts b/packages/bridge-controller/tests/mock-sse.ts index eaf485e5d44..d7bc5a31e9d 100644 --- a/packages/bridge-controller/tests/mock-sse.ts +++ b/packages/bridge-controller/tests/mock-sse.ts @@ -1,4 +1,3 @@ -// eslint-disable-next-line @typescript-eslint/no-shadow import { ReadableStream } from 'node:stream/web'; import { flushPromises } from '../../../tests/helpers.js'; diff --git a/packages/bridge-status-controller/jest.config.js b/packages/bridge-status-controller/jest.config.cjs similarity index 94% rename from packages/bridge-status-controller/jest.config.js rename to packages/bridge-status-controller/jest.config.cjs index 86e3fc3cfeb..b640a219f3e 100644 --- a/packages/bridge-status-controller/jest.config.js +++ b/packages/bridge-status-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/bridge-status-controller/package.json b/packages/bridge-status-controller/package.json index afc59cefc9f..d87e4322a46 100644 --- a/packages/bridge-status-controller/package.json +++ b/packages/bridge-status-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/bridge-status-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/bridge-status-controller", "generate-method-action-types": "tsx ../../packages/messenger/src/generate-action-types/cli.ts", @@ -73,13 +68,13 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", "jest-environment-jsdom": "^30.4.1", - "lodash": "^4.17.21", + "lodash-es": "^4.17.21", "nock": "^13.3.1", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/bridge-status-controller/src/bridge-status-controller.ts b/packages/bridge-status-controller/src/bridge-status-controller.ts index ab7f4e27328..24da0263b8f 100644 --- a/packages/bridge-status-controller/src/bridge-status-controller.ts +++ b/packages/bridge-status-controller/src/bridge-status-controller.ts @@ -36,7 +36,7 @@ import type { TransactionMeta } from '@metamask/transaction-controller'; import { numberToHex } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; -import { IntentManager } from './bridge-status-controller.intent'; +import { IntentManager } from './bridge-status-controller.intent.js'; import { ALLOWED_FEATURE_IDS_FOR_STATUS_EVENTS, BRIDGE_PROD_API_BASE_URL, diff --git a/packages/build-utils/jest.config.cjs b/packages/build-utils/jest.config.cjs new file mode 100644 index 00000000000..6456e074bb0 --- /dev/null +++ b/packages/build-utils/jest.config.cjs @@ -0,0 +1,26 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages.cjs'); + +const displayName = path.basename(__dirname); + +module.exports = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, + }, +}); diff --git a/packages/build-utils/jest.config.js b/packages/build-utils/jest.config.js deleted file mode 100644 index ca084133399..00000000000 --- a/packages/build-utils/jest.config.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -const merge = require('deepmerge'); -const path = require('path'); - -const baseConfig = require('../../jest.config.packages'); - -const displayName = path.basename(__dirname); - -module.exports = merge(baseConfig, { - // The display name when running multiple projects - displayName, - - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100, - }, - }, -}); diff --git a/packages/build-utils/package.json b/packages/build-utils/package.json index e0c387162b8..cd6b9551c0a 100644 --- a/packages/build-utils/package.json +++ b/packages/build-utils/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/build-utils", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/build-utils", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -58,10 +53,10 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/chain-agnostic-permission/jest.config.js b/packages/chain-agnostic-permission/jest.config.cjs similarity index 90% rename from packages/chain-agnostic-permission/jest.config.js rename to packages/chain-agnostic-permission/jest.config.cjs index 3ecd657de92..69a3b5bff7f 100644 --- a/packages/chain-agnostic-permission/jest.config.js +++ b/packages/chain-agnostic-permission/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/chain-agnostic-permission/package.json b/packages/chain-agnostic-permission/package.json index 05e0c3cfa7d..f1503774e63 100644 --- a/packages/chain-agnostic-permission/package.json +++ b/packages/chain-agnostic-permission/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/chain-agnostic-permission", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/chain-agnostic-permission", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -58,15 +53,15 @@ "@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", "@metamask/keyring-internal-api": "^12.0.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/chain-agnostic-permission/src/caip25Permission.test.ts b/packages/chain-agnostic-permission/src/caip25Permission.test.ts index b8fb923934f..f35a35b981a 100644 --- a/packages/chain-agnostic-permission/src/caip25Permission.test.ts +++ b/packages/chain-agnostic-permission/src/caip25Permission.test.ts @@ -8,7 +8,7 @@ import type { PermissionSpecificationConstraint, CaveatSpecificationConstraint, } from '@metamask/permission-controller'; -import { pick } from 'lodash'; +import { pick } from 'lodash-es'; import type { Caip25CaveatValue } from './caip25Permission.js'; import { diff --git a/packages/chain-agnostic-permission/src/caip25Permission.ts b/packages/chain-agnostic-permission/src/caip25Permission.ts index 1b3959e7f2b..3758969b4f7 100644 --- a/packages/chain-agnostic-permission/src/caip25Permission.ts +++ b/packages/chain-agnostic-permission/src/caip25Permission.ts @@ -23,7 +23,7 @@ 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.js'; import { diff --git a/packages/chain-agnostic-permission/src/scope/constants.ts b/packages/chain-agnostic-permission/src/scope/constants.ts index cc6f6a5977b..206c4f0cc31 100644 --- a/packages/chain-agnostic-permission/src/scope/constants.ts +++ b/packages/chain-agnostic-permission/src/scope/constants.ts @@ -54,6 +54,7 @@ export const Eip1193OnlyMethods = [ /** * All MetaMask methods, except for ones we have specified in the constants above. */ +// @ts-expect-error: TODO: `api-specs` is not supported in ESM. const Eip155Methods = MetaMaskOpenRPCDocument.methods .map(({ name }: { name: string }) => name) .filter((method: string) => !WalletEip155Methods.includes(method)) diff --git a/packages/chain-agnostic-permission/src/scope/transform.ts b/packages/chain-agnostic-permission/src/scope/transform.ts index cb364d513b3..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, diff --git a/packages/chomp-api-service/jest.config.cjs b/packages/chomp-api-service/jest.config.cjs new file mode 100644 index 00000000000..6456e074bb0 --- /dev/null +++ b/packages/chomp-api-service/jest.config.cjs @@ -0,0 +1,26 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages.cjs'); + +const displayName = path.basename(__dirname); + +module.exports = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, + }, +}); diff --git a/packages/chomp-api-service/jest.config.js b/packages/chomp-api-service/jest.config.js deleted file mode 100644 index ca084133399..00000000000 --- a/packages/chomp-api-service/jest.config.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -const merge = require('deepmerge'); -const path = require('path'); - -const baseConfig = require('../../jest.config.packages'); - -const displayName = path.basename(__dirname); - -module.exports = merge(baseConfig, { - // The display name when running multiple projects - displayName, - - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100, - }, - }, -}); diff --git a/packages/chomp-api-service/package.json b/packages/chomp-api-service/package.json index 2b19311dbbb..6f7ce4b13a4 100644 --- a/packages/chomp-api-service/package.json +++ b/packages/chomp-api-service/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/chomp-api-service", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/chomp-api-service", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -62,11 +57,11 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", "nock": "^13.3.1", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/claims-controller/jest.config.cjs b/packages/claims-controller/jest.config.cjs new file mode 100644 index 00000000000..6456e074bb0 --- /dev/null +++ b/packages/claims-controller/jest.config.cjs @@ -0,0 +1,26 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages.cjs'); + +const displayName = path.basename(__dirname); + +module.exports = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, + }, +}); diff --git a/packages/claims-controller/jest.config.js b/packages/claims-controller/jest.config.js deleted file mode 100644 index ca084133399..00000000000 --- a/packages/claims-controller/jest.config.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -const merge = require('deepmerge'); -const path = require('path'); - -const baseConfig = require('../../jest.config.packages'); - -const displayName = path.basename(__dirname); - -module.exports = merge(baseConfig, { - // The display name when running multiple projects - displayName, - - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100, - }, - }, -}); diff --git a/packages/claims-controller/package.json b/packages/claims-controller/package.json index 679884fed13..5f535eb74e2 100644 --- a/packages/claims-controller/package.json +++ b/packages/claims-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/claims-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/claims-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -67,10 +62,10 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/client-controller/jest.config.js b/packages/client-controller/jest.config.cjs similarity index 88% rename from packages/client-controller/jest.config.js rename to packages/client-controller/jest.config.cjs index 9efbc1e7d1f..c1fd6a90ef2 100644 --- a/packages/client-controller/jest.config.js +++ b/packages/client-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/client-controller/package.json b/packages/client-controller/package.json index f176f128595..02d1242d95b 100644 --- a/packages/client-controller/package.json +++ b/packages/client-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/client-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/client-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -60,11 +55,11 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", "jest-environment-jsdom": "^30.4.1", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/client-utils/jest.config.js b/packages/client-utils/jest.config.cjs similarity index 92% rename from packages/client-utils/jest.config.js rename to packages/client-utils/jest.config.cjs index d6ba5b87a98..b058defa030 100644 --- a/packages/client-utils/jest.config.js +++ b/packages/client-utils/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/client-utils/package.json b/packages/client-utils/package.json index c6949bdb92e..ab60ffba4f9 100644 --- a/packages/client-utils/package.json +++ b/packages/client-utils/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/client-utils", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/client-utils", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -67,10 +62,10 @@ "devDependencies": { "@ethersproject/abi": "^5.7.0", "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/compliance-controller/jest.config.cjs b/packages/compliance-controller/jest.config.cjs new file mode 100644 index 00000000000..6456e074bb0 --- /dev/null +++ b/packages/compliance-controller/jest.config.cjs @@ -0,0 +1,26 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages.cjs'); + +const displayName = path.basename(__dirname); + +module.exports = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, + }, +}); diff --git a/packages/compliance-controller/jest.config.js b/packages/compliance-controller/jest.config.js deleted file mode 100644 index ca084133399..00000000000 --- a/packages/compliance-controller/jest.config.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -const merge = require('deepmerge'); -const path = require('path'); - -const baseConfig = require('../../jest.config.packages'); - -const displayName = path.basename(__dirname); - -module.exports = merge(baseConfig, { - // The display name when running multiple projects - displayName, - - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100, - }, - }, -}); diff --git a/packages/compliance-controller/package.json b/packages/compliance-controller/package.json index 5b1f69a2eb1..a5ade306b24 100644 --- a/packages/compliance-controller/package.json +++ b/packages/compliance-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/compliance-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/compliance-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -64,11 +59,11 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", "nock": "^13.3.1", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/composable-controller/jest.config.cjs b/packages/composable-controller/jest.config.cjs new file mode 100644 index 00000000000..6456e074bb0 --- /dev/null +++ b/packages/composable-controller/jest.config.cjs @@ -0,0 +1,26 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages.cjs'); + +const displayName = path.basename(__dirname); + +module.exports = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, + }, +}); diff --git a/packages/composable-controller/jest.config.js b/packages/composable-controller/jest.config.js deleted file mode 100644 index ca084133399..00000000000 --- a/packages/composable-controller/jest.config.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -const merge = require('deepmerge'); -const path = require('path'); - -const baseConfig = require('../../jest.config.packages'); - -const displayName = path.basename(__dirname); - -module.exports = merge(baseConfig, { - // The display name when running multiple projects - displayName, - - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100, - }, - }, -}); diff --git a/packages/composable-controller/package.json b/packages/composable-controller/package.json index 3ebeef552e1..597a738ab2b 100644 --- a/packages/composable-controller/package.json +++ b/packages/composable-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/composable-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/composable-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -59,11 +54,11 @@ "devDependencies": { "@metamask/auto-changelog": "^6.1.0", "@metamask/json-rpc-engine": "^10.5.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "immer": "^9.0.6", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/config-registry-controller/jest.config.cjs b/packages/config-registry-controller/jest.config.cjs new file mode 100644 index 00000000000..6456e074bb0 --- /dev/null +++ b/packages/config-registry-controller/jest.config.cjs @@ -0,0 +1,26 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages.cjs'); + +const displayName = path.basename(__dirname); + +module.exports = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, + }, +}); diff --git a/packages/config-registry-controller/jest.config.js b/packages/config-registry-controller/jest.config.js deleted file mode 100644 index ca084133399..00000000000 --- a/packages/config-registry-controller/jest.config.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -const merge = require('deepmerge'); -const path = require('path'); - -const baseConfig = require('../../jest.config.packages'); - -const displayName = path.basename(__dirname); - -module.exports = merge(baseConfig, { - // The display name when running multiple projects - displayName, - - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100, - }, - }, -}); diff --git a/packages/config-registry-controller/package.json b/packages/config-registry-controller/package.json index 3f6fd64127d..3067cbba6b9 100644 --- a/packages/config-registry-controller/package.json +++ b/packages/config-registry-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/config-registry-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/config-registry-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -69,11 +64,11 @@ "devDependencies": { "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", "nock": "^13.3.1", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/connectivity-controller/jest.config.cjs b/packages/connectivity-controller/jest.config.cjs new file mode 100644 index 00000000000..6456e074bb0 --- /dev/null +++ b/packages/connectivity-controller/jest.config.cjs @@ -0,0 +1,26 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages.cjs'); + +const displayName = path.basename(__dirname); + +module.exports = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, + }, +}); diff --git a/packages/connectivity-controller/jest.config.js b/packages/connectivity-controller/jest.config.js deleted file mode 100644 index ca084133399..00000000000 --- a/packages/connectivity-controller/jest.config.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -const merge = require('deepmerge'); -const path = require('path'); - -const baseConfig = require('../../jest.config.packages'); - -const displayName = path.basename(__dirname); - -module.exports = merge(baseConfig, { - // The display name when running multiple projects - displayName, - - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100, - }, - }, -}); diff --git a/packages/connectivity-controller/package.json b/packages/connectivity-controller/package.json index 392d5ff49b1..1e74a62f506 100644 --- a/packages/connectivity-controller/package.json +++ b/packages/connectivity-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/connectivity-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/connectivity-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -61,10 +56,10 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/controller-utils/jest.config.js b/packages/controller-utils/jest.config.cjs similarity index 84% rename from packages/controller-utils/jest.config.js rename to packages/controller-utils/jest.config.cjs index f7ca96dbc15..52629c22795 100644 --- a/packages/controller-utils/jest.config.js +++ b/packages/controller-utils/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); @@ -25,5 +25,5 @@ module.exports = merge(baseConfig, { }, // We rely on `window` to make requests - testEnvironment: '/jest.environment.js', + testEnvironment: '/jest.environment.cjs', }); diff --git a/packages/controller-utils/jest.environment.js b/packages/controller-utils/jest.environment.cjs similarity index 100% rename from packages/controller-utils/jest.environment.js rename to packages/controller-utils/jest.environment.cjs diff --git a/packages/controller-utils/package.json b/packages/controller-utils/package.json index acb60f5c930..110e28d9ee2 100644 --- a/packages/controller-utils/package.json +++ b/packages/controller-utils/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/controller-utils", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/controller-utils", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -64,18 +59,18 @@ "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", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", - "@types/lodash": "^4.14.191", + "@types/lodash-es": "^4.17.12", "deepmerge": "^4.2.2", "jest": "^30.4.2", "jest-environment-jsdom": "^30.4.1", "nock": "^13.3.1", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/controller-utils/src/util.ts b/packages/controller-utils/src/util.ts index 71a0f8c5430..e2e4e5cac3d 100644 --- a/packages/controller-utils/src/util.ts +++ b/packages/controller-utils/src/util.ts @@ -13,7 +13,7 @@ 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.js'; diff --git a/packages/core-backend/jest.config.js b/packages/core-backend/jest.config.cjs similarity index 91% rename from packages/core-backend/jest.config.js rename to packages/core-backend/jest.config.cjs index 638112ed628..5e65933d538 100644 --- a/packages/core-backend/jest.config.js +++ b/packages/core-backend/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/core-backend/package.json b/packages/core-backend/package.json index 5dd2733df43..6f79cf11a59 100644 --- a/packages/core-backend/package.json +++ b/packages/core-backend/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/core-backend", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/core-backend", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -69,11 +64,11 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", "jest-environment-jsdom": "^30.4.1", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/delegation-controller/jest.config.cjs b/packages/delegation-controller/jest.config.cjs new file mode 100644 index 00000000000..6456e074bb0 --- /dev/null +++ b/packages/delegation-controller/jest.config.cjs @@ -0,0 +1,26 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages.cjs'); + +const displayName = path.basename(__dirname); + +module.exports = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, + }, +}); diff --git a/packages/delegation-controller/jest.config.js b/packages/delegation-controller/jest.config.js deleted file mode 100644 index ca084133399..00000000000 --- a/packages/delegation-controller/jest.config.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -const merge = require('deepmerge'); -const path = require('path'); - -const baseConfig = require('../../jest.config.packages'); - -const displayName = path.basename(__dirname); - -module.exports = merge(baseConfig, { - // The display name when running multiple projects - displayName, - - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100, - }, - }, -}); diff --git a/packages/delegation-controller/package.json b/packages/delegation-controller/package.json index da9ce375607..b5e661043e5 100644 --- a/packages/delegation-controller/package.json +++ b/packages/delegation-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/delegation-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/delegation-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -62,10 +57,10 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/earn-controller/jest.config.js b/packages/earn-controller/jest.config.cjs similarity index 90% rename from packages/earn-controller/jest.config.js rename to packages/earn-controller/jest.config.cjs index 66bf6e01f38..8c056676b43 100644 --- a/packages/earn-controller/jest.config.js +++ b/packages/earn-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/earn-controller/package.json b/packages/earn-controller/package.json index ca7042f6c0c..ac47f76286c 100644 --- a/packages/earn-controller/package.json +++ b/packages/earn-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/earn-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/earn-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -69,10 +64,10 @@ "devDependencies": { "@metamask/auto-changelog": "^6.1.0", "@metamask/transaction-controller": "^69.6.1", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/eip-5792-middleware/jest.config.js b/packages/eip-5792-middleware/jest.config.cjs similarity index 90% rename from packages/eip-5792-middleware/jest.config.js rename to packages/eip-5792-middleware/jest.config.cjs index 729b145b19c..d1992a3743b 100644 --- a/packages/eip-5792-middleware/jest.config.js +++ b/packages/eip-5792-middleware/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/eip-5792-middleware/package.json b/packages/eip-5792-middleware/package.json index b8beeac56df..9a2bc630d91 100644 --- a/packages/eip-5792-middleware/package.json +++ b/packages/eip-5792-middleware/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/eip-5792-middleware", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/eip-5792-middleware", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -58,18 +53,18 @@ "@metamask/superstruct": "^3.4.1", "@metamask/transaction-controller": "^69.6.1", "@metamask/utils": "^11.11.0", - "lodash": "^4.17.21", + "lodash-es": "^4.17.21", "uuid": "^8.3.2" }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", "@metamask/keyring-controller": "^27.1.1", "@metamask/rpc-errors": "^7.0.2", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", "klona": "^2.0.6", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/eip-5792-middleware/src/hooks/processSendCalls.ts b/packages/eip-5792-middleware/src/hooks/processSendCalls.ts index 9e6d59720f5..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 { diff --git a/packages/eip-7702-internal-rpc-middleware/jest.config.cjs b/packages/eip-7702-internal-rpc-middleware/jest.config.cjs new file mode 100644 index 00000000000..6456e074bb0 --- /dev/null +++ b/packages/eip-7702-internal-rpc-middleware/jest.config.cjs @@ -0,0 +1,26 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages.cjs'); + +const displayName = path.basename(__dirname); + +module.exports = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, + }, +}); diff --git a/packages/eip-7702-internal-rpc-middleware/jest.config.js b/packages/eip-7702-internal-rpc-middleware/jest.config.js deleted file mode 100644 index ca084133399..00000000000 --- a/packages/eip-7702-internal-rpc-middleware/jest.config.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -const merge = require('deepmerge'); -const path = require('path'); - -const baseConfig = require('../../jest.config.packages'); - -const displayName = path.basename(__dirname); - -module.exports = merge(baseConfig, { - // The display name when running multiple projects - displayName, - - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100, - }, - }, -}); diff --git a/packages/eip-7702-internal-rpc-middleware/package.json b/packages/eip-7702-internal-rpc-middleware/package.json index 82eb9d33744..e41af2b0018 100644 --- a/packages/eip-7702-internal-rpc-middleware/package.json +++ b/packages/eip-7702-internal-rpc-middleware/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/eip-7702-internal-rpc-middleware", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/eip-7702-internal-rpc-middleware", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -60,10 +55,10 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/eip1193-permission-middleware/jest.config.cjs b/packages/eip1193-permission-middleware/jest.config.cjs new file mode 100644 index 00000000000..6456e074bb0 --- /dev/null +++ b/packages/eip1193-permission-middleware/jest.config.cjs @@ -0,0 +1,26 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages.cjs'); + +const displayName = path.basename(__dirname); + +module.exports = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, + }, +}); diff --git a/packages/eip1193-permission-middleware/jest.config.js b/packages/eip1193-permission-middleware/jest.config.js deleted file mode 100644 index ca084133399..00000000000 --- a/packages/eip1193-permission-middleware/jest.config.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -const merge = require('deepmerge'); -const path = require('path'); - -const baseConfig = require('../../jest.config.packages'); - -const displayName = path.basename(__dirname); - -module.exports = merge(baseConfig, { - // The display name when running multiple projects - displayName, - - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100, - }, - }, -}); diff --git a/packages/eip1193-permission-middleware/package.json b/packages/eip1193-permission-middleware/package.json index 8c7f881b624..f65070660a9 100644 --- a/packages/eip1193-permission-middleware/package.json +++ b/packages/eip1193-permission-middleware/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/eip1193-permission-middleware", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/eip1193-permission-middleware", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -58,15 +53,15 @@ "@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", "@metamask/rpc-errors": "^7.0.2", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/eip1193-permission-middleware/src/wallet-requestPermissions.ts b/packages/eip1193-permission-middleware/src/wallet-requestPermissions.ts index d49fee4f791..4dc6e03f71a 100644 --- a/packages/eip1193-permission-middleware/src/wallet-requestPermissions.ts +++ b/packages/eip1193-permission-middleware/src/wallet-requestPermissions.ts @@ -22,7 +22,7 @@ import type { JsonRpcRequest, PendingJsonRpcResponse, } from '@metamask/utils'; -import { pick } from 'lodash'; +import { pick } from 'lodash-es'; import { CaveatTypes, EndowmentTypes, RestrictedMethods } from './types.js'; diff --git a/packages/eth-block-tracker/jest.config.js b/packages/eth-block-tracker/jest.config.cjs similarity index 90% rename from packages/eth-block-tracker/jest.config.js rename to packages/eth-block-tracker/jest.config.cjs index 01a358a1cef..ed2bf4de9b6 100644 --- a/packages/eth-block-tracker/jest.config.js +++ b/packages/eth-block-tracker/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/eth-block-tracker/package.json b/packages/eth-block-tracker/package.json index c2609b07c8b..4c81d1446d8 100644 --- a/packages/eth-block-tracker/package.json +++ b/packages/eth-block-tracker/package.json @@ -19,20 +19,12 @@ "dist", "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -41,9 +33,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/eth-block-tracker", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/eth-block-tracker", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -56,18 +50,18 @@ }, "dependencies": { "@metamask/eth-json-rpc-provider": "^6.0.1", - "@metamask/safe-event-emitter": "^3.0.0", + "@metamask/safe-event-emitter": "^3.1.3", "@metamask/utils": "^11.11.0", "json-rpc-random-id": "^1.0.1" }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", "@metamask/json-rpc-engine": "^10.5.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "@types/json-rpc-random-id": "^1.0.1", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/eth-json-rpc-middleware/jest.config.js b/packages/eth-json-rpc-middleware/jest.config.cjs similarity index 92% rename from packages/eth-json-rpc-middleware/jest.config.js rename to packages/eth-json-rpc-middleware/jest.config.cjs index fecbe76e3b3..d251c422055 100644 --- a/packages/eth-json-rpc-middleware/jest.config.js +++ b/packages/eth-json-rpc-middleware/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/eth-json-rpc-middleware/package.json b/packages/eth-json-rpc-middleware/package.json index 31e29bacc8d..56cb6d87551 100644 --- a/packages/eth-json-rpc-middleware/package.json +++ b/packages/eth-json-rpc-middleware/package.json @@ -18,20 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -40,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/eth-json-rpc-middleware --tag-prefix-before-package-rename eth-json-rpc-middleware@ --version-before-package-rename 6.1.0", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/eth-json-rpc-middleware --tag-prefix-before-package-rename eth-json-rpc-middleware@ --version-before-package-rename 6.1.0", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -67,12 +61,13 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/deep-freeze-strict": "^1.1.0", "@types/jest": "^30.0.0", "deep-freeze-strict": "^1.1.1", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", + "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", "typescript": "~5.3.3" diff --git a/packages/eth-json-rpc-provider/jest.config.cjs b/packages/eth-json-rpc-provider/jest.config.cjs new file mode 100644 index 00000000000..6456e074bb0 --- /dev/null +++ b/packages/eth-json-rpc-provider/jest.config.cjs @@ -0,0 +1,26 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages.cjs'); + +const displayName = path.basename(__dirname); + +module.exports = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, + }, +}); diff --git a/packages/eth-json-rpc-provider/jest.config.js b/packages/eth-json-rpc-provider/jest.config.js deleted file mode 100644 index ca084133399..00000000000 --- a/packages/eth-json-rpc-provider/jest.config.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -const merge = require('deepmerge'); -const path = require('path'); - -const baseConfig = require('../../jest.config.packages'); - -const displayName = path.basename(__dirname); - -module.exports = merge(baseConfig, { - // The display name when running multiple projects - displayName, - - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100, - }, - }, -}); diff --git a/packages/eth-json-rpc-provider/package.json b/packages/eth-json-rpc-provider/package.json index 4ffbc7e5c98..28fa4367319 100644 --- a/packages/eth-json-rpc-provider/package.json +++ b/packages/eth-json-rpc-provider/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/eth-json-rpc-provider", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/eth-json-rpc-provider", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -63,11 +58,11 @@ "@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": "^30.0.0", "deepmerge": "^4.2.2", "ethers": "^6.12.0", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/foundryup/jest.config.js b/packages/foundryup/jest.config.cjs similarity index 90% rename from packages/foundryup/jest.config.js rename to packages/foundryup/jest.config.cjs index 3e2689f3405..f2d3743752a 100644 --- a/packages/foundryup/jest.config.js +++ b/packages/foundryup/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/foundryup/package.json b/packages/foundryup/package.json index a465a17ad2f..388eef6cff5 100644 --- a/packages/foundryup/package.json +++ b/packages/foundryup/package.json @@ -16,14 +16,13 @@ "url": "https://github.com/MetaMask/core.git" }, "bin": { - "mm-foundryup": "./dist/cli.mjs" + "mm-foundryup": "./dist/cli.js" }, "files": [ "dist/" ], + "type": "module", "sideEffects": false, - "main": "./dist/index.cjs", - "types": "./dist/index.d.cts", "exports": { "./package.json": "./package.json" }, @@ -33,9 +32,11 @@ }, "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/foundryup", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/foundryup", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -55,7 +56,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "@types/unzipper": "^0.10.10", "@types/yargs": "^17.0.32", @@ -63,6 +63,7 @@ "deepmerge": "^4.2.2", "jest": "^30.4.2", "nock": "^13.3.1", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/gas-fee-controller/jest.config.js b/packages/gas-fee-controller/jest.config.cjs similarity index 90% rename from packages/gas-fee-controller/jest.config.js rename to packages/gas-fee-controller/jest.config.cjs index 9085847b1a8..95d665f34c0 100644 --- a/packages/gas-fee-controller/jest.config.js +++ b/packages/gas-fee-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/gas-fee-controller/package.json b/packages/gas-fee-controller/package.json index 368fd5e95c4..8286d42b926 100644 --- a/packages/gas-fee-controller/package.json +++ b/packages/gas-fee-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/gas-fee-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/gas-fee-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -71,13 +66,13 @@ "devDependencies": { "@babel/runtime": "^7.23.9", "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "@types/jest-when": "^2.7.3", "deepmerge": "^4.2.2", "jest": "^30.4.2", "jest-when": "^3.7.0", "nock": "^13.3.1", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/gator-permissions-controller/jest.config.js b/packages/gator-permissions-controller/jest.config.cjs similarity index 90% rename from packages/gator-permissions-controller/jest.config.js rename to packages/gator-permissions-controller/jest.config.cjs index 37add1f8801..058dd12c896 100644 --- a/packages/gator-permissions-controller/jest.config.js +++ b/packages/gator-permissions-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/gator-permissions-controller/package.json b/packages/gator-permissions-controller/package.json index d17235c3108..59427ef1457 100644 --- a/packages/gator-permissions-controller/package.json +++ b/packages/gator-permissions-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/gator-permissions-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/gator-permissions-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -72,10 +67,10 @@ "@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": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/geolocation-controller/jest.config.cjs b/packages/geolocation-controller/jest.config.cjs new file mode 100644 index 00000000000..6456e074bb0 --- /dev/null +++ b/packages/geolocation-controller/jest.config.cjs @@ -0,0 +1,26 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages.cjs'); + +const displayName = path.basename(__dirname); + +module.exports = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, + }, +}); diff --git a/packages/geolocation-controller/jest.config.js b/packages/geolocation-controller/jest.config.js deleted file mode 100644 index ca084133399..00000000000 --- a/packages/geolocation-controller/jest.config.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -const merge = require('deepmerge'); -const path = require('path'); - -const baseConfig = require('../../jest.config.packages'); - -const displayName = path.basename(__dirname); - -module.exports = merge(baseConfig, { - // The display name when running multiple projects - displayName, - - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100, - }, - }, -}); diff --git a/packages/geolocation-controller/package.json b/packages/geolocation-controller/package.json index e5e5b13b11a..c5d9b71d56d 100644 --- a/packages/geolocation-controller/package.json +++ b/packages/geolocation-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/geolocation-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/geolocation-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -61,10 +56,10 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/java-tron-up/jest.config.js b/packages/java-tron-up/jest.config.cjs similarity index 92% rename from packages/java-tron-up/jest.config.js rename to packages/java-tron-up/jest.config.cjs index ac981bb832e..76b33b29bcb 100644 --- a/packages/java-tron-up/jest.config.js +++ b/packages/java-tron-up/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/java-tron-up/package.json b/packages/java-tron-up/package.json index f0346a45e65..243de152e76 100644 --- a/packages/java-tron-up/package.json +++ b/packages/java-tron-up/package.json @@ -15,23 +15,16 @@ "type": "git", "url": "https://github.com/MetaMask/core.git" }, - "bin": "./dist/bin/java-tron-up.mjs", + "bin": "./dist/bin/java-tron-up.js", "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -40,9 +33,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/java-tron-up", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/java-tron-up", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -60,10 +55,10 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/json-rpc-engine/jest.config.js b/packages/json-rpc-engine/jest.config.cjs similarity index 90% rename from packages/json-rpc-engine/jest.config.js rename to packages/json-rpc-engine/jest.config.cjs index d1d26575e17..4588f650d26 100644 --- a/packages/json-rpc-engine/jest.config.js +++ b/packages/json-rpc-engine/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/json-rpc-engine/package.json b/packages/json-rpc-engine/package.json index d05209a8fbc..4d5e8195da5 100644 --- a/packages/json-rpc-engine/package.json +++ b/packages/json-rpc-engine/package.json @@ -22,29 +22,16 @@ "dist/", "v2.js" ], + "type": "module", "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", + "default": "./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", + "default": "./dist/v2/index.js" }, "./package.json": "./package.json" }, @@ -53,9 +40,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/json-rpc-engine --tag-prefix-before-package-rename json-rpc-engine@ --version-before-package-rename 6.1.0", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/json-rpc-engine --tag-prefix-before-package-rename json-rpc-engine@ --version-before-package-rename 6.1.0", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -69,7 +58,7 @@ "dependencies": { "@metamask/messenger": "^2.0.0", "@metamask/rpc-errors": "^7.0.2", - "@metamask/safe-event-emitter": "^3.0.0", + "@metamask/safe-event-emitter": "^3.1.3", "@metamask/utils": "^11.11.0", "@types/deep-freeze-strict": "^1.1.0", "deep-freeze-strict": "^1.1.1", @@ -79,10 +68,10 @@ "@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": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/json-rpc-middleware-stream/jest.config.js b/packages/json-rpc-middleware-stream/jest.config.cjs similarity index 90% rename from packages/json-rpc-middleware-stream/jest.config.js rename to packages/json-rpc-middleware-stream/jest.config.cjs index f245081436d..71de6fc9880 100644 --- a/packages/json-rpc-middleware-stream/jest.config.js +++ b/packages/json-rpc-middleware-stream/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/json-rpc-middleware-stream/package.json b/packages/json-rpc-middleware-stream/package.json index b5cde3461ac..05d3ca1ca3d 100644 --- a/packages/json-rpc-middleware-stream/package.json +++ b/packages/json-rpc-middleware-stream/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/json-rpc-middleware-stream --tag-prefix-before-package-rename json-rpc-middleware-stream@ --version-before-package-rename 5.0.1", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/json-rpc-middleware-stream --tag-prefix-before-package-rename json-rpc-middleware-stream@ --version-before-package-rename 5.0.1", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -54,18 +49,18 @@ }, "dependencies": { "@metamask/json-rpc-engine": "^10.5.0", - "@metamask/safe-event-emitter": "^3.0.0", + "@metamask/safe-event-emitter": "^3.1.3", "@metamask/utils": "^11.11.0", "readable-stream": "^3.6.2" }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "@types/readable-stream": "^2.3.0", "deepmerge": "^4.2.2", "extension-port-stream": "^3.0.0", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/keyring-controller/jest.config.js b/packages/keyring-controller/jest.config.cjs similarity index 90% rename from packages/keyring-controller/jest.config.js rename to packages/keyring-controller/jest.config.cjs index 02289944e6f..5d3cc96f819 100644 --- a/packages/keyring-controller/jest.config.js +++ b/packages/keyring-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/keyring-controller/package.json b/packages/keyring-controller/package.json index fff5659bdac..942bd3cf692 100644 --- a/packages/keyring-controller/package.json +++ b/packages/keyring-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/keyring-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/keyring-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -69,7 +64,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": { @@ -80,10 +75,10 @@ "@metamask/auto-changelog": "^6.1.0", "@metamask/keyring-utils": "^5.0.0", "@metamask/scure-bip39": "^2.1.1", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/keyring-controller/src/KeyringController.ts b/packages/keyring-controller/src/KeyringController.ts index 1fbf8426ff4..f935aa5e85a 100644 --- a/packages/keyring-controller/src/KeyringController.ts +++ b/packages/keyring-controller/src/KeyringController.ts @@ -37,9 +37,9 @@ import { } from '@metamask/utils'; import { Mutex } from 'async-mutex'; import type { MutexInterface } from 'async-mutex'; -import Wallet, { thirdparty as importers } from 'ethereumjs-wallet'; +import * as ethereumjsWallet 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'; @@ -53,6 +53,26 @@ import type { TypedMessageParams, } from './types.js'; +/** + * `ethereumjs-wallet` is CommonJS, and Node cannot reliably detect its named + * exports, so importing `thirdparty` directly fails at run time. It also + * declares a TypeScript-style default export, which means `module.exports` is + * reached through `default` under Node's ESM interop but is the namespace + * itself once `esModuleInterop` has unwrapped it. Both shapes are resolved + * here so the imports work whichever applies. + */ +/* istanbul ignore next: only one branch is reachable per module system */ +const walletModule = (typeof ethereumjsWallet.default === 'object' && +ethereumjsWallet.default + ? ethereumjsWallet.default + : ethereumjsWallet) as unknown as { + default: typeof ethereumjsWallet.default; + thirdparty: typeof ethereumjsWallet.thirdparty; +}; + +const Wallet = walletModule.default; +const importers = walletModule.thirdparty; + const name = 'KeyringController'; const MESSENGER_EXPOSED_METHODS = [ @@ -1376,6 +1396,7 @@ export class KeyringController< try { wallet = importers.fromEtherWallet(input, password); } catch { + // @ts-expect-error: Wallet.fromV3 does not exist? wallet = wallet ?? (await Wallet.fromV3(input, password, true)); } privateKey = bytesToHex(new Uint8Array(wallet.getPrivateKey())); diff --git a/packages/keyring-controller/tests/mocks/mockEncryptor.ts b/packages/keyring-controller/tests/mocks/mockEncryptor.ts index af97c8d3e5c..92e3acd7382 100644 --- a/packages/keyring-controller/tests/mocks/mockEncryptor.ts +++ b/packages/keyring-controller/tests/mocks/mockEncryptor.ts @@ -6,7 +6,7 @@ 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.js'; diff --git a/packages/kyc-controller/jest.config.cjs b/packages/kyc-controller/jest.config.cjs new file mode 100644 index 00000000000..6456e074bb0 --- /dev/null +++ b/packages/kyc-controller/jest.config.cjs @@ -0,0 +1,26 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages.cjs'); + +const displayName = path.basename(__dirname); + +module.exports = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, + }, +}); diff --git a/packages/kyc-controller/jest.config.js b/packages/kyc-controller/jest.config.js deleted file mode 100644 index ca084133399..00000000000 --- a/packages/kyc-controller/jest.config.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -const merge = require('deepmerge'); -const path = require('path'); - -const baseConfig = require('../../jest.config.packages'); - -const displayName = path.basename(__dirname); - -module.exports = merge(baseConfig, { - // The display name when running multiple projects - displayName, - - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100, - }, - }, -}); diff --git a/packages/kyc-controller/package.json b/packages/kyc-controller/package.json index 1a278f32bc6..a9731fe3e6f 100644 --- a/packages/kyc-controller/package.json +++ b/packages/kyc-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,10 +32,12 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", - "build:watch": "yarn build && chokidar 'src/**/*.ts' -c 'ts-bridge --project tsconfig.build.json --verbose --no-references' --initial", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", + "build:watch": "yarn build && chokidar 'src/**/*.ts' -c 'tsc --project tsconfig.build.json' --initial", "changelog:update": "../../scripts/update-changelog.sh @metamask/kyc-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/kyc-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -75,12 +70,12 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "chokidar-cli": "^3.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", "nock": "^13.3.1", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/local-node-utils/jest.config.js b/packages/local-node-utils/jest.config.cjs similarity index 90% rename from packages/local-node-utils/jest.config.js rename to packages/local-node-utils/jest.config.cjs index e733dd05831..5d72142042b 100644 --- a/packages/local-node-utils/jest.config.js +++ b/packages/local-node-utils/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/local-node-utils/package.json b/packages/local-node-utils/package.json index 32d7d0c8375..bf43c62f595 100644 --- a/packages/local-node-utils/package.json +++ b/packages/local-node-utils/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/local-node-utils", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/local-node-utils", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -59,11 +54,11 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", "nock": "^13.3.1", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/logging-controller/jest.config.cjs b/packages/logging-controller/jest.config.cjs new file mode 100644 index 00000000000..6456e074bb0 --- /dev/null +++ b/packages/logging-controller/jest.config.cjs @@ -0,0 +1,26 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages.cjs'); + +const displayName = path.basename(__dirname); + +module.exports = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, + }, +}); diff --git a/packages/logging-controller/jest.config.js b/packages/logging-controller/jest.config.js deleted file mode 100644 index ca084133399..00000000000 --- a/packages/logging-controller/jest.config.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -const merge = require('deepmerge'); -const path = require('path'); - -const baseConfig = require('../../jest.config.packages'); - -const displayName = path.basename(__dirname); - -module.exports = merge(baseConfig, { - // The display name when running multiple projects - displayName, - - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100, - }, - }, -}); diff --git a/packages/logging-controller/package.json b/packages/logging-controller/package.json index c54972da06d..f1a05fb42df 100644 --- a/packages/logging-controller/package.json +++ b/packages/logging-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/logging-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/logging-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -62,10 +57,10 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/message-manager/jest.config.cjs b/packages/message-manager/jest.config.cjs new file mode 100644 index 00000000000..6456e074bb0 --- /dev/null +++ b/packages/message-manager/jest.config.cjs @@ -0,0 +1,26 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages.cjs'); + +const displayName = path.basename(__dirname); + +module.exports = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, + }, +}); diff --git a/packages/message-manager/jest.config.js b/packages/message-manager/jest.config.js deleted file mode 100644 index ca084133399..00000000000 --- a/packages/message-manager/jest.config.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -const merge = require('deepmerge'); -const path = require('path'); - -const baseConfig = require('../../jest.config.packages'); - -const displayName = path.basename(__dirname); - -module.exports = merge(baseConfig, { - // The display name when running multiple projects - displayName, - - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100, - }, - }, -}); diff --git a/packages/message-manager/package.json b/packages/message-manager/package.json index ff91fd2cd15..19693db6ee3 100644 --- a/packages/message-manager/package.json +++ b/packages/message-manager/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/message-manager", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/message-manager", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -64,10 +59,10 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/messenger-cli/jest.config.cjs b/packages/messenger-cli/jest.config.cjs new file mode 100644 index 00000000000..4d2130d21a8 --- /dev/null +++ b/packages/messenger-cli/jest.config.cjs @@ -0,0 +1,42 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages.cjs'); + +const displayName = path.basename(__dirname); + +const config = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + // Unlike the other packages, these tests run as ESM. `generate-content.ts` + // reaches for the ESM-only `oxfmt` through a dynamic `import()`, which the + // CommonJS transform would turn into a `require()` that cannot load it. + extensionsToTreatAsEsm: ['.ts'], + + // cli.ts is tested via execa subprocess in cli.test.ts; Jest can't instrument it + coveragePathIgnorePatterns: ['./src/cli.ts'], + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 90.65, + functions: 100, + lines: 97.39, + statements: 97.4, + }, + }, +}); + +// `deepmerge` concatenates arrays, so the CommonJS transform inherited from the +// base config has to be replaced outright rather than merged into. +config.transform = { + '^.+\\.tsx?$': ['ts-jest', { useESM: true }], +}; + +module.exports = config; diff --git a/packages/messenger-cli/jest.config.js b/packages/messenger-cli/jest.config.js deleted file mode 100644 index ab426afd5c0..00000000000 --- a/packages/messenger-cli/jest.config.js +++ /dev/null @@ -1,29 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -const merge = require('deepmerge'); -const path = require('path'); - -const baseConfig = require('../../jest.config.packages'); - -const displayName = path.basename(__dirname); - -module.exports = merge(baseConfig, { - // The display name when running multiple projects - displayName, - - // cli.ts is tested via execa subprocess in cli.test.ts; Jest can't instrument it - coveragePathIgnorePatterns: ['./src/cli.ts'], - - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 90.65, - functions: 100, - lines: 97.59, - statements: 97.6, - }, - }, -}); diff --git a/packages/messenger-cli/package.json b/packages/messenger-cli/package.json index 4f9903d9363..dc19d077f02 100644 --- a/packages/messenger-cli/package.json +++ b/packages/messenger-cli/package.json @@ -16,19 +16,22 @@ "url": "https://github.com/MetaMask/core.git" }, "bin": { - "messenger-action-types": "./dist/cli.mjs" + "messenger-action-types": "./dist/cli.js" }, "files": [ "dist/" ], + "type": "module", "sideEffects": false, "publishConfig": { "access": "public", "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:clean": "yarn build:only-clean && yarn build", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "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", @@ -44,8 +47,8 @@ "yargs": "^17.7.2" }, "devDependencies": { + "@jest/globals": "^30.4.1", "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "@types/yargs": "^17.0.32", "deepmerge": "^4.2.2", @@ -53,6 +56,7 @@ "jest": "^30.4.2", "oxfmt": "^0.44.0", "prettier": "^3.3.3", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typescript": "~5.3.3" diff --git a/packages/messenger-cli/src/check.test.ts b/packages/messenger-cli/src/check.test.ts index ea212269438..91aca0c700b 100644 --- a/packages/messenger-cli/src/check.test.ts +++ b/packages/messenger-cli/src/check.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; import { createSandbox } from '@metamask/utils/node'; import * as fs from 'node:fs'; import * as path from 'node:path'; @@ -27,7 +28,9 @@ describe('checkActionTypesFiles', () => { 'utf8', ); - const consoleSpy = jest.spyOn(console, 'log').mockImplementation(); + const consoleSpy = jest + .spyOn(console, 'log') + .mockImplementation(() => undefined); const result = await checkActionTypesFiles([controller], 'prettier'); consoleSpy.mockRestore(); @@ -52,8 +55,12 @@ describe('checkActionTypesFiles', () => { 'utf8', ); - const consoleSpy = jest.spyOn(console, 'log').mockImplementation(); - const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(); + const consoleSpy = jest + .spyOn(console, 'log') + .mockImplementation(() => undefined); + const consoleErrorSpy = jest + .spyOn(console, 'error') + .mockImplementation(() => undefined); const result = await checkActionTypesFiles([controller], 'prettier'); consoleSpy.mockRestore(); consoleErrorSpy.mockRestore(); @@ -73,8 +80,12 @@ describe('checkActionTypesFiles', () => { methods: [{ name: 'doStuff', jsDoc: '' }], }; - const consoleSpy = jest.spyOn(console, 'log').mockImplementation(); - const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(); + const consoleSpy = jest + .spyOn(console, 'log') + .mockImplementation(() => undefined); + const consoleErrorSpy = jest + .spyOn(console, 'error') + .mockImplementation(() => undefined); const result = await checkActionTypesFiles([controller], 'prettier'); consoleSpy.mockRestore(); consoleErrorSpy.mockRestore(); @@ -101,8 +112,12 @@ describe('checkActionTypesFiles', () => { Object.assign(new Error('EPERM'), { code: 'EPERM' }), ); - const consoleSpy = jest.spyOn(console, 'log').mockImplementation(); - const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(); + const consoleSpy = jest + .spyOn(console, 'log') + .mockImplementation(() => undefined); + const consoleErrorSpy = jest + .spyOn(console, 'error') + .mockImplementation(() => undefined); const result = await checkActionTypesFiles([controller], 'prettier'); expect(consoleErrorSpy).toHaveBeenCalledWith( diff --git a/packages/messenger-cli/src/cli.test.ts b/packages/messenger-cli/src/cli.test.ts index ce87d9138d8..c60ce41120a 100644 --- a/packages/messenger-cli/src/cli.test.ts +++ b/packages/messenger-cli/src/cli.test.ts @@ -1,9 +1,10 @@ +import { jest } from '@jest/globals'; import { createSandbox } from '@metamask/utils/node'; 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/messenger-cli/src/fix.test.ts b/packages/messenger-cli/src/fix.test.ts index dd436ca363b..b16a3b5de8a 100644 --- a/packages/messenger-cli/src/fix.test.ts +++ b/packages/messenger-cli/src/fix.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; import { createSandbox } from '@metamask/utils/node'; import * as fs from 'node:fs'; import * as path from 'node:path'; @@ -20,7 +21,9 @@ describe('generateAllActionTypesFiles', () => { methods: [{ name: 'doStuff', jsDoc: '' }], }; - const consoleSpy = jest.spyOn(console, 'log').mockImplementation(); + const consoleSpy = jest + .spyOn(console, 'log') + .mockImplementation(() => undefined); await generateAllActionTypesFiles([controller], 'prettier'); consoleSpy.mockRestore(); @@ -52,7 +55,9 @@ describe('generateAllActionTypesFiles', () => { }, ]; - const consoleSpy = jest.spyOn(console, 'log').mockImplementation(); + const consoleSpy = jest + .spyOn(console, 'log') + .mockImplementation(() => undefined); await generateAllActionTypesFiles(controllers, 'prettier'); consoleSpy.mockRestore(); diff --git a/packages/messenger-cli/src/parse-source.test.ts b/packages/messenger-cli/src/parse-source.test.ts index f80a44d4cfb..4ebba2e3057 100644 --- a/packages/messenger-cli/src/parse-source.test.ts +++ b/packages/messenger-cli/src/parse-source.test.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; import { createSandbox } from '@metamask/utils/node'; import * as fs from 'node:fs'; import * as path from 'node:path'; @@ -445,7 +446,9 @@ class BadTsconfigController { 'utf8', ); - const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(); + const consoleErrorSpy = jest + .spyOn(console, 'error') + .mockImplementation(() => undefined); const result = await parseSourceFile(controllerFile); expect(result).toBeNull(); @@ -478,7 +481,9 @@ class NoTsconfigController { 'utf8', ); - const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(); + const consoleErrorSpy = jest + .spyOn(console, 'error') + .mockImplementation(() => undefined); const result = await parseSourceFile(controllerFile); // Should return null because assert fails when type checker can't be created @@ -492,7 +497,9 @@ class NoTsconfigController { it('returns null and logs error for invalid file', async () => { expect.assertions(2); - const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(); + const consoleErrorSpy = jest + .spyOn(console, 'error') + .mockImplementation(() => undefined); const result = await parseSourceFile('/nonexistent/file.ts'); 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/messenger/jest.config.js b/packages/messenger/jest.config.cjs similarity index 91% rename from packages/messenger/jest.config.js rename to packages/messenger/jest.config.cjs index 9ad52b2640b..93fea407a10 100644 --- a/packages/messenger/jest.config.js +++ b/packages/messenger/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/messenger/package.json b/packages/messenger/package.json index 3d2fbdfc37e..4168264bda1 100644 --- a/packages/messenger/package.json +++ b/packages/messenger/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/messenger", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/messenger", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -61,11 +56,11 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "immer": "^9.0.6", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tstyche": "^5.0.2", "tsx": "^4.20.5", diff --git a/packages/money-account-api-data-service/jest.config.js b/packages/money-account-api-data-service/jest.config.cjs similarity index 87% rename from packages/money-account-api-data-service/jest.config.js rename to packages/money-account-api-data-service/jest.config.cjs index c17efa251af..4e1004f80ec 100644 --- a/packages/money-account-api-data-service/jest.config.js +++ b/packages/money-account-api-data-service/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/money-account-api-data-service/package.json b/packages/money-account-api-data-service/package.json index 8f4ff289a9e..68639bb5ac0 100644 --- a/packages/money-account-api-data-service/package.json +++ b/packages/money-account-api-data-service/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/money-account-api-data-service", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/money-account-api-data-service", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -64,11 +59,11 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", "nock": "^13.3.1", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/money-account-api-data-service/src/index.ts b/packages/money-account-api-data-service/src/index.ts index bf60cee5d1c..10efdcbc672 100644 --- a/packages/money-account-api-data-service/src/index.ts +++ b/packages/money-account-api-data-service/src/index.ts @@ -25,7 +25,7 @@ export type { DataFreshness, CashFlowType, CashFlowSource, -} from './response.types'; +} from './response.types.js'; export type { InterestWindow, InterestOptions, 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 f559b416c75..e62a99693b1 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 @@ -29,7 +29,7 @@ import type { InterestResponse, PositionResponse, RateHistoryResponse, -} from './response.types'; +} from './response.types.js'; import { HistoryResponseStruct, InterestResponseStruct, diff --git a/packages/money-account-balance-service/jest.config.js b/packages/money-account-balance-service/jest.config.cjs similarity index 87% rename from packages/money-account-balance-service/jest.config.js rename to packages/money-account-balance-service/jest.config.cjs index c17efa251af..4e1004f80ec 100644 --- a/packages/money-account-balance-service/jest.config.js +++ b/packages/money-account-balance-service/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/money-account-balance-service/package.json b/packages/money-account-balance-service/package.json index 19451843a53..21ee052e93e 100644 --- a/packages/money-account-balance-service/package.json +++ b/packages/money-account-balance-service/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/money-account-balance-service", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/money-account-balance-service", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -69,11 +64,11 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", "nock": "^13.3.1", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/money-account-balance-service/src/index.ts b/packages/money-account-balance-service/src/index.ts index 2690bdd4782..4a9fae6229c 100644 --- a/packages/money-account-balance-service/src/index.ts +++ b/packages/money-account-balance-service/src/index.ts @@ -22,7 +22,7 @@ export type { MoneyAccountBalanceResponse, MusdEquivalentValueResponse, NormalizedVaultApyResponse, -} from './response.types'; +} from './response.types.js'; export type { BalanceSource, BalanceSourcePolicy } from './constants.js'; export { BALANCE_SOURCE_POLICIES, 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 33f1cb70e75..291f6149325 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 @@ -62,7 +62,7 @@ import type { MoneyAccountBalanceResponse, MusdEquivalentValueResponse, NormalizedVaultApyResponse, -} from './response.types'; +} from './response.types.js'; import { VaultApyRawResponseStruct, VaultConfigStruct } from './structs.js'; import type { VaultConfig } from './types.js'; diff --git a/packages/money-account-balance-service/src/requestNormalization.ts b/packages/money-account-balance-service/src/requestNormalization.ts index 88ca9f1f4a4..b06c180266e 100644 --- a/packages/money-account-balance-service/src/requestNormalization.ts +++ b/packages/money-account-balance-service/src/requestNormalization.ts @@ -1,6 +1,6 @@ import { Infer } from '@metamask/superstruct'; -import type { NormalizedVaultApyResponse } from './response.types'; +import type { NormalizedVaultApyResponse } from './response.types.js'; import { VaultApyRawResponseStruct } from './structs.js'; import { convertAprToApy } from './utils.js'; diff --git a/packages/money-account-controller/jest.config.cjs b/packages/money-account-controller/jest.config.cjs new file mode 100644 index 00000000000..6456e074bb0 --- /dev/null +++ b/packages/money-account-controller/jest.config.cjs @@ -0,0 +1,26 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages.cjs'); + +const displayName = path.basename(__dirname); + +module.exports = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, + }, +}); diff --git a/packages/money-account-controller/jest.config.js b/packages/money-account-controller/jest.config.js deleted file mode 100644 index ca084133399..00000000000 --- a/packages/money-account-controller/jest.config.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -const merge = require('deepmerge'); -const path = require('path'); - -const baseConfig = require('../../jest.config.packages'); - -const displayName = path.basename(__dirname); - -module.exports = merge(baseConfig, { - // The display name when running multiple projects - displayName, - - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100, - }, - }, -}); diff --git a/packages/money-account-controller/package.json b/packages/money-account-controller/package.json index 80d6df651ae..78648bb35d6 100644 --- a/packages/money-account-controller/package.json +++ b/packages/money-account-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/money-account-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/money-account-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -67,10 +62,10 @@ "@metamask/auto-changelog": "^6.1.0", "@metamask/keyring-utils": "^5.0.0", "@metamask/utils": "^11.11.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/money-account-upgrade-controller/jest.config.js b/packages/money-account-upgrade-controller/jest.config.cjs similarity index 87% rename from packages/money-account-upgrade-controller/jest.config.js rename to packages/money-account-upgrade-controller/jest.config.cjs index 1c5314007e1..8125dff7e09 100644 --- a/packages/money-account-upgrade-controller/jest.config.js +++ b/packages/money-account-upgrade-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/money-account-upgrade-controller/package.json b/packages/money-account-upgrade-controller/package.json index b26d808c7b6..08eab41e9ba 100644 --- a/packages/money-account-upgrade-controller/package.json +++ b/packages/money-account-upgrade-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/money-account-upgrade-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/money-account-upgrade-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -68,10 +63,10 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/money-account-utils/jest.config.cjs b/packages/money-account-utils/jest.config.cjs new file mode 100644 index 00000000000..6456e074bb0 --- /dev/null +++ b/packages/money-account-utils/jest.config.cjs @@ -0,0 +1,26 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages.cjs'); + +const displayName = path.basename(__dirname); + +module.exports = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, + }, +}); diff --git a/packages/money-account-utils/jest.config.js b/packages/money-account-utils/jest.config.js deleted file mode 100644 index ca084133399..00000000000 --- a/packages/money-account-utils/jest.config.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -const merge = require('deepmerge'); -const path = require('path'); - -const baseConfig = require('../../jest.config.packages'); - -const displayName = path.basename(__dirname); - -module.exports = merge(baseConfig, { - // The display name when running multiple projects - displayName, - - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100, - }, - }, -}); diff --git a/packages/money-account-utils/package.json b/packages/money-account-utils/package.json index 768ea7bd960..87e34bf6873 100644 --- a/packages/money-account-utils/package.json +++ b/packages/money-account-utils/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/money-account-utils", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/money-account-utils", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -63,10 +58,10 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/multichain-account-service/jest.config.js b/packages/multichain-account-service/jest.config.cjs similarity index 91% rename from packages/multichain-account-service/jest.config.js rename to packages/multichain-account-service/jest.config.cjs index ffd06163763..a4b9bd90eeb 100644 --- a/packages/multichain-account-service/jest.config.js +++ b/packages/multichain-account-service/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/multichain-account-service/package.json b/packages/multichain-account-service/package.json index 7da2a6cada2..60bd91f1a4d 100644 --- a/packages/multichain-account-service/package.json +++ b/packages/multichain-account-service/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/multichain-account-service", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/multichain-account-service", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -74,18 +69,18 @@ "@metamask/superstruct": "^3.4.1", "@metamask/utils": "^11.11.0", "async-mutex": "^0.5.0", - "lodash": "^4.17.21" + "lodash-es": "^4.17.21" }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", "@metamask/controller-utils": "^12.3.0", "@metamask/eth-hd-keyring": "^15.0.0", "@metamask/providers": "^22.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "@types/uuid": "^8.3.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/multichain-api-middleware/jest.config.js b/packages/multichain-api-middleware/jest.config.cjs similarity index 90% rename from packages/multichain-api-middleware/jest.config.js rename to packages/multichain-api-middleware/jest.config.cjs index a6816cce33a..41869fb9684 100644 --- a/packages/multichain-api-middleware/jest.config.js +++ b/packages/multichain-api-middleware/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/multichain-api-middleware/package.json b/packages/multichain-api-middleware/package.json index a40007a7b0e..10e36a540c3 100644 --- a/packages/multichain-api-middleware/package.json +++ b/packages/multichain-api-middleware/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/multichain-api-middleware", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/multichain-api-middleware", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -71,11 +66,11 @@ "@metamask/auto-changelog": "^6.1.0", "@metamask/eth-json-rpc-filters": "^9.0.0", "@metamask/multichain-transactions-controller": "^7.1.2", - "@metamask/safe-event-emitter": "^3.0.0", - "@ts-bridge/cli": "^0.6.4", + "@metamask/safe-event-emitter": "^3.1.3", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/multichain-api-middleware/src/middlewares/multichainMethodCallValidatorMiddleware.ts b/packages/multichain-api-middleware/src/middlewares/multichainMethodCallValidatorMiddleware.ts index 77977930849..b87819364c6 100644 --- a/packages/multichain-api-middleware/src/middlewares/multichainMethodCallValidatorMiddleware.ts +++ b/packages/multichain-api-middleware/src/middlewares/multichainMethodCallValidatorMiddleware.ts @@ -9,8 +9,8 @@ import type { OpenrpcDocument, ReferenceObject, } from '@open-rpc/meta-schema'; -import dereferenceDocument from '@open-rpc/schema-utils-js/build/dereference-document'; -import { makeCustomResolver } from '@open-rpc/schema-utils-js/build/parse-open-rpc-document'; +import { dereferenceDocument } from '@open-rpc/schema-utils-js'; +import { makeCustomResolver } from '@open-rpc/schema-utils-js/build/parse-open-rpc-document.js'; import type { Schema, ValidationError } from 'jsonschema'; import { Validator } from 'jsonschema'; diff --git a/packages/multichain-network-controller/jest.config.js b/packages/multichain-network-controller/jest.config.cjs similarity index 90% rename from packages/multichain-network-controller/jest.config.js rename to packages/multichain-network-controller/jest.config.cjs index 3b19ddb3f39..853be4bf83b 100644 --- a/packages/multichain-network-controller/jest.config.js +++ b/packages/multichain-network-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/multichain-network-controller/package.json b/packages/multichain-network-controller/package.json index ba096228c44..26b648339b2 100644 --- a/packages/multichain-network-controller/package.json +++ b/packages/multichain-network-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/multichain-network-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/multichain-network-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -65,19 +60,19 @@ "@metamask/superstruct": "^3.4.1", "@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", "@metamask/keyring-controller": "^27.1.1", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", - "@types/lodash": "^4.14.191", + "@types/lodash-es": "^4.17.12", "@types/uuid": "^8.3.0", "deepmerge": "^4.2.2", "immer": "^9.0.6", "jest": "^30.4.2", "nock": "^13.3.1", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/multichain-network-controller/src/MultichainNetworkService/MultichainNetworkService.test.ts b/packages/multichain-network-controller/src/MultichainNetworkService/MultichainNetworkService.test.ts index be29e727cf9..9b1743a7bac 100644 --- a/packages/multichain-network-controller/src/MultichainNetworkService/MultichainNetworkService.test.ts +++ b/packages/multichain-network-controller/src/MultichainNetworkService/MultichainNetworkService.test.ts @@ -1,6 +1,6 @@ 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, diff --git a/packages/multichain-network-controller/src/MultichainNetworkService/MultichainNetworkService.ts b/packages/multichain-network-controller/src/MultichainNetworkService/MultichainNetworkService.ts index e564c491812..801b0cef9df 100644 --- a/packages/multichain-network-controller/src/MultichainNetworkService/MultichainNetworkService.ts +++ b/packages/multichain-network-controller/src/MultichainNetworkService/MultichainNetworkService.ts @@ -1,6 +1,6 @@ import { assert } from '@metamask/superstruct'; import type { CaipAccountId } from '@metamask/utils'; -import { chunk } from 'lodash'; +import { chunk } from 'lodash-es'; import { ActiveNetworksResponseStruct, diff --git a/packages/multichain-transactions-controller/jest.config.js b/packages/multichain-transactions-controller/jest.config.cjs similarity index 90% rename from packages/multichain-transactions-controller/jest.config.js rename to packages/multichain-transactions-controller/jest.config.cjs index 61cef5a0b68..c2ddb8f7c8f 100644 --- a/packages/multichain-transactions-controller/jest.config.js +++ b/packages/multichain-transactions-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/multichain-transactions-controller/package.json b/packages/multichain-transactions-controller/package.json index 1ecdd9a0a8a..22ba901aa57 100644 --- a/packages/multichain-transactions-controller/package.json +++ b/packages/multichain-transactions-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/multichain-transactions-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/multichain-transactions-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -73,10 +68,10 @@ "devDependencies": { "@metamask/auto-changelog": "^6.1.0", "@metamask/keyring-controller": "^27.1.1", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/name-controller/jest.config.cjs b/packages/name-controller/jest.config.cjs new file mode 100644 index 00000000000..6456e074bb0 --- /dev/null +++ b/packages/name-controller/jest.config.cjs @@ -0,0 +1,26 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages.cjs'); + +const displayName = path.basename(__dirname); + +module.exports = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, + }, +}); diff --git a/packages/name-controller/jest.config.js b/packages/name-controller/jest.config.js deleted file mode 100644 index ca084133399..00000000000 --- a/packages/name-controller/jest.config.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -const merge = require('deepmerge'); -const path = require('path'); - -const baseConfig = require('../../jest.config.packages'); - -const displayName = path.basename(__dirname); - -module.exports = merge(baseConfig, { - // The display name when running multiple projects - displayName, - - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100, - }, - }, -}); diff --git a/packages/name-controller/package.json b/packages/name-controller/package.json index ef317c5e75d..ac9e84b4998 100644 --- a/packages/name-controller/package.json +++ b/packages/name-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/name-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/name-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -64,10 +59,10 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/network-connection-banner-controller/jest.config.js b/packages/network-connection-banner-controller/jest.config.cjs similarity index 91% rename from packages/network-connection-banner-controller/jest.config.js rename to packages/network-connection-banner-controller/jest.config.cjs index f6a03b68807..a0f19ea501a 100644 --- a/packages/network-connection-banner-controller/jest.config.js +++ b/packages/network-connection-banner-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/network-connection-banner-controller/package.json b/packages/network-connection-banner-controller/package.json index 7572da5634f..805dbd3a6d9 100644 --- a/packages/network-connection-banner-controller/package.json +++ b/packages/network-connection-banner-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/network-connection-banner-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/network-connection-banner-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -67,10 +62,10 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/network-controller/jest.config.js b/packages/network-controller/jest.config.cjs similarity index 92% rename from packages/network-controller/jest.config.js rename to packages/network-controller/jest.config.cjs index e20eff6e4a0..7c9351912c4 100644 --- a/packages/network-controller/jest.config.js +++ b/packages/network-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/network-controller/package.json b/packages/network-controller/package.json index 96894afbced..c92435e9dd1 100644 --- a/packages/network-controller/package.json +++ b/packages/network-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/network-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/network-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -81,11 +76,10 @@ "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": "^30.0.0", "@types/jest-when": "^2.7.3", - "@types/lodash": "^4.14.191", + "@types/lodash-es": "^4.17.12", "@types/node-fetch": "^2.6.12", "cockatiel": "^3.1.2", "deep-freeze-strict": "^1.1.1", @@ -93,9 +87,10 @@ "jest": "^30.4.2", "jest-environment-jsdom": "^30.4.1", "jest-when": "^3.7.0", - "lodash": "^4.17.21", + "lodash-es": "^4.17.21", "nock": "^13.3.1", "node-fetch": "^2.7.0", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/network-controller/src/NetworkController.ts b/packages/network-controller/src/NetworkController.ts index 5f0cbc17be1..3719f7e2616 100644 --- a/packages/network-controller/src/NetworkController.ts +++ b/packages/network-controller/src/NetworkController.ts @@ -52,7 +52,7 @@ import { 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'; diff --git a/packages/network-controller/src/create-network-client.ts b/packages/network-controller/src/create-network-client.ts index c83df15bc59..68f12217703 100644 --- a/packages/network-controller/src/create-network-client.ts +++ b/packages/network-controller/src/create-network-client.ts @@ -173,6 +173,7 @@ export function createNetworkClient({ if (configuration.type === NetworkClientType.Infura) { rpcApiMiddleware = asV2Middleware( createInfuraMiddleware({ + // @ts-expect-error: Type mismatch. rpcService: rpcServiceChain, options: { source: 'metamask', 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 c4ee0afec87..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,4 +1,4 @@ -import { fill } from 'lodash'; +import { fill } from 'lodash-es'; import type { ProviderType } from './helpers.js'; import { withMockedCommunications, withNetworkClient } from './helpers.js'; diff --git a/packages/network-enablement-controller/jest.config.js b/packages/network-enablement-controller/jest.config.cjs similarity index 90% rename from packages/network-enablement-controller/jest.config.js rename to packages/network-enablement-controller/jest.config.cjs index 8df1ea4fd9d..cece7750158 100644 --- a/packages/network-enablement-controller/jest.config.js +++ b/packages/network-enablement-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/network-enablement-controller/package.json b/packages/network-enablement-controller/package.json index 3fa2d4ec8ce..20137edd97b 100644 --- a/packages/network-enablement-controller/package.json +++ b/packages/network-enablement-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/network-enablement-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/network-enablement-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -69,10 +64,10 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/notification-services-controller/jest.config.js b/packages/notification-services-controller/jest.config.cjs similarity index 86% rename from packages/notification-services-controller/jest.config.js rename to packages/notification-services-controller/jest.config.cjs index 24f98707e42..cb0212f8d0c 100644 --- a/packages/notification-services-controller/jest.config.js +++ b/packages/notification-services-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); @@ -32,5 +32,5 @@ module.exports = merge(baseConfig, { ], // These tests rely on the Crypto API - testEnvironment: '/jest.environment.js', + testEnvironment: '/jest.environment.cjs', }); diff --git a/packages/notification-services-controller/jest.environment.js b/packages/notification-services-controller/jest.environment.cjs similarity index 100% rename from packages/notification-services-controller/jest.environment.js rename to packages/notification-services-controller/jest.environment.cjs diff --git a/packages/notification-services-controller/package.json b/packages/notification-services-controller/package.json index 82466bd7211..77c24b4ca4c 100644 --- a/packages/notification-services-controller/package.json +++ b/packages/notification-services-controller/package.json @@ -20,69 +20,32 @@ "notification-services/", "push-services/" ], + "type": "module", "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", + "default": "./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", + "default": "./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", + "default": "./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", + "default": "./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", + "default": "./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", + "default": "./dist/NotificationServicesPushController/mocks/index.js" }, "./package.json": "./package.json" }, @@ -91,9 +54,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/notification-services-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/notification-services-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -117,7 +82,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" @@ -126,9 +91,8 @@ "@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": "^30.0.0", - "@types/lodash": "^4.14.191", + "@types/lodash-es": "^4.17.12", "@types/readable-stream": "^2.3.0", "@types/semver": "^7", "contentful": "^10.15.0", @@ -136,6 +100,7 @@ "jest": "^30.4.2", "jest-environment-jsdom": "^30.4.1", "nock": "^13.3.1", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/notification-services-controller/src/NotificationServicesController/NotificationServicesController.ts b/packages/notification-services-controller/src/NotificationServicesController/NotificationServicesController.ts index 5fac52146a2..31493e196ef 100644 --- a/packages/notification-services-controller/src/NotificationServicesController/NotificationServicesController.ts +++ b/packages/notification-services-controller/src/NotificationServicesController/NotificationServicesController.ts @@ -31,7 +31,7 @@ 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 { 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 9363964500a..ef9d159e3f2 100644 --- a/packages/notification-services-controller/src/shared/to-raw-notification.ts +++ b/packages/notification-services-controller/src/shared/to-raw-notification.ts @@ -1,11 +1,10 @@ +import { TRIGGER_TYPES } from '../NotificationServicesController/constants/notification-schema.js'; import type { UnprocessedRawNotification, NormalisedAPINotification, OnChainRawNotification, PlatformRawNotification, -} from 'src/NotificationServicesController/types/notification-api'; - -import { TRIGGER_TYPES } from '../NotificationServicesController/constants/notification-schema.js'; +} from '../NotificationServicesController/types/notification-api/index.js'; import { isOnChainNotification } from './notification-api-type-guards.js'; /** diff --git a/packages/passkey-controller/jest.config.js b/packages/passkey-controller/jest.config.cjs similarity index 83% rename from packages/passkey-controller/jest.config.js rename to packages/passkey-controller/jest.config.cjs index 0f5e11a7b84..61aeb28fc4e 100644 --- a/packages/passkey-controller/jest.config.js +++ b/packages/passkey-controller/jest.config.cjs @@ -1,7 +1,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/passkey-controller/package.json b/packages/passkey-controller/package.json index a23de9de2c0..c76fb4163ac 100644 --- a/packages/passkey-controller/package.json +++ b/packages/passkey-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/passkey-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/passkey-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -68,10 +63,10 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/permission-controller/.eslintrc.js b/packages/permission-controller/.eslintrc.js deleted file mode 100644 index 1e60b9c9bd4..00000000000 --- a/packages/permission-controller/.eslintrc.js +++ /dev/null @@ -1,85 +0,0 @@ -module.exports = { - extends: ['../../.eslintrc.js'], - - overrides: [ - { - files: ['src/PermissionController.test.ts'], - rules: { - // This is taken directly from @metamask/eslint-config-typescript@12.1.0 - '@typescript-eslint/naming-convention': [ - 'error', - // We have to disable the default selector for our objectLiteralProperty - // filter to work. - // { - // selector: 'default', - // format: ['camelCase'], - // leadingUnderscore: 'allow', - // trailingUnderscore: 'forbid', - // }, - { - selector: 'enumMember', - format: ['PascalCase'], - }, - { - selector: 'interface', - format: ['PascalCase'], - custom: { - regex: '^I[A-Z]', - match: false, - }, - }, - { - selector: 'objectLiteralMethod', - format: ['camelCase', 'PascalCase', 'UPPER_CASE'], - }, - // This option is modified by the addition of a filter. - { - selector: 'objectLiteralProperty', - format: ['camelCase', 'PascalCase', 'UPPER_CASE'], - filter: { - // Match RPC method names like foo_bar, foo_barBaz, etc., and metamask.io - regex: '(^[a-z]+_[a-z]+[a-zA-Z0-9]*)|metamask\\.io$', - match: false, - }, - }, - { - selector: 'typeLike', - format: ['PascalCase'], - }, - { - selector: 'typeParameter', - format: ['PascalCase'], - custom: { - regex: '^.{3,}', - match: true, - }, - }, - { - selector: 'variable', - format: ['camelCase', 'UPPER_CASE', 'PascalCase'], - leadingUnderscore: 'allow', - }, - { - selector: 'parameter', - format: ['camelCase', 'PascalCase'], - leadingUnderscore: 'allow', - }, - { - selector: [ - 'classProperty', - 'objectLiteralProperty', - 'typeProperty', - 'classMethod', - 'objectLiteralMethod', - 'typeMethod', - 'accessor', - 'enumMember', - ], - format: null, - modifiers: ['requiresQuotes'], - }, - ], - }, - }, - ], -}; diff --git a/packages/permission-controller/jest.config.js b/packages/permission-controller/jest.config.cjs similarity index 90% rename from packages/permission-controller/jest.config.js rename to packages/permission-controller/jest.config.cjs index e69a27d2955..1a1b5e8c2ce 100644 --- a/packages/permission-controller/jest.config.js +++ b/packages/permission-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/permission-controller/package.json b/packages/permission-controller/package.json index 75b17a65fe6..35d32c23fcc 100644 --- a/packages/permission-controller/package.json +++ b/packages/permission-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/permission-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/permission-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -69,10 +64,10 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/permission-log-controller/jest.config.cjs b/packages/permission-log-controller/jest.config.cjs new file mode 100644 index 00000000000..6456e074bb0 --- /dev/null +++ b/packages/permission-log-controller/jest.config.cjs @@ -0,0 +1,26 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages.cjs'); + +const displayName = path.basename(__dirname); + +module.exports = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, + }, +}); diff --git a/packages/permission-log-controller/jest.config.js b/packages/permission-log-controller/jest.config.js deleted file mode 100644 index ca084133399..00000000000 --- a/packages/permission-log-controller/jest.config.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -const merge = require('deepmerge'); -const path = require('path'); - -const baseConfig = require('../../jest.config.packages'); - -const displayName = path.basename(__dirname); - -module.exports = merge(baseConfig, { - // The display name when running multiple projects - displayName, - - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100, - }, - }, -}); diff --git a/packages/permission-log-controller/package.json b/packages/permission-log-controller/package.json index f38f9c39c5f..7226c321f30 100644 --- a/packages/permission-log-controller/package.json +++ b/packages/permission-log-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/permission-log-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/permission-log-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -62,13 +57,13 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/deep-freeze-strict": "^1.1.0", "@types/jest": "^30.0.0", "deep-freeze-strict": "^1.1.1", "deepmerge": "^4.2.2", "jest": "^30.4.2", "nanoid": "^3.3.8", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/perps-controller/jest.config.js b/packages/perps-controller/jest.config.cjs similarity index 93% rename from packages/perps-controller/jest.config.js rename to packages/perps-controller/jest.config.cjs index b776cf1a044..76070d8b174 100644 --- a/packages/perps-controller/jest.config.js +++ b/packages/perps-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/perps-controller/package.json b/packages/perps-controller/package.json index d7ed8b4d751..11d467fd581 100644 --- a/packages/perps-controller/package.json +++ b/packages/perps-controller/package.json @@ -21,59 +21,28 @@ "!dist/services/MYXClientService*", "!dist/services/MYXWalletService*" ], + "type": "module", "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", + "default": "./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", + "default": "./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", + "default": "./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", + "default": "./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", + "default": "./dist/utils/*.js" }, "./package.json": "./package.json" }, @@ -82,9 +51,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/perps-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/perps-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -120,11 +91,11 @@ "@metamask/profile-sync-controller": "^29.0.0", "@metamask/remote-feature-flag-controller": "^6.1.0", "@metamask/transaction-controller": "^69.6.1", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "@types/uuid": "^8.3.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/phishing-controller/jest.config.js b/packages/phishing-controller/jest.config.cjs similarity index 90% rename from packages/phishing-controller/jest.config.js rename to packages/phishing-controller/jest.config.cjs index 422b97aa459..e94b4c5e85b 100644 --- a/packages/phishing-controller/jest.config.js +++ b/packages/phishing-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/phishing-controller/package.json b/packages/phishing-controller/package.json index 22f7f5f6ae5..f83854e8975 100644 --- a/packages/phishing-controller/package.json +++ b/packages/phishing-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/phishing-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/phishing-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -68,11 +63,11 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", "nock": "^13.3.1", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/platform-api-docs/jest.config.js b/packages/platform-api-docs/jest.config.cjs similarity index 92% rename from packages/platform-api-docs/jest.config.js rename to packages/platform-api-docs/jest.config.cjs index 4cf31d3b644..29a133bbdea 100644 --- a/packages/platform-api-docs/jest.config.js +++ b/packages/platform-api-docs/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/platform-api-docs/package.json b/packages/platform-api-docs/package.json index 83e96544f62..46c123450ff 100644 --- a/packages/platform-api-docs/package.json +++ b/packages/platform-api-docs/package.json @@ -15,19 +15,22 @@ "type": "git", "url": "https://github.com/MetaMask/core.git" }, - "bin": "./dist/cli.mjs", + "bin": "./dist/cli.js", "files": [ "dist/", "site/" ], + "type": "module", "sideEffects": false, "publishConfig": { "access": "public", "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:clean": "yarn build:only-clean && yarn build", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "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 +62,6 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "@types/node": "^22.13.14", "@types/npm-which": "^3", @@ -67,6 +69,7 @@ "@types/yargs": "^17.0.32", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typescript": "~5.3.3" diff --git a/packages/platform-api-docs/src/cli.test.ts b/packages/platform-api-docs/src/cli.test.ts index 0e098788b6e..40fe588eec3 100644 --- a/packages/platform-api-docs/src/cli.test.ts +++ b/packages/platform-api-docs/src/cli.test.ts @@ -149,9 +149,9 @@ export type QuxMessenger = Messenger<'Qux', QuxAction, never>; const result = await runCLI(['--help']); expect(result.exitCode).toBe(0); - expect(result.all).toContain( - 'Produces documentation for the platform API, the set of actions and events\navailable in clients through the message bus', - ); + // Keep this short: yargs wraps the help text to the terminal width, so a + // longer excerpt would depend on where the tests run. + expect(result.all).toContain('Produces documentation for the platform API'); }); it('exits with error when no scannable directories found', async () => { diff --git a/packages/platform-api-docs/src/cli.ts b/packages/platform-api-docs/src/cli.ts index 577c9e0d51e..2967bdb4fbb 100644 --- a/packages/platform-api-docs/src/cli.ts +++ b/packages/platform-api-docs/src/cli.ts @@ -68,7 +68,7 @@ type ParsedArguments = CommonArguments & * @returns Absolute path to the `docusaurus` executable. */ function resolveDocusaurus(): string { - return npmWhich(__dirname).sync('docusaurus'); + return npmWhich(import.meta.dirname).sync('docusaurus'); } /** @@ -103,7 +103,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/polling-controller/jest.config.js b/packages/polling-controller/jest.config.cjs similarity index 90% rename from packages/polling-controller/jest.config.js rename to packages/polling-controller/jest.config.cjs index 47f2cf906ed..06f2e9e67af 100644 --- a/packages/polling-controller/jest.config.js +++ b/packages/polling-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/polling-controller/package.json b/packages/polling-controller/package.json index a95a93b3458..c63ca61f366 100644 --- a/packages/polling-controller/package.json +++ b/packages/polling-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/polling-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/polling-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -62,10 +57,10 @@ "devDependencies": { "@metamask/auto-changelog": "^6.1.0", "@metamask/messenger": "^2.0.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/preferences-controller/jest.config.js b/packages/preferences-controller/jest.config.cjs similarity index 90% rename from packages/preferences-controller/jest.config.js rename to packages/preferences-controller/jest.config.cjs index 0929655a0d7..7e9d3a514e9 100644 --- a/packages/preferences-controller/jest.config.js +++ b/packages/preferences-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/preferences-controller/package.json b/packages/preferences-controller/package.json index 12e52054845..f6438c5c8ee 100644 --- a/packages/preferences-controller/package.json +++ b/packages/preferences-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/preferences-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/preferences-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -61,10 +56,10 @@ "devDependencies": { "@metamask/auto-changelog": "^6.1.0", "@metamask/utils": "^11.11.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/profile-metrics-controller/jest.config.js b/packages/profile-metrics-controller/jest.config.cjs similarity index 90% rename from packages/profile-metrics-controller/jest.config.js rename to packages/profile-metrics-controller/jest.config.cjs index 39096b2ce02..9468d682921 100644 --- a/packages/profile-metrics-controller/jest.config.js +++ b/packages/profile-metrics-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/profile-metrics-controller/package.json b/packages/profile-metrics-controller/package.json index 543df69d771..7592f47d358 100644 --- a/packages/profile-metrics-controller/package.json +++ b/packages/profile-metrics-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/profile-metrics-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/profile-metrics-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -74,11 +69,11 @@ "devDependencies": { "@metamask/auto-changelog": "^6.1.0", "@metamask/keyring-internal-api": "^12.0.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", "nock": "^13.3.1", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/profile-metrics-controller/tsconfig.json b/packages/profile-metrics-controller/tsconfig.json index 0bcad567710..f5c8ceb09e8 100644 --- a/packages/profile-metrics-controller/tsconfig.json +++ b/packages/profile-metrics-controller/tsconfig.json @@ -35,7 +35,7 @@ * uncompiled source code for packages that live in this repo. * * NOTE: This must be synchronized with the `moduleNameMapper` option in - * `jest.config.packages.js`. + * `jest.config.packages.cjs`. * * NOTE 2: This is not necessary when copying this package to `packages/`. */ diff --git a/packages/profile-sync-controller/jest.config.js b/packages/profile-sync-controller/jest.config.cjs similarity index 86% rename from packages/profile-sync-controller/jest.config.js rename to packages/profile-sync-controller/jest.config.cjs index e5ccac39389..d87ad734b94 100644 --- a/packages/profile-sync-controller/jest.config.js +++ b/packages/profile-sync-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); @@ -32,5 +32,5 @@ module.exports = merge(baseConfig, { ], // These tests rely on the Crypto API - testEnvironment: '/jest.environment.js', + testEnvironment: '/jest.environment.cjs', }); diff --git a/packages/profile-sync-controller/jest.environment.js b/packages/profile-sync-controller/jest.environment.cjs similarity index 100% rename from packages/profile-sync-controller/jest.environment.js rename to packages/profile-sync-controller/jest.environment.cjs diff --git a/packages/profile-sync-controller/package.json b/packages/profile-sync-controller/package.json index f1c9fb04add..45e0164e653 100644 --- a/packages/profile-sync-controller/package.json +++ b/packages/profile-sync-controller/package.json @@ -21,69 +21,32 @@ "user-storage/", "sdk/" ], + "type": "module", "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", + "default": "./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", + "default": "./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", + "default": "./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", + "default": "./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", + "default": "./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", + "default": "./dist/controllers/user-storage/mocks/index.js" }, "./package.json": "./package.json" }, @@ -92,9 +55,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/profile-sync-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/profile-sync-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -130,13 +95,13 @@ "@metamask/keyring-api": "^24.0.0", "@metamask/keyring-internal-api": "^12.0.0", "@metamask/providers": "^22.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "ethers": "^6.12.0", "jest": "^30.4.2", "jest-environment-jsdom": "^30.4.1", "nock": "^13.3.1", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", 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.cjs similarity index 90% rename from packages/ramps-controller/jest.config.js rename to packages/ramps-controller/jest.config.cjs index e999b4420f3..2494defae24 100644 --- a/packages/ramps-controller/jest.config.js +++ b/packages/ramps-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); 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/ramps-controller/package.json b/packages/ramps-controller/package.json index b83a89309fd..2025495aa22 100644 --- a/packages/ramps-controller/package.json +++ b/packages/ramps-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/ramps-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/ramps-controller", "dev": "node dev-watch.js", @@ -64,11 +59,11 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", "nock": "^13.3.1", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/rate-limit-controller/jest.config.js b/packages/rate-limit-controller/jest.config.cjs similarity index 90% rename from packages/rate-limit-controller/jest.config.js rename to packages/rate-limit-controller/jest.config.cjs index 2d216bdd979..8c68d2142ab 100644 --- a/packages/rate-limit-controller/jest.config.js +++ b/packages/rate-limit-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/rate-limit-controller/package.json b/packages/rate-limit-controller/package.json index 4c104d81404..08297aa3f33 100644 --- a/packages/rate-limit-controller/package.json +++ b/packages/rate-limit-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/rate-limit-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/rate-limit-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -60,10 +55,10 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/react-data-query/jest.config.js b/packages/react-data-query/jest.config.cjs similarity index 92% rename from packages/react-data-query/jest.config.js rename to packages/react-data-query/jest.config.cjs index d65ab0be8ba..bb9d733bf05 100644 --- a/packages/react-data-query/jest.config.js +++ b/packages/react-data-query/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/react-data-query/package.json b/packages/react-data-query/package.json index 114f1070cc9..fd45e2b1ca6 100644 --- a/packages/react-data-query/package.json +++ b/packages/react-data-query/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/react-data-query", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/react-data-query", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -65,10 +60,10 @@ "devDependencies": { "@metamask/auto-changelog": "^6.1.0", "@metamask/messenger": "^2.0.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tstyche": "^5.0.2", "tsx": "^4.20.5", diff --git a/packages/remote-feature-flag-controller/jest.config.js b/packages/remote-feature-flag-controller/jest.config.cjs similarity index 90% rename from packages/remote-feature-flag-controller/jest.config.js rename to packages/remote-feature-flag-controller/jest.config.cjs index bd46c807c9f..3edac144e09 100644 --- a/packages/remote-feature-flag-controller/jest.config.js +++ b/packages/remote-feature-flag-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/remote-feature-flag-controller/package.json b/packages/remote-feature-flag-controller/package.json index fad2b6bc24b..80fff02af23 100644 --- a/packages/remote-feature-flag-controller/package.json +++ b/packages/remote-feature-flag-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/remote-feature-flag-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/remote-feature-flag-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -64,11 +59,11 @@ "devDependencies": { "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", "nock": "^13.3.1", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/sample-controllers/jest.config.cjs b/packages/sample-controllers/jest.config.cjs new file mode 100644 index 00000000000..6456e074bb0 --- /dev/null +++ b/packages/sample-controllers/jest.config.cjs @@ -0,0 +1,26 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages.cjs'); + +const displayName = path.basename(__dirname); + +module.exports = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, + }, +}); diff --git a/packages/sample-controllers/jest.config.js b/packages/sample-controllers/jest.config.js deleted file mode 100644 index ca084133399..00000000000 --- a/packages/sample-controllers/jest.config.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -const merge = require('deepmerge'); -const path = require('path'); - -const baseConfig = require('../../jest.config.packages'); - -const displayName = path.basename(__dirname); - -module.exports = merge(baseConfig, { - // The display name when running multiple projects - displayName, - - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100, - }, - }, -}); diff --git a/packages/sample-controllers/package.json b/packages/sample-controllers/package.json index e1b0b31b0e8..870bc270588 100644 --- a/packages/sample-controllers/package.json +++ b/packages/sample-controllers/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/sample-controllers", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/sample-controllers", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -66,11 +61,11 @@ "devDependencies": { "@metamask/auto-changelog": "^6.1.0", "@metamask/controller-utils": "^12.3.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", "nock": "^13.3.1", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/sample-controllers/tsconfig.json b/packages/sample-controllers/tsconfig.json index c291290d7db..57a908d3930 100644 --- a/packages/sample-controllers/tsconfig.json +++ b/packages/sample-controllers/tsconfig.json @@ -26,7 +26,7 @@ * uncompiled source code for packages that live in this repo. * * NOTE: This must be synchronized with the `moduleNameMapper` option in - * `jest.config.packages.js`. + * `jest.config.packages.cjs`. * * NOTE 2: This is not necessary when copying this package to `packages/`. */ diff --git a/packages/seedless-onboarding-controller/jest.config.js b/packages/seedless-onboarding-controller/jest.config.cjs similarity index 90% rename from packages/seedless-onboarding-controller/jest.config.js rename to packages/seedless-onboarding-controller/jest.config.cjs index ff67b94d816..0c23b528ade 100644 --- a/packages/seedless-onboarding-controller/jest.config.js +++ b/packages/seedless-onboarding-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/seedless-onboarding-controller/package.json b/packages/seedless-onboarding-controller/package.json index eaf4c89d762..a44f51e16e5 100644 --- a/packages/seedless-onboarding-controller/package.json +++ b/packages/seedless-onboarding-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/seedless-onboarding-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/seedless-onboarding-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -71,13 +66,13 @@ "@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": "^30.0.0", "@types/json-stable-stringify-without-jsonify": "^1.0.2", "deepmerge": "^4.2.2", "jest": "^30.4.2", "nock": "^13.3.1", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/selected-network-controller/jest.config.js b/packages/selected-network-controller/jest.config.cjs similarity index 92% rename from packages/selected-network-controller/jest.config.js rename to packages/selected-network-controller/jest.config.cjs index e6b243e9a43..c3e394df131 100644 --- a/packages/selected-network-controller/jest.config.js +++ b/packages/selected-network-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/selected-network-controller/package.json b/packages/selected-network-controller/package.json index 4b3eeee0e5b..1e37143e31e 100644 --- a/packages/selected-network-controller/package.json +++ b/packages/selected-network-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/selected-network-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/selected-network-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -65,14 +60,14 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "immer": "^9.0.6", "jest": "^30.4.2", "jest-environment-jsdom": "^30.4.1", - "lodash": "^4.17.21", + "lodash-es": "^4.17.21", "nock": "^13.3.1", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/sentinel-api-service/jest.config.cjs b/packages/sentinel-api-service/jest.config.cjs new file mode 100644 index 00000000000..6456e074bb0 --- /dev/null +++ b/packages/sentinel-api-service/jest.config.cjs @@ -0,0 +1,26 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages.cjs'); + +const displayName = path.basename(__dirname); + +module.exports = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, + }, +}); diff --git a/packages/sentinel-api-service/jest.config.js b/packages/sentinel-api-service/jest.config.js deleted file mode 100644 index ca084133399..00000000000 --- a/packages/sentinel-api-service/jest.config.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -const merge = require('deepmerge'); -const path = require('path'); - -const baseConfig = require('../../jest.config.packages'); - -const displayName = path.basename(__dirname); - -module.exports = merge(baseConfig, { - // The display name when running multiple projects - displayName, - - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100, - }, - }, -}); diff --git a/packages/sentinel-api-service/package.json b/packages/sentinel-api-service/package.json index 67c8dcaaa63..79327a94e6d 100644 --- a/packages/sentinel-api-service/package.json +++ b/packages/sentinel-api-service/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/sentinel-api-service", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/sentinel-api-service", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -64,11 +59,11 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", "nock": "^13.3.1", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/shield-controller/jest.config.js b/packages/shield-controller/jest.config.cjs similarity index 90% rename from packages/shield-controller/jest.config.js rename to packages/shield-controller/jest.config.cjs index ae4b5bf5106..05c061d3dea 100644 --- a/packages/shield-controller/jest.config.js +++ b/packages/shield-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/shield-controller/package.json b/packages/shield-controller/package.json index 86c00c14ced..0f682f29c8d 100644 --- a/packages/shield-controller/package.json +++ b/packages/shield-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/shield-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/shield-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -71,11 +66,11 @@ "@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": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", - "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/shield-controller/src/ShieldController.ts b/packages/shield-controller/src/ShieldController.ts index 1c1d16fb980..d1fd38ff4e8 100644 --- a/packages/shield-controller/src/ShieldController.ts +++ b/packages/shield-controller/src/ShieldController.ts @@ -14,7 +14,7 @@ import type { TransactionControllerStateChangeEvent, TransactionMeta, } from '@metamask/transaction-controller'; -import { cloneDeep, isEqual } from 'lodash'; +import { cloneDeep, isEqual } from 'lodash-es'; import { controllerName } from './constants.js'; import { projectLogger, createModuleLogger } from './logger.js'; diff --git a/packages/signature-controller/jest.config.js b/packages/signature-controller/jest.config.cjs similarity index 90% rename from packages/signature-controller/jest.config.js rename to packages/signature-controller/jest.config.cjs index 5ff8040ea0b..c8c219e0667 100644 --- a/packages/signature-controller/jest.config.js +++ b/packages/signature-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/signature-controller/package.json b/packages/signature-controller/package.json index 3720c02bc2c..61e319139a8 100644 --- a/packages/signature-controller/package.json +++ b/packages/signature-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/signature-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/signature-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -67,15 +62,15 @@ "@metamask/network-controller": "^36.0.0", "@metamask/utils": "^11.11.0", "jsonschema": "^1.4.1", - "lodash": "^4.17.21", + "lodash-es": "^4.17.21", "uuid": "^8.3.2" }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/smart-transactions-controller/jest.config.js b/packages/smart-transactions-controller/jest.config.cjs similarity index 90% rename from packages/smart-transactions-controller/jest.config.js rename to packages/smart-transactions-controller/jest.config.cjs index 04f7610988e..5c184ef83b5 100644 --- a/packages/smart-transactions-controller/jest.config.js +++ b/packages/smart-transactions-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/smart-transactions-controller/package.json b/packages/smart-transactions-controller/package.json index 5e2f78b3d2a..aab2cb83543 100644 --- a/packages/smart-transactions-controller/package.json +++ b/packages/smart-transactions-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/smart-transactions-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/smart-transactions-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -72,16 +67,16 @@ "@metamask/transaction-controller": "^69.6.1", "@metamask/utils": "^11.11.0", "bignumber.js": "^9.1.2", - "lodash": "^4.17.21", + "lodash-es": "^4.17.21", "reselect": "^5.1.1" }, "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": "^30.4.2", "nock": "^13.3.1", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/smart-transactions-controller/src/SmartTransactionsController.ts b/packages/smart-transactions-controller/src/SmartTransactionsController.ts index c5e107f8260..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, diff --git a/packages/smart-transactions-controller/src/utils.ts b/packages/smart-transactions-controller/src/utils.ts index def15a74890..c087f63c2c6 100644 --- a/packages/smart-transactions-controller/src/utils.ts +++ b/packages/smart-transactions-controller/src/utils.ts @@ -7,7 +7,7 @@ import type { } from '@metamask/transaction-controller'; import { TransactionStatus } from '@metamask/transaction-controller'; import { BigNumber } from 'bignumber.js'; -import _ from 'lodash'; +import { camelCase, isArray, isObject, mapKeys, mapValues } 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. @@ -146,19 +146,19 @@ export const getStxProcessingTime = ( export const mapKeysToCamel = ( obj: Record, ): Record => { - if (!_.isObject(obj)) { + if (!isObject(obj)) { return obj; } - const mappedValues = _.mapValues(obj, (val: Record) => { - if (_.isArray(val)) { + const mappedValues = mapValues(obj, (val: Record) => { + if (isArray(val)) { return val.map(mapKeysToCamel); - } else if (_.isObject(val)) { + } else if (isObject(val)) { return mapKeysToCamel(val); } return val; }); // eslint-disable-next-line @typescript-eslint/no-unused-vars - return _.mapKeys(mappedValues, (value, key) => _.camelCase(key)); + return mapKeys(mappedValues, (value, key) => camelCase(key)); }; export async function handleFetch(request: string, options?: RequestInit) { diff --git a/packages/snap-account-service/jest.config.js b/packages/snap-account-service/jest.config.cjs similarity index 90% rename from packages/snap-account-service/jest.config.js rename to packages/snap-account-service/jest.config.cjs index 0eb4a09b245..78bc62a4db7 100644 --- a/packages/snap-account-service/jest.config.js +++ b/packages/snap-account-service/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/snap-account-service/package.json b/packages/snap-account-service/package.json index 5ab3ebcf2e8..8cca61fc308 100644 --- a/packages/snap-account-service/package.json +++ b/packages/snap-account-service/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/snap-account-service", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/snap-account-service", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -65,15 +60,15 @@ "@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", "@metamask/keyring-utils": "^5.0.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/snap-account-service/src/SnapPlatformWatcher.ts b/packages/snap-account-service/src/SnapPlatformWatcher.ts index ec3797464ed..b4ba6869e5f 100644 --- a/packages/snap-account-service/src/SnapPlatformWatcher.ts +++ b/packages/snap-account-service/src/SnapPlatformWatcher.ts @@ -1,5 +1,5 @@ import { createDeferredPromise, DeferredPromise } from '@metamask/utils'; -import { once } from 'lodash'; +import { once } from 'lodash-es'; import { projectLogger as log } from './logger.js'; import type { SnapAccountServiceMessenger } from './SnapAccountService.js'; diff --git a/packages/social-controllers/jest.config.cjs b/packages/social-controllers/jest.config.cjs new file mode 100644 index 00000000000..6456e074bb0 --- /dev/null +++ b/packages/social-controllers/jest.config.cjs @@ -0,0 +1,26 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages.cjs'); + +const displayName = path.basename(__dirname); + +module.exports = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, + }, +}); diff --git a/packages/social-controllers/jest.config.js b/packages/social-controllers/jest.config.js deleted file mode 100644 index ca084133399..00000000000 --- a/packages/social-controllers/jest.config.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -const merge = require('deepmerge'); -const path = require('path'); - -const baseConfig = require('../../jest.config.packages'); - -const displayName = path.basename(__dirname); - -module.exports = merge(baseConfig, { - // The display name when running multiple projects - displayName, - - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100, - }, - }, -}); diff --git a/packages/social-controllers/package.json b/packages/social-controllers/package.json index 4c0e0dff245..ba69c906a86 100644 --- a/packages/social-controllers/package.json +++ b/packages/social-controllers/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/social-controllers", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/social-controllers", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -64,10 +59,10 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/solana-test-validator-up/jest.config.js b/packages/solana-test-validator-up/jest.config.cjs similarity index 92% rename from packages/solana-test-validator-up/jest.config.js rename to packages/solana-test-validator-up/jest.config.cjs index fd487307ddd..96c64c8c389 100644 --- a/packages/solana-test-validator-up/jest.config.js +++ b/packages/solana-test-validator-up/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/solana-test-validator-up/package.json b/packages/solana-test-validator-up/package.json index 3e0cee63644..5bfa8c5279e 100644 --- a/packages/solana-test-validator-up/package.json +++ b/packages/solana-test-validator-up/package.json @@ -15,23 +15,16 @@ "type": "git", "url": "https://github.com/MetaMask/core.git" }, - "bin": "./dist/bin/solana-test-validator-up.mjs", + "bin": "./dist/bin/solana-test-validator-up.js", "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -40,9 +33,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/solana-test-validator-up", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/solana-test-validator-up", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -60,10 +55,10 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/stellar-quickstart-up/jest.config.cjs b/packages/stellar-quickstart-up/jest.config.cjs new file mode 100644 index 00000000000..6456e074bb0 --- /dev/null +++ b/packages/stellar-quickstart-up/jest.config.cjs @@ -0,0 +1,26 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages.cjs'); + +const displayName = path.basename(__dirname); + +module.exports = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, + }, +}); diff --git a/packages/stellar-quickstart-up/jest.config.js b/packages/stellar-quickstart-up/jest.config.js deleted file mode 100644 index ca084133399..00000000000 --- a/packages/stellar-quickstart-up/jest.config.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -const merge = require('deepmerge'); -const path = require('path'); - -const baseConfig = require('../../jest.config.packages'); - -const displayName = path.basename(__dirname); - -module.exports = merge(baseConfig, { - // The display name when running multiple projects - displayName, - - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100, - }, - }, -}); diff --git a/packages/stellar-quickstart-up/package.json b/packages/stellar-quickstart-up/package.json index 33a3c170510..8d4e0444744 100644 --- a/packages/stellar-quickstart-up/package.json +++ b/packages/stellar-quickstart-up/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/stellar-quickstart-up", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/stellar-quickstart-up", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -56,10 +51,10 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/storage-service/jest.config.cjs b/packages/storage-service/jest.config.cjs new file mode 100644 index 00000000000..6456e074bb0 --- /dev/null +++ b/packages/storage-service/jest.config.cjs @@ -0,0 +1,26 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages.cjs'); + +const displayName = path.basename(__dirname); + +module.exports = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, + }, +}); diff --git a/packages/storage-service/jest.config.js b/packages/storage-service/jest.config.js deleted file mode 100644 index ca084133399..00000000000 --- a/packages/storage-service/jest.config.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -const merge = require('deepmerge'); -const path = require('path'); - -const baseConfig = require('../../jest.config.packages'); - -const displayName = path.basename(__dirname); - -module.exports = merge(baseConfig, { - // The display name when running multiple projects - displayName, - - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100, - }, - }, -}); diff --git a/packages/storage-service/package.json b/packages/storage-service/package.json index 1823b6a641d..ca951deee13 100644 --- a/packages/storage-service/package.json +++ b/packages/storage-service/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/storage-service", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/storage-service", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -60,10 +55,10 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/subscription-controller/jest.config.cjs b/packages/subscription-controller/jest.config.cjs new file mode 100644 index 00000000000..6456e074bb0 --- /dev/null +++ b/packages/subscription-controller/jest.config.cjs @@ -0,0 +1,26 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages.cjs'); + +const displayName = path.basename(__dirname); + +module.exports = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, + }, +}); diff --git a/packages/subscription-controller/jest.config.js b/packages/subscription-controller/jest.config.js deleted file mode 100644 index ca084133399..00000000000 --- a/packages/subscription-controller/jest.config.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -const merge = require('deepmerge'); -const path = require('path'); - -const baseConfig = require('../../jest.config.packages'); - -const displayName = path.basename(__dirname); - -module.exports = merge(baseConfig, { - // The display name when running multiple projects - displayName, - - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100, - }, - }, -}); diff --git a/packages/subscription-controller/package.json b/packages/subscription-controller/package.json index 37c5127cdda..c2926221f55 100644 --- a/packages/subscription-controller/package.json +++ b/packages/subscription-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/subscription-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/subscription-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -69,10 +64,10 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/transaction-controller/jest.config.js b/packages/transaction-controller/jest.config.cjs similarity index 91% rename from packages/transaction-controller/jest.config.js rename to packages/transaction-controller/jest.config.cjs index 636e85e9785..be6f5d6833e 100644 --- a/packages/transaction-controller/jest.config.js +++ b/packages/transaction-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/transaction-controller/package.json b/packages/transaction-controller/package.json index 83723b9aacc..f4421d31b00 100644 --- a/packages/transaction-controller/package.json +++ b/packages/transaction-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/transaction-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/transaction-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -81,7 +76,7 @@ "eth-method-registry": "^4.0.0", "ethereum-cryptography": "^2.1.2", "fast-json-patch": "^3.1.1", - "lodash": "^4.17.21", + "lodash-es": "^4.17.21", "uuid": "^8.3.2" }, "devDependencies": { @@ -91,7 +86,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": "^30.0.0", "@types/node": "^22.13.14", @@ -100,6 +94,7 @@ "jest": "^30.4.2", "jest-environment-jsdom": "^30.4.1", "nock": "^13.3.1", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/transaction-controller/src/TransactionController.ts b/packages/transaction-controller/src/TransactionController.ts index aaf788a8052..19de1671966 100644 --- a/packages/transaction-controller/src/TransactionController.ts +++ b/packages/transaction-controller/src/TransactionController.ts @@ -68,7 +68,7 @@ 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.js'; diff --git a/packages/transaction-controller/src/api/simulation-api.test.ts b/packages/transaction-controller/src/api/simulation-api.test.ts index 74191d0668b..8148c9bee08 100644 --- a/packages/transaction-controller/src/api/simulation-api.test.ts +++ b/packages/transaction-controller/src/api/simulation-api.test.ts @@ -1,5 +1,5 @@ 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.js'; diff --git a/packages/transaction-controller/src/api/simulation-api.ts b/packages/transaction-controller/src/api/simulation-api.ts index 4d080a3055e..ff16cbbb050 100644 --- a/packages/transaction-controller/src/api/simulation-api.ts +++ b/packages/transaction-controller/src/api/simulation-api.ts @@ -1,7 +1,7 @@ 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, diff --git a/packages/transaction-controller/src/helpers/PendingTransactionTracker.ts b/packages/transaction-controller/src/helpers/PendingTransactionTracker.ts index a510d828ca2..80b0918635c 100644 --- a/packages/transaction-controller/src/helpers/PendingTransactionTracker.ts +++ b/packages/transaction-controller/src/helpers/PendingTransactionTracker.ts @@ -6,7 +6,7 @@ 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.js'; import type { TransactionControllerMessenger } from '../TransactionController.js'; diff --git a/packages/transaction-controller/src/helpers/ResimulateHelper.ts b/packages/transaction-controller/src/helpers/ResimulateHelper.ts index 123f9ff190b..5e3875d1676 100644 --- a/packages/transaction-controller/src/helpers/ResimulateHelper.ts +++ b/packages/transaction-controller/src/helpers/ResimulateHelper.ts @@ -1,7 +1,7 @@ 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.js'; import { TransactionContainerType, TransactionStatus } from '../types.js'; diff --git a/packages/transaction-controller/src/helpers/TransactionPoller.ts b/packages/transaction-controller/src/helpers/TransactionPoller.ts index 406400e2a3d..0c87c10b4a3 100644 --- a/packages/transaction-controller/src/helpers/TransactionPoller.ts +++ b/packages/transaction-controller/src/helpers/TransactionPoller.ts @@ -2,7 +2,7 @@ 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.js'; import type { TransactionControllerMessenger } from '../TransactionController.js'; diff --git a/packages/transaction-controller/src/hooks/CollectPublishHook.test.ts b/packages/transaction-controller/src/hooks/CollectPublishHook.test.ts index ce853bf9a22..23bf3f27ac8 100644 --- a/packages/transaction-controller/src/hooks/CollectPublishHook.test.ts +++ b/packages/transaction-controller/src/hooks/CollectPublishHook.test.ts @@ -1,4 +1,4 @@ -import { noop } from 'lodash'; +import { noop } from 'lodash-es'; import { flushPromises } from '../../../../tests/helpers.js'; import type { TransactionMeta } from '../index.js'; diff --git a/packages/transaction-controller/src/hooks/CollectPublishHook.ts b/packages/transaction-controller/src/hooks/CollectPublishHook.ts index 978608f61e8..5e15e8fd4b9 100644 --- a/packages/transaction-controller/src/hooks/CollectPublishHook.ts +++ b/packages/transaction-controller/src/hooks/CollectPublishHook.ts @@ -1,6 +1,6 @@ import type { DeferredPromise, Hex } from '@metamask/utils'; import { createDeferredPromise, createModuleLogger } from '@metamask/utils'; -import { sortBy } from 'lodash'; +import { sortBy } from 'lodash-es'; import { projectLogger } from '../logger.js'; import type { diff --git a/packages/transaction-controller/src/utils/batch.test.ts b/packages/transaction-controller/src/utils/batch.test.ts index b546577fff1..55a1899a6a5 100644 --- a/packages/transaction-controller/src/utils/batch.test.ts +++ b/packages/transaction-controller/src/utils/batch.test.ts @@ -2,7 +2,7 @@ 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'; 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 6cad84fc4ec..0d831209142 100644 --- a/packages/transaction-controller/src/utils/gas-fee-tokens.test.ts +++ b/packages/transaction-controller/src/utils/gas-fee-tokens.test.ts @@ -1,5 +1,5 @@ import type { Hex } from '@metamask/utils'; -import { cloneDeep } from 'lodash'; +import { cloneDeep } from 'lodash-es'; import { simulateTransactions } from '../api/simulation-api.js'; import type { diff --git a/packages/transaction-controller/src/utils/gas.test.ts b/packages/transaction-controller/src/utils/gas.test.ts index 0d15aca708e..01e7d585a35 100644 --- a/packages/transaction-controller/src/utils/gas.test.ts +++ b/packages/transaction-controller/src/utils/gas.test.ts @@ -1,7 +1,7 @@ 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, diff --git a/packages/transaction-controller/src/utils/prepare.ts b/packages/transaction-controller/src/utils/prepare.ts index 96bd589b672..1586f750984 100644 --- a/packages/transaction-controller/src/utils/prepare.ts +++ b/packages/transaction-controller/src/utils/prepare.ts @@ -4,7 +4,7 @@ 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.js'; diff --git a/packages/transaction-controller/src/utils/swaps.ts b/packages/transaction-controller/src/utils/swaps.ts index 685cf00cc35..04e5cfd38e9 100644 --- a/packages/transaction-controller/src/utils/swaps.ts +++ b/packages/transaction-controller/src/utils/swaps.ts @@ -1,5 +1,5 @@ import type { NetworkClientId } from '@metamask/network-controller'; -import { merge, pickBy } from 'lodash'; +import { merge, pickBy } from 'lodash-es'; import { CHAIN_IDS } from '../constants.js'; import { createModuleLogger, projectLogger } from '../logger.js'; diff --git a/packages/transaction-pay-controller/jest.config.js b/packages/transaction-pay-controller/jest.config.cjs similarity index 90% rename from packages/transaction-pay-controller/jest.config.js rename to packages/transaction-pay-controller/jest.config.cjs index 363ffd2deb8..92659169abb 100644 --- a/packages/transaction-pay-controller/jest.config.js +++ b/packages/transaction-pay-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/transaction-pay-controller/package.json b/packages/transaction-pay-controller/package.json index 2be0144dd98..d3d954b738f 100644 --- a/packages/transaction-pay-controller/package.json +++ b/packages/transaction-pay-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/transaction-pay-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/transaction-pay-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -76,14 +71,14 @@ "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", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/transaction-pay-controller/src/TransactionPayController.ts b/packages/transaction-pay-controller/src/TransactionPayController.ts index b522deed48f..60e47e74567 100644 --- a/packages/transaction-pay-controller/src/TransactionPayController.ts +++ b/packages/transaction-pay-controller/src/TransactionPayController.ts @@ -2,7 +2,7 @@ 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.js'; import { updatePaymentToken } from './actions/update-payment-token.js'; 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 58baa2427b5..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,5 +1,5 @@ import type { TransactionMeta } from '@metamask/transaction-controller'; -import { noop } from 'lodash'; +import { noop } from 'lodash-es'; import type { TransactionData, TransactionFiatPayment } from '../types.js'; import { getTransaction } from '../utils/transaction.js'; 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 d637f586166..7184ea2bbab 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,5 +1,5 @@ import type { TransactionMeta } from '@metamask/transaction-controller'; -import { noop } from 'lodash'; +import { noop } from 'lodash-es'; import type { TransactionData, TransactionPaymentToken } from '../types.js'; import { diff --git a/packages/transaction-pay-controller/src/helpers/QuoteRefresher.ts b/packages/transaction-pay-controller/src/helpers/QuoteRefresher.ts index f90e2e58c3e..df9dc8eaad2 100644 --- a/packages/transaction-pay-controller/src/helpers/QuoteRefresher.ts +++ b/packages/transaction-pay-controller/src/helpers/QuoteRefresher.ts @@ -1,6 +1,6 @@ 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 type { 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 03487050b8e..0486058202d 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,7 +5,7 @@ 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.js'; import { 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 7daade07019..c0719865cdc 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,7 +1,7 @@ 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.js'; import type { TransactionPayQuote } from '../../types.js'; 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 8fbf3cd3e2c..794210c5ddb 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,7 +5,7 @@ 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.js'; import { getMessengerMock } from '../../tests/messenger-mock.js'; 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 0d0230b6081..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,7 +2,7 @@ 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.js'; import { getMessengerMock } from '../../tests/messenger-mock.js'; diff --git a/packages/transaction-pay-controller/src/tests/messenger-mock.ts b/packages/transaction-pay-controller/src/tests/messenger-mock.ts index f81bbf7516d..96fd295e4be 100644 --- a/packages/transaction-pay-controller/src/tests/messenger-mock.ts +++ b/packages/transaction-pay-controller/src/tests/messenger-mock.ts @@ -46,10 +46,13 @@ type RootMessenger = Messenger; * @param options.skipRegister - Whether to skip registering action handlers. * @returns The mock messenger and associated mock functions. */ -// eslint-disable-next-line @typescript-eslint/explicit-function-return-type +// TS2742: The inferred type of 'getMessengerMock' cannot be named without a +// reference to '../../../../node_modules/@metamask/transaction-controller/dist/utils/gas.js'. +// This is likely not portable. A type annotation is necessary. export function getMessengerMock({ skipRegister, -}: { skipRegister?: boolean } = {}) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any +}: { skipRegister?: boolean } = {}): any { const getControllerStateMock: jest.MockedFn< TransactionPayControllerGetStateAction['handler'] > = jest.fn(); diff --git a/packages/transaction-pay-controller/src/utils/feature-flags.ts b/packages/transaction-pay-controller/src/utils/feature-flags.ts index b9c34ebc06d..349c69941a0 100644 --- a/packages/transaction-pay-controller/src/utils/feature-flags.ts +++ b/packages/transaction-pay-controller/src/utils/feature-flags.ts @@ -6,7 +6,7 @@ import type { 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, diff --git a/packages/transaction-pay-controller/src/utils/gas.test.ts b/packages/transaction-pay-controller/src/utils/gas.test.ts index 83fb3ab603a..8a3edf9de11 100644 --- a/packages/transaction-pay-controller/src/utils/gas.test.ts +++ b/packages/transaction-pay-controller/src/utils/gas.test.ts @@ -1,6 +1,6 @@ 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/index.js'; import type { diff --git a/packages/transaction-pay-controller/src/utils/quotes.test.ts b/packages/transaction-pay-controller/src/utils/quotes.test.ts index c0135333d94..ea27b172a66 100644 --- a/packages/transaction-pay-controller/src/utils/quotes.test.ts +++ b/packages/transaction-pay-controller/src/utils/quotes.test.ts @@ -2,7 +2,7 @@ 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.js'; import { getMessengerMock } from '../tests/messenger-mock.js'; diff --git a/packages/transaction-pay-controller/src/utils/transaction.test.ts b/packages/transaction-pay-controller/src/utils/transaction.test.ts index 8db399076d4..68fe77d7935 100644 --- a/packages/transaction-pay-controller/src/utils/transaction.test.ts +++ b/packages/transaction-pay-controller/src/utils/transaction.test.ts @@ -8,7 +8,7 @@ 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.js'; import { getMessengerMock } from '../tests/messenger-mock.js'; diff --git a/packages/transaction-pay-controller/src/utils/transaction.ts b/packages/transaction-pay-controller/src/utils/transaction.ts index 5713675a37c..3978940281f 100644 --- a/packages/transaction-pay-controller/src/utils/transaction.ts +++ b/packages/transaction-pay-controller/src/utils/transaction.ts @@ -6,7 +6,7 @@ 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.js'; import type { diff --git a/packages/user-operation-controller/jest.config.js b/packages/user-operation-controller/jest.config.cjs similarity index 90% rename from packages/user-operation-controller/jest.config.js rename to packages/user-operation-controller/jest.config.cjs index 53362a9b4f2..3e0c784acac 100644 --- a/packages/user-operation-controller/jest.config.js +++ b/packages/user-operation-controller/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); diff --git a/packages/user-operation-controller/package.json b/packages/user-operation-controller/package.json index e784852f8ba..b07963dbc39 100644 --- a/packages/user-operation-controller/package.json +++ b/packages/user-operation-controller/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/user-operation-controller", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/user-operation-controller", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -71,16 +66,16 @@ "@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": { "@metamask/auto-changelog": "^6.1.0", "@metamask/eth-block-tracker": "^15.0.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/user-operation-controller/src/UserOperationController.ts b/packages/user-operation-controller/src/UserOperationController.ts index f3785ec2b46..a33a0f22b38 100644 --- a/packages/user-operation-controller/src/UserOperationController.ts +++ b/packages/user-operation-controller/src/UserOperationController.ts @@ -30,7 +30,7 @@ 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.js'; 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 3aaddfdbb7b..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,7 +3,7 @@ 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.js'; import { updateGasFees } from './gas-fees.js'; diff --git a/packages/user-operation-controller/src/utils/gas.test.ts b/packages/user-operation-controller/src/utils/gas.test.ts index 04bbdaf9529..35dc2c094a0 100644 --- a/packages/user-operation-controller/src/utils/gas.test.ts +++ b/packages/user-operation-controller/src/utils/gas.test.ts @@ -1,4 +1,4 @@ -import { cloneDeep } from 'lodash'; +import { cloneDeep } from 'lodash-es'; import { VALUE_ZERO } from '../constants.js'; import type { BundlerEstimateUserOperationGasResponse } from '../helpers/Bundler.js'; diff --git a/packages/user-operation-controller/src/utils/validation.test.ts b/packages/user-operation-controller/src/utils/validation.test.ts index ac45e248373..b7faa6daf56 100644 --- a/packages/user-operation-controller/src/utils/validation.test.ts +++ b/packages/user-operation-controller/src/utils/validation.test.ts @@ -1,7 +1,7 @@ /* eslint-disable jest/expect-expect */ import { TransactionType } from '@metamask/transaction-controller'; -import { cloneDeep } from 'lodash'; +import { cloneDeep } from 'lodash-es'; import type { PrepareUserOperationResponse, diff --git a/packages/wallet-cli/jest.config.js b/packages/wallet-cli/jest.config.cjs similarity index 92% rename from packages/wallet-cli/jest.config.js rename to packages/wallet-cli/jest.config.cjs index 2c7fd279302..16a8801da44 100644 --- a/packages/wallet-cli/jest.config.js +++ b/packages/wallet-cli/jest.config.cjs @@ -6,7 +6,7 @@ const merge = require('deepmerge'); const path = require('path'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); const displayName = path.basename(__dirname); @@ -17,7 +17,7 @@ module.exports = merge(baseConfig, { // The e2e test constructs a real KeyringController, which needs the Web // Crypto API; this environment polyfills `crypto` when the test realm (Node // < 21 under --experimental-vm-modules) lacks it. - testEnvironment: '/jest.environment.js', + testEnvironment: '/jest.environment.cjs', // The test harness in `src/test/` is exercised by the command tests but // not all of its error/edge branches are worth driving directly — it's diff --git a/packages/wallet-cli/jest.config.e2e.js b/packages/wallet-cli/jest.config.e2e.cjs similarity index 87% rename from packages/wallet-cli/jest.config.e2e.js rename to packages/wallet-cli/jest.config.e2e.cjs index aff6a9372c3..60484cd9bb8 100644 --- a/packages/wallet-cli/jest.config.e2e.js +++ b/packages/wallet-cli/jest.config.e2e.cjs @@ -10,7 +10,7 @@ const merge = require('deepmerge'); -const baseConfig = require('../../jest.config.packages'); +const baseConfig = require('../../jest.config.packages.cjs'); module.exports = merge(baseConfig, { displayName: 'wallet-cli:e2e', @@ -24,7 +24,7 @@ module.exports = merge(baseConfig, { collectCoverage: false, // The CLI runs in a normal Node process with the Web Crypto globals, so this - // suite needs neither the `jest.environment.js` polyfill nor any coverage + // suite needs neither the `jest.environment.cjs` polyfill nor any coverage // threshold. testEnvironment: 'node', }); diff --git a/packages/wallet-cli/jest.environment.js b/packages/wallet-cli/jest.environment.cjs similarity index 100% rename from packages/wallet-cli/jest.environment.js rename to packages/wallet-cli/jest.environment.cjs diff --git a/packages/wallet-cli/package.json b/packages/wallet-cli/package.json index 9e82a5ec052..2b3b45ccc3d 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" @@ -31,8 +32,10 @@ "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:clean": "yarn build:only-clean && yarn build", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "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", @@ -40,7 +43,7 @@ "since-latest-release": "../../scripts/since-latest-release.sh", "test": "yarn test:prepare && NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter", "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache", - "test:e2e": "yarn test:prepare && NODE_OPTIONS=--experimental-vm-modules jest --config jest.config.e2e.js", + "test:e2e": "yarn test:prepare && NODE_OPTIONS=--experimental-vm-modules jest --config jest.config.e2e.cjs", "test:e2e:install-anvil": "mm-foundryup", "test:prepare": "./scripts/install-binaries.sh", "test:verbose": "NODE_OPTIONS=--experimental-vm-modules jest --verbose", @@ -67,13 +70,13 @@ "devDependencies": { "@metamask/auto-changelog": "^6.1.0", "@metamask/foundryup": "^1.0.1", - "@ts-bridge/cli": "^0.6.4", "@types/better-sqlite3": "^7.6.13", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", "jest-environment-node": "^30.4.1", "nock": "^13.3.1", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typescript": "~5.3.3" diff --git a/packages/wallet-cli/src/daemon/prompts.test.ts b/packages/wallet-cli/src/daemon/prompts.test.ts index 2ab323496fe..f2c98294565 100644 --- a/packages/wallet-cli/src/daemon/prompts.test.ts +++ b/packages/wallet-cli/src/daemon/prompts.test.ts @@ -1,16 +1,17 @@ // `@inquirer/confirm` and `@inquirer/password` are ESM-only and `prompts.ts` -// reaches them via dynamic `import()`. Use jest's ESM mock API and dynamic -// imports to mirror that. The import statements below tag this file as a -// module for the `import-x/unambiguous` lint rule, even though they import -// only types. +// reaches them via dynamic `import()`. The tests compile to CommonJS, which +// turns those into `require()`, so the plain mock API applies to them and the +// real ESM-only packages are never loaded. The import statements below tag +// this file as a module for the `import-x/unambiguous` lint rule, even though +// they import only types. import type Confirm from '@inquirer/confirm'; import type Password from '@inquirer/password'; -jest.unstable_mockModule('@inquirer/confirm', () => ({ +jest.mock('@inquirer/confirm', () => ({ __esModule: true, default: jest.fn(), })); -jest.unstable_mockModule('@inquirer/password', () => ({ +jest.mock('@inquirer/password', () => ({ __esModule: true, default: jest.fn(), })); diff --git a/packages/wallet-cli/src/daemon/secrets.ts b/packages/wallet-cli/src/daemon/secrets.ts index af64973c49a..fad3bb512de 100644 --- a/packages/wallet-cli/src/daemon/secrets.ts +++ b/packages/wallet-cli/src/daemon/secrets.ts @@ -1,5 +1,5 @@ import { validateMnemonic } from '@metamask/scure-bip39'; -import { wordlist } from '@metamask/scure-bip39/dist/wordlists/english'; +import { wordlist } from '@metamask/scure-bip39/dist/wordlists/english.js'; const REDACTED = '[redacted]'; diff --git a/packages/wallet-framework-docs/jest.config.cjs b/packages/wallet-framework-docs/jest.config.cjs new file mode 100644 index 00000000000..6456e074bb0 --- /dev/null +++ b/packages/wallet-framework-docs/jest.config.cjs @@ -0,0 +1,26 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages.cjs'); + +const displayName = path.basename(__dirname); + +module.exports = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, + }, +}); diff --git a/packages/wallet-framework-docs/jest.config.js b/packages/wallet-framework-docs/jest.config.js deleted file mode 100644 index ca084133399..00000000000 --- a/packages/wallet-framework-docs/jest.config.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -const merge = require('deepmerge'); -const path = require('path'); - -const baseConfig = require('../../jest.config.packages'); - -const displayName = path.basename(__dirname); - -module.exports = merge(baseConfig, { - // The display name when running multiple projects - displayName, - - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100, - }, - }, -}); diff --git a/packages/wallet-framework-docs/package.json b/packages/wallet-framework-docs/package.json index a727bc56c09..7224bac8368 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", @@ -62,6 +63,7 @@ "raw-loader": "^4.0.2", "react": "^19.0.0", "react-dom": "^19.0.0", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typescript": "~5.3.3" diff --git a/packages/wallet/jest.config.cjs b/packages/wallet/jest.config.cjs new file mode 100644 index 00000000000..6456e074bb0 --- /dev/null +++ b/packages/wallet/jest.config.cjs @@ -0,0 +1,26 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages.cjs'); + +const displayName = path.basename(__dirname); + +module.exports = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, + }, +}); diff --git a/packages/wallet/jest.config.js b/packages/wallet/jest.config.js deleted file mode 100644 index ca084133399..00000000000 --- a/packages/wallet/jest.config.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -const merge = require('deepmerge'); -const path = require('path'); - -const baseConfig = require('../../jest.config.packages'); - -const displayName = path.basename(__dirname); - -module.exports = merge(baseConfig, { - // The display name when running multiple projects - displayName, - - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100, - }, - }, -}); diff --git a/packages/wallet/package.json b/packages/wallet/package.json index 3702554a6fe..3e75fe9f8fe 100644 --- a/packages/wallet/package.json +++ b/packages/wallet/package.json @@ -18,19 +18,12 @@ "files": [ "dist/" ], + "type": "module", "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", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -39,9 +32,11 @@ "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:clean": "yarn build:only-clean && yarn build", "build:docs": "typedoc", + "build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'", "changelog:update": "../../scripts/update-changelog.sh @metamask/wallet", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/wallet", "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts", @@ -80,10 +75,10 @@ }, "devDependencies": { "@metamask/auto-changelog": "^6.1.0", - "@ts-bridge/cli": "^0.6.4", "@types/jest": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", + "rimraf": "^5.0.5", "ts-jest": "^29.4.11", "tsx": "^4.20.5", "typedoc": "^0.25.13", diff --git a/packages/wallet/src/utilities.ts b/packages/wallet/src/utilities.ts index 360d73f2bc2..ad02ef2c489 100644 --- a/packages/wallet/src/utilities.ts +++ b/packages/wallet/src/utilities.ts @@ -1,4 +1,4 @@ -import { wordlist } from '@metamask/scure-bip39/dist/wordlists/english'; +import { wordlist } from '@metamask/scure-bip39/dist/wordlists/english.js'; import { Wallet } from './Wallet.js'; diff --git a/scripts/create-package/cli.test.ts b/scripts/create-package/cli.test.ts index 21f7cb254ff..7d85f9c09af 100644 --- a/scripts/create-package/cli.test.ts +++ b/scripts/create-package/cli.test.ts @@ -1,8 +1,22 @@ -import cli from './cli.js'; -import { commands, commandMap } from './commands.js'; -import * as utils from './utils.js'; - -jest.mock('./utils'); +import { jest } from '@jest/globals'; + +// `jest.mock` does not apply to ES modules, so the module registry is stubbed +// with `jest.unstable_mockModule` and the modules under test are imported +// dynamically afterwards. +jest.unstable_mockModule('./utils.js', () => ({ + readMonorepoFiles: jest.fn(), + finalizeAndWriteData: jest.fn(), +})); + +// yargs' ESM shim captures `process.exit` by reference when it is loaded, so +// the spy has to be installed before `cli.js` pulls yargs in. Its +// implementation is re-armed in `beforeEach`, because `resetMocks` clears it +// between tests. +const exitSpy = jest.spyOn(process, 'exit'); + +const { default: cli } = await import('./cli.js'); +const { commands, commandMap } = await import('./commands.js'); +const utils = await import('./utils.js'); /** * Returns a mock `process.argv` array with the provided arguments. Includes @@ -44,7 +58,7 @@ describe('create-package/cli', () => { beforeEach(() => { // yargs calls process.exit() with 1 on failure and sometimes 0 on success. // We have to intercept it. - jest.spyOn(process, 'exit').mockImplementation((code) => { + exitSpy.mockImplementation((code) => { if (code === 1) { throw new Error('exit: 1'); } else { @@ -63,7 +77,9 @@ describe('create-package/cli', () => { it('should error if a string option contains only whitespace', async () => { const defaultCommand = commandMap.$0; - jest.spyOn(defaultCommand, 'handler').mockImplementation(); + jest + .spyOn(defaultCommand, 'handler') + .mockImplementation(async () => undefined); await expect(cli(getMockArgv('--name', ' '), commands)).rejects.toThrow( 'exit: 1', @@ -79,14 +95,14 @@ describe('create-package/cli', () => { const defaultCommand = commandMap.$0; jest.spyOn(defaultCommand, 'handler'); - jest.spyOn(utils, 'readMonorepoFiles').mockResolvedValue({ + jest.mocked(utils.readMonorepoFiles).mockResolvedValue({ tsConfig: {}, tsConfigBuild: {}, nodeVersions: '>=18.0.0', // TODO: Replace `any` with type // eslint-disable-next-line @typescript-eslint/no-explicit-any } as any); - jest.spyOn(utils, 'finalizeAndWriteData').mockResolvedValue(); + jest.mocked(utils.finalizeAndWriteData).mockResolvedValue(); expect( await cli( @@ -105,14 +121,14 @@ describe('create-package/cli', () => { const defaultCommand = commandMap.$0; jest.spyOn(defaultCommand, 'handler'); - jest.spyOn(utils, 'readMonorepoFiles').mockResolvedValue({ + jest.mocked(utils.readMonorepoFiles).mockResolvedValue({ tsConfig: {}, tsConfigBuild: {}, nodeVersions: '>=18.0.0', // TODO: Replace `any` with type // eslint-disable-next-line @typescript-eslint/no-explicit-any } as any); - jest.spyOn(utils, 'finalizeAndWriteData').mockResolvedValue(); + jest.mocked(utils.finalizeAndWriteData).mockResolvedValue(); expect( await cli( @@ -129,7 +145,9 @@ describe('create-package/cli', () => { it('should create a new package', async () => { const defaultCommand = commandMap.$0; - jest.spyOn(defaultCommand, 'handler').mockImplementation(); + jest + .spyOn(defaultCommand, 'handler') + .mockImplementation(async () => undefined); expect( await cli( @@ -146,7 +164,9 @@ describe('create-package/cli', () => { it('should error if the package name is missing', async () => { const defaultCommand = commandMap.$0; - jest.spyOn(defaultCommand, 'handler').mockImplementation(); + jest + .spyOn(defaultCommand, 'handler') + .mockImplementation(async () => undefined); await expect( cli(getMockArgv('--description', 'bar'), commands), @@ -159,7 +179,9 @@ describe('create-package/cli', () => { it('should error if the package description is missing', async () => { const defaultCommand = commandMap.$0; - jest.spyOn(defaultCommand, 'handler').mockImplementation(); + jest + .spyOn(defaultCommand, 'handler') + .mockImplementation(async () => undefined); await expect(cli(getMockArgv('--name', 'foo'), commands)).rejects.toThrow( 'exit: 1', diff --git a/scripts/create-package/commands.test.ts b/scripts/create-package/commands.test.ts index 4e51bf7ec46..5276ea42cbf 100644 --- a/scripts/create-package/commands.test.ts +++ b/scripts/create-package/commands.test.ts @@ -1,21 +1,26 @@ +import { jest } from '@jest/globals'; import type { Arguments } from 'yargs'; import type { CreatePackageOptions } from './commands.js'; -import { createPackageHandler } from './commands.js'; -import * as utils from './utils.js'; -jest.mock('./utils', () => ({ +// `jest.mock` does not apply to ES modules, so the module registry is stubbed +// with `jest.unstable_mockModule` and the modules under test are imported +// dynamically afterwards. +jest.unstable_mockModule('./utils.js', () => ({ finalizeAndWriteData: jest.fn(), readMonorepoFiles: jest.fn(), })); +const utils = await import('./utils.js'); +const { createPackageHandler } = await import('./commands.js'); + // January 2 to avoid time zone issues. jest.useFakeTimers().setSystemTime(new Date('2023-01-02')); describe('create-package/commands', () => { describe('createPackageHandler', () => { it('should create the expected package', async () => { - (utils.readMonorepoFiles as jest.Mock).mockResolvedValue({ + jest.mocked(utils.readMonorepoFiles).mockResolvedValue({ tsConfig: { references: [{ path: '../packages/foo' }], }, diff --git a/scripts/create-package/index.test.ts b/scripts/create-package/index.test.ts index 39436aea78c..56d730ba1af 100644 --- a/scripts/create-package/index.test.ts +++ b/scripts/create-package/index.test.ts @@ -1,7 +1,15 @@ -import cli from './cli.js'; -import { commands } from './commands.js'; +import { jest } from '@jest/globals'; -jest.mock('./cli'); +// `jest.mock` does not apply to ES modules, so the module registry is stubbed +// with `jest.unstable_mockModule` and the modules under test are imported +// dynamically afterwards. +jest.unstable_mockModule('./cli.js', () => ({ + __esModule: true, + default: jest.fn(), +})); + +const { default: cli } = await import('./cli.js'); +const { commands } = await import('./commands.js'); describe('create-package/index', () => { let originalProcess: typeof globalThis.process; @@ -16,13 +24,12 @@ describe('create-package/index', () => { }); it('executes the CLI application', async () => { - const mock = cli as jest.MockedFunction; - mock.mockRejectedValue('foo'); + jest.mocked(cli).mockRejectedValue('foo'); - jest.spyOn(console, 'error').mockImplementation(); + jest.spyOn(console, 'error').mockImplementation(() => undefined); - // eslint-disable-next-line @typescript-eslint/no-require-imports, n/global-require, import-x/no-unassigned-import - require('.'); + // Importing the entry point runs it, which is the behaviour under test. + await import('./index.js'); await new Promise((resolve) => setImmediate(resolve)); expect(cli).toHaveBeenCalledTimes(1); diff --git a/scripts/create-package/package-template/jest.config.cjs b/scripts/create-package/package-template/jest.config.cjs new file mode 100644 index 00000000000..6456e074bb0 --- /dev/null +++ b/scripts/create-package/package-template/jest.config.cjs @@ -0,0 +1,26 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages.cjs'); + +const displayName = path.basename(__dirname); + +module.exports = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, + }, +}); diff --git a/scripts/create-package/package-template/jest.config.js b/scripts/create-package/package-template/jest.config.js deleted file mode 100644 index ca084133399..00000000000 --- a/scripts/create-package/package-template/jest.config.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -const merge = require('deepmerge'); -const path = require('path'); - -const baseConfig = require('../../jest.config.packages'); - -const displayName = path.basename(__dirname); - -module.exports = merge(baseConfig, { - // The display name when running multiple projects - displayName, - - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100, - }, - }, -}); diff --git a/scripts/create-package/package-template/package.json b/scripts/create-package/package-template/package.json index 50a66badadd..72b58e5abf7 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": "^30.0.0", "deepmerge": "^4.2.2", "jest": "^30.4.2", diff --git a/scripts/create-package/utils.test.ts b/scripts/create-package/utils.test.ts index c48b8a308b7..9f7d385410b 100644 --- a/scripts/create-package/utils.test.ts +++ b/scripts/create-package/utils.test.ts @@ -1,15 +1,16 @@ +import { jest } from '@jest/globals'; import * as commentJson from 'comment-json'; -import execa from 'execa'; -import fs from 'fs'; +import type { Stats } from 'fs'; import path from 'path'; -import { format } from 'prettier'; 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', () => ({ +// `jest.mock` does not apply to ES modules, so the module registry is stubbed +// with `jest.unstable_mockModule` and the modules under test are imported +// dynamically afterwards. `utils.ts` reaches for the default and the named +// exports of `fs`, so the mock exposes the same object as both. +const fsMock = { existsSync: jest.fn(), promises: { mkdir: jest.fn(), @@ -17,19 +18,27 @@ jest.mock('fs', () => ({ writeFile: jest.fn(), stat: jest.fn(), }, -})); +}; + +jest.unstable_mockModule('fs', () => ({ ...fsMock, default: fsMock })); -jest.mock('execa', () => jest.fn()); +jest.unstable_mockModule('execa', () => ({ default: jest.fn() })); -jest.mock('prettier', () => ({ +jest.unstable_mockModule('prettier', () => ({ format: jest.fn(), })); -jest.mock('./fs-utils', () => ({ +jest.unstable_mockModule('./fs-utils.js', () => ({ readAllFiles: jest.fn(), writeFiles: jest.fn(), })); +const { default: fs } = await import('fs'); +const { default: execa } = await import('execa'); +const { format } = await import('prettier'); +const fsUtils = await import('./fs-utils.js'); +const { finalizeAndWriteData, readMonorepoFiles } = await import('./utils.js'); + describe('create-package/utils', () => { describe('readMonorepoFiles', () => { const tsConfig = JSON.stringify({ @@ -43,20 +52,24 @@ describe('create-package/utils', () => { }); it('should read the expected monorepo files', async () => { - (fs.promises.readFile as jest.Mock).mockImplementation( - async (filePath: string) => { - switch (path.basename(filePath)) { - case MonorepoFiles.TsConfig: - return tsConfig; - case MonorepoFiles.TsConfigBuild: - return tsConfigBuild; - case MonorepoFiles.PackageJson: - return packageJson; - default: - throw new Error(`Unexpected file: ${path.basename(filePath)}`); - } - }, - ); + // `readFile` is overloaded, which `mockImplementation` cannot match, so + // it is narrowed to the single signature `utils.ts` relies on. + const readFile = jest.mocked( + fs.promises.readFile, + ) as unknown as jest.Mock<(filePath: string) => Promise>; + + readFile.mockImplementation(async (filePath) => { + switch (path.basename(filePath)) { + case MonorepoFiles.TsConfig: + return tsConfig; + case MonorepoFiles.TsConfigBuild: + return tsConfigBuild; + case MonorepoFiles.PackageJson: + return packageJson; + default: + throw new Error(`Unexpected file: ${path.basename(filePath)}`); + } + }); const monorepoFileData = await readMonorepoFiles(); @@ -91,9 +104,9 @@ describe('create-package/utils', () => { const mockError = new Error('Not found') as NodeJS.ErrnoException; mockError.code = 'ENOENT'; - jest.spyOn(fs.promises, 'stat').mockRejectedValue(mockError); + jest.mocked(fs.promises.stat).mockRejectedValue(mockError); - (fsUtils.readAllFiles as jest.Mock).mockResolvedValueOnce({ + jest.mocked(fsUtils.readAllFiles).mockResolvedValueOnce({ 'src/index.ts': 'export default 42;', 'src/index.test.ts': 'export default 42;', 'mock1.file': @@ -102,7 +115,7 @@ describe('create-package/utils', () => { 'mock3.file': 'PACKAGE_DESCRIPTION PACKAGE_DIRECTORY_NAME', }); - (format as jest.Mock).mockImplementation((input) => input); + jest.mocked(format).mockImplementation(async (input) => input); await finalizeAndWriteData(packageData, monorepoFileData); @@ -183,7 +196,7 @@ describe('create-package/utils', () => { nodeVersions: '20.0.0', }; - (fs.promises.stat as jest.Mock).mockResolvedValue({}); + jest.mocked(fs.promises.stat).mockResolvedValue({} as Stats); await expect( finalizeAndWriteData(packageData, monorepoFileData), @@ -197,7 +210,7 @@ describe('create-package/utils', () => { const mockError = new Error('Permission denied') as NodeJS.ErrnoException; mockError.code = 'EACCES'; - jest.spyOn(fs.promises, 'stat').mockRejectedValue(mockError); + jest.mocked(fs.promises.stat).mockRejectedValue(mockError); const packageData: PackageData = { name: '@metamask/foo', diff --git a/scripts/create-package/utils.ts b/scripts/create-package/utils.ts index 11320073968..66aa316006d 100644 --- a/scripts/create-package/utils.ts +++ b/scripts/create-package/utils.ts @@ -1,6 +1,7 @@ import * as commentJson from 'comment-json'; import execa from 'execa'; import { promises as fs } from 'fs'; +import { createRequire } from 'module'; import path from 'path'; import { format as prettierFormat } from 'prettier'; import type { Options as PrettierOptions } from 'prettier'; @@ -9,8 +10,8 @@ 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(__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); @@ -21,10 +22,10 @@ const allPlaceholdersRegex = new RegExp( 'gu', ); -// Our lint config really hates this, but it works. -// eslint-disable-next-line -const prettierRc = require( - path.join(REPO_ROOT, '.prettierrc.js'), +// The Prettier config is CommonJS, so it is loaded through `createRequire` +// rather than an `import`, which would need to be asynchronous. +const prettierRc = createRequire(import.meta.url)( + path.join(REPO_ROOT, '.prettierrc.cjs'), ) as PrettierOptions; /** 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/manage-codeowners/main.ts b/scripts/manage-codeowners/main.ts index 054312b5f50..406400abba9 100644 --- a/scripts/manage-codeowners/main.ts +++ b/scripts/manage-codeowners/main.ts @@ -8,7 +8,7 @@ import codeownersSections from '../../codeowners.js'; * The path to the generated CODEOWNERS file. */ const CODEOWNERS_FILE_PATH = path.resolve( - __dirname, + import.meta.dirname, '../../.github/CODEOWNERS', ); 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); 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/tsconfig.packages.json b/tsconfig.packages.json index fbde19a5981..f0d7cffcca6 100644 --- a/tsconfig.packages.json +++ b/tsconfig.packages.json @@ -9,11 +9,11 @@ * uncompiled source code for packages that live in this repo. * * NOTE: This must be synchronized with the `moduleNameMapper` option in - * `jest.config.packages.js`. + * `jest.config.packages.cjs`. */ "paths": { "@metamask/json-rpc-engine/v2": ["../json-rpc-engine/src/v2/index.ts"], - "@metamask/*": ["../*/src"] + "@metamask/*": ["../*/src/index.ts"] } } } diff --git a/yarn.config.cjs b/yarn.config.cjs index fd44537397a..cbc35380295 100644 --- a/yarn.config.cjs +++ b/yarn.config.cjs @@ -90,6 +90,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 @@ -145,21 +148,33 @@ 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', + ); + + expectWorkspaceField( + workspace, + 'scripts.build:clean', + 'yarn build:only-clean && yarn build', + ); + + expectWorkspaceField( + workspace, + 'scripts.build:only-clean', + `rimraf './dist' './tsconfig.build.tsbuildinfo'`, ); } @@ -550,35 +565,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["."].default', './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["."].import', 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( @@ -586,6 +582,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}.default`); + + 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}.default`); + if ( + importValue && + (typeof importValue !== 'string' || !importValue.endsWith('.js')) + ) { + workspace.error( + `Expected package's "${prefix}.default" field to end with ".js", but it was "${importValue}".`, + ); + } + } } /** diff --git a/yarn.lock b/yarn.lock index 8a0ff0eaa11..672f551381a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5070,7 +5070,7 @@ __metadata: languageName: node linkType: hard -"@jest/globals@npm:30.4.1": +"@jest/globals@npm:30.4.1, @jest/globals@npm:^30.4.1": version: 30.4.1 resolution: "@jest/globals@npm:30.4.1" dependencies: @@ -5755,12 +5755,12 @@ __metadata: "@metamask/snaps-utils": "npm:^12.1.2" "@metamask/superstruct": "npm:^3.4.1" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" deepmerge: "npm:^4.2.2" fast-deep-equal: "npm:^3.1.3" jest: "npm:^30.4.2" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -5792,14 +5792,14 @@ __metadata: "@metamask/providers": "npm:^22.1.0" "@metamask/superstruct": "npm:^3.4.1" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" "@types/readable-stream": "npm:^2.3.0" deepmerge: "npm:^4.2.2" ethereum-cryptography: "npm:^2.1.2" immer: "npm:^9.0.6" jest: "npm:^30.4.2" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -5833,10 +5833,10 @@ __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:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -5854,10 +5854,10 @@ __metadata: "@metamask/messenger": "npm:^2.0.0" "@metamask/superstruct": "npm:^3.4.1" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -5875,12 +5875,12 @@ __metadata: "@metamask/geolocation-controller": "npm:^1.0.0" "@metamask/messenger": "npm:^2.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" "@types/uuid": "npm:^8.3.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -5899,11 +5899,11 @@ __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:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" nock: "npm:^13.3.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -5919,10 +5919,10 @@ __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:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -5945,10 +5945,10 @@ __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:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -5966,11 +5966,11 @@ __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:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" nanoid: "npm:^3.3.8" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -6011,15 +6011,16 @@ __metadata: "@metamask/snaps-utils": "npm:^12.1.2" "@metamask/transaction-controller": "npm:^69.6.1" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" "@types/lodash": "npm:^4.14.191" + "@types/lodash-es": "npm:^4.17.12" async-mutex: "npm:^0.5.0" bignumber.js: "npm:^9.1.2" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" p-limit: "npm:^3.1.0" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -6075,10 +6076,9 @@ __metadata: "@metamask/transaction-controller": "npm:^69.6.1" "@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:^30.0.0" - "@types/lodash": "npm:^4.14.191" + "@types/lodash-es": "npm:^4.17.12" "@types/node": "npm:^22.13.14" "@types/uuid": "npm:^8.3.0" async-mutex: "npm:^0.5.0" @@ -6088,10 +6088,11 @@ __metadata: immer: "npm:^9.0.6" jest: "npm:^30.4.2" jest-environment-jsdom: "npm:^30.4.1" - 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" + rimraf: "npm:^5.0.5" single-call-balance-checker-abi: "npm:^1.0.0" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" @@ -6150,11 +6151,11 @@ __metadata: "@metamask/messenger": "npm:^2.0.0" "@metamask/superstruct": "npm:^3.4.1" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" nock: "npm:^13.3.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -6193,11 +6194,11 @@ __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:^30.0.0" deepmerge: "npm:^4.2.2" immer: "npm:^9.0.6" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -6216,15 +6217,15 @@ __metadata: "@metamask/superstruct": "npm:^3.4.1" "@metamask/utils": "npm:^11.11.0" "@tanstack/query-core": "npm:^5.62.16" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" - "@types/lodash": "npm:^4.14.191" + "@types/lodash-es": "npm:^4.17.12" cockatiel: "npm:^3.1.2" deepmerge: "npm:^4.2.2" fast-deep-equal: "npm:^3.1.3" jest: "npm:^30.4.2" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" nock: "npm:^13.3.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -6239,17 +6240,17 @@ __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:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" bin: - bitcoin-regtest-up: ./dist/bin/bitcoin-regtest-up.mjs + bitcoin-regtest-up: ./dist/bin/bitcoin-regtest-up.js languageName: unknown linkType: soft @@ -6282,15 +6283,15 @@ __metadata: "@metamask/superstruct": "npm:^3.4.1" "@metamask/transaction-controller": "npm:^69.6.1" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" bignumber.js: "npm:^9.1.2" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" jest-environment-jsdom: "npm:^30.4.1" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" nock: "npm:^13.3.1" reselect: "npm:^5.1.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -6319,14 +6320,14 @@ __metadata: "@metamask/superstruct": "npm:^3.4.1" "@metamask/transaction-controller": "npm:^69.6.1" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" bignumber.js: "npm:^9.1.2" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" jest-environment-jsdom: "npm:^30.4.1" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" nock: "npm:^13.3.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -6351,11 +6352,11 @@ __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:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -6375,11 +6376,11 @@ __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:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -6399,11 +6400,11 @@ __metadata: "@metamask/superstruct": "npm:^3.4.1" "@metamask/utils": "npm:^11.11.0" "@tanstack/query-core": "npm:^5.62.16" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" nock: "npm:^13.3.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -6426,10 +6427,10 @@ __metadata: "@metamask/superstruct": "npm:^3.4.1" "@metamask/utils": "npm:^11.11.0" "@tanstack/query-core": "npm:^5.62.16" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -6445,11 +6446,11 @@ __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:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" jest-environment-jsdom: "npm:^30.4.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -6471,11 +6472,11 @@ __metadata: "@metamask/slip44": "npm:^4.3.0" "@metamask/transaction-controller": "npm:^69.6.1" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" deepmerge: "npm:^4.2.2" eth-chainlist: "npm:^0.0.795" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -6494,12 +6495,12 @@ __metadata: "@metamask/messenger": "npm:^2.0.0" "@metamask/superstruct": "npm:^3.4.1" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" nock: "npm:^13.3.1" reselect: "npm:^5.1.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -6516,11 +6517,11 @@ __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:^30.0.0" deepmerge: "npm:^4.2.2" immer: "npm:^9.0.6" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -6543,12 +6544,12 @@ __metadata: "@metamask/remote-feature-flag-controller": "npm:^6.1.0" "@metamask/superstruct": "npm:^3.4.1" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" nock: "npm:^13.3.1" reselect: "npm:^5.1.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -6564,11 +6565,11 @@ __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:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" reselect: "npm:^5.1.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -6616,10 +6617,9 @@ __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:^30.0.0" - "@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" @@ -6628,8 +6628,9 @@ __metadata: fast-deep-equal: "npm:^3.1.3" jest: "npm:^30.4.2" jest-environment-jsdom: "npm:^30.4.1" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" nock: "npm:^13.3.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -6653,13 +6654,13 @@ __metadata: "@metamask/remote-feature-flag-controller": "npm:^6.1.0" "@metamask/utils": "npm:^11.11.0" "@tanstack/query-core": "npm:^5.62.16" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" async-mutex: "npm:^0.5.0" cockatiel: "npm:^3.1.2" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" jest-environment-jsdom: "npm:^30.4.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -6675,6 +6676,7 @@ __metadata: dependencies: "@actions/core": "npm:^3.0.1" "@actions/github": "npm:^9.1.1" + "@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.2" @@ -6688,7 +6690,6 @@ __metadata: "@metamask/network-controller": "npm:^36.0.0" "@metamask/skills": "npm:^0.1.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" "@types/lodash": "npm:^4.14.191" "@types/node": "npm:^22.13.14" @@ -6723,6 +6724,7 @@ __metadata: rimraf: "npm:^5.0.5" semver: "npm:^7.6.3" simple-git-hooks: "npm:^2.8.0" + ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typescript: "npm:~5.3.3" typescript-eslint: "npm:^8.48.0" @@ -6771,10 +6773,10 @@ __metadata: "@metamask/keyring-controller": "npm:^27.1.1" "@metamask/messenger": "npm:^2.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -6816,11 +6818,11 @@ __metadata: "@metamask/network-controller": "npm:^36.0.0" "@metamask/stake-sdk": "npm:^3.2.1" "@metamask/transaction-controller": "npm:^69.6.1" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" reselect: "npm:^5.1.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -6841,12 +6843,12 @@ __metadata: "@metamask/superstruct": "npm:^3.4.1" "@metamask/transaction-controller": "npm:^69.6.1" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" klona: "npm:^2.0.6" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -6865,10 +6867,10 @@ __metadata: "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/superstruct": "npm:^3.4.1" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -6888,11 +6890,11 @@ __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:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -6971,14 +6973,14 @@ __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": "npm:^3.1.3" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" "@types/json-rpc-random-id": "npm:^1.0.1" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" json-rpc-random-id: "npm:^1.0.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -7044,14 +7046,15 @@ __metadata: "@metamask/rpc-errors": "npm:^7.0.2" "@metamask/superstruct": "npm:^3.4.1" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/deep-freeze-strict": "npm:^1.1.0" "@types/jest": "npm:^30.0.0" deep-freeze-strict: "npm:^1.1.1" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" klona: "npm:^2.0.6" + rimraf: "npm:^5.0.5" safe-stable-stringify: "npm:^2.4.3" + ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" typescript: "npm:~5.3.3" @@ -7082,12 +7085,12 @@ __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:^30.0.0" deepmerge: "npm:^4.2.2" ethers: "npm:^6.12.0" jest: "npm:^30.4.2" nanoid: "npm:^3.3.8" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -7324,7 +7327,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:^30.0.0" "@types/unzipper": "npm:^0.10.10" "@types/yargs": "npm:^17.0.32" @@ -7333,6 +7335,7 @@ __metadata: jest: "npm:^30.4.2" minipass: "npm:^7.1.2" nock: "npm:^13.3.1" + rimraf: "npm:^5.0.5" tar: "npm:^7.4.3" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" @@ -7344,7 +7347,7 @@ __metadata: yargs: "npm:^17.7.2" yargs-parser: "npm:^21.1.1" bin: - mm-foundryup: ./dist/cli.mjs + mm-foundryup: ./dist/cli.js languageName: unknown linkType: soft @@ -7362,7 +7365,6 @@ __metadata: "@metamask/network-controller": "npm:^36.0.0" "@metamask/polling-controller": "npm:^16.0.9" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/bn.js": "npm:^5.1.5" "@types/jest": "npm:^30.0.0" "@types/jest-when": "npm:^2.7.3" @@ -7372,6 +7374,7 @@ __metadata: jest: "npm:^30.4.2" jest-when: "npm:^3.7.0" nock: "npm:^13.3.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -7402,10 +7405,10 @@ __metadata: "@metamask/snaps-utils": "npm:^12.1.2" "@metamask/transaction-controller": "npm:^69.6.1" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -7422,10 +7425,10 @@ __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:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -7440,17 +7443,17 @@ __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:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" bin: - java-tron-up: ./dist/bin/java-tron-up.mjs + java-tron-up: ./dist/bin/java-tron-up.js languageName: unknown linkType: soft @@ -7463,15 +7466,15 @@ __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": "npm:^3.1.3" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/deep-freeze-strict": "npm:^1.1.0" "@types/jest": "npm:^30.0.0" deep-freeze-strict: "npm:^1.1.1" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" klona: "npm:^2.0.6" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -7485,15 +7488,15 @@ __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": "npm:^3.1.3" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" "@types/readable-stream": "npm:^2.3.0" deepmerge: "npm:^4.2.2" extension-port-stream: "npm:^3.0.0" jest: "npm:^30.4.2" readable-stream: "npm:^3.6.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -7550,14 +7553,14 @@ __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:^30.0.0" async-mutex: "npm:^0.5.0" deepmerge: "npm:^4.2.2" ethereumjs-wallet: "npm:^1.0.1" immer: "npm:^9.0.6" jest: "npm:^30.4.2" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -7673,13 +7676,13 @@ __metadata: "@noble/hashes": "npm:^1.8.0" "@scure/base": "npm:^1.2.6" "@tanstack/query-core": "npm:^5.62.16" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" chokidar-cli: "npm:^3.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" nock: "npm:^13.3.1" reselect: "npm:^5.1.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" tweetnacl: "npm:^1.0.3" @@ -7694,11 +7697,11 @@ __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:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" nock: "npm:^13.3.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -7716,10 +7719,10 @@ __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:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -7739,12 +7742,12 @@ __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:^30.0.0" "@types/uuid": "npm:^8.3.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" jsonschema: "npm:^1.4.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -7758,9 +7761,9 @@ __metadata: version: 0.0.0-use.local resolution: "@metamask/messenger-cli@workspace:packages/messenger-cli" dependencies: + "@jest/globals": "npm:^30.4.1" "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" "@types/yargs": "npm:^17.0.32" deepmerge: "npm:^4.2.2" @@ -7768,6 +7771,7 @@ __metadata: jest: "npm:^30.4.2" oxfmt: "npm:^0.44.0" prettier: "npm:^3.3.3" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typescript: "npm:~5.3.3" @@ -7782,7 +7786,7 @@ __metadata: prettier: optional: true bin: - messenger-action-types: ./dist/cli.mjs + messenger-action-types: ./dist/cli.js languageName: unknown linkType: soft @@ -7806,11 +7810,11 @@ __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:^30.0.0" deepmerge: "npm:^4.2.2" immer: "npm:^9.0.6" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tstyche: "npm:^5.0.2" tsx: "npm:^4.20.5" @@ -7840,11 +7844,11 @@ __metadata: "@metamask/superstruct": "npm:^3.4.1" "@metamask/utils": "npm:^11.11.0" "@tanstack/query-core": "npm:^5.62.16" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" nock: "npm:^13.3.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -7869,11 +7873,11 @@ __metadata: "@metamask/remote-feature-flag-controller": "npm:^6.1.0" "@metamask/superstruct": "npm:^3.4.1" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" nock: "npm:^13.3.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -7895,11 +7899,11 @@ __metadata: "@metamask/keyring-utils": "npm:^5.0.0" "@metamask/messenger": "npm:^2.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" async-mutex: "npm:^0.5.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -7923,10 +7927,10 @@ __metadata: "@metamask/messenger": "npm:^2.0.0" "@metamask/network-controller": "npm:^36.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -7945,10 +7949,10 @@ __metadata: "@metamask/auto-changelog": "npm:^6.1.0" "@metamask/transaction-controller": "npm:^69.6.1" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -7983,13 +7987,13 @@ __metadata: "@metamask/snaps-utils": "npm:^12.1.2" "@metamask/superstruct": "npm:^3.4.1" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" "@types/uuid": "npm:^8.3.0" async-mutex: "npm:^0.5.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -8018,16 +8022,16 @@ __metadata: "@metamask/network-controller": "npm:^36.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": "npm:^3.1.3" "@metamask/snaps-controllers": "npm:^19.0.0" "@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:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" jsonschema: "npm:^1.4.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -8052,15 +8056,15 @@ __metadata: "@metamask/superstruct": "npm:^3.4.1" "@metamask/utils": "npm:^11.11.0" "@solana/addresses": "npm:^2.0.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" - "@types/lodash": "npm:^4.14.191" + "@types/lodash-es": "npm:^4.17.12" "@types/uuid": "npm:^8.3.0" deepmerge: "npm:^4.2.2" immer: "npm:^9.0.6" jest: "npm:^30.4.2" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" nock: "npm:^13.3.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -8086,12 +8090,12 @@ __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:^30.0.0" "@types/uuid": "npm:^8.3.0" deepmerge: "npm:^4.2.2" immer: "npm:^9.0.6" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -8110,11 +8114,11 @@ __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:^30.0.0" async-mutex: "npm:^0.5.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -8136,11 +8140,11 @@ __metadata: "@metamask/network-controller": "npm:^36.0.0" "@metamask/network-enablement-controller": "npm:^6.0.5" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" reselect: "npm:^5.1.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -8171,11 +8175,10 @@ __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:^30.0.0" "@types/jest-when": "npm:^2.7.3" - "@types/lodash": "npm:^4.14.191" + "@types/lodash-es": "npm:^4.17.12" "@types/node-fetch": "npm:^2.6.12" cockatiel: "npm:^3.1.2" deep-freeze-strict: "npm:^1.1.1" @@ -8185,11 +8188,12 @@ __metadata: jest: "npm:^30.4.2" jest-environment-jsdom: "npm:^30.4.1" jest-when: "npm:^3.7.0" - 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" reselect: "npm:^5.1.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -8215,11 +8219,11 @@ __metadata: "@metamask/slip44": "npm:^4.3.0" "@metamask/transaction-controller": "npm:^69.6.1" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" reselect: "npm:^5.1.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -8255,9 +8259,8 @@ __metadata: "@metamask/messenger": "npm:^2.0.0" "@metamask/profile-sync-controller": "npm:^29.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" - "@types/lodash": "npm:^4.14.191" + "@types/lodash-es": "npm:^4.17.12" "@types/readable-stream": "npm:^2.3.0" "@types/semver": "npm:^7" bignumber.js: "npm:^9.1.2" @@ -8266,9 +8269,10 @@ __metadata: firebase: "npm:^11.2.0" jest: "npm:^30.4.2" jest-environment-jsdom: "npm:^30.4.1" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" loglevel: "npm:^1.8.1" nock: "npm:^13.3.1" + rimraf: "npm:^5.0.5" semver: "npm:^7.6.3" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" @@ -8312,11 +8316,11 @@ __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:^30.0.0" async-mutex: "npm:^0.5.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -8356,7 +8360,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:^30.0.0" deep-freeze-strict: "npm:^1.1.1" @@ -8364,6 +8367,7 @@ __metadata: immer: "npm:^9.0.6" jest: "npm:^30.4.2" nanoid: "npm:^3.3.8" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -8381,13 +8385,13 @@ __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:^30.0.0" deep-freeze-strict: "npm:^1.1.1" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" nanoid: "npm:^3.3.8" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -8418,13 +8422,13 @@ __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:^30.0.0" "@types/uuid": "npm:^8.3.0" bignumber.js: "npm:^9.1.2" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" reselect: "npm:^5.1.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -8449,7 +8453,6 @@ __metadata: "@metamask/messenger": "npm:^2.0.0" "@metamask/transaction-controller": "npm:^69.6.1" "@noble/hashes": "npm:^1.8.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" "@types/punycode": "npm:^2.1.0" deepmerge: "npm:^4.2.2" @@ -8458,6 +8461,7 @@ __metadata: jest: "npm:^30.4.2" nock: "npm:^13.3.1" punycode: "npm:^2.1.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -8479,7 +8483,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:^30.0.0" "@types/node": "npm:^22.13.14" "@types/npm-which": "npm:^3" @@ -8493,13 +8496,14 @@ __metadata: prism-react-renderer: "npm:^2.4.1" react: "npm:^19.0.0" react-dom: "npm:^19.0.0" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" ts-morph: "npm:^28.0.0" tsx: "npm:^4.20.5" typescript: "npm:~5.3.3" yargs: "npm:^17.7.2" bin: - platform-api-docs: ./dist/cli.mjs + platform-api-docs: ./dist/cli.js languageName: unknown linkType: soft @@ -8511,12 +8515,12 @@ __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:^30.0.0" "@types/uuid": "npm:^8.3.0" deepmerge: "npm:^4.2.2" fast-json-stable-stringify: "npm:^2.1.0" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -8544,10 +8548,10 @@ __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:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -8575,12 +8579,12 @@ __metadata: "@metamask/superstruct": "npm:^3.4.1" "@metamask/transaction-controller": "npm:^69.6.1" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" async-mutex: "npm:^0.5.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" nock: "npm:^13.3.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -8611,7 +8615,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:^30.0.0" deepmerge: "npm:^4.2.2" ethers: "npm:^6.12.0" @@ -8620,6 +8623,7 @@ __metadata: jest-environment-jsdom: "npm:^30.4.1" loglevel: "npm:^1.8.1" nock: "npm:^13.3.1" + rimraf: "npm:^5.0.5" siwe: "npm:^2.3.2" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" @@ -8664,11 +8668,11 @@ __metadata: "@metamask/messenger": "npm:^2.0.0" "@metamask/profile-sync-controller": "npm:^29.0.0" "@metamask/remote-feature-flag-controller": "npm:^6.1.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" nock: "npm:^13.3.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -8686,10 +8690,10 @@ __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:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -8708,10 +8712,10 @@ __metadata: "@metamask/utils": "npm:^11.11.0" "@tanstack/query-core": "npm:^5.62.16" "@tanstack/react-query": "npm:^5.62.16" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tstyche: "npm:^5.0.2" tsx: "npm:^4.20.5" @@ -8740,11 +8744,11 @@ __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:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" nock: "npm:^13.3.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -8764,10 +8768,10 @@ __metadata: languageName: node linkType: hard -"@metamask/safe-event-emitter@npm:^3.0.0, @metamask/safe-event-emitter@npm:^3.1.1": - version: 3.1.1 - resolution: "@metamask/safe-event-emitter@npm:3.1.1" - checksum: 10/e24db4d7c20764bfc5b025065f92518c805f0ffb1da4820078b8cff7dcae964c0f354cf053fcb7ac659de015d5ffdf21aae5e8d44e191ee8faa9066855f22653 +"@metamask/safe-event-emitter@npm:^3.0.0, @metamask/safe-event-emitter@npm:^3.1.1, @metamask/safe-event-emitter@npm:^3.1.3": + version: 3.1.3 + resolution: "@metamask/safe-event-emitter@npm:3.1.3" + checksum: 10/adec56b940385cc34ecd14149c1f0a5c0273f255d7cb7a7df31dfda92381443b58534d173deb0b3361e3ca48a27847b5d715442874c2f6c53be9523c82f4ff2a languageName: node linkType: hard @@ -8784,11 +8788,11 @@ __metadata: "@metamask/superstruct": "npm:^3.4.1" "@metamask/utils": "npm:^11.11.0" "@tanstack/query-core": "npm:^5.62.16" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" nock: "npm:^13.3.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -8824,7 +8828,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:^30.0.0" "@types/json-stable-stringify-without-jsonify": "npm:^1.0.2" @@ -8832,6 +8835,7 @@ __metadata: deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" nock: "npm:^13.3.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -8852,14 +8856,14 @@ __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:^30.0.0" deepmerge: "npm:^4.2.2" immer: "npm:^9.0.6" jest: "npm:^30.4.2" jest-environment-jsdom: "npm:^30.4.1" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" nock: "npm:^13.3.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -8879,11 +8883,11 @@ __metadata: "@metamask/superstruct": "npm:^3.4.1" "@metamask/utils": "npm:^11.11.0" "@tanstack/query-core": "npm:^5.62.16" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" nock: "npm:^13.3.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -8909,12 +8913,12 @@ __metadata: "@metamask/transaction-controller": "npm:^69.6.1" "@metamask/utils": "npm:^11.11.0" "@tanstack/query-core": "npm:^5.62.16" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" cockatiel: "npm:^3.1.2" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -8940,12 +8944,12 @@ __metadata: "@metamask/messenger": "npm:^2.0.0" "@metamask/network-controller": "npm:^36.0.0" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" jsonschema: "npm:^1.4.1" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -8993,13 +8997,13 @@ __metadata: "@metamask/superstruct": "npm:^3.4.1" "@metamask/transaction-controller": "npm:^69.6.1" "@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:^30.4.2" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" nock: "npm:^13.3.1" reselect: "npm:^5.1.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -9024,11 +9028,11 @@ __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:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -9165,10 +9169,10 @@ __metadata: "@metamask/messenger": "npm:^2.0.0" "@metamask/profile-sync-controller": "npm:^29.0.0" "@metamask/superstruct": "npm:^3.4.1" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -9183,17 +9187,17 @@ __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:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" typedoc-plugin-missing-exports: "npm:^2.0.0" typescript: "npm:~5.3.3" bin: - solana-test-validator-up: ./dist/bin/solana-test-validator-up.mjs + solana-test-validator-up: ./dist/bin/solana-test-validator-up.js languageName: unknown linkType: soft @@ -9209,10 +9213,10 @@ __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:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -9228,10 +9232,10 @@ __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:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -9255,11 +9259,11 @@ __metadata: "@metamask/transaction-controller": "npm:^69.6.1" "@metamask/utils": "npm:^11.11.0" "@tanstack/query-core": "npm:^5.62.16" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" bignumber.js: "npm:^9.1.2" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -9330,7 +9334,6 @@ __metadata: "@metamask/remote-feature-flag-controller": "npm:^6.1.0" "@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:^30.0.0" "@types/node": "npm:^22.13.14" @@ -9344,8 +9347,9 @@ __metadata: immer: "npm:^9.0.6" jest: "npm:^30.4.2" jest-environment-jsdom: "npm:^30.4.1" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" nock: "npm:^13.3.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -9380,14 +9384,14 @@ __metadata: "@metamask/sentinel-api-service": "npm:^1.0.1" "@metamask/transaction-controller": "npm:^69.6.1" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" bignumber.js: "npm:^9.1.2" bn.js: "npm:^5.2.1" deepmerge: "npm:^4.2.2" immer: "npm:^9.0.6" jest: "npm:^30.4.2" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -9415,13 +9419,13 @@ __metadata: "@metamask/superstruct": "npm:^3.4.1" "@metamask/transaction-controller": "npm:^69.6.1" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" bn.js: "npm:^5.2.1" deepmerge: "npm:^4.2.2" immer: "npm:^9.0.6" jest: "npm:^30.4.2" - lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -9489,7 +9493,6 @@ __metadata: "@metamask/utils": "npm:^11.11.0" "@metamask/wallet": "npm:^12.0.2" "@oclif/core": "npm:^4.10.5" - "@ts-bridge/cli": "npm:^0.6.4" "@types/better-sqlite3": "npm:^7.6.13" "@types/jest": "npm:^30.0.0" better-sqlite3: "npm:^12.9.0" @@ -9498,6 +9501,7 @@ __metadata: jest: "npm:^30.4.2" jest-environment-node: "npm:^30.4.1" nock: "npm:^13.3.1" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typescript: "npm:~5.3.3" @@ -9533,6 +9537,7 @@ __metadata: raw-loader: "npm:^4.0.2" react: "npm:^19.0.0" react-dom: "npm:^19.0.0" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typescript: "npm:~5.3.3" @@ -9566,10 +9571,10 @@ __metadata: "@metamask/subscription-controller": "npm:^8.0.1" "@metamask/transaction-controller": "npm:^69.6.1" "@metamask/utils": "npm:^11.11.0" - "@ts-bridge/cli": "npm:^0.6.4" "@types/jest": "npm:^30.0.0" deepmerge: "npm:^4.2.2" jest: "npm:^30.4.2" + rimraf: "npm:^5.0.5" ts-jest: "npm:^29.4.11" tsx: "npm:^4.20.5" typedoc: "npm:^0.25.13" @@ -11600,30 +11605,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" @@ -12020,10 +12001,19 @@ __metadata: 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" - checksum: 10/8cd8ad3bd78d2e06a93ae8d6c9907981d5673655fec7cb274a4d9a59549aab5bb5b3017361280773b8990ddfccf363e14d1b37c97af8a9fe363de677f9a61524 +"@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:*, @types/lodash@npm:^4.14.191, @types/lodash@npm:^4.17.20": + version: 4.17.25 + resolution: "@types/lodash@npm:4.17.25" + checksum: 10/f786e05664439cc8d327fd97c62c060d81b3c4ed52127d01fbc926139e1a669c1554bf3cd0dbb43f8fcc7d9b5c6c23c543cc36de8dc815c9f289ea852b26ebd6 languageName: node linkType: hard @@ -14976,13 +14966,6 @@ __metadata: languageName: node linkType: hard -"cjs-module-lexer@npm:^1.3.1": - version: 1.4.0 - resolution: "cjs-module-lexer@npm:1.4.0" - checksum: 10/b041096749792526120d8b8756929f8ef5dd4596502a0e1013f857e3027acd6091915fea77037921d70ee1a99988a100d994d3d3c2e323b04dd4c5ffd516cf13 - languageName: node - linkType: hard - "cjs-module-lexer@npm:^2.1.0": version: 2.2.0 resolution: "cjs-module-lexer@npm:2.2.0"